1.1 Paradigma Pemrograman
Paradigma pemrograman adalah bagaimana cara pandang kita terhadap penyelesaian masalah pemrograman (atau sudut “serang” kita dalam menyelesaikan suatu masalah pemrograman). Ada banyak cara untuk menyelesaikan suatu masalah, sehingga ada banyak paradigma yang ada.
Beberapa contoh paradigma pemrograman yang ada saat ini adalah: prosedural, fungsional, deklaratif, dan objek. Secara singkat dapat dikatakan bahwa:
• paradigma prosedural memandang penyelesaian masalah sebagai hasil dari serangkaian langkah yang menyelesaikan sub masalah
• paradigma fungsional memandang penyelesaian masalah sebagai komposisi dan aplikasi fungsi yang memetakan masalah ke jawaban
• paradigma deklaratif memandang penyelesaian masalah sebagai hasil inferensi terhadap fakta dan aturan yang diberikan
• paradigma objek memandang penyelesaian masalah sebagai hasil interaksi dari kelas yang membentuk objek (objek dalam konsep ini merupakan representasi objek di dunia nyata)
Artikel ini tidak akan membahas secara detail masing-masing paradigma, paradigma yang telah disebutkan sekilas di atas hanya untuk memberikan gambaran bahwa solusi untuk suatu masalah tidak harus dilakukan secara prosedural. Beberapa paradigma juga boleh digabung atau dipakai bersama untuk menyelesaikan masalah.
Paradigma prosedural merupakan paradigma yang biasanya diajarkan pertama karena sangat dekat dengan mekanisme eksekusi mesin (secara hardware, komputer bekerja secara sekuensial atau berurutan). Dalam paradigma prosedural masalah diselesaikan dengan menggunakan langkah-langkah yang berurutan yang disebut sebagai suatu algoritma
1.2 Mekanisme Eksekusi Program
Komputer merupakan benda yang “bodoh” yang hanya bisa menjalankan instruksi dalam bahasa mesin, bukan bahasa manusia. Komputer yang pertama diprogram langsung dengan menuliskan bahasa mesin ke dalam komputer, seiring berlalunya waktu, hal itu dirasakan tidak efisien sehingga diciptakanlah bahasa assembly, berupa kata-kata singkat yang lebih mudah diingat dibanding dengan kode yang harus dimasukkan langsung. Bahasa assembly sebenarnya tidak jauh dari bahasa mesin namun sudah cukup untuk membantu pemrogram menulis program dengan lebih mudah. Bahasa assembly ini disebut sebagai bahasa tingkat rendah.
Pada tahun enampuluhan, para ahli mulai banyak membuat bahasa yang lebih mudah dimengerti oleh manusia, bahasa tersebut disebut sebagai bahasa tingkat tinggi. Ada banyak bahasa yang diciptakan, bahkan sangat banyak, namun sedikit yang bertahan hingga saat ini. Tapi semua bahasa tersebut memiliki kesamaan yaitu bahwa mereka tidak bisa langsung dimengerti oleh komputer sehingga perlu diterjemahkan ke dalam bahasa mesin.
Penerjemahan dapat dilakukan dengan menggunakan program (yang pada awalnya dulu ditulis dengan bahasa assembly) yang bisa berupa sebuah interpreter atau sebuah kompilator (atau gabungan dari keduanya). Program penerjemah tersebut akan memeriksa sintaks (format penulisan) apakah benar atau tidak, lalu menerjemahkan program tersebut ke dalam bahasa mesin.
1.2.1 Interpreter
Interpreter adalah suatu program komputer yang mampu menerjemahkan program dari bahasa tingkat tinggi yang dimengerti oleh manusia dan langsung menjalankan program tersebut. Kerja interpreter seperti penerjemah untuk turis yang langsung menerjemahkan kalimat demi kalimat yang dikatakan oleh sang turis.
Setiap kali kita membutuhkan program tersebut, maka interpreter akan bekerja menerjemahkan program dari bahasa tingkat tinggi ke bahasa mesin untuk dieksekusi. Jadi siklus kerja ketika kita membuat program dengan interpreter adalah: tulis/edit program, eksekusi.
1.2.2 Kompilator
Kompilator adalah suatu program komputer yang membaca seluruh program dari bahasa tingkat tinggi yang dimengerti oleh manusia dan kemudian menerjemahkan keseluruhan program tersebut dalam bahasa mesin. Program yang sudah diterjemahkan tersebut akhirnya akan dijalankan oleh komputer. Kerja kompilator seperti penerjemah buku yang akan menerjemahkan seluruh buku sekaligus, sehingga setiap orang bisa mengerti makna buku dalam bentuk terjemahannya.
Kompilator hanya perlu bekerja sekali saja menerjemahkan bahasa tingkat tinggi ke bahasa mesin, dan jika kita membutuhkan kembali program tersebut, kita hanya perlu menjalankannya, kompilator tidak perlu bekerja lagi. Jadi siklus kerja jika kita memakai kompilator adalah: tulis/edit program, kompilasi, eksekusi
1.2.3 Pemeriksaan Kesalahan oleh Kompilator dan Interpreter
Kompilator dapat melakukan pemeriksaan kesalahan pada program saat kompilasi, kesalahan ini hanya berupa kesalahan yang bisa diketahui secara statik (misalnya kesalahan penggunaan tipe data), pemeriksaan ini umumnya disebut dengan compile time error checking. Tidak semua kesalahan program bisa dideteksi saat kompilasi.
Kompilator juga bisa menyisipkan kode untuk melakukan pemeriksaan kesalahan pada saat program berjalan, misalnya jika pengguna memasukkan bilangan nol sebagai pembagi maka program bisa dihentikan karena pembagian dengan nol tidak mungkin dilakukan. Pemeriksaan kesalahan yang pada saat program berjalan disebut dengan run time error checking. Pemeriksaan run time ini tergantung pada kompilator, ada kompilator yang melakukan banyak pemeriksaan pada saat run time, ada juga yang tidak.
Sebagian besar interpreter menerjemahkan kode satu persatu, sehingga pemeriksaan kesalahan selalu dilakukan saat run time meskipun ada juga yang melakukan pemeriksaan awal sebelum kode mulai diinterpretasi.
1.2.4 Kompilator vs Interpreter
Apakah suatu bahasa diinterpretasi atau dikompilasi bergantung pada ketersediaan interpreter atau kompilator untuk bahasa tersebut. Sebagai contoh, kita tidak dapat mengatakan bahwa bahasa BASIC adalah bahasa yang diinterpretasi karena ada juga kompilator untuk bahasa BASIC.
Interpreter dan kompilator masing-masing memiliki keuntungan dan kerugian. Kelebihan interpreter adalah pengembangan program lebih cepat, tidak perlu melakukan kompilasi yang mungkin butuh waktu lama, namun kerugiannya setiap kali program perlu dijalankan, interpreter harus bekerja lagi, sehingga kecepatan eksekusi program menjadi kurang jika dibanding dengan kompilator.
Sebaliknya penggunaan kompilator memungkinkan kita membentuk program yang dapat langsung dijalankan dengan cepat (karena sudah dalam bahasa mesin), namun dibutuhkan waktu yang relatif lama dalam pengembangan programnya
1.3 Kompilator + Interpreter
Meskipun tidak terlalu penting dalam pembahasan buku ini, namun perlu diketahui bahwa ada bahasa yang dikompilasi namun tidak ke dalam bahasa mesin (ke bahasa antara), lalu diinterpretasi oleh suatu interpreter untuk menjalankannya. Sebagian pekerjaan interpreter (memvalidasi program) sudah dilakukan oleh kompilator, sehingga interpreter hanya perlu mengeksekusi program saja. Contoh bahasa yang menggunakan pendekatan ini adalah: Java, C#, dan VB.NET
1.3.1 Debugger
Kesalahan pertama yang ditemukan pada salah satu komputer pertama (yang saat itu masih sangat besar) adalah karena adanya serangga/kutu (bug) yang menyebabkan komputer tidak bekerja. Sejak saat itu semua kesalahan, baik di bidang hardware maupun software komputer disebut dengan bug (istilah ini lebih umum di bidang software dibanding hardware).
Proses untuk menemukan kesalahan program disebut juga dengan proses pencarian bug (istilah proses ini adalah debug). Dalam pencarian kesalahan ini terkadang diperlukan program pembantu yang dinamakan debugger. Program ini akan membantu pemrogram untuk melihat bagaimana eksekusi program dilakukan oleh komputer, dan melihat kesalahan yang mungkin ada ketika program sedang berjalan.
1.3.2 Editor, Kompilator, dan IDE
Untuk memasukkan program ke dalam komputer, kita perlu tools yang dinamakan editor. Editor adalah program yang mampu menerima teks dari manusia, dan menyimpannya ke dalam bentuk digital yang dimengerti komputer. Editor juga memungkinkan kita melakukan koreksi terhadap pengetikan yang kita lakukan (menghapus teks, menyalin teks, dan lain-lain). Bentuk kode program yang kita masukkan ini disebut dengan kode sumber atau source code.
Untuk menjalankan program yang sudah kita ketikkan, kita akan membutuhkan kompilator atau interpreter. Pada bahasa Pascal, kompilator lebih umum dipakai dibanding interpreter. Perlu diperhatikan bahwa editor dan kompilator adalah dua program yang terpisah dan berbeda.
Sebuah IDE (Integrated Development Environment) adalah program yang menggabungkan fungsi editor dan kompilator (serta terkadang debugger) dalam satu paket. IDE saat ini semakin populer, bahkan banyak orang yang menyangka bahwa IDE sama dengan kompilator. Sebuah IDE mungkin saja sekaligus memiliki fungsi kompilator, tapi tidak selalu demikian, terkadang IDE hanya menyediakan fungsi editor, dan akan memanggil kompilator yang sesungguhnya ketika kita akan mengkompilasi program.
1.4 Aneka Implementasi Kompilator Pascal
Sama seperti mobil, yang memiliki fungsi yang sama namun memiliki banyak merk, saat ini ada banyak merk kompilator. Setiap kompilator ini memiliki fungsi yang sama namun memiliki perbedaan dalam hal detailnya. Perbedaan kompilator ini ada karena beberapa hal:
• Perbedaan sistem operasi menyebabkan sifat kompilator berbeda
• Kurang detailnya standar bahasa Pascal menyebabkan interpretasi yang berbeda terhadap standar Pascal
• Masing-masing pembuat kompilator menambahkan fitur di luar standar Pascal untuk mempermudah pembuat program
Secara umum, semua fitur standar bahasa Pascal akan didukung oleh aneka kompilator yang ada saat ini. Jika Anda terkadang menemukan ada program yang tidak berjalan di suatu sistem operasi atau di suatu kompilator tertentu, maka Anda perlu memeriksa apakah program yang Anda buat memenuhi standar Pascal.
1.5 FreePascal
Dari aneka kompilator yang ada, FreePascal dipilih sebagai acuan dalam buku ini. FreePascal dipilih dengan beberapa alasan:
- FreePascal tersedia gratis, dan bersifat opensource, sehingga kode sumber kompilatornya sendiri bisa dilihat dan dipelajari
- Dokumentasi FreePascal juga tersedia gratis
- FreePascal merupakan kompilator resmi yang dipakai pada IOI (International Olympiad in Informatics/Olimpiade Informatika Internasional)
- FreePascal memenuhi standar Pascal
Meskipun kompilator FreePascal banyak diacu dalam artikel ini, artikel ini bisa dipakai bersama kompilator yang lain (bahkan dapat dipakai untuk bahasa pemrograman selain Pascal), namun perlu diperhatikan bahwa setiap kompilator memiliki perbedaan, dan hal tersebut harus dikonsultasikan pada manual masing-masing kompilator.


10:01 PM
4V3NK
Posted in:
0 comments:
Post a Comment