0% menganggap dokumen ini bermanfaat (0 suara)
120 tayangan11 halaman

Penelusuran Silsilah Raja dengan DFS

Sistem informasi ini mengimplementasikan algoritma Depth First Search untuk menelusuri silsilah keluarga dinasti Majapahit dan Sriwijaya dalam struktur pohon. Program menerima input nama raja dan hubungan keturunan untuk membangun struktur data pohon, kemudian melakukan pencarian silsilah secara mendalam dengan DFS.

Diunggah oleh

Seno Isbiyantoro
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
120 tayangan11 halaman

Penelusuran Silsilah Raja dengan DFS

Sistem informasi ini mengimplementasikan algoritma Depth First Search untuk menelusuri silsilah keluarga dinasti Majapahit dan Sriwijaya dalam struktur pohon. Program menerima input nama raja dan hubungan keturunan untuk membangun struktur data pohon, kemudian melakukan pencarian silsilah secara mendalam dengan DFS.

Diunggah oleh

Seno Isbiyantoro
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

SISTEM INFORMASI UNTUK PENELUSURAN SILSILAH RAJA

MAJAPAHIT DAN SRIWIJAYA MENGGUNAKAN


ALGORITMA DEPTH FIRST SEARCH

LAPORAN
UNTUK MEMENUHI TUGAS MATAKULIAH
Artificial Intellegent
yang dibina oleh Dr. Eng. Anik Nur Handayani, S.T, M.T.

Oleh

Armanda Prastiyan Pratama 160522800194


Seno Isbiyantoro 160551800272

UNIVERSITAS NEGERI MALANG


PASCASARJANA
PROGRAM STUDI PENDIDIKAN KEJURUAN
Oktober 2017
SISTEM INFORMASI UNTUK PENELUSURAN SILSILAH RAJA
MAJAPAHIT DAN SRIWIJAYA MENGGUNAKAN
ALGORITMA DEPTH FIRST SEARCH

Abstrak

Silsilah keluarga adalah suatu catatan yang menggambarkan hubungan keluarga


sampai ke beberapa generasi dalam suatu struktur pohon. Data kajian tentang
keluarga dan penelusuran jalur keturunan serta sejarahnya ini dapat ditampilkan
dalam berbagai format. Depth First Search adalah algoritma pencarian pada sebuah
pohon atau tree. Pencarian Depth First Search ini adalah dengan menelusuri satu
cabang sebuah pohon sampai kebawah (menemukan solusi) sebelum melakukan
backtracking. Pada rancangan ini mengimplementasikan algoritma Depth First
Search, untuk penelusuran silsilah keluarga. Sehingga terciptanya system informasi
penelusuran silsilah keluarga menggunakan algoritma Depth First Search.

A. Pendahuluan
Dalam perkembangan teknologi komputer pada saat ini khususnya dalam
penyelesaian suatu permasalahan yang bersifat problem solving yang dihadapi
didunia nyata ditinjau dari perspektif engineering. Engineering dapat dilakukan
melalui pendetakan umum dan pendekatan secara intelligence atau Cerdas [1].
Dari Silsilah keluarga adalah suatu catatan yang menggambarkan hubungan
keluarga sampai ke beberapa generasi dalam suatu struktur pohon. Data kajian
tentang keluarga dan penelusuran jalur keturunan serta sejarahnya ini dapat
ditampilkan dalam berbagai format. Salah satu format yang sering digunakan dalam
menampilkan silsilah adalah bagan dengan generasi yang lebih tua di bagian atas
dan generasi yang lebih muda di bagian bawah. Bagan keturunan yang
menampilkan semua keturunan dari satu individu memiliki bagian yang paling
sempit di bagian atas. Jadi silsilah keluarga merupakan suatu bagan yang
menampilkan susunan keluarga dalam suatu pohon. Silsilah keluarga memiliki
informasi yang menyatakan hubungan antar anggota yang kompleks.
Pada penelitian [2] yang bejudul Design and Analysis of a Reverse
Hierarchical Graph Search Algorithm, penelitian tersebut memberikan contoh
misalnya, pada Tree Family dimana menampilkan hubungan leluhur memiliki
anak-anak yang dikelompokkan di bawah orang tua pada tingkat tertentu. Struktur
pohon dalam situasi ini mampu memodelkan konsep abstrak namun nyata tentang
seseorang yang memainkan banyak peran dalam beberapa hubungan. Struktur data
pohon tidak hanya berguna dalam mengatur beberapa objek data dalam hal
hubungan hierarkis, namun juga merupakan alat potensial untuk mensistematisasi
objek data berdasarkan kunci juga. Sehingga pada penelitian tersebut menyajikan
desain dan pengembangan pencarian alternatif algoritma berdasarkan DFS yang ada
algoritma yang dikenal dengan algoritma Reverse Hierarchical Search (RHS)
untuk struktur data pohon. Adapun penulis mengekplorasi Family Tree dengan
metode depth first search. Dimana studi kasusnya untuk menulusuri sebagian
keluarga dari dinasti majapahit dan sriwijaya dengan algoritma DFS menggunakan
bahasa Java program aplikasi Netbeans 8.2.
Yang kedua penelitian [3] yang berjudul Enhanced Iterative Deepening
Search adapapun peneliti tersebut mengadaptasi teknik pencarian yang umum
digunakan dari domain game-tree lawan yang mencari pencarian pendatang iteratif-
agen tunggal. Dimana menemukan bahwa menghindari banyak transposisi dan
siklus yang lebih menguntungkan dari pada jenis pra-penyortiran operator. Dimana
kombinasi terbaik dari teknik yang diusulkan, yaitu tabel transposisi dengan
informasi penerus node penerus, mengurangi ukuran grafik pencarian hingga satu
setengah (dalam 15 teka-teki) atau bahkan tiga blok (di TSP).
Yang ketiga pada penelitian [4] Binary Codes for Fast Determination of
Ancestor-Descendant Relationship in Trees and Directed A-cyclic Graph, dimana
pada penelitan tersebut mengembangkan kode biner sederhana, yang disebut kode
Binary Ancestry (BA), untuk pepohonan dengan menggunakan hubungan antara
leluhur-leluhur di antara dua simpul pohon dapat ditentukan tanpa traversal pohon.
Teknik pengkodean BA memberikan kode biner unik ke setiap simpul pohon.
Algoritma DFS pertama kali diperkenalkan oleh Tarjan dan Hopcroft 20
tahun lalu. Mereka menunjukkan bagaimana Depth First Search (DFS) merupakan
metode pencarian secara mendalam dan bagian dari blind search atau pencarian
buta. Pencarian dimulai dari level paling pertama, kemudian dilanjutkan ke anak
paling kiri pada level berikutnya. Demikian seterusnya sampai tidak terdapat anak
lagi atau level yang paling dalam. Jika pencarian belum menemukan solusi, maka
dilakukan penelusuran kembali ke node sebelumnya dan dilanjutkan ke node
tetangga. Proses ini diulangi terus hingga menemukan solusi [5].
Depth first search (DFS) adalah algoritma umum traversal atau pencarian
pada pohon, struktur pohon, atau graf. DFS adalah pencarian yang berjalan dengan
meluaskan anak akar pertama dari pohon pencarian yang dipilih dan berjalan dalam
dan lebih dalam lagi sampai simpul tujuan ditemukan, atau sampai menemukan
simpul yang tidak punya anak. Kemudian, pencarian backtracking, akan kembali
ke simpul yang belum selesai ditelusuri. Depth First Search adalah algoritma
pencarian pada sebuah pohon atau tree. Pencarian DFS ini adalah dengan
menelusuri satu cabang sebuah pohon sampai kebawah (menemukan solusi)
sebelum melakukan backtracking.
Satu hal menarik pada teori graf adalah traversal graf. Banyak algoritma
menarik pada graf yang didasarkan dari ide iterasi yang berjalan melewati simpul-
simpul pada graf sesuai urutan yang berhubungan dengan struktur graf. Ada dua
traversal graf yang fundamental, yang diketahui sebagai Breadth First Search dan
Depth First Search. Breadth First Search (BFS) dan Depth First Search (DFS)
adalah dua traversal berbeda yang berjalan mengunjungi simpul dan sisi pada graf.
BFS bermula dari suatu akar dan akan mengunjungi simpul tujuan dengan urutan
bergantung pada jarak mereka dari akar. Tentu akibatnya, simpul terdekat akan
dikunjungi terlebih dahulu. Sedangkan, DFS lebih memilih untuk mengunjungi
langsung, simpul yang belum ditemukan, sehingga pohon pencarian (search tree)
hasil traversal akan lebih dalam, dibandingkan dengan BFS, yang akan lebih
seimbang [6].
Berikut gambar yang mengiilustrasikan urutan simpul yang dikunjungi pada
algoritma DFS:

B C D

E F G H I J
Dari gambar diatas, dapat dilihat bahwa dengan algoritma DFS, setiap anak
simpul pertama yang bertetangga dengan simpul akar dikunjungi sampai tingkat
terdalamnya lebih dahulu, lalu seluruh simpul pada sub pohon tersebut, sebelum
simpul lain yang juga bertetangga dengan simpul akar. Pencarian rute terpendek
dilakukan dengan cara membuat simpul-simpul yang menjadi titik awal, titik-titik
yang akan dilalui dan juga titik akhir sebagai akhir dari tujuan atau sebagai simpul
yang dicari. Dalam algoritma DFS, simpul yang telah dikunjungi disimpan dalam
suatu tumpukan (stack). Antrian ini digunakan untuk mengacu simpul-simpul yang
akan dikunjungi sesuai urutan tumpukan (masuk terakhir, keluar pertama) dan
mempermudah proses runut-balik jika simpul sudah tidak mempunyai anak (simpul
pada kedalaman maksimal). Adapun keuntungan Dari Algoritma Depth-First
Search yang pertama Membutuhkan memori yang relative kecil, karena hanya
node-node pada lintasan yang aktif saja. Yang kedua, secara kebetulan, metode
depth-first search akan menemukan solusi tanpa harus menguji lebih banyak lagi
dalam ruang keadaan.

B. Pembahasan
Deskripsi sistem
Sistem yang dibangun ini adalah sistem untuk menyusun dan mencari silsilah
Kerajaan Majapahit dan Sriwijaya. Dalam proses penyusunan silsilah, member
menginput nama dari sebagian raja dan keturunan dari dinasti sriwijaya dan
majapahit sehingga terbentuk struktur data tree. Kemudian dalam proses pencarian
silsilah keluarga menggunakan algoritma DFS.

Alur Flowchart pada Program


Keterangan:
1. Raja Nusantara
2. Dinasti Sriwijaya
3. Dinasti Majapahit
4. Sri Sultan Mahmud
5. Kertajasa Jayawardhana
6. Siti Zubaidah
7. Sultan Baqi Syah
8. Jayanegara
9. Tribhuwana
Flow chart dari program ini adalah sebagai berikut:
Sintak dari program ini adalah sebagai berikut:

package dfscoba;

import java.util.Queue;
import java.util.Stack;

public class DFScoba {


static Stack<Node> s =new Stack<Node>();
public static class Node{
Node left;
Node right;
String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}

public Node getRight() {


return right;
}

public void setRight(Node right) {


this.right = right;
}

public Node getLeft() {


return left;
}

public void setLeft(Node left) {


this.left = left;
}
}
static boolean flag=true;
public static void dfs(String cari,Node n){

if(n.getLeft()!=null){
dfs(cari,n.getLeft());
}
if(n.getRight()!=null){
dfs(cari,n.getRight());
}
if(flag)
s.push(n);
if(n.getValue()==cari){
flag=false;
}

public static void main(String[] args) {


Node one = new Node();
one.setValue("Raja Nusantara");
Node two = new Node();
two.setValue("Dinasti Majapahit");
Node three = new Node();
three.setValue("Dinasti Sriwijaya");
one.setLeft(two);
one.setRight(three);
Node four = new Node();
four.setValue("Kertarajasa Jayawardhana");
Node five = new Node();
five.setValue("Sri Sultan Mahmud");
two.setLeft(four);
three.setLeft(five);
Node six = new Node();
six.setValue("Jayanegara");
four.setLeft(six);
Node seven = new Node();
seven.setValue("Tribhuwana");
four.setRight(seven);
Node eight = new Node();
eight.setValue("Siti Zubaidah");
five.setLeft(eight);
Node nine = new Node();
nine.setValue("Sultan Baqi Syah");
five.setRight(nine);

dfs("Sri Sultan Mahmud",one);


while(!s.isEmpty()){
System.out.println(s.pop().getValue());
}
}
}

Output dari program tersebut adalah sebagai berikut:

Nama-nama tersebut merupakan nama dari node-node yang dilalui untuk sampai
ke node tujuan (Sri Sultan Mahmud).
Algoritma dari program ini adalah sebagai berikut:
1. Start Node n
2. Tentukan node tujuan dfs ("Sri Sultan Mahmud",one);
while(!s.isEmpty())
3. Mulai dari stack pada node (static Stack<Node> s)
4. Set = false untuk setiap node yang belum dilewati
5. Mulai melewati node n (dfs(String cari,Node n))
6. Saat kondisi stack s tidak kosong, lanjutkan penelusuran node
7. Saat kondisi stack s kosong (!s.isEmpty()), hentikan penelusuran
8. Set = true pada node yang ditelusuri berikutnya (visited = true)
9. Lanjutkan penelusuran pada setiap node yang belum ditelusuri
10. Hentikan penelusuran jika semua node telah dilalui
System.out.println(s.pop().getValue());

C. Kesimpulan
Dari hasil implementasi dan uji coba yang penulis lakukan, dapat
disimpulkan bahwa, metode Depth Fisrt Search (DFS) dapat diterapkan pada
system informasi penelusuran silsilah keluarga dan penyelesaianya, hal ini dapat
di amati dari hasil output aplikasi baik dari segi jalur keluarga, penamaan hubungan
kekerabatan, bagan silsilah, dan waktu, semua berjalan sesuai dengan rancangan
program yang telah dibuat dan sesuai dengan keinginan. Sehingga dapat dikatakan
bahwa metode Depth First Search mampu diterapkan pada sistem informasi
penelusuran silsilah keluarga ini.

D. Referensi

[1] S. Suryadi, PERANCANGAN APLIKASI PENCARIAN FILE DENGAN


MENGGUNAKAN METODE BEST FIRST SEARCH Oleh: SUDI SURYADI,
vol. 2, no. 2, 2014.
[2] N. M. Lopamudra Nayak, Design and Analysis of a Reverse Hierarchical Graph
Search Algorithm, Sci. Int. J. Adv. Res. Comput., no. February, 2015.
[3] A. Reinefeld and T. A. Marsland, Enhanced Iterative-Deepening Search, IEEE
Trans. P attern Anal. Mach. Intell., vol. 16, no. 7, 1994.
[4] S. Baskiyar, D. Ph, and N. Meghanthan, Binary Codes for Fast Determination of
Ancestor-Descendant Relationship in Trees and Directed A-cyclic Graphs.
[Online]. Available:
https://www.researchgate.net/publication/220085115_Binary_Codes_for_Fast_De
termination_of_Ancestor-Descendant_Relationship_in_Trees_and_Directed_A-
cyclic_Graphs.
[5] A. Herwanto and B. E. Purnama, PENERAPAN METODE DEPTH FIRST
SEARCH PADA PENCARIAN RUTE BUS KOTA BERBASIS WEB MOBILE
DI SOLO, vol. 19, no. 1, pp. 713, 2013.
[6] H. Inggiantowi, Perbandingan Algoritma Penelusuran Depth First Search dan
Breadth First Search pada Graf serta Aplikasinya. [Online]. Available:
informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2008-2009/.../Makalah0809-
054.pdf.

Anda mungkin juga menyukai