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

KOMPUTER BRANDED VS KOMPUTER RAKITAN

Berikut adalah pengalaman dan studi komparatif antara komputer branded HP-ku yang dibeli sekitar tahun 2007, dan dua buah komputer rakitan yang menggunakan processor intel dan AMD. Dari dua buah komputer yang dirakit sekitar tahun 2013 yang menggunakan processor intel i3 dengan motherboard gigabyte dan di tahun 2014 yang menggunakan processor AMD A8; dapat dikatakan bahwa dari sisi spesifikasi, tentu komputer brandedku yang dibeli sekitar 10 tahun yang lalu, tentu memiliki spesifikasi yang jauh lebih jadoel. Akan tetapi seiring berjalannya waktu --yaitu di awal tahun 2017 ini -- kedua buah komputer rakitan tsb diatas; satu persatu mengalami kerusakan dan memaksa untuk direpair ke vendor asli yang merakit komputer tsb; dikarenakan aku pun sudah menyerah tidak dapat menyelesaikannya. Yang processor AMD A8, terpaksa diganti motherboard-nya. Demikian juga dengan yang intel i3. Adapun solusi yang diberikan vendor komputer AMD tsb, adalah selain mengganti motherboard yang memang rusak; adala

Fedora 22

It is about another Linux distro. Not a fashion thing. Sebenarnya saya sudah berkenalan dengan Fedora yang pada waktu itu masih memakai nama Fedora Core versi 4. Akan tetapi sayang tidak bisa memutas CD audio koleksi saya. Akhirnya saya move ke Ubuntu, yang bisa memutar CD audio, once the installation is complete. Sewaktu menggunakan Fedora 22, ada impresi keren yang muncul, diantaranya dengan gnome 3.16 dan adanya extention window list sehingga, window yang aktif muncul dibagian bottom bar. Sementara notification pada gnome 3.16 ditata ulang penempatannya dan menjadi satu dengan kalender yang ada di bagian top bar. Mengingat bila tidak ada window list, maka seakan-akan kita kehilangan kontrol atas window yang sedang aktif. Dan window list mempermudah kita dalam berpindah-pindah dari satu window ke window yang lain. Jadi lebih manageable. Satu hal mengapa saya selalu mencoba distro lain selain Slackware adalah karena desktop environment gnome yang di drop di Slackware sejak versi 12. D

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 sembu