IDE, Compiler and Intrepreter for Programmer

2024-03-08

Learning objectives

Topik: IDE, kompiler dan perkakas untuk programmer

  1. Mampu mengetahui tipe IDE dan perkakas yang digunakan oleh programmer.
  2. Mampu menggunakan IDE dan perangkat lunak pendukung.

Benefits of learning

  1. Pengguna bisa memasang dan menggunakan IDE beserta plugin yang dibutuhkan.
  2. Pengguna bisa membuat program dan mengkompilasi program.

Integrated Development Environment (IDE)

What is IDE?

IDE (Integrated Development Editor) adalah perangkat lunak text editor yang memudahkan pengguna untuk melakukan pekerjaan programming. IDE meningkatkan produktifitas pengguna dengan memiliki fitur antara lain:

  • Penyunting kode sumber (source code editor).
  • Pembangunan lokal otomatis (local build automation).
  • Program pengujian kode original (debugger program).
  • Kode komplit otomatis (code autocomplete).
  • Penyorotan sintaks (syntax highlighting).
  • Penyelesaian kode cerdas (intelligent code completion).
  • Dukungan pemfaktoran ulang (refactoring support).
  • Dukungan ekstensi dan plugin (plugins and extensions support).
  • Jumlah bahasa yang didukung (supported languages).

Manfaat IDE

Ada banyak manfaat menggunakan IDE, tetapi yang menonjol yaitu tentang efisiensi dan waktu pengguna.

  • Minimal konfigurasi. Mengurangi pengaturan secara manual dan mengintegrasikannya setiap bagian dalam perkakas (tools) tertentu. Kebanyakan IDE sudah terkonfigurasi (pre-configured) sehingga pengguna bisa langsung menggunakannya.
  • Hemat waktu. Mengurangi waktu yang dibutuhkan untuk mempelajari banyak jenis perkakas yang berbeda. Dikarenakan banyak fitur yang tersedia, pengguna bisa langsung memilih fitur apa yang dibutuhkan.

Jenis-jenis IDE

IDE spesifik bahasa pemrograman

Dengan adanya IDE yang lebih spesifik dengan bahasa pemrograman tertentu, pengguna tidak terlalu mengatur kebutuhan untuk pengolahan data, misalnya memasang addons, konfigurasi versioning control, mengatur layout editor yang sesuai dengan alur kerja, plotting visualisasi dan sebagainya. Pengguna hanya memasang beberapa tambahan pustaka yang diperlukan.

RStudio Desktop

RStudio Desktop dari Posit adalah IDE yang kompatibel dengan bahasa R. Fitur RStudio sudah termasuk console, syntax highlight, alat untuk plotting, debugging dan manajemen area kerja (workspace). RStudio tersedia versi open source edisi komunitas dan edisi komersil yang keduanya dapat berjalan di sistem operasi GNU/Linux, macOS, dan Windows.

Spyder IDE

Spyder adalah IDE open source untuk kebutuhan ilmiah dengan bahasa python serta ditulis juga dengan bahasa python native. Spyder ditujukan untuk ilmuan (scientists), engineer dan data analisis. Sypder memiliki fitur builtin yang luar biasa seperti pengefitan lanjutan, analisis, debugging, pembuatan profil dari alat pengembangan komprehensif dengan eksplorasi data dan kemampuan visualisasi dari paket pypi.

JupyterLab

JupyterLab merupakan projek free software, standar terbuka, dan web servis untuk interaktif semua bahasa pemrograman komputasi. JupyterLab juga merupakan generasi baru untuk mengantikan jupyter notebook (antarmuka klasik) yang dapat dijalankan melalui web browser. JupyterLab memiliki fitur lebih seperti notebook, terminal, teks editor, file browser, output, dan lain-lain. Fiturnya sangat mampu untuk memenuhi alur kerja untuk bidang data sains, komputasi ilmiah, jurnalis komputasi dan machine learning.

IDE untuk tujuan umum

IDE yang digunakan dapat digunakan untuk membuat perangkat lunak dengan berbagai macam bahasa pemrograman.

Code-OSS

Code-OSS merupakan IDE yang berupa kode sumber (source code) dari repo github microsoft/vscode yang berada dibawah standar lisensi MIT. Repositori tersebut dibangun oleh Microsoft dan komunitas secara bersama-sama. Tidak ada binary yang didapatkan didalam repositori tersebut, karena hanya menyediakan kode sumber saja. Pengguna perlu mengkompilasinya agar dapat digunakan di sistem operasi yang digunakan. Beberapa GNU/Linux sudah menyediakan binary sehingga dapat menjalankan program code langsung seperti Alpine Linux, Arch, Manjaro, dan Void Linux.

VSCode

VSCode (Visual Studio Code) merupakan IDE dari repo github microsoft/vscode. Perbedaannya dengan Code-OSS yaitu, VSCode dilapisi elemen Microsoft langsung seperti logo, branding, telemetry yang sudah aktif, dan fitur integrasi dengan github. VSCode juga menyediakan binary yang sudah siap untuk dipasang ke sistem operasi tanpa harus dikompilasi terlebih dahulu. Dengan adanya tambahan komponen nonfree dari Microsoft tentu VSCode tidak berlisensikan sebagai perangkat lunak terbuka lagi.

VSCodium

VSCodium merupakan Code-OSS yang dikompilasi menjadi binary. Berbeda dengan VSCode, VSCodium menghilangkan komponen Microsoft dan menonaktifkan telemetry/pelacak dari Microsoft. Binary VSCodium tersedia dalam berbagi platform GNU/Linux, MacOS, Windows dan lain-lain. Menjalankan VSCodium di terminal bisa menggunakan perintah codium. Penulis menyarankan untuk menggunakan VSCodium daripada menggunakan VSCode.

Compiler

Pengertian

Compiler adalah software komputer yang mengubah kode sumber (source code) program dalam bahasa pemrograman menjadi kode objek atau bahasa mesin yang dimengerti komputer untuk kemudian dieksekusi.

flowchart LR
  A{Bahasa Pemrograman} --> B{Compiler}
  B --> C{Bahasa Mesin}

Bahasa pemrograman dengan Compiler

Terlepas dari pengertiannya yang luas, istilah compiler biasa digunakan untuk program komputer yang menerjemahkan program yang ditulis dalam bahasa pemrograman tingkat tinggi (semacam bahasa Pascal, C++, BASIC, FORTRAN, Visual Basic, Visual C#, Java, xBase, atau COBOL) menjadi bahasa mesin, biasanya dengan bahasa Assembly sebagai perantara.

Fungsi Compiler

  1. Memeriksa kesalahan sintaks atau logika pada kode sumber program untuk mengurangi risiko program error.
  2. Mengubah source code program menjadi bentuk machine code yang lebih efisien untuk dieksekusi komputer.
  3. Menyediakan fitur debugging guna membantu programmer menemukan bug dan memperbaiki kesalahan pada program komputer.
  4. Mendukung pengembangan software lintas platform, di mana compiler menerjemahkan program menjadi machine code yang berbeda agar bisa dijalankan di platform lainnya.
  5. Mempercepat proses compiling menggunakan teknik kompilasi incremental, yaitu hanya menerjemahkan bagian kode yang diubah saja.
  6. Meningkatkan performa program komputer dengan cara mengoptimasi hasil instruksi mesin.
  7. Memastikan keamanan program dengan memvalidasi kode agar tidak menimbulkan celah kerentanan.

Intrepreter

Pengertian

Dalam ilmu komputer, penerjemah atau lebih dikenal dengan interpreter merupakan perangkat lunak yang berfungsi melakukan eksekusi sejumlah instruksi yang ditulis dalam suatu bahasa pemrograman tanpa terlebih dahulu menyusunnya menjadi program bahasa mesin.

flowchart LR
  A{Bahasa Pemrograman} --> B{Bahasa Mesin}

Bahasa pemrograman dengan Intrepreter

Perl, Python, Ruby, dan MATLAB adalah beberapa contoh perangkat lunak penerjemah bertipe 2, sementara Java termasuk dalam kategori tipe 3, namun dalam beberapa kasus Java dapat digolongkan pula ke dalam kategori tipe 2.

Cara Kerja Intrepreter

Interpreter umumnya menggunakan salah satu strategi berikut untuk menjalankan program:

  1. Mengeksekusi kode sumber secara langsung, atau
  2. Menerjemahkannya ke dalam serangkaian p-code kemudian mengeksekusinya, atau
  3. Mengeksekusi kode yang telah dikompilasi sebelumnya oleh compiler yang merupakan bagian dari sistem penerjemahan.

Proses ini sangat berbeda dengan compiler, dimana pada compiler, hasilnya sudah langsung berupa satu kesatuan perintah dalam bentuk bahasa mesin, dimana proses penterjemahan dilaksanakan sebelum program tersebut dieksekusi.

Perbedaan

Compiler Interpreter
Memindai seluruh program dan menerjemahkannya secara keseluruhan ke dalam kode mesin. Menerjemahkan satu pernyataan satu per satu.
Dibutuhkan banyak waktu untuk menganalisis kode sumber namun keseluruhan waktu eksekusi relatif lebih cepat. Dibutuhkan sedikit waktu untuk menganalisis kode sumber namun keseluruhan waktu eksekusi lebih lambat.

Perbedaan

Compiler Interpreter
Menghasilkan kode objek menengah yang membutuhkan tautan lebih lanjut, sehingga membutuhkan lebih banyak memori. Tidak ada kode objek antara yang dihasilkan, maka memori menjadi efisien.
Ini menghasilkan pesan kesalahan hanya setelah memindai seluruh program. Terus menerjemahkan program sampai kesalahan pertama terpenuhi, dalam hal ini berhenti. Oleh karena itu debugging mudah dilakukan.
Bahasa pemrograman seperti C, C++ menggunakan kompiler. Bahasa pemrograman seperti Python, Ruby menggunakan interpreter.

Any Question?

Simple Homework

  1. Ada banyak IDE yang khusus untuk pemrograman bahasa dengan kompiler seperti Geany, Codeblock, Kdevelop, Netbeans dan Android Studio. Jelaskan pengertian yang dimaksud dari 5 IDE tersebut.
  2. Terdapat kompiler untuk bahasa C/C++ yaitu GCC, Clang dan MinGW. Jelaskan pengertian tiga kompiler tersebut beserta kelebihan dan kekurangannya.

What the Next?

Back to home