Kelas : 3EB11
NPM 27222002
Jurusan : Akuntansi
Laporan ini mengulas tentang pembahasan penerapan 8-puzzles dan family tree yang
dilakukan oleh Crown dan Pauline dalam sebuah video di laboratorium. Crown dan Pauline
menjelaskan tentang cara memikirkan sebuah puzzle dan hirarki agar dapat digunakan untuk
menyelesaikan 8 puzzles dengan efektif selain itu juga membahas beberapa fungsi yang akan
digunakan untuk menyelesaikan masalah 8 puzzles.
Crown dan Pauline juga membahas tentang penggunaan algoritma drag untuk
memecahkan masalah dan menggunakan graph untuk mengetahui family tree. Mereka
menjelaskan bagaimana penggunaan bahasa pemrograman web prolog dapat digunakan
untuk melakukan definisi family tree dan memanggil codingnya menggunakan swipe-all.
Program tersebut juga dapat secara pintar mencari keterkaitan antar data yang telah diinput,
sehingga dapat menyelesaikan masalah dengan lebih cepat dan efektif.
Dalam kesimpulannya, pembahasan penerapan 8 puzzles dan family tree dalam video
tersebut sangat penting dan dapat bermanfaat bagi banyak orang yang tertarik dalam bidang
pemrograman. Crown dan Pauline berterima kasih kepada para pendengarnya dan mengajak
mereka untuk menonton kembali video tersebut jika masih ada yang belum dipahami.
Dengan demikian, laporan ini dapat menjadi referensi bagi para pengembang program yang
ingin mengembangkan solusi untuk masalah 8 puzzle dan family tree.
Study Kasus Family Tree dengan Menggunakan Bahasa
Pemprograman
Penjelasan :
1. Variabel male dan female digunakan untuk menyimpan daftar nama orang laki-laki dan
perempuan.
2. Variabel parent digunakan untuk menyimpan informasi hubungan kekerabatan antara
orang tua dan anak. Setiap tuple dalam list parent berisi dua elemen, yaitu nama orang tua
dan nama anak.
3. Variabel child digunakan untuk menyimpan daftar nama anak yang ada dalam data.
4. Aturan yang dibuat dalam coding sebelumnya diubah menjadi fungsi-fungsi Python yang
menerima argumen X dan Y, yang kemudian akan mengembalikan nilai True atau False
tergantung pada apakah aturan tersebut terpenuhi atau tidak.
5. Fungsi family_children digunakan untuk mencari semua anak atau cucu dari seseorang.
Fungsi ini menerima argumen X (nama orang yang ingin dicari anak/cucunya) dan Child
(nama anak/cucu yang ingin dicari). Fungsi ini menggunakan rekursi untuk mencari anak
atau cucu dari seseorang. Jika Child ada dalam daftar child dan merupakan anak langsung
dari X, maka fungsi ini akan mengembalikan True. Jika tidak, fungsi akan mencari semua
anak dari X dan melakukan rekursi untuk setiap anak tersebut. Fungsi akan mengembalikan
True jika Child ditemukan di antara anak atau cucu X, dan False jika tidak ditemukan.
2. Membuat Aturan
Setelah data disiapkan, langkah selanjutnya adalah membuat aturan dengan
menggunakan bahasa pemrograman Python. Aturan ini akan membantu mengakses
informasi kekerabatan di antara orang-orang dalam data.
Aturan yang dibuat dalam coding tersebut adalah:
● father(X,Y) -> mengembalikan true jika X adalah ayah dari Y.
● mother(X,Y) -> mengembalikan true jika X adalah ibu dari Y.
● son(X,Y) -> mengembalikan true jika X adalah anak laki-laki dari Y.
● daughter(X,Y) -> mengembalikan true jika X adalah anak perempuan dari Y.
● family_children(X, Child) -> mengembalikan true jika Child adalah anak atau
cucu dari X.
3. Menjalankan Aturan
Setelah aturan dibuat, langkah selanjutnya adalah menjalankan aturan dengan
menggunakan bahasa pemrograman Python. Berikut adalah contoh penggunaan aturan
untuk mengakses informasi kekerabatan:
a. Untuk mengetahui apakah Lennart adalah ayah dari Donald:
father(lennart, donald)
b. Untuk mengetahui apakah Lena adalah anak perempuan dari Lennart:
daughter(lena, lennart)
c. Untuk mengetahui anak-anak dari Mike:
family_children(mike, Child)
d. Untuk mengetahui apakah Lisa adalah cucu dari Lennart:
family_children(lennart, Child), child(Child), parent(Child, lisa)
4. Hasil
Hasil dari penggunaan aturan tersebut adalah:
a. father(lennart, donald) mengembalikan true, yang artinya Lennart adalah ayah
dari Donald.
b. daughter(lena, lennart) mengembalikan true, yang artinya Lena adalah anak
perempuan dari Lennart.
c. family_children(mike, Child) mengembalikan beberapa nilai Child, yaitu lennart
dan lena, yang artinya anak-anak dari Mike adalah Lennart dan Lena.
d. family_children(lennart, Child), child(Child), parent(Child, lisa) mengembalikan
true, yang artinya Lisa adalah cucu dari Lennart.
Study Kasus 8-Pazzles dengan Menggunakan Bahasa Pemprograman
4. Dalam fungsi solve(), sebuah priority queue (pq) dibuat untuk menyimpan simpul-
simpul yang sedang diproses. Simpul awal (root) dibuat dengan menghitung biaya (cost)
dari konfigurasi awal terhadap konfigurasi tujuan. Simpul tersebut dimasukkan ke dalam
priority queue.
6. Setelah pencarian selesai, akan tercetak urutan langkah-langkah yang harus dilakukan
untuk mencapai konfigurasi tujuan.
123
506
784
123
586
704
123
586
074
Dalam contoh ini, langkah-langkah perpindahan ubin dari keadaan awal menuju
keadaan tujuan telah berhasil dicetak.