Bahasa Pemrograman Prosedural
Pemrograman prosedural adalah sebuah paradigma pemrograman, yang penamaannya diambil dari pemrograman imperatif berdasarkan konsep pemanggilan prosedur. Prosedur (sejenis rutin atau subrutin) hanya berisi serangkaian langkah komputasi yang akan dilakukan. Setiap prosedur yang diberikan dapat dipanggil kapan saja selama eksekusi program, termasuk oleh prosedur lain atau prosedur itu sendiri. Bahasa pemrograman prosedural pertama muncul sekitar tahun 1957-1964, termasuk FORTRAN, ALGOL, COBOL, PL/I dan BASIC. Pascal dan C diterbitkan tahun 1970-1972.
Paradigma ini juga 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. Prosesor komputer menyediakan dukungan perangkat keras untuk pemrograman prosedural melalui tumpukan register dan instruksi untuk memanggil prosedur dan mengembalikan nilai dari prosedur tersebut. Dukungan perangkat keras untuk jenis pemrograman lain dimungkinkan, tetapi tidak ada upaya yang berhasil secara komersial.
Paradigma Pemrograman
Paradigma adalah sudut pandang atau "sudut serang" tertentu yang diprioritaskan, terhadap kelompok problema, realitas, keadaan, dan sebagainya. Paradigma membatasi dan mengkondisikan jalan berpikir kita, mengarahkan kita terhadap beberapa atribut dan membuat kita mengabaikan atribut yang lain. Karena itu, jelas bahwa sebuah paradigma hanya memberikan pandangan yang terbatas terhadap sebuah realitas, karena itu fanatisme terhadap sebuah paradigma, mempersempit wawasan dan kadang berbahaya. Dalam pemrograman pun ada beberapa paradigma, masing-masing mempunyai priotas strategi analisis yang khusus untuk memecahkan persoalan, masing-masing menggiring kita ke suatu pendekatan khusus dari problematika keseluruhan. Beberapa jenis persoalan dapat dipecahkan dengan baik dengan menggunakan sebuah paradigma, sedangkan yang lain tidak cocok. Mngharuskan seseorang memecahkanpersoalan hanya dengan melalui sebuah paradigma, berarti membatasi strateginya dalam pemrograman. Satu paradigma tidak akan cocok untuk semua kelas persoalan. "Ilmu" pemrograman berkembang, menggantikan "seni" memprogram atau memprogram secara coba-coba ("trial and error"). Program harus dihasilkan dari proses pemahaman permasalahan, analisis, sintesis dan dituangkan menjadi kode dalam bahasa komputer secara sistematis dan metodologis. Karena terbatasnya waktu, tentu saja tidak mungkin semua paradigma disatukan dalam sebuah mata kuliah. Mahasiswa akan mulai belajar dengan paradigma prosedural.
Beberapa paradigma dalam pemrograman :
1. Paradigma Prosedural atau imperatif
- Paradigma ini didasari oleh konsep mesin Von Newmann (stored program concept) :
- sekelompok tempat penyimpanan (memori), yang dibedakan menjadi memoriinstruksi dan memori data; masing-masing dapat diberi nama dan harga. Instruksi
- akan dieksekusi satu per satu secara sekuensial oleh sebuah pemroses tunggal.Beberapa instruksi menentukan instruksi berikutnya yang akan dieksekusi
- (percabangan kondisional). Data diperiksa dan dimodifikasi secara sekuensial pula. Program dalam paradigma ini didasari pada strukturasi informasi di :dalam memori dan manipulasi dari informasi yang disimpan tersebut. Kata kunci yang sering
- didengungkan dalam pendekatan ini adalah :
- Algoritma + Struktur Data = Program.
- Pemrograman dengan paradigma ini sangat tidak "manusiawi" dan tidak "alamiah", karena harus berpikir dalam batasan mesin (komputer), bahkan
- kadang-kadang batasan ini lebih mengikat daripada batasan problematikanya sendiri.Keuntungan pemrograman dengan paradigma ini adalah efisiensi eksekusi, ::karena dekat dengan mesin.
2. Paradigma Fungsional
- Paradigma fungsional didasari oleh konsep pemetaaan dan fungsi pada matematika. Fungsi dapat berbentuk sebagai fungsi "primitif", atau komposisi dari :fungsi-fungsi lain yang telah terdefinisi. Pemrogram mengasumsikan bahwa ada fungsi-fungsi dasar yang dapat dilakukan. Penyelesaian masalah didasari atas :aplikasi dari fungsi-fungsi tersebut. Jadi dasar pemecahan persoalan adalah transformasional. Semua kelakuan program adalah suatu rantai transformasi :dari sebuah keadaan awal menuju ke suatu rantai keadaan akhir, yang mungkin melalui keadaan antara. Paradigma fungsional tidak lagi mempernasalahkan :memorisasi dan struktur data, tidak ada pemilahan antara data dan program, tidak ada lagi pengertian tentang "variabel". Pemrogram tidak perlu lagi :mengetahui bagaimana mesin mengeksekusi atau bagaimana informasi disimpan dalam memori, setiap fungsi adalah "kotak hitam", yang menjadi perhatiannya :hanya keadaan awal dan akhir. Dengan merakit kotak hitam ini, pemrogram akan menghasilkan program besar. Berlainan sekali dengan paradigma prosedural, :program fungsional harus diolah lebihdari program prosedural (oleh pemroses bahasanya), karena itu salah satu keberatan adalah kinerja dan efisiensinya.
3. Paradigma Deklaratif, predikatif atau lojik
- Paradigma ini didasari oleh pendefinisian relasi antar individu yang dinyatakan sebagai predikat. Sebuah program lojik adalah kumpulan aksioma (fakta dan :aturan deduksi). Pada paradigma ini, pemrogram menguraikan sekumpulan fakta dan aturan-aturan (inference rules). Ketika program dieksekusi, pemakai :mengajukan pertanyaan (Query), dan program akan menjawab apakah pernyataan itu dapat dideduksi dari aturan dan fakta yang ada. Program akan memakai :aturan deduksi dan mencocokkan pertanyaan dengan fakta-fakta yang ada untuk menjawab pertanyaan.
4. Paradigma Berorientasi Objek (Object Oriented)
- Paradigma ini didasari oleh objek. Sebuah objek mempunyai atribut (kumpulan sifat), dan mempunyai kelakuan (kumpulan reaksi, metoda). Objek yang
- satu dapat berkomunikasi dengan objek yang lain lewat "pesan", dengan tetap terjaga integritasnya. Kelas adalah objek mempunyai atribut yang sama dan :diturunkan kesemua objek yang berada dalam kelas yang sama. Kelas-kelas mempunyai hirarki, anggota dari sebuah kelas juga mendapatkan turunan atribut :dari kelas di atasnya. Paradigma ini menawarkan konsep class, generic, inheritance, polymorphism dan menenkankan pentingnya pendefinisian statik kelas :untuk melahirkan (menciptakan) objek pada saat runtime, yang kemudian dimanipulasi atau saling berinterasi. Definisi kelas memungkinkan adanya penurunan :kelas dengan objek pada saat run time yang dapat “berubah” bentuk dengan kelakuan yang disesuaikan, Namun demikian, literatur pada struktur kontrol mikro :untuk mendeskripsikankelakuan, masih terkandung paradigma imperatif, dengan adanya pernyataan sekuensial, assignment, analisis kondisional dan :pengulangan. Namun demikian, mengkonstruksi program dari objek dan kelas adalah berbeda dengan mengkonstruksi program dari struktur data dan algoritma. :Kedekatan antara paradigma ini dengan paradigma lain dapat dilihat dari bahasa-bahasa bukan berorientasi obyek murni , yaitu bahasa prosedural atau :fungsional yang ditambahi dengan ciri orientasi objek.
- Selain keempat paradigma di atas, dalam literatur masih sering disebutkan paradigma yang lain, misalnya :
- -Paradigma konkuren, yang erat hubungannya dengan arsitektur perangkat keras yang memungkinkan pemrosesan secara paralel atau perangkat lunak sistem terdistribusi
- ..yang mengelola akses konkuren.
- -Paradigma relasional, yang didasari entity dan relasi, dan pemrograman dalam bahasa Query yang memungkinkan diperolehnya suatu himpunan nilai.
5. Bahasa Pemrograman
- Ada banyak sekali bahasa pemrograman, mulai dari bahasa tingkat rendah (bahasa mesin dalam biner), bahasa asembler (dalam kode mnemonik), bahasa tingkat :tinggi, sampai bahasa generasi ke empat (4GL). Bahasa Pemrograman berkembang dengan cepat sejak tahun enampuluhan, seringkali
- dianalogikan dengan menara Babel yang berakibat manusia menjadi tidak lagi salingmengerti bahasa masing-masing. Untuk setiap paradigma, tersedia bahasa
- pemrograman yang mempermudah implementasi rancangan penyelesaianmasalahnya.
- Contoh bahasa-bahasa pemrograman yang ada :
- Prosedural : Algol, Pascal, Fortran, Basic, Cobol, C ...
- Fungsional : LOGO, APL, LISP
- Deklaratif/Lojik : Prolog
- Object oriented murni: Smalltalk, Eifel, Jaca, C++..
- Konkuren : OCCAM, Ada, Java
- Relasional: SQL pada basisdata relasional
- Paradigma Objek mulai ditambahkan pada bahasa-bahasa yang ada. Pemroses bahasa Pascal dan C versi terbaru dilengkapi dengan fasilitas terorientasi objek, :misalnya Turbo Pascal (mulai versi 5.5) pada komputer pribadi (PC) dan C++. Ada beberapa versi LISP dan Prolog yang juga memasukkan aspek OO.
- Suatu program dalam bahasa pemrograman tertentu akan diproses oleh pemroses bahasanya. Ada dua kategori pemroses bahasa, yaitu kompilator dan :interpreter. Dalam melakukan implementasi program, tersedia bahasa pemrograman visual atau tekstual.