kecerdasan buatan: menyimpan graph dalam sebuah database mysql

6
1 Kecerdasan Buatan : Menyimpan graph dalam sebuah database MySQL Oleh: Anon Kuncoro Widigdo, ST, MM * [email protected] 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. 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

Upload: anon-kuncoro

Post on 15-Apr-2017

158 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: Kecerdasan Buatan: Menyimpan graph dalam sebuah database MySQL

1

Kecerdasan Buatan :

Menyimpan graph dalam sebuah database MySQL

Oleh: Anon Kuncoro Widigdo, ST, MM * [email protected]

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.

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

Page 2: Kecerdasan Buatan: Menyimpan graph dalam sebuah database MySQL

2

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.

Page 3: Kecerdasan Buatan: Menyimpan graph dalam sebuah database MySQL

3

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:

TABLE MYROUTES

COLUMN TYPE

ID INTEGER AUTO INCREMENT, NOT NULL, PRIMARY KEY

NODE CHARACTER / VARCHAR VARCHAR(20), NOT NULL

PARENT INTEGER INTEGER, NOT NULL

DISTANCE INTEGER INTEGER, NULL

LEVEL INTEGER INTEGER, NOT NULL

Page 4: Kecerdasan Buatan: Menyimpan graph dalam sebuah database MySQL

4

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) );

Gambar 4 Hasil saat menjalankan query pembuatan table myroutes

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);

Page 5: Kecerdasan Buatan: Menyimpan graph dalam sebuah database MySQL

5

Gambar 5 Hasil saat menjalankan query untuk menambahkan record

Setelah semua node dalam graph disimpam dalam sebuah table, maka kita dapat

menampilkannya dengan query sebagai berikut:

SELECT * FROM myroutes;

Gambar 6 Menampilkan isi table myroutes

Page 6: Kecerdasan Buatan: Menyimpan graph dalam sebuah database MySQL

6

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’;

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 adalah staf Teknologi Sistem Informasi di PT.Bank Pembangunan Daerah Sulawesi Tenggara

(Bank Sultra) dan dosen di STMIK Catur Sakti Kendari.