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
Gambar 2
Penggambaran graph secara detail
Gambar 3
Penggambaran graph dalam sebuah table
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;
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
Sangat bermanfaat sekali pak, terima kasih atas artikelnya.
ReplyDelete