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

Sepeda Polygon Neptune

Tak terasa, sudah hampir 1 tahun ini usia sepedaku.. Aku memilihnya via Internet waktu itu.. Setelah browsing di internet, akhirnya kutemukan sepeda Polygon jenis Neptune.. Eh, ternyata pas beli tidak ada spakbor-nya. Spakbor itu pelindung cipratan (bahasa Indonesia-nya apa ya?) air akibat perputaran roda. Jadi kalo pas lewat di tempat basah, cipratan air itu akan mengenai baju kita.. Jadinya kutambahkan sekalian pas beli, harga sekitar 50 ribu. Lalu terpikir untuk membeli wadah tempat minum, biar kalo pas bersepeda tidak kehausan.. Akhirnya kubeli juga dengan wadah minumnya dengan merk Zefal.. Tak lupa kubeli pengaman, yaitu rantai pengaman.. Akhirnya cukup sudah untuk bersepeda... olah raga yang menyenangkan... Karena kita bisa bebas mengeksplore daerah-daerah baru yang belum pernah kita singgahi.. Kalo pengen tahu sepedaku kayak apa, lihat disini.. Adieu .. !

Tentang Release #

Baru saja browser favoritku Firefox melaunching release terakhir yaitu release 10. Alias Firefox 10 just has been released. Tak terasa release # dari software yang biasa kita pakai mulai memasuki era double digit. Yang sebelum-nya hanya single digit.  Sempat terpikir olehku, apa jadinya 1 dekade ke depan, berkenaan dengan sistem penomoran release # ini? Apakah 1 dekade ke depan, Firefox akan mencapai release # 308 misalnya. Jadi kalau ditanya, kamu pake Firefox versi berapa? aku pake versi 308, ( "weh kok akeh banget yo?" ). Seperti LibreOffice yang baru mencapai versi 3.4.5 di medio Februari 2012 ini. Apa nantinya ya mengalami nasib seperti itu ? Hee.. aneh-aneh saja ya? Kalau kita melihat model pemberian release # untuk sebuah paket software seperti Apple, untuk Mac OS X berupa nama hewan dari keluarga macan, seperti Tiger, Leopard, Snow Leopard, dll. Mirip juga dengan Ubuntu yang menggunakan nama-nama unik, seperti Oneiric, Maverick, dll. Mungkin itu untuk mensi...

Auto-Fill-Mode di Emacs

  Berikut adalah cara agar auto-fill-mode bisa aktif secara global di emacs. Yaitu tambahkan dua kode berikut pada file ~/.emacs (add-hook 'change-log-mode-hook 'turn-on-auto-fill) (setq-default auto-fill-function 'do-auto-fill) Demikian.