Prolog
PROLOG
Nama Prolog merupakan singkatan dari "Programming in Logic". Ide untuk mengembangkan pemrograman dalam logika, pertama kali dilakukan oleh Robert Kowalski di Edinburgh, Skotlandia pada tahun 1970-an. 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 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 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.