ALGORITMA PEMROGRAMAN 1C PEMROGRAMAN LOGIK Indah Wahyuni
PARADIGMA-PARADIGMA PEMROGRAMAN Bahasa pemrograman (programming language): notasi yang dipakai untuk menentukan, mengorganisasi, dan melakukan penalaran tentang komputasi. Paradigma pemrograman: cara/pola berpikir tentang pemrograman. 2
PARADIGMA-PARADIGMA PEMROGRAMAN Perancang suatu bahasa pemrograman harus menyeimbangkan antara: membuat komputer mudah (convenient) untuk dipakai membuat komputer dapat dipakai secara efisien. machine language assembly language high-level language 3
PARADIGMA-PARADIGMA PEMROGRAMAN Keuntungan-keuntungan dari bahasa pemrograman high-level: lebih mudah dibaca oleh manusia tidak bergantung pada jenis mesin tersedia program-library ada pengecekan yang dapat membantu deteksi error 4
ADA 4 PARADIGMA UTAMA: 1. imperative programming komputasi dipandang sebagai suatu barisan aksi/tindakan (a sequence of actions). menekankan "how. Contoh bahasa pemrograman yang mendukung: FORTRAN, C,... 2. functional programming komputasi berdasarkan fungsi/kategori, dimana fungsi mempunyai status yang sama dengan nilainilai lainnya. (Functions are first-class values). Contoh bahasa pemrograman yang mendukung: LISP, ML, Haskell,... 5
ADA 4 PARADIGMA UTAMA: 3. Logic Programming Program terdiri dari facts (fakta-fakta) dan rules (aturan-aturan). Komputasi adalah deduksi. Menekankan "what". Contoh bahasa pemrograman yang mendukung: Prolog. 4. Object-Oriented Programming Program adalah simulasi. Objek bereaksi terhadap message. Class mendeskripsikan himpunan objek. Contoh bahasa pemrograman yang mendukung: C++, Smalltalk, Java,... 6
BAHASA PEMROGRAMAN IMPERATIVE VS DEKLARATIVE Pada bahasa pemrograman imperative, Kita memberitahu komputer bagaimana/how cara menyelesaikan masalah Pada bahasa pemrograman deklarative, kita mendeklarasikan apa/what permasalahannya dan komputer yang akan memecahkan masalah nya 7
PENGENALAN PROLOG Prolog adalah bahasa pemrograman pertama yang murni menggunakan bahasa pemrograman deklarative Prolog kependekan dari Programming in logic Pertama kali diperkenalkan tahun 1970 oleh Robert Kowalski dan Maarten van Emden, Alain Colmerauer, selanjutnya diimplementasikan oleh David Warren 8
PENGENALAN PROLOG Penulisan program dalam bahasa prolog: Menuliskan pengetahuan kita mengenai suatu masalah Membuat model dari suatu masalah Prolog digunakan untuk pemodelan sistem (contoh prototipe perangkat lunak, desain sirkuit) dan Untuk banyak aplikasi intelegensi buatan seperti Expert System dan Natural Language Processing 9
PEMPROGRAMAN PROLOG VS KONVENSIONAL Pemprograman Prolog Programer mentafsirkan APA masalah yang hendak diselesaikan menggunakan logika. Komputer menghasilkan urutan arahan mengikut tertib yang ditentukan oleh pemprogram. Pemprograman Konvensional Programer mengarahkan komputer BAGAIMANA menyelesaikan masalah. Sistem mengaplikasikan peraturan logika, deduksi dan persamaan dalam menyelesaikan sesuatu masalah. 10
KONSEP PROLOG Program Prolog terdiri dari sekumpulan clauses Setiap clause dapat berupa fakta atau aturan (fact or rule) Contoh clauses : Facts : boneka(power_rangers). Rules : boneka(snoopy). main(aliya, snoopy) suka(aliya,x):- boneka(x), main(aliya,x). suka(hasan,y):- suka(aliya,y) 11
TERMS (TERMINOLOGI/ISTILAH) Sebuah terms mewakili suatu objek atau kelas dari objek yang akan dibahas Objek dapat berupa : konstanta, yang dapat berupa : angka : 37, 12.4, -5 string : helo world, Pete atom : philip, monkey variabel : X, Person compound term : tanggal (May, 1, 2004) 12
FACTS (FAKTA) Fakta mewakili satu unit informasi yang diasumsikan bernilai benar Kadangkala suatu fakta terdiri dari beberapa istilah atau merupakan suatu daftar istilah Contoh: Langit itu biru. Hari sedang hujan. langit(biru). hari(hujan). 13
RULES (ATURAN-ATURAN) Mengungkap satu hubungan di antara fakta-fakta dengan menggunakan implikasi logika :-. Suatu aturan mewakili beragam kondisi ( this is true if this is true ) Contoh: Sim suka buku Siti suka buku suka(sim,buku). suka(siti,buku). kawan(sim,siti) :- suka(sim, buku), suka(siti,buku). IF AND 14
RULES (ATURAN-ATURAN) Secara umum aturan adalah suatu ekspresi dengan bentuk : A :- B1, B2,,Bn dimana A dan B1, B2, Bn adalah formula atomik A adalah head (kepala) dari aturan B1, B2,., Bn adalah body (tubuh) dari aturan 15
VARIABEL Penulisannya dengan huruf besar atau underscores (contoh : X, TimeTable, _24) Semua yang dimulai dengan huruf besar pada prolog adalah variabel (kecuali dalam tanda petik ) atom obyek nyata variabel obyek umum 16
VARIABEL Dalam Prolog terdapat dua variabel, yaitu: 1.Variabel bernama, yaitu variabel yang diberi nama seperti X, Orang, dan sebagainya 2.Variabel tak bernama (placeholder), dilambangkan dengan tanda garis bawah (_). Setiap term dengan awalan huruf kapital selalu dianggap sebagai variabel awalan dengan huruf kecil dianggap sebagai suatu relasi atau konstanta. 17
VARIABEL Variabel tak bernama digunakan untuk mengabaikan nilai suatu variabel, yang berarti bisa bernilai apa saja. Contoh keduanya: member(x,[x _]). member(x,[_ Y]):-member(X,Y). 18
RELASI Tabel dengan n buah kolom dan terdiri dari beberapa baris fakta maupun aturan. Secara umum, suatu relasi dinyatakan dalam bentuk aturan atau fakta sebagai berikut: P if Q1 and Q2 and... and Qk untuk k>= 0 19
KLAUSA (CLAUSE) Suatu frase (ungkapan) atau susunan kata yang di dalam Prolog dapat berupa fakta atau aturan. Suatu clause merupakan statemen prolog, contohnya fakta atau aturan (fact or rule) Semua clause pada prolog harus diakhiri dengan tanda titik (dot) 20
KLAUSA (CLAUSE) Terdiri dari beberapa sub-klausa Dihubungkan menggunakan tanda koma (,) yang berarti hubungan and (konjungsi) Tanda titik koma (;) yang menunjukkan hubungan or (disjungsi) Contoh: orangtua(p,q) :- bapak(p,q); ibu(p,q). kakek(a,z) :- bapak(a,x), orangtua(x,z). 21
KLAUSA (CLAUSE) Penggunaan program prolog dilakukan melalui query Contoh :? parent(philip, anne).? main(aliya, snoopy). Interpreter pada Prolog akan merespon : Yes or No Semua query harus diakhiri tanda titik (dot) 22
QUERY Query dapat terdiri dari variabel-variabel :?- parent(philip, who). Interpreter prolog akan memberikan respon melalui nilai nilai yang terdapat pada variabel sehingga query akan menjadi benar (jika ada), kalau tidak ada jawaban yang benar, maka akan direspon dengan no Prolog dapat ditulis dengan mengetik semikolon (;), sehingga semua penyelesaian yang ada akan dijumpai/ditampilkan. 23
MAKNA DEKLARATIF DAN PROSEDUR Makna deklaratif hanya menumpukan kepada hubungan yang ditakrifkan dalam program. Makna deklaratif akan menentukan apa yang akan menjadi output kepada program. Makna prosedur menentukan bagaimana output itu didapat yaitu bagaimana sebenarnya hubungan itu dinilai oleh sistem Prolog. 24
25