Kamis, 15 November 2018


Diberikan tiga angka, tuliskan program yang menghasilkan output angka dengan nilai
terbesar diantara tiga angka tersebut. Gunakan operator kondisi ?: yang telah kita pelajari
sebelumnya (HINT: Anda akan perlu menggunakan dua set operator ?: untuk
memecahkan permasalahan ini). Sebagai contoh , diberikan angka 10, 23 dan 5, Program
anda akan menghasilkan output,
      number 1 = 10
      number 2 = 23
      number 3 = 5
      Nilai tertingginya adalah angka = 23

Jawaban :

Ciri ciri prolog dan penjelasan

Pernahkah anda mendengar tentang Prolog ? Prolog adalah singkatan dari Programming in Logic, yaitu suatu aplikasi yang memungkinkan kita untuk menggunakan logika sebagai bahasa pemrograman. Bahasa pemrograman seperti ini disebut juga dengan bahasa pemrograman non-prosedural. Prolog merupakan bahasa deklaratif, artinya jika diberi fakta dan aturan maka Prolog akan menyelesaikan problem masalah dengan cara menarik kesimpulan sebagai jawaban berdasarkan fakta dan aturan yang diberikan.
Algoritma yang digunakan dalam aplikasi Prolog terdiri dari logika dan kontrol. Logika yang dimaksud disini adalah fakta dan aturan yang menerangkan apa yang seharusnya dilakukan atau diperintahkan oleh user. Sedangkan yang dimaksud dengan kontrol adalah cara-cara yang digunakan agar algoritma tersebut dapat diimplementasikan menggunakan aturan yang sudah dibuat.
Berbeda dengan bahasa pemrograman lain yang menggunakan algoritma konvensional, cnttohnya seperti pada Delphi, Pascal, BASIC, COBOL dan bahasa pemrograman sejenis, Prolog menggunakan teknik pemecahan masalah yang disebut dengan teknik heuristik (heutistic) dengan menggunakan pohon logika. Heuristik adalah sebuah teknik yang mengembangkan efisiensi dalam proses pencarian, namum dengan kemungkinan mengorbankan kelengkapan (completeness).
Di bawah ini adalah beberapa perbedaan Bahasa Pemrograman Prolog (Bahasa Deklaratif) dengan  Bahasa Pemrograman Konvensional (Pemrograman Prosedural).
  1. Bahasa deklaratif hanya membutuhkan uraian masalah sedangkan pada bahasa prosedural memerlukan perintah.
  2. Prolog adalah goal oriented yaitu apa yang harus dipecahkan, sedangkan bahasa prosedural menjawab bagaimana harus memecahkan masalah.
  3. Prolog tidak memiliki struktur seperti deklarasi, dan lain-lainnya, yang ada hanyalah clause.
Dari penjelasan di atas, dapat disimpulkan bahwa Prolog biasanya digunakan untuk menyelesaikan suatu permasalahan logika yang tidak mengandung unsur perhitungan yang banyak menggunakan angka.  Contohnya, Prolog dapat digunakan untuk memecahkan masalah yang berkaitan dengan objek ataupun mencari hubungan antara objek yang satu dengan objek lain.
CIRI BAHASA PROLOG
  • Bahasa Prolog selain mencari jawaban dengan menggunakan logika, juga dapat memberi semua kemungkinan jawaban.
  • Mempunyai Predikat :Menggambarkan relasi antara dua buah objek atau lebih, bisa juga mewakili sifat suatu objek. Objek yang terkait disebut argumen. Contoh : cinta(ayah, ibu). predikat : cinta ; argumen : ayah, ibu. (Dibaca : ayah cinta ibu)
  • Deduksi : Prolog dapat melakukan penarikan kesimpulan.
  • Pemadanan/Unifikasi : Dalam mencari jawaban atau menarik kesimpulan, Prolog melakukan pemadanan, yaitu mencari kesamaan/mencocokkan argumen pertama dengan argumen pertama pada predikat lain yang sama dan seterusnya.

STRUKTUR PROLOG
Struktur Bahasa Prolog terdiri dari :
©    Domains
Domains menyatakan jenis suatu variabel. Jenis-jenis variabel standar dalam prolog misalnya char, integer, danstring.
char dipakai pada predikat yang argumennya berupa karakter tunggal (abjad, angka, pungtuasi , dan operasi matematika). Penulisan argumen bertipe char dalam prolog diapit tanda ’…’. Contoh : nilai(putri,’A’).
string dipakai pada predikat yang argumennya berupa karakter jamak, misalnya kata maupun suatu tulisan Penulisan argumen bertipe string dalam prolog diapit tanda ”…”.
Contoh : kuliah(putri,”Algoritma dan Pemrograman 1”).
integer dipakai pada predikat yang argumennya berupa bilangan bulat.
Contoh : nilai(putri,”matdis”,85).

©    Predicates
Predicates digunakan untuk mendeklarasikan predikat. Penulisan dalam Prolog diawali dengan huruf kecil. Contoh : orangtua(x,y)

©    Clauses
Clauses digunakan untuk mendefinisikan predikat. Clauses terdiri dari fakta dan aturan.
Fakta (Fact), menyatakan hubungan relasi antara dua obyek atau lebih. Bisa juga digunakan untuk menunjukkan sifat suatu obyek. Penulisan dalam Prolog, diiawali dengan huruf kecil dan diakhiri dengan tanda titik. Contoh : orangtua (ali, husein).
Aturan(Rules), contoh -> suka(toni, X):- suka(dewi, X). Dibaca -> jika toni suka x, maka dewi suka x.

©    Goal
Goal adalah tempat pernyataan (query) diberikan atau meminta prolog untuk mencapai tujuan yang dikehendaki. Contoh : nilai(putri, matdis, X). Dibaca-> Berapa nilai matdis putri ?

Prolog

Laporan pendahuluan prolog 1


1.       Apa yang kalian ketahui tentang prolog
2.       Sebutkan ciri – ciri prolog (minimal 3)
3.       Sebutkan perbedaan prolog dengan bahasa lainnya (minimal 3)
4.       Sebutkan sintaks-sintaks pada prolog

Jawaban

1. Prolog adalah bahasa pemograman logika,di sebut juga sebagai bahasa non-procedural. Bahasa pemrograman Prolog di ambil dari bahasa prancis yaitu programmation en logiquie (pemrograman logika).bahasa ini di buat oleh Alain Colmerauer dan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang pernyataan logika alih-alih rangkaian perintah untuk di jalankan komputer. Prolog popular di Eropa untuk aplikasi Artificial intelligence.

2. - Bahasa pemrograman yang non sequential
      - Bahasa pemrograman yang deklaratif
      - Berdasarkan first order logic
      - Simbolik

3. Prolog  :
- Teknik pencarian Heuristik
-  Declarative language
-  Program aplikasi AI (Artificial Intellegence)
Bahasa lainnya :
- Teknik pencarian Konvensional
 - Procedural language
 - Program aplikasi biasa

4.
·      Fakta (Facts) dan Relasi (Relations)
Dalam penulisannya selalu diakhiri dengan tanda (titik).
Contoh  : Joni adalah bapak Jani
Sintaks : bapak(Joni,Jani).

·      Aturan (Rules)
Sebuah aturan dinyakatakan sebagai suatu kalimat bersyarat.
disimbolkan dengan “:-“.
contoh : Fakta  : David senang Berenang                                            
 Sintaks : Dimas(David,Berenangl).
Aturan : Dimas senang hobi yang disenangi David         
 sintaks :       :-senang(Dimas,hobi)senang(David,hobi).
·      Pertanyaan (Queries)
Pertanyaan berdasarkan fakta dan aturan yang ada.
Penulisannya diawali simbol “?-“ dan diakhiri tanda “.”.
contoh  : Apakah Riri suka hiking?
sintaks  : ?-suka(Riri,hiking).

·      Predikat
Predikat adalah nama simbolik untuk relasi. Syarat-syarat penulisan nama predikat :

 - Harus diawali dengan huruf kecil dan dapat diikuti dengan huruf, bilangan atau garis bawah.
 - Panjang nama predikat maksimum 250 karakter.
 - Tidak diperbolehkan menggunakan spasi, tanda minus, tanda bintang dan garis miring.

PENGENALAN BAHASA PEMROGRAMAN PROLOG

PENGENALAN BAHASA PEMROGRAMAN PROLOG 
BAB II
Prolog adalah bahasa pemrograman logika atau di sebut juga sebagai bahasa non-procedural. Namanya diambil dari bahasa Perancisprogrammation en logique (pemrograman logika). Bahasa ini diciptakan oleh Alain Colmerauerdan Robert Kowalski sekitar tahun 1972dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankankomputer.
Berbeda dengan bahasa pemrograman yang lain, yang menggunakan algoritmakonvensionl sebagai teknik pencariannya seperti pada DelphiPascalBASICCOBOL dan bahasa pemrograman yang sejenisnya, maka prolog menggunakan teknik pencarian yang di sebutheuristik(heutistic) dengan menggunakan pohon logika.
CopyLEFT (c) 2010 http://id.wikipedia.org/wiki/Prolog All Rights Reserved » 24/12/2010  04:54:00 PM
  • Sejarah Prolog
Prolog merupakan singkatan dari “Programing In Logic” pertama kali dikembangkan oleh Alain Colmetrouer dan P.Roussel di Universitas Marseilles Prancis tahun 1972. Selama tahun 70-an, prolog menjadi populer di Eropa untuk aplikasi AI. Sedangkan di Amerika Serikat, para peneliti juga mengembangkan bahasa lain untuk aplikasi yang sama yaitu LISP. LISP mempunyai kelebihan dibandingkan prolog , tetapi LISP lebih sulit dipelajari.
Pada mulanya, Prolog adalah bahasa yang sangat murni yang didasarkan pada keindahan logika. Sejak ditemukannya pada tahun 1970-an oleh ketiga orang di atas, Prolog berkembang dengan lambat dan hanya digunakan oleh para peneliti dari universitas-universitas terkenal karena hanya merekalah yang dapat mengerti arti dari pentingnya Prolog. Dalam masa pengembangannya, para peneliti banyak menemukan kebutuhan-kebutuhan baru yang perlu ditambahkan di Prolog.
Pada awalnya, Prolog dan LISP sangat lambat dalam eksekusi program dan memakan memori yang besar sehingga hanya kalangan tertentu yang menggunakannya. Dengan adanya Compiler Prolog, kecepatan eksekusi program dapat ditingkatkan, namun Prolog masih dipandang sebagai bahasa yang terbatas (hanya digunakan di kalangan perguruan tinggi dan riset).
Pada awal tahun 1980-an, dunia industri mulai menyadari kelebihan-kelebihan yang dimiliki oleh Prolog dibandingkan dengan bahasa konvensional lainnya. Dengan terlibatnya dunia industri, maka timbul tuntutan-tuntutan baru, misalnya tuntutan akan eksekusi waktu yang lebih cepat, kebutuhan memori yang lebih kecil dan kebutuhan praktis lainnya. Namun hal ini justru menimbulkan 2 kelompok yang mempunyai filosofi yang berbeda.
Di 1 pihak, mereka menganggap bahwa Prolog adalah bahasa penelitian sehingga mereka menginginkan banyak hal tercakup dalam Prolog sehingga Prolog dapat digunakan secara luwes untuk berbagai keperluan penelitian. Di pihak lain, mereka yakin bahwa Prolog seharusnya dapat menjadi bahasa yang berguna untuk mengembangkan berbagai macam aplikasi yang bukan penelitian.
Pandangan umum Prolog, hanya digunakan di kalangan perguruan tinggi dan riset, tiba-tiba berubah di tahun 1981 pada konverensi internasional I dalam system generasi kelima di Tokyo, Jepang. Jepang yang saat itu mengalami kesulitan bersaingdalam pemasaran komputer dengan Amerika Serikat, mencanangkan rencana pengembangan teknologi hardware dan software untuk tahun 1990-an. Dan bahasa yang dipilih adalah Prolog.
Sejak saat itu, banyak orang menaruh minat pada prolog dan saat itu telah dikembangkan versi prolog yang mempunyai kecepatan dan kemampuan yang lebih tinggi, lebih murah dan lebih mudah digunakan, baik untuk komputer mainframe maupun komputer pribadi sehingga Prolog menjadi alat yang penting dalam program aplikasi kecerdasan buatan (AI) dan pengembangan system pakar (expert system).
CopyLEFT (c) 2010 http://forum.himatif.or.id/viewtopic.php?f=10&t=895&sid=14c116b92f8ff04c1a5a76573b95d55b All Rights Reserved » 24/12/2010  08:00:00 PM
  • Perbedaan Prolog dengan Bahasa Lain
Hampir semua bahasa pemrograman yang ada pada saat ini seperti Pascal, C, Fortran, disebut procedural language untuk menggunakan bahasa tersebut diperlukan algoritma atau procedure yang dibuat untuk menyelesaikan masalah. Program dapat menjalankan procedure yang sama berulang-ulang dengan data masukkan yang berbeda-beda. Procedure serta pengendalian program sepenuhnya ditentukan oleh programmer dan perhitungan yang dilakukan sesuai dengan procedure yang telah dibuat. Dengan kata lain, Pemrograman harus memberi tahu komputer bagaimana komputer harus menyelesaikan masalah.
Prolog mempunyai sifat-sifat yang berbeda dengan bahasa yang disebutkan di atas, prolog disebut sebagai object oriented language atau declarative language. Dalam prolog tidak terdapat prosedur, tapi hanya tampilan data-data object (fakta) yang akan diolah dengan relasi antar object tersebut yang membentuk suatu aturan. Aturan-aturan ini disebut HEURISTIK dan diperlukan dalam mencari suatu jawaban, dengan kata lain, prolog dalam prolog adalah database.
Pemrogram menentukan tujuan (Goal) dan komputer akan menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya. Caranya dengan menggunakan “Formal Reasoning” yaitu membuktikan cocok tidaknya tujuan dengan data-data yang telah ada dan relasinya. Prolog memecahkan masalah seperti yang dilakukan oleh fikiran manusia.
Dengan demikian, Prolog sangat ideal untuk memecahkan masalah yang tidak terstruktur dan yang prosedur pemecahannya tidak diketahui, khusunya untuk memecahkan masalah non numeric.
Bahasa Pemrograman yang Umum (Basic, Pascal, C, Fortran):Bahasa Pemrograman Prolog :
  1. 1. diperlukan algoritma/prosedur untuk memecahkan masalah (procedural languange)
  2. 2. program menjalankan prosedur yang sama berulang-ulang dengan data masukan yang berbeda-beda.
  3. Prosedur dan pengendalian program ditentukan oleh programmer dan perhitungan dilakukan sesuai dengan prosedur yang telah dibuat.
  1. Object oriented languangeatau declarative languange.
  2. Tidak terdapat prosedur, tetapi  hanya kumpulan data-data objek (fakta) yang akan diolah, dan relasi antar objek tersebut membentuk aturan yang diperlukan untuk mencari suatu jawaban
  3. Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya.
  4. Dilakukan pembuktian terhadap cocok-tidaknya tujuan dengan data-data yang telah ada dan relasinya.
  5. Prolog ideal untuk memecahkan masalah yang tidak terstruktur, dan prosedur pemecahannya tidak diketahui, khususnya untuk memecahkan masalah non numerik.
  6. Prolog bekerja seperti pikiran manusia, proses pemecahan masalah bergerak di dalam ruang masalah menuju suatu tujuan (jawaban tertentu). Contoh : Pembuatan program catur dengan Prolog

  • Keunggulan Prolog
Keunggulan Prolog terletak pada kemampuannya untuk mengambil kesimpulan (jawaban) dari data-data yang ada. Karena program dalam bahasa prolog tidak memerlukan prosedur (algoritma). Prolog sangat ideal untuk memecahkan masalah yang tidak terstruktur dan yang prosedur pemecahannya tidak diketahui, khususnya untuk memecahkan masalah non-numerik.
Misalnya, dalam pembuatan program catur dengan prolog untuk menentukkan gerakan catur anda tidak perlu menganalisa semua kemungkinan atau menentukkan suatu prosedur tertentu untuk untuk menentukan gerakan berikutnya. Tetapi anda cukup menuliskan aturan umum permainan catur dan lebih baik lagi jika ditambah dengan aturan yang diperoleh dari pengalaman. Prolog akan menentukan sendiri langkah yang akan diambil berdasarkan data-data yang ada saat itu dan aturan-aturan yang diberikan.
  • Aplikasi Prolog
  1. Sistem Pakar (Expert System).
Sistem Pakar (Expert System) adalah program yang menggunakan teknik pengambilan kesimpulan dari data-data yang didapat seperti yang dilakukan oleh seorang ahli dalam memecahkan masalah. Komputer dapat diprogram untuk berbuat seperti orang yang ahli dalam bidang tertentu. Komputer yang demikian dapat dijadikan seperti konsultan atau tenaga ahli di bidang tertentu yang dapat menjawab pertanyaan dan memberikan nasehat yang dibutuhkan. Tujuan utama sistem pakar bukan untuk menggantikan kedudukan seseorang ahli atau pakar tetapi hanya untuk memasyarakatkan pengetahuan dan pengalaman pakar-pakar tersebut. System pakar memungkinkan orang lain meningkatkan produktifitasnya, memperbaiki kualitas keputusannya, sistem pakar bias memecahkan masalah yang rumit meskipun tidak ada seorang ahli.
2.   Pengolahan bahasa alami (Natural Language processing).
    Natural Language Processing adalah program yang dibuat agar pemakai dapat berkomunikasi dengan computer dalam bahasa manusia sehari-hari (bahasa apapun). Sebagai contoh adalah Lotus HAL, yaitu program Bantu untuk Lotus 1-2-3 agar dapat menerima perintah bahasa inggris seperti bahasa biasa. Program pengolahan bahasa alami menggunakan teknik AI dalam analisis input bahasa yang dimasukan melalui keyboard, program tersebut berusaha mengidentifikasi sintak, semantil dan konteks yang terkandung dalam suatu kalimat agar bias sampai pada kesimpulan untuk bias memberikan jawaban.
    3.  Robotik
      Dalam robotik, Prolog digunakan untuk mengolah data masukan yang berasal dari sensor dan mengambil keputusan untuk menentukan gerakan yang harus dilakukan. Apalagi kalau robot menemukan peristiwa yang tidak diharapkan atau situasi yang berbeda.
      4.  Pengenalan Pola (Pattern Recognition).
        Pengenalan pola banyak diterapkan dalam bidang robotic dan pengolahan citra (image processing). Misalkan, bagaimana computer dapat membedakan gambar sebuah benda dan gambar benda yang lain, atau sebuah obyek yang berada diatas obyek lain.
        5.  Belajar
          Bidang ini berkaitan dengan program yang dapat belajar dari kesalahan yang pernah dilakukan, dari pengamatan atau dari hal-hal yang pernah dilakukan. Secara singkat, berarti membuat sebuah computer mampu untuk mengambil manfaat dari pengalaman yang pernah ditemuinya.
          6.  Game
            suatu cara belajar yang digunakan dalam menganalisa interaksi antara sejumlah pemain maupun perorangan yang menunjukkan strategi-strategi yang rasional. Game adalah permainan videoyang dimainkan pada komputer, dan bukan pada konsol permainan. Game dibuat berdasarkan logika yang dikembangkan dan diterapkan ke dalam bentuk visual.
            • Macam-macam Prolog
            1.  Strawberry prolog
            2.  Visual prolog
            3.  SWI prolog
            4.  Turbo prolog

            Laporan Akhir Prolog Silsilah Keluarga

            Laporan Akhir Prolog Silsilah Keluarga



            1.       Sebutkan sintaks – sintaks yang ada pada Prolog!
            o   Section Clauses
            o   Section Predicates
            o   Section Domains
            o   Section Goal
            o   Symbol
            o   Integer
            o   PredicatName(tipe_argumen1, tipe_argumen2,...,tipe_argumenN)

            o   Fakta (Facts) dan Relasi (Relations)
            Dalam penulisannya selalu diakhiri dengan tanda (titik).
            Contoh  : Joni adalah bapak Jani
            Sintaks : bapak(Joni,Jani).

            o   Aturan (Rules)
            Sebuah aturan dinyakatakan sebagai suatu kalimat bersyarat.
            Disimbolkan dengan “:-“.
            contoh : Fakta  : David senang Berenang                                            
            Sintaks : Dimas(David,Berenangl).
            Aturan : Dimas senang hobi yang disenangi David         
            sintaks :       :-senang(Dimas,hobi)senang(David,hobi).

            o   Pertanyaan (Queries)
            Pertanyaan berdasarkan fakta dan aturan yang ada.
            Penulisannya diawali simbol “?-“ dan diakhiri tanda “.”.
            contoh  : Apakah Riri suka hiking?
            sintaks  : ?-suka(Riri,hiking).

            o   Predikat
            Predikat adalah nama simbolik untuk relasi.
            Syarat-syarat penulisan nama predikat :
            -          Harus diawali dengan huruf kecil dan dapat diikuti dengan huruf, bilangan atau garis bawah.
            -          Panjang nama predikat maksimum 250 karakter.
            -          Tidak diperbolehkan menggunakan spasi, tanda minus, tanda bintang dan garis miring.

            2.       Buatlah program silsilah keluarga Anda (praktikan) pada prolog!

            Ini adalah silsilah keluarga saya. 1 keluarga terdiri dari ayah, ibu dan 2 anak.
            Pendeklarasian:
             

            Logika program:
            Jangan lupa untuk memberi titik(.) pada akhir logika.

            Ini adalah hasilnya:

            3.       Buatlah logika program soal nomor 2!

            1.       Masuk kedalam program aplikasi SWI-Prolog
            2.       Lalu klik menu file-new, maka akan muncul notepad yang akan digunakan sebagai lembar kerja untuk mendeklarasikan sintaks tersebut. Isi logika programnya.
            3.       Setelah selesai save dengan format namafile.pl dan close notepadnya. Saya disini memberi namafilenya dengan coba.pl
            4.       Lalu buka Prolog klik file-consult-coba.pl-open
            5.       Terakhir ketikkan sintakas berupa pertanyaan sesuai dengan logika Prolog, seperti pada gambar Sintaks di atas
            6.       Program selesai

            Contoh :

            Apabila kita memasukkan perintah :
            suami(Siapa,rina). -> setelah di enter maka akan menjawab marno

            Keterangan:
            ·         (Siapa) pada perintah tersebut berfungsi untuk menampilkan siapa nama suami rina
            ·         Titik(.) pada perintah tersebut berfungsi sebagai penutup sebuah perintah