Lompat ke isi

GOLOG (bahasa pemrograman): Perbedaan antara revisi

Ensiklopedia Pengetahuan Universitas Islam Sultan Agung
Maintenance script (bicara | kontrib)
Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 29476462; atribusi sumber disertakan.
 
Maintenance script (bicara | kontrib)
Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi
 
Baris 1: Baris 1:
'''GOLOG''' adalah sebuah [[bahasa pemrograman]] logika tingkat tinggi yang dirancang untuk spesifikasi dan pelaksanaan tindakan-tindakan kompleks dalam lingkungan yang dinamis. Bahasa ini berbasis pada [[kalkulus situasi]] (''situation calculus''), suatu kerangka kerja dalam [[logika matematika]] yang digunakan untuk penalaran tentang tindakan dan perubahan dalam sistem formal.
'''GOLOG''' adalah sebuah [[bahasa pemrograman]] logika tingkat tinggi yang dirancang untuk spesifikasi dan pelaksanaan tindakan-tindakan kompleks dalam lingkungan yang dinamis. Bahasa ini berbasis pada [[kalkulus situasi]] (''situation calculus''), suatu kerangka kerja dalam [[logika matematika]] yang digunakan untuk penalaran tentang tindakan dan perubahan dalam sistem formal.<ref name=":0">Hector J. Levesque. [https://linkinghub.elsevier.com/retrieve/pii/S0743106696001215 GOLOG: A logic programming language for dynamic domains]. ''The Journal of Logic Programming''. 1997-04-01. Vol. 31 (1). hlm. 59–83. doi:10.1016/S0743-1066(96)00121-5.</ref>


GOLOG menggunakan logika tingkat pertama ''(first-order logic)'' sebagai fondasinya, memungkinkan pengguna untuk merepresentasikan pengetahuan tentang dunia serta melakukan penalaran terhadap urutan tindakan yang dapat diambil oleh agen cerdas. Dengan pendekatan ini, GOLOG memungkinkan perencanaan dan pengambilan keputusan secara otomatis dalam berbagai skenario yang melibatkan dinamika dunia nyata.
GOLOG menggunakan logika tingkat pertama ''(first-order logic)'' sebagai fondasinya, memungkinkan pengguna untuk merepresentasikan pengetahuan tentang dunia serta melakukan penalaran terhadap urutan tindakan yang dapat diambil oleh agen cerdas. Dengan pendekatan ini, GOLOG memungkinkan perencanaan dan pengambilan keputusan secara otomatis dalam berbagai skenario yang melibatkan dinamika dunia nyata.<ref name=":0" />


Bahasa ini dikembangkan di [[Universitas Toronto]] sebagai bagian dari penelitian dalam bidang [[kecerdasan buatan]], khususnya dalam perencanaan otomatis dan [[Agen kecerdasan|agen]] [[Agen kecerdasan|kecerdasan]].
Bahasa ini dikembangkan di [[Universitas Toronto]] sebagai bagian dari penelitian dalam bidang [[kecerdasan buatan]], khususnya dalam perencanaan otomatis dan [[Agen kecerdasan|agen]] [[Agen kecerdasan|kecerdasan]].<ref>[https://linkinghub.elsevier.com/retrieve/pii/S0743106696001215 "GOLOG: Bahasa pemrograman logika untuk domain dinamis"].</ref>


== Sejarah ==
== Sejarah ==
Konsep kalkulus situasi yang menjadi dasar pengembangan bahasa pemrograman GOLOG pertama kali diusulkan oleh [[John McCarty (kelahiran 1844)|John McCarthy]] pada tahun 1963. Dalam makalahnya, McCarthy memperkenalkan ''situation calculus'' sebagai kerangka formal untuk merepresentasikan dinamika dunia, terutama bagaimana keadaan dunia berubah akibat tindakan-tindakan yang dilakukan oleh agen.
Konsep kalkulus situasi yang menjadi dasar pengembangan bahasa pemrograman GOLOG pertama kali diusulkan oleh [[John McCarty (kelahiran 1844)|John McCarthy]] pada tahun 1963.<ref name=":1">[https://web.archive.org/web/20221010222122/http://cialdea.inf.uniroma3.it/teaching/logica/materiale/dispense-golog.pdf Il Calcolo delle Situazioni dan il linguaggio Golog].</ref> Dalam makalahnya, McCarthy memperkenalkan ''situation calculus'' sebagai kerangka formal untuk merepresentasikan dinamika dunia, terutama bagaimana keadaan dunia berubah akibat tindakan-tindakan yang dilakukan oleh agen.


GOLOG sendiri dikembangkan pada pertengahan tahun 1990-an oleh sekelompok peneliti di Universitas Toronto, termasuk [[Hector Levesque]], [[Raymond Reiter]], [[Yves Lespérance]], [[Fangzhen Lin]], dan [[Richard B. Scherl]]. Tujuan utama pengembangannya adalah menciptakan bahasa pemrograman yang dapat menggabungkan penalaran logis dengan kemampuan agen untuk berinteraksi dengan dunia nyata secara otonom. Dengan menggunakan dasar kalkulus situasi, GOLOG memungkinkan deskripsi prosedural dari perilaku agen sambil tetap mempertahankan kemampuan untuk melakukan penalaran deklaratif.
GOLOG sendiri dikembangkan pada pertengahan tahun 1990-an oleh sekelompok peneliti di Universitas Toronto, termasuk [[Hector Levesque]], [[Raymond Reiter]], [[Yves Lespérance]], [[Fangzhen Lin]], dan [[Richard B. Scherl]]. Tujuan utama pengembangannya adalah menciptakan bahasa pemrograman yang dapat menggabungkan penalaran logis dengan kemampuan agen untuk berinteraksi dengan dunia nyata secara otonom. Dengan menggunakan dasar kalkulus situasi, GOLOG memungkinkan deskripsi prosedural dari perilaku agen sambil tetap mempertahankan kemampuan untuk melakukan penalaran deklaratif.<ref name=":1" />


== Bahasa ==
== Bahasa ==
Penerjemahan GOLOG secara otomatis mempertahankan representasi eksplisit dari dunia dinamis yang dimodelkan, berdasarkan aksioma yang disediakan oleh pengguna. [[Aksioma]] ini mencakup prasyarat dan efek dari tindakan, serta keadaan awal dunia. Dengan pendekatan ini, program GOLOG mampu melakukan penalaran terhadap kondisi dunia dan mengevaluasi dampak dari berbagai tindakan potensial sebelum menentukan urutan tindakan yang akan dijalankan. Hal ini memungkinkan sistem untuk bersikap proaktif dan adaptif dalam merespons perubahan lingkungan.
Penerjemahan GOLOG secara otomatis mempertahankan representasi eksplisit dari dunia dinamis yang dimodelkan, berdasarkan aksioma yang disediakan oleh pengguna. [[Aksioma]] ini mencakup prasyarat dan efek dari tindakan, serta keadaan awal dunia. Dengan pendekatan ini, program GOLOG mampu melakukan penalaran terhadap kondisi dunia dan mengevaluasi dampak dari berbagai tindakan potensial sebelum menentukan urutan tindakan yang akan dijalankan. Hal ini memungkinkan sistem untuk bersikap proaktif dan adaptif dalam merespons perubahan lingkungan.<ref>[https://zbmath.org/software/2159 Software Search - zbMATH Open]. ''zbmath.org''.</ref>


GOLOG merupakan bahasa pemrograman logika dan memiliki karakteristik yang sangat berbeda dari bahasa pemrograman konvensional. Dalam bahasa pemrograman prosedural seperti [[C (bahasa pemrograman)|C]], eksekusi program mengikuti urutan pernyataan yang telah ditentukan oleh pemrogram. Subrutin dibangun sebagai rangkaian perintah, yang kemudian dijalankan komputer secara linier.
GOLOG merupakan bahasa pemrograman logika dan memiliki karakteristik yang sangat berbeda dari bahasa pemrograman konvensional. Dalam bahasa pemrograman prosedural seperti [[C (bahasa pemrograman)|C]], eksekusi program mengikuti urutan pernyataan yang telah ditentukan oleh pemrogram. Subrutin dibangun sebagai rangkaian perintah, yang kemudian dijalankan komputer secara linier.


Sebaliknya, GOLOG sebagai bahasa pemrograman generasi kelima bekerja berdasarkan model abstrak. Dalam [[paradigma]] ini, program mendefinisikan tujuan atau masalah, dan interpreter bertugas menghasilkan urutan tindakan yang memenuhi tujuan tersebut. Pendekatan deklaratif ini sangat berguna dalam penanganan masalah kompleks, terutama dalam bidang seperti [[robotika]], di mana agen harus berinteraksi dengan dunia nyata yang tidak sepenuhnya terprediksi.
Sebaliknya, GOLOG sebagai bahasa pemrograman generasi kelima bekerja berdasarkan model abstrak. Dalam [[paradigma]] ini, program mendefinisikan tujuan atau masalah, dan interpreter bertugas menghasilkan urutan tindakan yang memenuhi tujuan tersebut. Pendekatan deklaratif ini sangat berguna dalam penanganan masalah kompleks, terutama dalam bidang seperti [[robotika]], di mana agen harus berinteraksi dengan dunia nyata yang tidak sepenuhnya terprediksi.<ref>Alfredo Gabaldon. [https://www.cs.toronto.edu/~alfredo/Papers/Gabaldon-KRA11.pdf Programming Hierarchical Task Networks in the Situation Calculus]. 2002.</ref>


Program GOLOG mendefinisikan ruang keadaan (state space) tempat agen diperbolehkan untuk beroperasi. Jalur atau solusi dalam domain simbolik dicari melalui proses pencarian dalam ruang keadaan. Untuk meningkatkan efisiensi, program GOLOG sering diwujudkan dalam bentuk jaringan tugas hierarkis, yang membantu membagi masalah besar menjadi sub-tugas yang lebih kecil dan lebih mudah dikelola.
Program GOLOG mendefinisikan ruang keadaan (state space) tempat agen diperbolehkan untuk beroperasi. Jalur atau solusi dalam domain simbolik dicari melalui proses pencarian dalam ruang keadaan. Untuk meningkatkan efisiensi, program GOLOG sering diwujudkan dalam bentuk jaringan tugas hierarkis, yang membantu membagi masalah besar menjadi sub-tugas yang lebih kecil dan lebih mudah dikelola.


Seiring perkembangannya, GOLOG telah mengalami berbagai perluasan. Salah satu varian penting adalah [[ConGolog]], yang memperkenalkan kemampuan untuk menjalankan tugas secara konkuren serta menangani interupsi. Varian lainnya seperti [[IndiGolog]] dan [[ReadyLog]] dirancang untuk aplikasi waktu nyata, di mana sistem perlu menangani pembacaan sensor yang diperbarui secara terus-menerus dan meresponsnya secara langsung.
Seiring perkembangannya, GOLOG telah mengalami berbagai perluasan. Salah satu varian penting adalah [[ConGolog]], yang memperkenalkan kemampuan untuk menjalankan tugas secara konkuren serta menangani interupsi. Varian lainnya seperti [[IndiGolog]] dan [[ReadyLog]] dirancang untuk aplikasi waktu nyata, di mana sistem perlu menangani pembacaan sensor yang diperbarui secara terus-menerus dan meresponsnya secara langsung.<ref>Jens Claßen. [https://publications.rwth-aachen.de/record/229059/files/4809.pdf?version=2 Planning and Verification in the Agent Language Golog]. 2013.</ref>


== Penggunaan ==
== Penggunaan ==
GOLOG telah diterapkan secara luas dalam pemodelan perilaku agen otonom, terutama dalam konteks sistem yang membutuhkan perencanaan dan pengambilan keputusan secara dinamis. Dengan memanfaatkan formalisme tindakan berbasis logika, GOLOG memungkinkan perwakilan eksplisit terhadap lingkungan serta efek dari tindakan dasar yang dilakukan oleh agen. Selain itu, bahasa ini mendukung konstruksi tindakan kompleks dengan memanfaatkan struktur dan kontrol alur yang umum dalam bahasa pemrograman, seperti pengulangan, kondisional, dan pemanggilan prosedur.
GOLOG telah diterapkan secara luas dalam pemodelan perilaku agen otonom, terutama dalam konteks sistem yang membutuhkan perencanaan dan pengambilan keputusan secara dinamis. Dengan memanfaatkan formalisme tindakan berbasis logika, GOLOG memungkinkan perwakilan eksplisit terhadap lingkungan serta efek dari tindakan dasar yang dilakukan oleh agen. Selain itu, bahasa ini mendukung konstruksi tindakan kompleks dengan memanfaatkan struktur dan kontrol alur yang umum dalam bahasa pemrograman, seperti pengulangan, kondisional, dan pemanggilan prosedur.


Salah satu bidang utama penggunaan GOLOG adalah dalam pengendalian tingkat tinggi robot dan proses industri, di mana sistem perlu mengelola urutan tindakan berdasarkan kondisi lingkungan yang terus berubah. GOLOG juga telah digunakan dalam pengembangan [[agen virtual]], sistem simulasi kejadian diskrit, dan aplikasi berbasis pemodelan cerdas lainnya.
Salah satu bidang utama penggunaan GOLOG adalah dalam pengendalian tingkat tinggi robot dan proses industri, di mana sistem perlu mengelola urutan tindakan berdasarkan kondisi lingkungan yang terus berubah. GOLOG juga telah digunakan dalam pengembangan [[agen virtual]], sistem simulasi kejadian diskrit, dan aplikasi berbasis pemodelan cerdas lainnya.<ref>Sergio Alejandro G'omez. [https://sedici.unlp.edu.ar/bitstream/handle/10915/21467/Documento_completo.pdf?sequence=1&isAllowed=y Planning and Verification in the Agent Language Golog].</ref>


Selain itu, GOLOG dapat digunakan sebagai kerangka kerja untuk mengembangkan sistem agen berbasis paradigma ''Belief'' ''Desire Intention'' (BDI), yaitu model arsitektur agen yang beroperasi berdasarkan keyakinan, keinginan, dan niat. Dengan kemampuannya untuk melakukan penalaran deklaratif dan prosedural secara bersamaan, GOLOG menawarkan fleksibilitas dalam membangun agen yang mampu membuat keputusan secara otonom di lingkungan yang kompleks.
Selain itu, GOLOG dapat digunakan sebagai kerangka kerja untuk mengembangkan sistem agen berbasis paradigma ''Belief'' ''Desire Intention'' (BDI), yaitu model arsitektur agen yang beroperasi berdasarkan keyakinan, keinginan, dan niat. Dengan kemampuannya untuk melakukan penalaran deklaratif dan prosedural secara bersamaan, GOLOG menawarkan fleksibilitas dalam membangun agen yang mampu membuat keputusan secara otonom di lingkungan yang kompleks.<ref>Sebastian Sardina. [https://link.springer.com/chapter/10.1007/978-3-642-14843-9_6 Golog Speaks the BDI Language]. ''Programming Multi-Agent Systems''. Springer. 2010. hlm. 82–99. doi:10.1007/978-3-642-14843-9_6. ISBN 978-3-642-14843-9.</ref>


== Perencanaan dan Penulisan Naskah ==
== Perencanaan dan Penulisan Naskah ==
Berbeda dengan ''[[Planning Domain Definition Language]]'' (PDDL), GOLOG tidak hanya mendukung perencanaan otomatis, tetapi juga memungkinkan penulisan skrip perilaku agen secara eksplisit. Dalam konteks perencanaan, pengguna menentukan keadaan tujuan dalam model dunia, dan pemecah masalah ''(problem solver)'' bertugas menemukan urutan tindakan yang akan membawa sistem dari keadaan awal menuju keadaan tujuan tersebut.
Berbeda dengan ''[[Planning Domain Definition Language]]'' (PDDL), GOLOG tidak hanya mendukung perencanaan otomatis, tetapi juga memungkinkan penulisan skrip perilaku agen secara eksplisit. Dalam konteks perencanaan, pengguna menentukan keadaan tujuan dalam model dunia, dan pemecah masalah ''(problem solver)'' bertugas menemukan urutan tindakan yang akan membawa sistem dari keadaan awal menuju keadaan tujuan tersebut.<ref>Till Hofmann. [https://ojs.aaai.org/index.php/AAAI/article/view/10414 Continual Planning in Golog]. ''Proceedings of the AAAI Conference on Artificial Intelligence''. 2016-03-05. Vol. 30 (1). doi:10.1609/aaai.v30i1.10414.</ref>


Kemampuan ini memungkinkan GOLOG digunakan untuk penulisan skenario dinamis, seperti menyusun jalan cerita atau alur naratif. Dalam pendekatan ini, pengguna cukup menentukan kondisi akhir yang diinginkan dari cerita. Selanjutnya, pemecah GOLOG akan menjelajahi kemungkinan tindakan yang dapat dilakukan dalam keadaan saat ini, dan menerapkannya secara berurutan hingga tujuan tercapai. Seluruh proses ini bergantung pada spesifikasi formal dari keadaan tujuan dan tindakan-tindakan yang dimungkinkan, yang direpresentasikan dalam model dunia logis.
Kemampuan ini memungkinkan GOLOG digunakan untuk penulisan skenario dinamis, seperti menyusun jalan cerita atau alur naratif. Dalam pendekatan ini, pengguna cukup menentukan kondisi akhir yang diinginkan dari cerita. Selanjutnya, pemecah GOLOG akan menjelajahi kemungkinan tindakan yang dapat dilakukan dalam keadaan saat ini, dan menerapkannya secara berurutan hingga tujuan tercapai. Seluruh proses ini bergantung pada spesifikasi formal dari keadaan tujuan dan tindakan-tindakan yang dimungkinkan, yang direpresentasikan dalam model dunia logis.<ref>Alexander Ferrein Frank Dylla. [https://aaai.org/papers/ws02-05-005-acting-and-deliberating-using-golog-in-robotic-soccer-a-hybrid-architecture/ Acting and Deliberating using Golog in Robotic Soccer — A Hybrid Architecture]. ''AAAI''.</ref>


Selain mendukung perencanaan otomatis, GOLOG juga dapat digunakan untuk menulis skrip perilaku reaktif. Dalam pendekatan ini, tidak diperlukan pemecah masalah, karena urutan tindakan telah ditentukan sebelumnya oleh pemrogram dalam bentuk skrip. Interpreter GOLOG, yang umumnya diimplementasikan menggunakan bahasa Prolog, akan mengeksekusi skrip ini dan secara bertahap membawa sistem menuju keadaan yang diinginkan. Pendekatan skrip ini berguna untuk aplikasi yang membutuhkan respons cepat terhadap rangsangan lingkungan, tanpa memerlukan proses perencanaan ulang secara terus-menerus.
Selain mendukung perencanaan otomatis, GOLOG juga dapat digunakan untuk menulis skrip perilaku reaktif. Dalam pendekatan ini, tidak diperlukan pemecah masalah, karena urutan tindakan telah ditentukan sebelumnya oleh pemrogram dalam bentuk skrip. Interpreter GOLOG, yang umumnya diimplementasikan menggunakan bahasa Prolog, akan mengeksekusi skrip ini dan secara bertahap membawa sistem menuju keadaan yang diinginkan. Pendekatan skrip ini berguna untuk aplikasi yang membutuhkan respons cepat terhadap rangsangan lingkungan, tanpa memerlukan proses perencanaan ulang secara terus-menerus.<ref>Yves Lespérance. [https://link.springer.com/chapter/10.1007/10719619_13 Reactivity in a Logic-Based Robot Programming Framework]. ''Intelligent Agents VI. Agent Theories, Architectures, and Languages''. Springer. 2000. hlm. 173–187. doi:10.1007/10719619_13. ISBN 978-3-540-46467-9.</ref>


== Referensi ==
== Referensi ==
<references />


== Sumber dan atribusi ==
== Sumber dan atribusi ==


Artikel ini diadaptasi dalam mode teks dari
Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=GOLOG+%28bahasa+pemrograman%29&oldid=29476462 Wikipedia bahasa Indonesia], revisi 29476462 (2026-07-19T15:29:16Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.
[https://id.wikipedia.org/w/index.php?title=GOLOG_%28bahasa_pemrograman%29&oldid=29476462 Wikipedia bahasa Indonesia],
 
revisi 29476462 (2026-07-19T15:29:16Z).
<!-- WIKI_UNISSULA_PRESENTATION_V4 -->
Gambar, media, infobox, templat navigasi, dan kategori sumber
tidak diimpor ke Wiki Unissula.
Atribusi dan lisensi mengikuti ketentuan Creative Commons
Atribusi-BerbagiSerupa (CC BY-SA) pada sumber Wikipedia.

Revisi terkini sejak 23 Agustus 2026 03.08

GOLOG adalah sebuah bahasa pemrograman logika tingkat tinggi yang dirancang untuk spesifikasi dan pelaksanaan tindakan-tindakan kompleks dalam lingkungan yang dinamis. Bahasa ini berbasis pada kalkulus situasi (situation calculus), suatu kerangka kerja dalam logika matematika yang digunakan untuk penalaran tentang tindakan dan perubahan dalam sistem formal.[1]

GOLOG menggunakan logika tingkat pertama (first-order logic) sebagai fondasinya, memungkinkan pengguna untuk merepresentasikan pengetahuan tentang dunia serta melakukan penalaran terhadap urutan tindakan yang dapat diambil oleh agen cerdas. Dengan pendekatan ini, GOLOG memungkinkan perencanaan dan pengambilan keputusan secara otomatis dalam berbagai skenario yang melibatkan dinamika dunia nyata.[1]

Bahasa ini dikembangkan di Universitas Toronto sebagai bagian dari penelitian dalam bidang kecerdasan buatan, khususnya dalam perencanaan otomatis dan agen kecerdasan.[2]

Sejarah

Konsep kalkulus situasi yang menjadi dasar pengembangan bahasa pemrograman GOLOG pertama kali diusulkan oleh John McCarthy pada tahun 1963.[3] Dalam makalahnya, McCarthy memperkenalkan situation calculus sebagai kerangka formal untuk merepresentasikan dinamika dunia, terutama bagaimana keadaan dunia berubah akibat tindakan-tindakan yang dilakukan oleh agen.

GOLOG sendiri dikembangkan pada pertengahan tahun 1990-an oleh sekelompok peneliti di Universitas Toronto, termasuk Hector Levesque, Raymond Reiter, Yves Lespérance, Fangzhen Lin, dan Richard B. Scherl. Tujuan utama pengembangannya adalah menciptakan bahasa pemrograman yang dapat menggabungkan penalaran logis dengan kemampuan agen untuk berinteraksi dengan dunia nyata secara otonom. Dengan menggunakan dasar kalkulus situasi, GOLOG memungkinkan deskripsi prosedural dari perilaku agen sambil tetap mempertahankan kemampuan untuk melakukan penalaran deklaratif.[3]

Bahasa

Penerjemahan GOLOG secara otomatis mempertahankan representasi eksplisit dari dunia dinamis yang dimodelkan, berdasarkan aksioma yang disediakan oleh pengguna. Aksioma ini mencakup prasyarat dan efek dari tindakan, serta keadaan awal dunia. Dengan pendekatan ini, program GOLOG mampu melakukan penalaran terhadap kondisi dunia dan mengevaluasi dampak dari berbagai tindakan potensial sebelum menentukan urutan tindakan yang akan dijalankan. Hal ini memungkinkan sistem untuk bersikap proaktif dan adaptif dalam merespons perubahan lingkungan.[4]

GOLOG merupakan bahasa pemrograman logika dan memiliki karakteristik yang sangat berbeda dari bahasa pemrograman konvensional. Dalam bahasa pemrograman prosedural seperti C, eksekusi program mengikuti urutan pernyataan yang telah ditentukan oleh pemrogram. Subrutin dibangun sebagai rangkaian perintah, yang kemudian dijalankan komputer secara linier.

Sebaliknya, GOLOG sebagai bahasa pemrograman generasi kelima bekerja berdasarkan model abstrak. Dalam paradigma ini, program mendefinisikan tujuan atau masalah, dan interpreter bertugas menghasilkan urutan tindakan yang memenuhi tujuan tersebut. Pendekatan deklaratif ini sangat berguna dalam penanganan masalah kompleks, terutama dalam bidang seperti robotika, di mana agen harus berinteraksi dengan dunia nyata yang tidak sepenuhnya terprediksi.[5]

Program GOLOG mendefinisikan ruang keadaan (state space) tempat agen diperbolehkan untuk beroperasi. Jalur atau solusi dalam domain simbolik dicari melalui proses pencarian dalam ruang keadaan. Untuk meningkatkan efisiensi, program GOLOG sering diwujudkan dalam bentuk jaringan tugas hierarkis, yang membantu membagi masalah besar menjadi sub-tugas yang lebih kecil dan lebih mudah dikelola.

Seiring perkembangannya, GOLOG telah mengalami berbagai perluasan. Salah satu varian penting adalah ConGolog, yang memperkenalkan kemampuan untuk menjalankan tugas secara konkuren serta menangani interupsi. Varian lainnya seperti IndiGolog dan ReadyLog dirancang untuk aplikasi waktu nyata, di mana sistem perlu menangani pembacaan sensor yang diperbarui secara terus-menerus dan meresponsnya secara langsung.[6]

Penggunaan

GOLOG telah diterapkan secara luas dalam pemodelan perilaku agen otonom, terutama dalam konteks sistem yang membutuhkan perencanaan dan pengambilan keputusan secara dinamis. Dengan memanfaatkan formalisme tindakan berbasis logika, GOLOG memungkinkan perwakilan eksplisit terhadap lingkungan serta efek dari tindakan dasar yang dilakukan oleh agen. Selain itu, bahasa ini mendukung konstruksi tindakan kompleks dengan memanfaatkan struktur dan kontrol alur yang umum dalam bahasa pemrograman, seperti pengulangan, kondisional, dan pemanggilan prosedur.

Salah satu bidang utama penggunaan GOLOG adalah dalam pengendalian tingkat tinggi robot dan proses industri, di mana sistem perlu mengelola urutan tindakan berdasarkan kondisi lingkungan yang terus berubah. GOLOG juga telah digunakan dalam pengembangan agen virtual, sistem simulasi kejadian diskrit, dan aplikasi berbasis pemodelan cerdas lainnya.[7]

Selain itu, GOLOG dapat digunakan sebagai kerangka kerja untuk mengembangkan sistem agen berbasis paradigma Belief Desire Intention (BDI), yaitu model arsitektur agen yang beroperasi berdasarkan keyakinan, keinginan, dan niat. Dengan kemampuannya untuk melakukan penalaran deklaratif dan prosedural secara bersamaan, GOLOG menawarkan fleksibilitas dalam membangun agen yang mampu membuat keputusan secara otonom di lingkungan yang kompleks.[8]

Perencanaan dan Penulisan Naskah

Berbeda dengan Planning Domain Definition Language (PDDL), GOLOG tidak hanya mendukung perencanaan otomatis, tetapi juga memungkinkan penulisan skrip perilaku agen secara eksplisit. Dalam konteks perencanaan, pengguna menentukan keadaan tujuan dalam model dunia, dan pemecah masalah (problem solver) bertugas menemukan urutan tindakan yang akan membawa sistem dari keadaan awal menuju keadaan tujuan tersebut.[9]

Kemampuan ini memungkinkan GOLOG digunakan untuk penulisan skenario dinamis, seperti menyusun jalan cerita atau alur naratif. Dalam pendekatan ini, pengguna cukup menentukan kondisi akhir yang diinginkan dari cerita. Selanjutnya, pemecah GOLOG akan menjelajahi kemungkinan tindakan yang dapat dilakukan dalam keadaan saat ini, dan menerapkannya secara berurutan hingga tujuan tercapai. Seluruh proses ini bergantung pada spesifikasi formal dari keadaan tujuan dan tindakan-tindakan yang dimungkinkan, yang direpresentasikan dalam model dunia logis.[10]

Selain mendukung perencanaan otomatis, GOLOG juga dapat digunakan untuk menulis skrip perilaku reaktif. Dalam pendekatan ini, tidak diperlukan pemecah masalah, karena urutan tindakan telah ditentukan sebelumnya oleh pemrogram dalam bentuk skrip. Interpreter GOLOG, yang umumnya diimplementasikan menggunakan bahasa Prolog, akan mengeksekusi skrip ini dan secara bertahap membawa sistem menuju keadaan yang diinginkan. Pendekatan skrip ini berguna untuk aplikasi yang membutuhkan respons cepat terhadap rangsangan lingkungan, tanpa memerlukan proses perencanaan ulang secara terus-menerus.[11]

Referensi

  1. 1,0 1,1 Hector J. Levesque. GOLOG: A logic programming language for dynamic domains. The Journal of Logic Programming. 1997-04-01. Vol. 31 (1). hlm. 59–83. doi:10.1016/S0743-1066(96)00121-5.
  2. "GOLOG: Bahasa pemrograman logika untuk domain dinamis".
  3. 3,0 3,1 Il Calcolo delle Situazioni dan il linguaggio Golog.
  4. Software Search - zbMATH Open. zbmath.org.
  5. Alfredo Gabaldon. Programming Hierarchical Task Networks in the Situation Calculus. 2002.
  6. Jens Claßen. Planning and Verification in the Agent Language Golog. 2013.
  7. Sergio Alejandro G'omez. Planning and Verification in the Agent Language Golog.
  8. Sebastian Sardina. Golog Speaks the BDI Language. Programming Multi-Agent Systems. Springer. 2010. hlm. 82–99. doi:10.1007/978-3-642-14843-9_6. ISBN 978-3-642-14843-9.
  9. Till Hofmann. Continual Planning in Golog. Proceedings of the AAAI Conference on Artificial Intelligence. 2016-03-05. Vol. 30 (1). doi:10.1609/aaai.v30i1.10414.
  10. Alexander Ferrein Frank Dylla. Acting and Deliberating using Golog in Robotic Soccer — A Hybrid Architecture. AAAI.
  11. Yves Lespérance. Reactivity in a Logic-Based Robot Programming Framework. Intelligent Agents VI. Agent Theories, Architectures, and Languages. Springer. 2000. hlm. 173–187. doi:10.1007/10719619_13. ISBN 978-3-540-46467-9.

Sumber dan atribusi

Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 29476462 (2026-07-19T15:29:16Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.