GOTCHA

DAPATKAN YANG KAMU CARI DISINI

Interpreter, Compiler, Programmer Paradigm

Kita sebagai programmer pemula umumnya masing asing dengan kata ‘Interpreter’ dan ‘Compiler’. Keduanya adalah alat penerjamah dari bahasa programmer/code program ke bahasa  yang hanya dipahami oleh mesin ‘10011011101’. Apa itu interpreter dan compiler?

  • Interpreter

Interpreter adalah perangkat lunak yang berfungsi sebagai penterjemah kode program yang dibuat oleh programmer ke dalam bahasa mesin. Interpreter mengeksesusi perintah baris demi baris dengan mengikuti logika yang ada. 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. Contoh bahasa pemrograman : PHP, ASP, Perl, Python.

  • Compiler

Compiler adalah perangkat lunak yang juga berfungsi sebagai penterjemah kode program ke dalam bahasa mesin agar bisa dijalankan oleh mesin. Perbedaannya dengan interpreter adalah compiler mengeksekusi seluruh instruksi dalam program sekaligus. Pada beberapa compiler, output berupa bahasa mesin dilaksanakan dengan proses assembler yang berbeda. Contoh bahasa pemrograman : Visual Basic, Fortran, Cobol, Pascal, C, dll.

Tahap Kompilasi:

  1. Pertama source code (program yang ditulis) dibaca kememori computer).
  2. Source code tersebut diubah menjadi objek code (bahasa Assembly).
  3. Objek code di hubungkan dengan liberary yang dibutuhkan untuk membentuk file yang bisa dieksekusi.

Perbedaan antara Compiler dengan Interpreter :

  1.  Jika hendak menjalankan program hasil kompilasi dapat dilakukan tanpa butuh kode sumber. Kalau interpreter butuh kode sumber.
  2. Jika dengan compiler, maka pembuatan kode yang bisa dijalankan mesin dilakukan dalam 2 tahap terpisah, yaitu parsing ( pembuatan kode objek ) dan linking ( penggabungan kode objek dengan library ) . Kalau interpreter tidak ada proses terpisah.
  3. Compiler membutuhkan linker untuk menggabungkan kode objek dengan berbagai macam library demi menghasilkan suatu kode yang bisa dijalankan oleh mesin. Kalau interpreter tidak butuh linker untuk menggabungkan kode objek dengan berbagai macam library.
  4. Interpreter cocok untuk membuat / menguji coba modul ( sub-routine / program-program kecil ). Maka compiler agak repot karena untuk mengubah suatu modul / kode objek kecil, maka harus dilakukan proses linking / penggabungan kembali semua objek dengan library yang diperlukan.
  5. Pada compiler bisa dilakukan optimisasi / peningkatan kualitas kode yang bisa dijalankan. Ada yang dioptimasi supaya lebih cepat, ada yang supaya lebih kecil, ada yang dioptimasi untuk sistem dengan banyak processor. Kalau interpreter susah atau bahkan tidak bisa dioptimasikan
  6. Interpreter menterjemahkan baris per baris. Sedangkan compiler, menterjemahkan seluruh instruksi sekaligus. Selanjutnya hasil terjemahan (setelah melalui tahapan lain) bisa dijalankan secara langsung, tanpa tergantung lagi oleh program sumber atau compilernya.
  7. Pada interpreter, penyusunan program relatif lebih cepat dan bisa langsung diuji sekalipun masih ada beberapa kesalahan secara kaidah dalam program. Sedangkan pada compiler, proses pembuatan dan pengujian membutuhkan waktu relatif lebih lama, sebab ada waktu untuk mengkompilasi (menerjemahkan) dan ada pula waktu untuk melakukan proses linking. Program akan berhasil dikompilasi hanya jika program tak mengandung kesalahan secara kaidah sama sekali.
  8. Pada interpreter, kecepatannya menjadi lambat sebab sebelum suatu instruksi dijalankan selalu harus diterjemahkan terlebih dahulu. Selain itu, saat program dieksekusi, interpreter juga harus selalu berada dalam memori. Jadi memori selalu digunakan baik untuk program maupun interpreter. Sedangkan pada compiler, proses eksekusi dapat berjalan dengan cepat, sebab tak ada lagi proses penerjemahan.
  9. Pada interpreter, kode program tidak dapat dirahasiakan. Sedangkan pada compiler, kode program bisa dirahasiakan, sebab yang dieksekusi adalah program yang dalam bentuk kode mesin.
  • Programmer Paradigm

Paradigma adalah sudut pandang tertentu yang digunakan terhadap suatu problem, realitas, keadaan dan sebagainya. Paradigma membatasi dan mengkondisikan jalan berpikir seseorang, mengarahkannya terhadap beberapa atribut dan mengabaikan atribut lain, sehingga paradigma hanya memberikan pandangan yang terbatas terhadap sebuah realitas.

Dalam pemrograman dikenal beberapa paradigma, yaitu:

1. Paradigma Pemrograman Prosedural (Imperatif)

Paradigma ini didasari oleh konsep mesin Von Newman (stored program concept) sekelompok tempat penyimpanan (memori), yang dibedakan menjadi memori instruksi dan memori data, masing-masing memori tersebut dapat diberi nama dan nilai, selanjutnya instruksi akan dieksekusi satu persatu secara sekuensial oleh sebuah proses tunggal.

Program dalam paradigma ini berdasarkan pada struktur informasi di dalam memori dan manipulasi dari informasi yang disimpan tersebut. Kata kunci yang sering digunakan dalam paradigma ini adalah:

      Algoritma + Struktur Data = Program

Kelebihan dari paradigma ini adalah efisiensi eksekusi karena lebih dekat dengan konsep mesin, kekurangannya adalah batasan yang sangat mengikat sehingga terkadang menyulitkan programmer yang tidak terbiasa.

Contoh bahasa pemrogaman yang menggunakan paradigma prosedural atau imperatif adalah: Algol, Pascal, Fortran, Basic, Cobol, C, dsb…

2. Paradigma Pemrograman Fungsional

Paradigma ini didasari oleh konsep pemetaan dan fungsi pada matematika, fungsi dapat berupa fungsi ”primitif”, atau komposisi dari fungsi-fungsi lain yang telah terdefinisi. Dalam paradigma ini, diasumsikan bahwa akan selalu ada fungsi-fungsi dasar yang dapat digunakan, sehingga penyelesaian masalah berdasarkan pada fungsi-fungsi yang telah tersedia tersebut. Jadi dasar pemecahan masalah adalah transformasional, semua kelakuan program adalah suatu rantai transformasi dari sebuah keadaan awal menuju ke suatu rantai keadaan akhir, yang mungkin melalui keadaan antara, melalui aplikasi fungsi.

Paradigma fungsional tidak mempermasalahkan memorisasi dan struktur data, tidak ada pemilahan antara data dan program, tidak ada lagi pengertian tentang ”variabel”. Programmer tidak perlu tahu bagaimana mesin mengeksekusi atau bagaimana informasi disimpan dalam memori, setiap fungsi seperti ”kotak hitam”, yang perlu diperhatikan hanya keadaan awal dan akhir, sebuah program besar dihasilkan dengan menggabungkan fungsi-fungsi yang telah tersedia. Program yang dihasilkan dengan bahasa pemrograman yang menggunakan paradigma ini biasanya membutuhkan waktu pemrosesan yang lebih lama dibandingkan dengan yang menggunakan paradigma prosedural karena dibutuhkan waktu lebih untuk memproses fungsi-fungsi yang digunakan dalam membuat program.

Contoh bahasa pemrograman yang menggunakan paradigma fungsional adalah LOGO, APL dan LISP.

3. Paradigma Pemrograman Deklaratif, Predikatif atau Lojik

Paradigma ini didasari atas pendefinisian relasi antar individu yang dinyatakan sebagai predikat. Sebuah program lojik adalah kumpulan aksioma (Fakta dan aturan deduksi.

Dalam paradigma ini, programmer menguraikan sekumpulan fakta dan aturan-aturan (inference rules). Ketika program dieksekusi, pemakai akan mengajukan pertanyaan, selanjutnya program akan menggunakan aturan deduksi dan mencocokkan pertanyaan dengan fakta-fakta yang ada untuk menjawab pertanyaan.

Contoh bahasa pemrograman yang menggunakan paradigma ini adalah: Prolog.

4. Paradigma Berorientasi Object (Object Oriented)

Paradigma Pemrograman Berorientasi Objek (OOP) menggunakan konsep class dan object, object adalah instansiasi dari class, setiap object akan mempunyai attribute dan method, masing-masing object dapat berinteraksi dengan object lainnya meskipun berasal dari class yang berbeda.

mempunyai hirarki artinya sebuah class dapat diturunkan menjadi sebuah class baru yang juga memiliki attribut dan method class diatasnya. Dengan begitu dalam paradigma ini dikenal konsep modularitas, penggunaan kembali (reuse) serta kemudahan modifikasi.

Contoh bahasa pemrograman yang menggunakan paradigma ini adalah: Smalltalk, Eifel, Delphi, Java.

5. Paradigma Konkuren

Paradigma ini didasari oleah kenyataan bahwa dalam keadaan nyata, sebuah sistem komputer harus menangani beberapa program (task) yang harus dieksekusi secara bersamaan dalam sebuah lingkungan baik mono ataupun multi processor. Dalam paradigma ini programmer tidak lagi berpikir sekuensial, melainkan harus menangani komunikasi dan sikronisasi antar task.

Masing-masing paradigma tersebut mempunyai strategi analisa yang khusus untuk memecahkan persoalan. Setiap paradigma mempunyai kekurangan dan kelebihan sehingga tidak semua persoalan dapat dipecahkan dengan satu jenis paradigma, sehingga diperlukan analisis secara menyeluruh terhadap persoalan yang akan diselesaikan sebelum menentukan paradigma pemrograman seperti apa yang akan digunakan untuk menyelesaikan persoalan tersebut.

Sumber :
http://yanniyanoll.wordpress.com/2012/10/01/perbedaan-interpreter-dan-compiler/
http://rob13y.wordpress.com/2010/03/26/perbedaan-compiler-dengan-interpreter/
http://ndoware.com/paradigma-pemrograman.html

Leave a Reply

Your email address will not be published. Required fields are marked *