Skip to main content

From Hard Coding to App

Bagaimana sebuah app dibuat?

Aplikasi atau disingkat app, adalah sebuah aplikasi yang berjalan
dengan fungsi tertentu. App yang didesain berjalan di platform A tidak
bisa berjalan di platform B, demikian juga sebaliknya. Sebagai contoh,
app calculator yang didesain berjalan di OS android tidak dapat
dijalankan di OS iOS, demikian juga sebaliknya.

Berikut adalah tahapan sebuah app itu dibuat dari awal (di create from
scratch):

(1) Hard Coding

   Ini adalah proses menuliskan kode pada sebuah bahasa pemrograman
   tertentu, misalnya bahasa C. Yaitu berupa urutan instruksi yang
   membuat sebuah fungsi kalkulator dalam bahasa C. Hasil dari hard
   coding ini, disebut sebagai source code (kode sumber). Yaitu berupa
   plain text yang bisa dibaca oleh semua jenis platform (OS) apapun.

(2) Compile
   Proses kompilasi ini akan mengubah source code dari proses hard
   coding diatas ke dalam specifik platform (OS) tertentu. Misalnya
   dikompilasi ke dalam platform Linux. Hasil kompilasi ini adalah
   berupa app yang bisa diinstal di platform Linux saja.

(3) Instalasi
   Ini adalah tahapan terakhir dari hasil compile, yaitu file
   yang siap untuk diinstal pada platform yang sudah ditentukan.
 
Hasil instalasi inilah yang kita namakan dengan app, singkatan dari
application. Dan app inilah yang selama ini kita bergaul dengannya.

Sebagai contoh kasus, bila kita memiliki source code dalam bahasa C, maka kita bisa
melakukan kompilasi dan instalasi kesemua jenis platform yang kita inginkan.
Misal kita menulis hard codingnya dengan macOS (source-code.c) ,
kemudian kita kompilasi di Windows (source-code.exe).
Maka hasil kompilasi tersebut bisa diinstall dan dijalankan di OS Windows,
seperti yang kita inginkan.

Akan tetapi bila kita kompilasi ke Linux, maka hasilnya bisa
dijalankan di Linux.

Java

Ada konsep sederhana yang genius dari Java, yaitu ingin membuat satu
buah jenis kompilasi yang bisa berjalan disemua jenis OS. Maka
dibuatlah konsep virtual machine yang disebut Java Virtual Machine
(JVM). Virtual machine ini berarti kita menambah satu layer diatas platform
(atau OS) yang sudah ada.

Hasil kompilasi source code Java disebut Java Bytecode. Dan byte code
inilah yang dijalankan diatas JVM. Maka seolah-olah kita memiliki
mesin virtual diatas platform, yang berfungsi seperti platform itu
sendiri. Dan semua jenis java byte code tersebut bisa berjalan disemua
jenis OS yang mengimplementasikan JVM. JVM merupakan salah satu
bagian dari JRE (Java Runtime Environment), yaitu lingkungan
tempat Java byte code berjalan.

Maka konsep pemrograman Java ini kita kenal dengan istilah "Write
Once, Run Everywhere". Dan konsep ini terbukti banyak diadopsi oleh
kalangan korporat dalam bidang IT. Karena jenis OS apapun yang
diimplementasikan, bisa dikembangkan dengan menggunakan bahasa Java
tersebut.

Go Cross Compilation

Agak sedikit berbeda dengan Java, bahasa Go memperkenalkan cross
compilation dan menghilangkan konsep virtual machine seperti yang
diusung oleh teknologi Java diatas. Yaitu proses compilasinya langsung
ditentukan jenis platformnya, kemudian hasil kompilasinya bisa
langsung dijalankan ke platform yang dituju. Meskipun proses
kompilasinya dilakukan di platform yang lain.

Misal, source code Go dibuat dengan OS Linux, dan dikompilasi di
Linux, akan tetapi tujuannya adalah untuk OS macOS. Maka, hasil
kompilasinya bisa dijalankan di OS macOS saja. Dan tidak dapat
berjalan di OS Linux.

Ini adalah konsep yang lebih baik, karena dengan menghilangkan "java
virtual machine", maka unjuk kerja (performa) app dengan bahasa Go
dapat berjalan lebih cepat daripada byte code java yang berjalan diatas JVM.

Penggunaan Bahasa Pemrograman

Sebuah bahasa pemrograman diciptakan untuk memecahkan masalah
tertentu. Bahasa C memang diciptakan untuk membuat software system,
seperti OS. Maka C banyak digunakan dalam membuat kernel Linux, atau
OS Windows. Dan C++ menawarkan konsep pemrograman object, yang lalu
diadopsi juga dalam membuat OS Windows.

Sementara Java didesain agar bisa dijalankan di berbagai platform
dengan biaya pengembangan yang hemat. Jadi dengan satu kali biaya
pengembangan, kita bisa menjualnya ke berbagai jenis OS. Inilah
selling point dari Java.

Sementara Go didesain untuk menangani concurrency app. Yang
membutuhkan multithreading. Dan Go memang jagoan dalam hal ini.

Sedang python paling cocok untuk menangai komputasi dalam bidang sains. Dan komputasi ilmiah. Selain itu, Python juga digunakan Google dalam search engine mereka.

Demikian, sekilas pembahasan tentang app.

Comments

Popular posts from this blog

Masalah "Open Containing Folder" di Firefox

Sebagaimana lazimnya bila kita sudah selesai mendownload sebuah file dengan menggunakan Firefox, maka kita akan menuju ke folder tempat file tersebut di download. Ada sedikit permasalahan, saat kita menggunakannya di lingkungan Linux.


Bukan aplikasi file manager yang terbuka, akan tetapi kadang-kadang malah aplikasi lain, seperti Audacious.
Mengapa hal tersebut bisa terjadi di lingkungan Linux? Karena di Linux, tidak ada standardisasi file manager yang dipakai. Ada yang menggunakan nautilus, konqueror, dolphin, thunar, dll.
Untuk XFCE, dengan file manager Thunar. Berikut adalah cara untuk memecahkan masalah tersebut:
Edit file mimeapps.list berikut

$ nano ~/.local/share/applications/mimeapps.list
Pada bagian [Default Applications], tambahkan baris berikut:

inode/directory=Thunar.desktopDemikian.

Linux Yang Baik Hati

Ada beberapa pengguna Windows yang kadang curhat ke aku tentang gangguan virus saat mereka berkomputasi. Salah satunya adalah saudaraku sendiri yang tergolong end user.

Mengapa file-file yang ada di flash disknya kok tiba-tiba menghilang? Atau mengapa jadi aneh?

Rupanya setelah aku periksa dengan Linux tentu saja, terlihat jelas bahwa ada virus disana. Yaitu jenis virus yang menyembunyikan file-nya dan membuat shortcut ke folder yang akan di eksekusi seolah-olah itu adalah file kepunyaan pengguna. Akan tetapi disitulah jebakan batman-nya. Yaitu kode jahat yang akan dijalankan, begitu kita meng-klik short cut tsb.

Bila kita menganalisa dengan  Windows, maka fenomena keanehan tersebut akan berjalan. Karena virus tersebut memang didesain untuk menyasar Windows.

Akan tetapi bila kita menggunakan Linux, maka jelas sudah bahwa itu adalah kerjaan sebuah virus. Dan sudah beberapa kali aku menemui kasus seperti itu. Dan akhirnya apa yang aku lakukan?

Cukup aku ambil data yang di sembunyikan…

Visual Studio Code Untuk Belajar Python, C, C++ dan C#

Setelah mencari IDE (Integrated Development Environment) apa yang terbaik untuk mendevelop Python, Akhirnya saya mendapatkan pencerahan setelah menemukan Visual Studio Code. Rupanya ada perbedaan antara IDE dengan Editor. Bila Editor adalah semacam text editor saja, seperti notepad++, Emacs, vim, maka IDE adalah editor + compiler.

Oleh karena itu, maka IDE biasanya lebih berat dalam hal performance. Karena memang membundle editor + compilernya. Secara default, Visual Studio Code didesain bagi pengembang aplikasi web, yang meliputi html, css, java script, type script. Jadi untuk mendevelop bahasa pemrograman seperti Python, perlu sedikit cara agar bisa digunakan juga sebagai compiler.


Setting Python
Tekan F1, lalu ketik Task: Configure Taks Runner. Kemudian gantilah "command" : "python.sh", "isShellCommand" : true, "showOutput" : "always", "args" : ["{$file}"]
Itu artinya bila kita menjalankan task runner (run build Task…