Pages

Kecerdasan Buatan : Menyimpan graph dalam sebuah database MySQL

Dalam Kecerdasan Buatan (Artificial Intelligence) untuk menyatakan ruang keadaan dapat digambarkan dalam suatu graph. Di dalam suatu graph terdapat beberapa node (simpul) yang saling berhubungan. Setiap node dihubungkan oleh arc (anak panah) atau edge (sisi) yang digunakan untuk menunjukkan arah tertentu. Suatu arc atau edge dalam graph dapat ditambahkan suatu bobot tertentu. Suatu graph yang mempunyai bobot dapat melambangkan sebuah konsep yang berbeda. Misalnya sebuah graph berbobot yang menggambarkan hubungan antar kota. Maka untuk setiap arc atau edge dapat diberikan bobot yang berupa jarak.

Kecerdasan Buatan : Menyimpan graph dalam sebuah database MySQL
Gambar 1
Sebuah graph berbobot 







Pada gambar 1 menunjukkan sebuah graph berbobot yang menggambarkan hubungan node. Misalnya sebuah graph pada gambar 1 tersebut menggambarkan ruang keadaan hubungan antar kota. Setiap node tersebut mewakili sebuah kota, sedangkan dalam arc atau edge terdapat bobot yang menyatakan jarak antar kota tersebut. Dari graph tersebut dapat diketahui bahwa:
  • Kota S dan kota A terhubung dan mempunyai jarak 10 kilometer 
  • Kota S dan kota B terhubung dan mempunyai jarak 11 kilometer
  • Kota S dan kota C terhubung dan mempunyai jarak 9 kilometer
  • Kota A dan kota D terhubung dan mempunyai jarak 5 kilometer
  • Kota A dan kota E terhubung dan mempunyai jarak 7 kilometer dst 
Untuk memudahkan memahami graph tersebut dapat digambarkan secara detail dalam gambar 2.

Gambar 2
Penggambaran graph secara detail

Dalam sebuah aplikasi kecerdasan buatan (artificial intelligence) buatan sebuah setiap node dalam graph dapat disimpan dalam sebuah database MySQL. Gambar 2 akan memudahkan kita untuk memudahkan menyimpan graph tersebut dalam sebuah table dalam database. Setiap node akan menempati level tertentu dan setiap node tersebut mempunyai nomor urut, node induk dan jarak tertentu.

Gambar 3
Penggambaran graph dalam sebuah table


Penggambaran graph dalam sebuah table dapat dilihat pada gambar 3, sehingga didapat kolom berupa ID, NODE, PARENT, DISTANCE dan LEVEL. Setiap baris dalam table tersebut menyatakan sebuah row (baris) atau record dalam table. Sehingga struktur dalam table MYROUTES adalah sebagai berikut:

Kecerdasan Buatan : Menyimpan graph dalam sebuah database MySQL
Membuat table myroutes :

CREATE TABLE myroutes (
  id int(3) NOT NULL AUTO_INCREMENT,
  node varchar(50) NOT NULL,
  parent int(3) NOT NULL,
  distance int(3) DEFAULT NULL,
  level int(3) NOT NULL,
  PRIMARY KEY (id)
);

Memasukkan setiap node kedalam sebuah record dalam table myroutes:

INSERT INTO myroutes(node,level) VALUES('S',0);
INSERT INTO myroutes(node,parent,distance,level) VALUES('A',1,10,1);
INSERT INTO myroutes(node,parent,distance,level) VALUES('B',1,11,1);
INSERT INTO myroutes(node,parent,distance,level) VALUES('C',1,9,1);
INSERT INTO myroutes(node,parent,distance,level) VALUES('D',2,5,2);
INSERT INTO myroutes(node,parent,distance,level) VALUES('E',2,7,2);
INSERT INTO myroutes(node,parent,distance,level) VALUES('F',2,3,2);
INSERT INTO myroutes(node,parent,distance,level) VALUES('G',3,2,2);
INSERT INTO myroutes(node,parent,distance,level) VALUES('H',3,2,2);
INSERT INTO myroutes(node,parent,distance,level) VALUES('I',3,4,2);
INSERT INTO myroutes(node,parent,distance,level) VALUES('J',4,5,2);
INSERT INTO myroutes(node,parent,distance,level) VALUES('K',4,2,2);
INSERT INTO myroutes(node,parent,distance,level) VALUES('L',4,4,2);
INSERT INTO myroutes(node,parent,distance,level) VALUES('M',6,5,3);
INSERT INTO myroutes(node,parent,distance,level) VALUES('N',7,3,3);
INSERT INTO myroutes(node,parent,distance,level) VALUES('O',8,7,3);
INSERT INTO myroutes(node,parent,distance,level) VALUES('P',9,4,3);
INSERT INTO myroutes(node,parent,distance,level) VALUES('Q',10,4,3);
INSERT INTO myroutes(node,parent,distance,level) VALUES('Z',13,5,3);

Setelah semua node dalam graph disimpam dalam sebuah table, maka kita dapat menampilkannya dengan query sebagai berikut:
SELECT * FROM myroutes; 


Kecerdasan Buatan : Menyimpan graph dalam sebuah database MySQL
Dengan demikian nantinya dapat memudahkan kita untuk melakukan operasi dalam suatu graph. Sebagai contoh dapat diperhatikan pada query dibawah ini.

Menampilkan semua node pada level 1 :
SELECT node FROM myroutes WHERE level=1;

Menampilkan anak dari node B dan jaraknya :
SELECT node, distance from myroutes WHERE parent=3;

Menampilkan jarak dari node L ke node Z :
SELECT distance FROM myroutes WHERE node=’Z’; 

Kecerdasan Buatan : Menyimpan graph dalam sebuah database MySQL



Ini adalah salah satu cara sederhana untuk menyimpan graph dalam suatu database MySQL. Dengan menyimpan setiap node dalam suatu database diharapkan dapat mempermudah melakukan operasi-operasi lain dalam suatu graph. Semoga membantu.

Penulis: Anon Kuncoro Widigdo, ST, MM

Penulis adalah staf Teknologi Sistem Informasi di PT.Bank Pembangunan Daerah Sulawesi Tenggara (Bank Sultra) dan dosen STMIK Catur Sakti Kendari. 

Download Artikel

Bank Sultra Kendari

Dosen STMIK Catur Sakti Kendari




1 comment:

  1. Sangat bermanfaat sekali pak, terima kasih atas artikelnya.

    ReplyDelete