INFOCUS FC

INFOCUS FC
logo infocus

Jumat, September 19, 2008

Materi 1 pemogramaan non procedural


Dasar Pemrograman
· Paradigma à berbagai pendekatan dalam bidang pemrograman dalam menghasilkan
suatu program.
· Beberapa paradigma dalam pemrograman
1. Paradigma pemrograman Prosedural/Imperatif
2. Paradigma pemrograman Fungsional
3. Paradigma pemrograman Deklaratif/ Predikatif / Logik
4. Paradigma Berorientasi Objek ( Object Oriented)
5. Paradigma Konkuren
· Bahasa Pemrograman
Banyak sekali bahasa pemrograman sampai saat ini, mulai dari bahasa tingkat
rendah (bahasa mesin dalam biner), bahasa assembler, bahasa tingkat tinggi,
sampai bahasa generasi keempat (4GL).
Pada setiap paradigma, terdapat bahasa pemrograman yang mempermudah
implementasi rancangan penyelesaian masalahnya. Contoh bahasa pemrograman
yang ada :
1. Prosedural : Algol, Pascal, Fortran, Basic, Cobol, C
2. Fungsional : LOGO, APL, LISP
3. Deklaratif : PROLOG
4. Object Oriented Murni : Smalltalk, Eifel
PDF created with pdfFactory Pro trial version www.pdffactory.com
2
Paradigma-paradigma dalam pemrograman :
1. Paradigma pemrograman Prosedural/Imperatif
· Didasari oleh konsep mesin Von Newmann à sekelompok tempat penyimpanan
(memori), yang dibedakan menjadi memori instruksi dan memori data. Instruksi
akan dieksekusi satu per satu secara berurutan oleh suatu pemroses tunggal.
· Beberapa instruksi menentukan instruksi berikutnya yang akan dieksekusi
(percabangan kondisional). Data diperiksa dan dimodifikasi secara berurutan.
· Didasari pada strukturisasi informasi di dalam memori dan manipulasi dari
informasi yang disimpan tersebut.
· Kata kuncinya Algoritma + Struktur Data = Program
· Keuntungan pemrograman dengan paradigma ini adalah efisiensi eksekusi, karena
dekat dengan mesin.
2. Paradigma pemrograman Fungsional
· Didasari oleh konsep pemetaan dan fungsi pada matematika.
· Fungsi dapat berbentuk sebagai fungsi ‘primitif’ atau komposisi dari fungsi lain
yang terdefinisi.
· Pemrogram mengasumsikan bahwa ada fungsi dasar yang dapat dilakukan.
Penyelesaian masalah didasari atas aplikasi dari fungsi-fungsi tersebut. Dasar
pemecahan persoalan adalah transformasional.
· Semua kelakuan program adalah suatu rantai transformasi dari sebuah keadaan
awal menuju ke suatu rantai keadaan akhir, melalui keadaan antara, melalui suatu
aplikasi fungsi.
· Paradigma ini tidak mempersoalkan 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. Adapun yang menjadi perhatian
adalah keadaan awal dan akhir saja.
PDF created with pdfFactory Pro trial version www.pdffactory.com
3
· Paradigma ini harus dolah lebih dari program procedural (oleh pemroses
bahasanya), karena itu salah satu keberatan adalah kinerja dan efisiensinya.
3. Paradigma pemrograman Deklaratif/ Predikatif / Logik
· Paradigma ini didasari oleh pendefinisian relasi antar individu yang dinyatakan
sebagai predikat.
· Sebuah program logik adalah kumpulan aksioma (fakta dan aturan deduksi).
· Pemrogram menguraikan sekumpulan fakta dan aturan (inferences rules).
· Saat program dieksekusi, pemakai mengajukan pertanyaan (Query), lalu program
akan menjawab apakah pertanyaan 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)
· Didasari oleh Kelas dan Objek
· Objek adalah instanisasi dari kelas. Objek mempunyai atribut (kumpulan sifat),
dan mempunyai kelakuan (kumpulan reaksi, metode).
· Objek yang satu dapat berkomunikasi dengan objek yang lain melalui ‘pesan’,
dengan tetap terjaga integritasnya.
· Kelas mempunyai hirarki, anggota dari suatu kelas juga mendapatkan turunan
atirbut dari kelas di atasnya.
· Paradigma ini menawarkan konsep modularitas, penggunaan kembali, kemudahan
modifikasi. Dalam paradigma ini masih terkandung dari paradigma imperatif,
karena mengkonstruksi program dari objek dan kelas adalah tidak berbeda dengan
mengkonstruksi program dari struktur dan algoritma, dengan cara enskapsulasi
menjadi kelas.
· Salah satu aspek penting pemrograman berorientasi objek adalah aspek konkuren.
Karena pada saat runtime akan lahir banyak (lebih dari satu objek), dengan
kelakuan masing-masing, maka aspek konkuren tidak dapat dipisahkan dari
pemrograman objek.
PDF created with pdfFactory Pro trial version www.pdffactory.com
4
5. Paradigma Konkuren
· Didasari oleh kenyataan bahwa dalam keadaan nyata, sebuah sistem komputer
harus menangani beberapa program (task) yang harus dieksekusi bersama dalam
sebuah lingkungan (baik mono atau multi prosesor).
· Pada pemrograman konkuren, tidak lagi beripikir sekuensial, melainkan harus
menangani komunikasi dan sinkronisasi antar task.
PEMROGRAMAN FUNGSIONAL
· Paradigma pemrograman fungsional didasari oleh konsep pemetaan dan fungsi pada
matematika. Fungsi dapat berbentuk:
• fungsi primitif/dasar, atau
• komposisi dari fungsi-fungsi lain yang telah terdefinisi.
· Pemrogram mengasumsikan bahwa sudah terdefinisi fungsi dasar. Dari komposisi
fungsi dasar tersebut dapat dibentuk fungsi baru. 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, melalui aplikasi fungsi.
· 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 lebih
dari program prosedural (oleh pemroses bahasanya), karena itu salah satu keberatan
adalah kinerja dan efisiensinya. Karena itu, dalam bahasa pemrograman fungsional,
PDF created with pdfFactory Pro trial version www.pdffactory.com
5
program adalah fungsi hasil komposisi dari fungsi-fungsi lain, apakah fungsi itu dasar
atau hasil komposisi dari fungsi dasar. Bahasa pemrograman fungsional memperoleh
hasil dengan cara mengaplikasikan fungsi terhadap argumen atau parameternya, yang
juga dapat berupa fungsi.
· Bahasa pemrograman fungsional menonjol dalam kemampuan struktur datanya.
Karena bahasa ini tidak dibatasi oleh variabel yang berasosiasi dengan lokasi memori,
maka sebuah struktur data cukup ditangani sebagai sebuah nilai.
· Bahasa pemrograman fungsional tertua adalah LISP. Dan hanya bahasa inilah yang
dalam perkembangannya juga digunakan secara komersial. Sehingga penggunaannya
meluas.
NOTASI FUNGSIONAL
· Program adalah model solusi persoalan informatik, berisi kumpulan informasi penting
yang mewakili persoalan.
· Dalam konteks fungsional, program digambarkan dalam : himpunan nilai type,
dengan nilainya adalah konstanta.
· Fungsi di sini merupakan asosiasi antara 2 type yaitu domain dan range.
· Domain range dapat berupa : type dasar dan type terkomposisi (bentukan).
· Penulisan suatu program fungsional, dipakai bahasa ekspresi à tiga macam bentuk
komposisi ekspresi adalah ekspresi fungsional dasar, konditional dan rekursif.
· Pemrograman fungsional didasari atas analisa top down. Analisa top down dalam
pemrograman fungsional: Problema, Spesifikasi dan Dekomposisi .
· Fungsi pada analisa topdown adalah strukturisasi teks. Sebuah fungsi mewakili
sebuah tingkatan abstraksi.
PDF created with pdfFactory Pro trial version www.pdffactory.com
6
Konstruksi Program Fungsional
· Definisi Fungsi : Menentukan nama dan mendefinisikan domain dan range dari
fungsi.
· Spesifikasi fungsi : menentukan “arti” dari fungsi.
Contoh : Fungsi bernama Pangkat3(x) artinya menghitung pangkat tiga x seperti pada
umumnya.
· Realisasi fungsi : mengasosiasikan pada nama fungsi, sebuah ekspresi fungsional
dengan parameter formal yang cocok.
Contoh : mengasosiasikan pada Pangkat Tiga: a*a*a atau a3 dengan a adalah nama
parameter formal. Parameter formal fungsi adalah nama yang dipilih untuk
mengasosiasikan domain dan range.
· Aplikasi fungsi : memakai fungsi dalam ekspresi, yaitu dengan menggantikan semua
nama parameter formal dengan nilai. Dengan aplikasi fungsi, akan dievaluasi ekspresi
fungsional.
Contoh : Pangkat Tiga (2) + Pangkat Tiga(3).
Argumen pada saat dilakukan aplikasi fungsi disebut parameter actual.
· Notasi untuk menuliskan program fungsional disebut dengan notasi fungsional,
dimana terdiri dari empat bagian sesuai dengan tahapan pemrograman.
Contoh generic(template) teks program dalam notasi fungsional.
Judul Nama-fungsi (list parameter formal) à Bagian I
Definisi dan Spesifikasi à Bagian II
Nama-fungsi : domain à range
{Tuliskan spesifikasi fungsi yang nama, domain dan range nya sama dengan diatas}
Realisasi à Bagian III
Nama-Fungsi (list parameter) : <>
Aplikasi à Bagian IV
=> Nama-Fungsi (list parameter actual)
PDF created with pdfFactory Pro trial version www.pdffactory.com
7
=> Nama-Fungsi (list parameter actual)
Referensi :
1. Sri Purwanti, Diktat LISP, Teknik Informatika ITB, Bandung, 2003
2. Inggriani Liem, Diktat Pemrograman Fungsional, Teknik Informatika ITB,
Bandung 2003.
3. T.Van Le, Techniques of Prolog Programming with implementation of logical
negation and quantified goals, University of Canberra, 1993.
4. Suyoto, Intelegensi Buatan (Teori Pemrograman), Yogyakarta: Penerbit Gava
Media, 2004.