Tek Analogi #4 — Program Komputer
“The function of good software is to make the complex appear to be simple” — Grady Booch (developed Unified Modeling Language)
Halo pembaca 👋 Selamat datang di seri Teknologi Analogi jilid empat. Teknologi Analogi merupakan seri publikasi yang membahas teknologi dengan menggunakan analogi. Kamu bisa baca seri-seri sebelumnya di:
Era digital dewasa ini sudah dipenuhi oleh berbagai macam teknologi. Jutaan situs web, ragam permainan dan aplikasi di gawai, bahkan mobil yang bisa menyetir sendiri (self-driving car). Dari semua teknologi tersebut ada satu hal yang menyatukan mereka semua, sebuah kesamaan. Ya! Mereka semua pada dasarnya adalah sebuah program.
Namun apa yang dimaksud dengan program? Bukan… bukan seperti program keluarga berencana pemerintah atau program diet OCD nya bang Deddy.
Program yang dimaksud disini adalah program komputer. Menurut Wikipedia, program komputer adalah sebuah koleksi instruksi yang dapat dijalankan oleh komputer untuk melakukan sebuah tugas yang spesifik.
Nah jadi pada tulisan kali ini, saya akan coba membahas apa itu program komputer menggunakan analogi. Seperti biasa analogi yang saya pakai adalah pendapat dan perspektif saya sendiri. So without further ado, let’s get started!
0. Sebuah Mesin
Sejujurnya, sudah lama saya ingin membuat tulisan mengenai apa itu sebuah program komputer dengan menggunakan analogi. Namun hari demi hari, ide itu kian tidak datang juga. Suatu hari ketika saya sedang bersantai menonton video-video di Youtube, pencerahan 🌅 itu datang dari sebuah video yang saya tonton; yaitu Rube Goldberd Machine (RGM). Bagi yang masa kecilnya dulu suka nonton Tom & Jerry pasti pernah lihat rangkaian ini. Itu loh… sebuah rangkaian rumit semacam jebakan yang dibuat oleh Tom untuk menangkap si Jerry.
Menurut saya sebuah program komputer sangat mirip sekali dengan RGM ini. Nah, mari kita lihat poin-poin penting yang menempel pada sebuah program komputer dengan menggunakan RGM sebagai analogi.
1. Sebuah Rangkaian
Seperti yang sudah kamu lihat, RGM adalah sebuah rangkaian yang rumit. Satu benda haruslah terhubung dengan benda lainnya guna menciptakan efek rantai (chain effect) sehingga rangkaian tersebut berhasil melakukan suatu tugas. Benda A akan menghantam dan menjatuhkan benda B, lalu akan ditangkap oleh benda C, dan seterusnya. Nah, susunan yang berkesinambungan inilah yang saya rasa mirip ketika kamu sedang membuat sebuah program komputer.
Program komputer pada dasarnya adalah sebuah instruksi berurut atau dengan kata lain rangkaian instruksi yang kita tulis dengan menggunakan sebuah bahasa pemrograman. Intinya sama saja seperti “menerjemahkan” sebuah diagram alur.
Sama seperti Tom yang menghubungkan satu benda dengan benda lainnya satu per satu, kita juga menulis instruksi kita satu per satu. Kita menentukan instruksi mana yang pertama kali harus dilakukan, sampai dengan instruksi terakhir. Barisan instruksi ini pun berkaitan satu sama lainnya dan memiliki suatu tugas yang spesifik yang mau dicapai. Misalnya seperti program untuk menghitung perkalian matriks, program yang menampilkan suatu teks tertentu, atau program aplikasi yang menampilkan daftar foto-foto teman kamu.
2. Sebuah Pelatuk
Supaya sebuah RGM bisa berjalan, dibutuhkan sebuah trigger atau bahasa Indonesianya yaitu pelatuk. Entah itu mendorong sebuah bola, menggunting sebuah tali, atau merusak susunan domino. Setelah pelatuk tersebut dijalankan, maka RGM akan berjalan dan bekerja seperti layaknya sebuah rangkaian RGM dimana benda-benda akan mulai berinteraksi satu sama lain.
Nah, sama halnya dengan program komputer. Ketika seorang programmer sudah susah payah menulis kode instruksi baris demi baris, maka program tersebut barulah dapat dijalankan. “Pelatuk” paling dasar untuk program sederhana adalah sebuah command atau perintah untuk menandakan bahwa kita mau menjalankan sebuah program. Biasanya perintah ini kita jalankan di sebuah aplikasi yang bernama command prompt (konsol perintah) atau terminal.
bash
→ perintah untuk menjalankan program bertipe bashprogram.sh
→ sebuah file program komputer yang berisi baris perintah dalam bentuk kode- output berupa teks yang dimunculkan di layar yaitu
Hello World!
Terdapat juga pelatuk lain untuk menjalankan program komputer. Pada gawai misalnya, ketika kamu membuka sebuah aplikasi, pada dasarnya kamu sedang menjalankan program komputer yaitu aplikasi tersebut. Ketika kamu mau nonton video, dan memasukan url di browser, kamu telah memicu sebuah “pelatuk” di sebuah server lalu muncul lah program komputer berupa web.
Selayaknya RGM yang harus dipicu oleh sesuatu dulu untuk dijalankan, program komputer pun sama demikian. Namun dalam hal ini, program komputer memiliki banyak sekali macam pemicu untuk bisa dijalankan, tergantung dari program komputer apa yang mau dijalankan.
3. Sebuah Kesalahan
Ketika sebuah RGM sedang dijalankan, ada kalanya RGM itu gagal menjalankan efek rantainya sampai ke benda terakhir. Bisa jadi karena kesalahan susunan atau faktor dari lingkungan. Atau bisa jadi tidak berhasil menjalankan tugas yang diberikan seperti yang terjadi dengan RGM si Tom diatas.
Selayaknya RGM, program komputer pun bisa mengalami kegagalan saat dijalankan. Bahasa komputeristiknya → error. Saat sebuah program komputer berjalan, ada kemungkinan program tersebut tidak menjalankan semua instruksi yang ada karena terdapat kesalahan yang dilakukan oleh si programmer. Bisa jadi program tersebut berhenti dan tidak pernah sampai ke instruksi terakhir. Error yang terjadi ketika program sedang berjalan ini disebut sebagai Runtime Error — dan satu-satunya cara untuk mendeteksi error ini ya dengan menjalankan program tersebut. Saat kita menyusun RGM, kita juga tidak tahu apakah rangkaiannya berhasil atau tidak sebelum menjalakannya bukan?
RGM pun bisa gagal dalam menjalankan tugasnya karena faktor dari luar; seperti angin, ketendang orang lain, atau tiba-tiba ada Jumanji.
Program komputer juga demikian, jadi error yang terjadi bukan kesalahan si programmer. Bisa jadi karena internet terputus (kebetulan program yang kamu jalankan membutuhkan internet) atau masalah server misalnya untuk program web.
Saya merasa bahwa program komputer sangatlah mirip dengan Rube Goldberg Machine (RGM). Sebagai seorang software engineer, ketika sedang membuat sebuah program, saya merasa saya sedang menyusun RGM sama seperti Tom. Menyusun kode instruksi satu per satu sama seperti Tom yang menyusun benda demi benda. Dan sama juga frustrasinya ketika melihat program buatan kita mengalami error. Bedanya hanya saya tidak ketiban brankas besi 🗃
Semoga tulisan kali ini bermanfaat. Saya juga berharap dengan adanya tulisan ini, kamu dapat memiliki gambaran apa sih sebenarnya program komputer itu 😁
Jika teman-teman pembaca punya usulan topik apa berikutnya yang mau dibahas di Teknologi Analogi, silahkan tulis di kolom tanggapan ya.
Terima kasih sudah membaca 😃
See you in a bit — Ferzos