Senin, 29 April 2013

Strawberry Prolog dan TicTacToe

Strawberry Prolog


Strawberry Prolog dibuat oleh Institut Matematika dan Informatika pada Akademi Ilmu Pengetahuan Bulgaria. Versi pertama dirilis pada tahun 1996. Pemimpin tim Strawberry Dimiter Dobrev. Strawberry Prolog adalah dialek dari bahasa pemrograman Prolog. Sintaks-nya adalah sangat dekat dengan ISO-Prolog tetapi memiliki banyak ekstensi yang bukan bagian dari standar. Gagasan utama dari Strawberry Prolog adalah sangat mudah digunakan dan itulah sebabnya beberapa universitas menggunakannya untuk kursus mereka. Prolog Strawberry Prolog sedang dikembangkan di Institut Matematika dan Informatika dan di Fakultas Matematika dan Informatika. Kompiler Prolog ini merupakan bagian dari proyek AI.

Sejarah Prolog
Prolog adalah bahasa pemrograman logika atau di sebut juga sebagai bahasa non-procedural. Namanya diambil dari bahasa Perancis programmation en logique (pemrograman logika). Bahasa ini diciptakan oleh Alain Colmerauerdan Robert Kowalski sekitar tahun 1972 dalam upaya untuk menciptakan suatu bahasa pemrograman yang memungkinkan pernyataan logika alih-alih rangkaian perintah untuk dijalankan komputer. Ia mengembangkan pemrograman tersebut secara teoritis yang kemudian dilanjutkan dalam demonstrasi eksperimen oleh Maarten van Emden, juga dari Edinburgh. Kemudian Alain Colmerauer dari Marseilles, Perancis membuat implementasinya. Bahasa ini pertama kali dikembangkan oleh Alain Colmerauer dan P. Roussel di Universitas Marseilles Perancis pada tahun 1972. Selama tahun 70-an, Prolog menjadi populer di Eropa untuk aplikasi artificial intelegence. 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.

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 satu 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 Konferensi International I dalam sistem Generasi Kelima di Tokyo, Jepang. Jepang yang saat itu mengalami kesulitan bersaing dalam pemasaran komputer dengan Amerika Serikat, mencanangkan suatu rencana untuk mengembangkan teknologi perangkat keras dan perangkat lunak komputer generasi kelima untuk tahun 1990-an. Dan bahasa yang dipilih adalah Prolog. Sejak saat itu, banyak orang mulai menaruh minat pada Prolog dan pengembangan 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 sangat penting dalam program aplikasi kecerdasan buatan (artificial intelegence) dan pengembangan sistem pakar (expert system).

Prolog merupakan pemrograman berupa Object Oriented Language atau declarative Language, dimana prolog tidak terdapat prosedur, tetapi hanya kumpulan data-data objek (fakta) yang akan diolah dan relasi antar objek tersebut yang membentuk suatu aturan. Aturan-aturan ini disebut heuristik dan diperlukan dalam mencari suatu jawaban. Dengan kata lain program dalam Prolog adalah sebuah database. Pemrogram menentukan goal (tujuan) dan komputer akan menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya menggunakan “formal reasoning” yang membuktikan cocok tidaknya tujuan dengan data-data yang telah ada dan relasinya. Prolog memecahkan masalah seperti yang dilakukan oleh pikiran manusia. Dengan demikian, Prolog sangat ideal untuk memecahkan masalah yang tidak terstruktur dan prosedur pemecahannya tidak diketahui, khususnya untuk memecahkan masalah non numerik.

Perbedaan Prolog dengan Bahasa Lain
Bisa dibilang lebih banyak bahasa pemrograman saat ini yang memiliki sistem Procedural Language, yang penggunaannya menggunakan algoritma terlebih dahulu dalam membuat suatu penyelesaian. Prosedur dapat dibuat secara berulang sampai ditemukan solusi yang diinginkan, yang sudah barang tentu dikendalikan oleh si pembuat program. Inti dari prosedural itu sendiri adalah memberikan sederetan fungsi atau perintah, sehingga komputer dapat menjalankan pemikiran secara otomatis untuk mendapatkan solusi.

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.
Formal Reasoning digunakan untuk mencapai goal atau tujuan, dengan cara menentukan cocok tidaknya tujuan dengan data-data yang sudah ada beserta relasinya. Dengan kata lain prolog bekerja seperti yang dilakukan oleh pemikiran manusia, prolog cocok digunakan untuk memecahkan masalah yang tidak diketahui prosedur pemecahan nya atau dengan kata lain tidak terstruktur dan non numerik.

Bahasa Pemrograman Prolog
  • Object oriented languange atau declarative languange.
  • 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
  • Programmer menentukan tujuan (goal), dan komputer menentukan bagaimana cara mencapai tujuan tersebut serta mencari jawabannya.
  • Dilakukan pembuktian terhadap cocok-tidaknya tujuan dengan data-data yang telah ada dan relasinya.
  • Prolog ideal untuk memecahkan masalah yang tidak terstruktur, dan prosedur pemecahannya tidak diketahui, khususnya untuk memecahkan masalah non numerik.
  • Prolog bekerja seperti pikiran manusia, proses pemecahan masalah bergerak di dalam ruang masalah menuju suatu tujuan (jawaban tertentu).
Aplikasi Prolog
1. Sistem Pakar (Expert System)
Program menggunakan teknik pengambilan kesimpulan dari data-data yang didapat, layaknya seorang ahli.
2. Pengolahan Bahasa Alami (Natural Languange Processing), Program dibuat agar pemakai dapat berkomunikasi dengan komputer dalam bahasa manusia sehari-hari, layaknya penterjemah.
3. Robotik, Prolog digunakan untuk mengolah data masukanyang berasal dari sensor dan mengambil keputusan untuk menentukan gerakan yang harus dilakukan.
4. Pengenalan Pola (Pattern Recognition), Banyak digunakan dalam image processing, dimana komputer dapat membedakan suatu objek dengan objek yang lain.
5. Belajar (Learning), Program belajar dari kesalahan yang pernah dilakukan, dari pengamataqn atau dari hal-hal yang pernah diminta untuk dilakukan.

-------------------------------------------------------------------------------------------------------------------------

Game untuk tugas Softskill
Game yang akan kami buat adalah game Tic Tac Toe. apakah itu game Tic Tac Toe ?  game Tic Tac Toe adalah permainan yang pada umumnya terdiri dari 3 x 3 bidak yang lambang dari permainan Tic Tac Toe ini adalah O dan X. Game ini termasuk game melatih kecerdasan, karena pada game ini, pemain harus mengatur strategi agar bisa memenangkan permainan.

berikut adalah gambaran game Tic Tac Toe :