Debug: Lingkungan Pengembangan Software (Pengenalan Pemrograman #3)

“Pemrograman merupakan sesuatu hal yang sulit, tapi layak untuk dipelajari.”

            ~Sandhika Galih~

    Pemrograman adalah sesuatu hal yang rumit, karena kita berinteraksi dengan mesin. Sehari-hari, kita sebatas menggunakan aplikasinya saja sebagai user, dan dibalik itu, ada programmer yang berinteraksi dengan intensi yang berbeda. Setelah sebelumnya kita mengetahui mengenai apa itu bahasa pemrograman, saat ini kita akan membahas mengenai lingkungan pengembangan, bagaimana sebuah kumpulan baris dan file kode dapat ditulis oleh programmer, yang kemudian akan dibaca dan dimengerti oleh mesin.

Set Up Perangkat Programmer
Photo by Steven Binotto on Unsplash

Source Code

    Ketika kita membuat sebuah program yang sederhana, kita bisa menuliskannya hanya beberapa baris. Semakin kompleks tujuan dan kebutuhan yang harus dipenuhi program, relatif semakin banyak pula baris kode dan file yang harus dibuat. Kumpulan baris kode dan file disebut sebagai salah satu resource atau dikenal sebagai Source Code. Resource mengacu pada apapun yang ada di dalam program kita, seperti gambar, kode, atau library (yang akan dibahas di postingan lain).

Source code adalah baris atau file kode yang akan dibaca oleh mesin. Agar mesin bisa mengerti, maka source code ini perlu diubah atau diterjemahkan agar mesin bisa mengerti dan proses itu dilakukan oleh compiler dan interpreter

Proses penerjemahan ini dilakukan secara otomatis oleh masing-masing bahasa pemrograman. Penerjemahan ini tergantung bahasa pemrogramannya, ada yang menggunakan compiler atau interpreter atau keduanya.

Compiler

    Penerjemahan oleh compiler dimulai dengan mengkompilasi source code yang telah dibuat oleh compiler dari bahasa pemrograman yang digunakan. Setelah selesai dikompilasi, maka akan dihasilkan sebuah file baru yang dinamakan executable file. File inilah yang akan diterima oleh mesin dan kemudian dijalankan. Artinya, sebuah source akan dikompilasi secara keseluruhan, dan ketika ada error, proses akan dihentikan dan program tidak akan dijalankan.

Interpreter

    Penerjemahan dengan interpreter dilakukan secara langsung. Artinya, ketika source code ingin dijalankan, akan diduplikasi terlebih dahulu, lalu interpreter akan menerjemahkan kode baris per baris, dari kiri ke kanan, atas ke bawah dan akan langsung dijalankan. Ketika ada error, maka program akan berhenti di baris tersebut, namun baris di atasnya tetap dijalankan. Artinya, program tersebut hanya menjalankan kode hingga batas error dan ketika tiba pada baris yang mengandung error, maka pesan akan ditampilkan dan program berhenti dijalankan.

Compiler vs Interpreter

  • Waktu Eksekusi
Perbandingan Waktu Eksekusi
Photo by Ales Krivec on Unsplash

 

Untuk compiler, akan ada waktu tambahan untuk mengkompilasi source code ke dalam bahasa mesin, namun waktu eksekusi program akan lebih cepat, dikarenakan source code sudah diterjemahkan menjadi sebuah file dengan bahasa mesin sehingga bisa langsung dijalankan. Berbeda dengan interpreter, source code yang di duplikat akan diterjemahkan oleh interpreter per baris program sekaligus di eksekusi sehingga waktu eksekusi lebih lambat dibandingkan compiler.

 

Analoginya seperti ini, dua orang dari asal negara Indo dan Inggris, saling bertukar surat. Orang Indo sebagai programmer, menulis surat sebuah surat dalam bahasa Indonesia. Surat akan dikirim ke orang Inggris. Jika menggunakan compiler, surat tersebut akan diterjemahkan terlebih dahulu ke bahasa Inggris, setelah itu, hasil terjemahannya yang akan dikirim, sehingga orang Inggris tersebut tinggal membaca. Berbeda dengan Interpreter, surat tersebut akan di duplikat, lalu dikirim ke orang Inggris, dan orang Inggris ini akan membaca surat itu dan menerjemahkannya per kalimat.

 

  • Pesan Error

Ketika source code dikompilasi, maka keseluruhan source akan dipindai untuk menjadi bahasa mesin. Jika misalkan terjadi error di tengah-tengah baris kode, maka proses kompilasi akan dibatalkan dan executable file juga tidak diselesaikan, sehingga untuk melakukan penyelesaian error, sedikit lebih sulit, meskipun saat ini, compiler pada IDE sudah memberikan letak baris dan kolom kode yang bermasalah. Ketika error diperbaiki, source code tersebut akan dikompilasi ulang dari awal baris.

 

Dengan interpreter, karena diterjemahkan per eksekusi baris, maka ketika terdapat error di tengah-tengah, baris yang sudah di eksekusi tetap dapat terlihat hasilnya secara langsung dan hanya baris error dan setelahnya saja yang tidak dieksekusi sehingga kita bisa secara langsung mendeteksi letak errornya.

 

Analoginya seperti belajar ketika ujian. Compiler, seperti ketika kita akan mengumpulkan lembar jawaban ujian. Kita akan memeriksanya secara keseluruhan, dan ketika ada kesalahan, kita perbaiki dulu baru dikumpulkan. Interpreter, seperti ketika kita sedang dalam bimbingan belajar. Ketika semua nomor soal telah dijawab, pembimbing akan memeriksa dari nomor awal, dan ketika menemukan kesalahan, akan langsung dikembalikan ke kita untuk diperbaiki. Ketika kita mengumpulkannya kembali, pembimbing tidak akan memeriksa lagi dari awal, tetapi dari nomor yang salah.

  • Keamanan

Interpreter, karena source di duplikat, maka akan terdapat dua source code, sehingga baris kode yang kita tulis bisa dilihat oleh orang lain. Contohnya seperti javascript yang dapat dilihat melalui fitur inspect dari browser. Dengan compiler, karena tidak di duplikasi dan hanya executable file saja yang dikirimkan ke mesin, maka source code kita tidak dapat dilihat secara langsung oleh orang lain.

 

Masih banyak lagi perbandingan antara compiler dan interpreter yang jauh lebih teknisnya dapat dilihat di sumber lain seperti terintegrasi dengan platform tertentu atau lintas platform. Namun, ada bahasa pemrograman yang juga menerapkan kedua hal tersebut untuk menerjemahkan source code, yang disebut dengan hybrid.

Software Pengembangan Script

Lingkungan Pengembangan Source Code
Photo by Yancy Min on Unsplash

    Untuk membuat sebuah  source code, maka dibutuhkan tempat atau software yang digunakan untuk menuliskan kode. Software yang paling sederhana yang bisa digunakan adalah notepad atau text editor bawaan sistem operasi masing-masing. Namun pengembangan kode di notepad cuku sulit karena tidak menampilkan baris dan sebenarnya notepad di buat bukan untuk pengembangan program. 

    Code Editor, merupakan software yang didesain untuk pengembangan program. Bahkan, code editor dilengkapi fitur-fitur khusus untuk mendukung percepatan proses pembuatan software dan bahkan dilengkapi penganalisis error. Code editor yang bisa kita coba seperti Sublime Text, Visual Studio Code, Atom, dan masih banyak lagi.

    IDE (Integrated Development Environment) adalah software yang jauh lebih spesifik untuk pengembangan program. IDE umumnya dikhususkan untuk bahasa tertentu, seperti Netbeans, Eclipse untuk Java dan Dev-C++ untuk bahasa C++, meskipun ada beberapa IDE yang juga support beberapa bahasa lainnya. IDE ini memiliki fitur yang lebih lengkap daripada code editor seperti compiler, untuk mengkompilasi bahasa tersebut, linker, untuk menghubungkan file-file hasil kompilasi (file binary bit/executable file) dan debugger untuk mendeteksi kesalahan-kesalahan baris pada file projek kita, meskipun saat ini sebenarnya fungsi debugger juga sudah dimiliki oleh code editor beserta ekstensi yang mendukung.

Prerequisite

Prerequisite Pemrograman
Photo by UX Indonesia on Unsplash
     
    Hal-hal di atas adalah sesuatu yang diperlukan oleh programmer dalam membangun software atau program. Namun, ada beberapa kebutuhan lainnya sebelum ingin mengembangkan software tergantung kebutuhan dan tujuannya. Sebagai contoh,  ketika kita ingin membuat aplikasi web, maka dibutuhkan Web Browser. Ketika berhubungan dengan request dan menyimpan data, dibutuhkan tambahan Web Server seperti Apache dan NginX. Hal lainnya yang diperlukan adalah terminal, seperti cmd pada windows atau git bash yang bisa kita instal secara mandiri dan open source. Kemudian, kita juga perlu sistem operasi sebagai tempat kita mengembangkan sebuah aplikasi.

    Kurang lebih itu adalah hal-hal yang diperlukan untuk kita dalam membangun sebuah perangkat lunak/software. Dengan kita memahami hal-hal tersebut, kita dapat lebih mengoptimasi lagi program yang kita buat baik dari segi waktu perancangan maupun dari segi performa. Itu saja postingan kali ini, sampai bertemu di postingan seri berikutnya!


Komentar

Posting Komentar

Postingan populer dari blog ini

MyMind: Penyebab Biasnya Informasi

MyMind: Bahagiakah Kita?