Paradigma dapat diartikan sebagai sudut pandang tertentu
(dalam suatu persoalan, realitas, keadaan dan sebagainya). Paradigma hanya
memberikan pandangan yang terbatas terhadap sebuah realitas karena paradigma
membatasi dan mengkondisikan jalan berpikir kita, mengarahkan kita terhadap
beberapa hal dan mengabaikan hal lainnya.
Dalam
pemrograman pun terdapat beberapa paradigma. Masing-masing dari paradigma tersebut
memiliki prioritas strategi analisis dalam memecahkan persoalan. Di sini,
pemrogram dituntut untuk dapat cerdas memilih paradigma yang akan digunakan,
karena beberapa jenis persoalan memang dapat dipecahkan dengan baik menggunakan
sebuah paradigma sedangkan persoalan yang lain tidak cocok.
Terdapat
empat contoh paradigma pemrograman, yaitu :
1.
Paradigma prosedural atau imperatif
Dasar dari paradigma ini adalah instruksi, yang mana
mempunyai efek yang dapat diukur pada pernyataan program. Paradigma ini
didasari oleh konsep mesin Von Neumann (stored program concept).
Stored program concept adalah memori yang dibedakan
menjadi dua, yaitu memori instruksi dan memori data. Masing-masing dari memori
ini dapat diberi nama dan harga. Instruksi akan diproses satu per satu (secara
berurutan atau sekuensial) oleh pemroses tunggal. Dalam instruksi ini juga
terdapat percabangan kondisional, yaitu beberapa instruksi yang menentukan
instruksi berikutnya yang akan dieksekusi. Paradigma ini hampir sama dengan
penulisan resep makanan dan cara perbaikan mobil (step by step).
Tipe instruksi yang biasanya menggunakan paradigma prosedural
adalah assignment, IO, dan pemanggilan procedure. Contoh bahasa yang mewakili
paradigma ini adalah Fortran, Algol, Pascal, Basic dan C.
Pemrograman dengan paradigma ini sangat tidak manusiwai
karena kita harus berpikir dalam batasan mesin. Akan tetapi, keuntungan dari
pemrograman dengan paradigma ini adalah efisiensi eksekusi karena dekat dengan
mesin.
2.
Paradigma fungsional
Paradigma fungsional didasari oleh konsep teori
fungsi dalam matematika. Jika dibandingkan dengan paradigma prosedural,
paradigma fungsional lebih simple dan bersih karena paradigma prosedural
didasari ide digital computer.
Fungsi dapat berbentuk sebagai fungsi
primitf atau komposisi dari fungsi-fungsi lain yagn telah terdefinisi.
Penyelesaian maslaah didasari atas aplikasi dari fungsi-fungsi tersebut. Nilai
yang dihasilkan non-mutable. Mustahil untuk melakukan perubahan dari sebuah
composite value, tetapi masih dimungkingkan untuk membuat sebuah salinan revisi
dari composite value. Semua komputasi dapat dilakukan dengan pemanggilan
fungsi.
Dengan paradigma pemrograman ini,
pemrogram tidak perlu lagi mempermasalahkan memorisasi dan struktur data, dan bagaiman
mesin mengeksekusi program. Setiap fungsi diibaratkan sebagai sebuah kotak
hitam, degan merakit kotak hitam ini dari keadaan awal hingga akhir pemrogram
bisa menghasilkan program yang besar. Kelemahan dari paradigma fungsional
adalah keberatan kinerja dan efisiensinya karena harus diolah lebih dari
paradigma prosedural (oleh pemroses bahasanya). Contoh bahasa pemrograman yang
mewakili paradigma ini adalah LOGO,APL dan LISP.
3.
Paradigma deklaratif, predikatif atau lojik
Paradigma lojik sangat cocok ketika digunakan pada
persoalan tentang fakta dan relasi. Paradigma ini didasari oleh aksiom (fakta
dan aturan deduksi), inference rules (penguraian sekumpulan fakta dan
aturan-aturan) dan queries (ketika pemakai mengajukan pertanyaan, program akan
menjawab apakah penyataan itu dapat dideduksi dari aturan dan fakta yang ada).
Berdasarkan paradigma ini, program akan memakai aturan deduksi untuk
mencocokkan pertanyaan dengan fakta-fakta yang ada untuk menjawab pertanyaan.
Contoh bahasa pemrograman yang mewakili paradigma ini adalah Prolog.
4.
Paradigma berorientasi objek (Object Oriented)
Paradigma berorientasi objek menjadi cukup populer di
beberapa tahun terakhir ini. Paradigma ini didasari oleh teori tentang konsep
dan model interaksi antara manusia dengan fenomena nyata di dunia.
Paradigma ini menawarkan konsep class, inheritance,
polymorphism dan menekankan pentingnya pendefinisian statik kelas untuk
menciptakan objek pada saat runtime, yang kemudian dimanipulasi atau saling
berinteraksi. Kelas adalah objek yang mempunyai atribut yang sama. Objek
sendiri mempunyai atribut (kumpulan sifat) dan kelakuan (kumpulan reaksi,
metoda). Data dan juga operasi dienkapsulasi dalam objek. Interaksi objek
berarti penyampaian pesan. Kelas merepresentasikan konsep, sedangkan objek
merepresentasikan fenomena. Kelas diorganisasi dalam sebuah inheritance
hierarchies. Contoh bahasa pemorgraman yang mewakili paradigma ini adalah Smalltalk,
Eifel, Java dan C++.