02. Menggunakan Bentuk Record

posted Sep 25, 2011, 12:01 AM by Editor KursusInternet   [ updated Sep 25, 2011, 1:23 AM ]

Pendahuluan

Salah satu bentuk node untuk graph yang paling sering digunakan adalah penggunaan record untuk mendokumentasikan relasi antar table database relasional. Pembagian "cell" pada record menggunakan label yang dipisahkan dengan tanpa pipe ( | ).

Berikut adalah contoh pendefinisian node berbentuk record dan pendefinisian lable-lablenya.

node0 [shape=record, label = "kode_cabang | nama_cabang | kode_kota"];

Dan contoh-contoh di bawah ini memperlihatkan penggunaan shape record ini lebih jauh.

Contoh - Penggunaan Record Dasar

Berikut adalah contoh penggunaan dot yang menampilkan bentuk 1 record saja dengan tiga kolom.

record_phi_minimart_1.dot

digraph g {
    ms_cabang [shape=record, label = "kode_cabang | nama_cabang | kode_kota"];
}

akan menghasilkan graph dengan bentuk berikut ini.


Contoh - Penggunaan Port untuk menghubungkan Record

Diagram di atas secara praktis tidak begitu berguna, kita harus mampu menggambarkan hubungan yang lebih kompleks dengan penggunaan dot ini.

Misalkan kita memiliki dua node record yaitu dengan nama ms_cabang dan ms_kota dimana relasi antara keduanya didapat dari label kode_kota. Nah, jika kita menghubungkan kedua node tersebut dengan hanya menggunakan operator edge ( -> ) maka gambar yang dihasillkan adalah sebagai berikut :


Hubungan keduanya dibuat secara otomatis dengan menggunakan titik tengah dari tiap node. Dan bukan ini yang kita inginkan, melainkan harus ada garis penghubung antara label kode_kota dari kedua node tersebut.

Agar dapat melakukan hal tersebut, kita perlu mendefinisikan suatu nama port, yaitu atribut yang mendahului definisi atribut. Format penamaan port adalah dengan menggunakan tanda kurung siku ( < nama port > ).

Sebagai contoh :

    ms_cabang [ label = "kode_cabang | nama_cabang | <port0> kode_kota "]; 

Dan kemudian kita bisa merujuk ke port tersebut dengan cara :

    ms_cabang:port0

Berikut adalah contoh file dot yang menggunakan port dan hasil gambarnya.

record_phi_minimart_2.dot

digraph g {
node [shape=record];
ms_cabang [label = "kode_cabang | nama_cabang | <port0> kode_kota "];
ms_kota [label = "<port0> kode_kota | nama_kota | kode_propinsi"];
ms_cabang:port0 -> ms_kota:port0;
}


Contoh - Penggunaan Atribut rankdir untuk Merubah Arah Orientasi Record

Diagram di atas walaupun sudah benar, terasa ada yang kurang yaitu orientasi arah node adalah atas ke bawah, sedangkan yang kita inginkan adalah kiri ke kanan.

Untuk melakukan hal tersebut sangat gampang, kita cukup menambahkan atribut rankdir=LR pada awal definisi graph tersebut.

Berikut adalah contoh file dot yang menggunakan atribut rankdir dan hasil gambarnya.

record_phi_minimart_3.dot

digraph g {
rankdir=LR;
node [shape=record];
ms_cabang [label = "kode_cabang | nama_cabang | <port0> kode_kota "];
ms_kota [label = "<port0> kode_kota | nama_kota | kode_propinsi"];
ms_cabang:port0 -> ms_kota:port0;
}



Contoh - Penggunaan Atribut pos dengan neato

Jika Anda ingin memperbaiki posisi diagram tersebut, dapat menggunakan atribut pos dan aplikasi neato dan bukannya dot. Contoh sebagai berikut.

record_phi_minimart_4.dot

digraph g {
nodesep = .05;
rankdir=LR;
node [shape=record];
ms_cabang [label = "kode_cabang | nama_cabang | <port0> kode_kota ", pos = "0,0.1!"];
ms_kota [label = "<n> kode_kota | nama_kota | kode_propinsi", pos = "2,0.1!"];
ms_cabang:port0 -> ms_kota:n;
}

dan dengan penggunaan neato sebagai berikut :

neato -Tpng:cairo -Nfontname=Arial record_phi_minimart_4.dot -o record_phi_minimart_4.png


Comments