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

openSUSE Leap

Mengapa openSUSE Leap menarik bagi sebagian pengguna Linux? Hal itu wajar mengingat openSUSE Leap merupakan distro gabungan (hybrid) antara SUSE yang dikenal dengan keamanan sekelas enterprise dan aplikasi yang terkini dari dunia open source. Akan tetapi bila Anda mencobanya, maka akan ditemukan sebuah perilaku yang menurut saya tidak lazim, yaitu sewaktu kita membaca manual dari perintah Linux dengan man. Maka kita dihadapkan pada pilihan opsi, manual mana yang akan ditampilkan. Hal ini berbeda dengan distro lain, yang tidak memiliki perilaku tersebut. Oleh karena itu, saya sebut itu menjadi tidak lazim. Untuk mengatasi ketidak laziman tersebut, kita bisa lakukan dengan cara menambahkan dua buah kode berikut pada file .bashrc MAN_POSIXLY_CORRECT=1 export MAN_POSIXLY_CORRECT Selain itu, kita bisa juga gunakan comman info sebagai pengganti man. Hal ini bisa dilakukan dan langsung muncul manual command yang diminta. Dari sisi keamanan, secara default ia sudah mengaktifkan firewall-nya

Java Tutorial Getting Started

Baru saja menyelesaikan Getting Started, meliputi: Your First Cup of Java The Java Phenomenon The “Hello World” Application The “Hello World” Applet Common Problem (and Their Solution) Yang dipelajari: Java 2SE version 1.4.2 Result: Good job. There is no error found!

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