National Conference: Design and Application of Technology 2008
Perancangan Tools untuk membuat XML Schema dengan menggunakan Pendekatan Entity Relationship Diagram Yulia1, Oviliani Yenty Yuliana1, Sugianto Effendy2 1
Jurusan Teknik Informatika, Fakultas Teknologi Industri, Universitas Kristen Petra Surabaya Alumni Jurusan Teknik Informatika, Fakultas Teknologi Industri, Universitas Kristen Petra Surabaya Telp. (031) 2983455
[email protected],
[email protected]
2
ABSTRAK Saat ini eXtensible Markup Language (XML) banyak digunakan untuk penyajian data dan pemindahan data. Bentuk format XML yang berbasis teks menyebabkan XML dengan mudah dapat memindahkan data antar platform. Untuk mendefinisikan aturan dalam penulisan file XML, suatu file XML terhubung dengan suatu file XML Schema (XSD). XSD berfungsi sebagai Data Definition Language bagi file XML. Dengan makin banyaknya penggunaan XML yang juga membuat makin banyaknya penggunaan XSD, maka diperlukan suatu tools untuk membuat XSD yang memudahkan pemakai dalam mengaplikasikannya. Pada penelitian ini akan dibuat sebuah perangkat lunak berbasis grafis Entity Relationship Diagram (ERD) sebagai media inputan. Penulis melakukan pengamatan terhadap tools yang digunakan untuk membuat ERD sebagai bahan pembanding. Berdasarkan hasil pengamatan kemudian dirancang suatu interface (antarmuka) yang baik. Proses dilanjutkan dengan melakukan beberapa validasi terhadap hasil rancangan ERD. Hasil validasi ERD inilah yang kemudian diproses untuk dibuat dalam bentuk XSD. Microsoft Visual Studio .NET dalam pembuatan perangkat lunak ini. Dengan menggunakan perangkat lunak ini, pemakai yang awam dengan perintah XML dapat dengan mudah membuat suatu XSD yang digunakan dalam suatu file XML. Dengan perangkat lunak ini tidak perlu mengenali format XSD, karena perangkat lunak ini menggunakan ERD sebagai media dalam membuat XSD. Kata Kunci : eXtensible Markup Language (XML), XML Schema (XSD), Entity Relationship Diagram (ERD)
1. PENDAHULUAN eXtensible Markup Language (XML) banyak digunakan dalam aktifitas untuk penyajian data dan untuk pemindahan data. Pada awalnya XML adalah suatu metode digunakan untuk pertukaran dan pemindahan data melalui internet. Kemudian berkembang menjadi suatu metode yang juga digunakan untuk pertukaran dan pengintegrasian data di antara aplikasi dengan platform yang berbeda. Bentuk format XML yang berbasis teks menyebabkan XML dengan mudah dapat memindahkan data antar platform dan bisa berpindah melalui internet. Hal tersebut sulit terjadi pada aplikasi yang tidak menggunakan XML, karena aplikasi–aplikasi ini berdiri pada platform yang berbeda. XML Schema (XSD) terdiri atas kumpulan struktur, tipe, dan constraints. XSD menjabarkan suatu data yang digunakan untuk menjelaskan dan menvalidasi dokumen XML. XSD merupakan pengembangan dari Document Type Definition (DTD). XSD diciptakan karena DTD menggunakan perintah yang berbeda dengan XML dan hanya memiliki tipe data yang terbatas. Akibatnya timbul gagasan untuk membuat definisi data yang berbasis perintah XML dan lebih banyak mengenal tipe data. Dapat dikatakan bahwa XSD adalah berkas XML yang digunakan sebagai definisi data dari beberapa berkas XML yang lain. Selain itu XSD juga berbasis perintah XML maka XSD memiliki segala kelebihan XML. Seiring dengan perkembangan pembuatan berkas XML yang menggunakan XSD sebagai definisi data, maka diperlukan tool untuk mempermudah membuat XSD yang baik. XSD yang berbasis perintah XML seringkali membuat kesulitan untuk pemula yang tidak mengenal perintah XML. Awalnya tools yang ada hanyalah berbasis teks seperti notepad. Tools tersebut digunakan untuk membuat XSD secara manual dengan perintah XML. Contoh tool yang berbentuk notepad antara lain XMLwriter. Kemudian berkembang tools dengan tujuan mempermudah pembuatan XSD. Tools tidak lagi berbasis teks sebagai inputan tetapi telah menggunakan pendekatan Entity Relationship Diagram (ERD). Dengan tool yang menggunakan gambar ERD sebagai media inputan diharapkan pemula yang terbiasa dengan konsep Relational database dapat merancang basis data yang berbasis XSD tanpa perlu mengenal detail dari perintah XML yang berbentuk teks.
2. ENTITY RELATIONSHIP DIAGRAM (ER DIAGRAM) Suatu ERD mendokumentasi basis data dengan cara menentukan data-data apa yang terdapat dalam tiap entiti dan bagaimana relationship (hubungan) antara suatu entiti dengan yang lainnya (Haplin, 1995). Dalam
211
National Conference: Design and Application of Technology 2008
pembuatan suatu ERD terbagi menjadi beberapa tahapan desain, yaitu conceptual design (skema konseptual) dan physical design (skema fisikal)[5]. Skema Konseptual, skema yang mendeskripsikan data yang disimpan dalam model data DBMS. Skema konseptual mendeskripsikan semua relasi yang disimpan dalam database. Setiap kumpulan hubungan dan kumpulan entitas dapat dideskripsikan sebagai relasi. Skema Fisikal, skema yang menentukan detil penyimpanan. Skema fisikal mendeskripsikan bagaimana relasi yang dideskripsikan dalam skema konspetual disimpan pada alat penyimpanan seperti disk serta mendeskripsikan detil tiap field dari entiti yang meliputi tipe data, panjang data, nullable dan unik. Di bawah ini dijelaskan beberapa hal yang digunakan dalam ERD: • Entiti dapat berupa environmental element (elemen di sekitar sistem yang berhubungan dengan sistem tersebut), resource (sumber daya yang berhubungan dengan sistem yang ada), dan transaksi yang sangat penting bagi usaha dagang, sehingga dimodelkan dalam data. Contoh dari entiti ialah customer, pegawai, daftar presensi dan sebagainya. Seringkali entiti disebut juga tabel. • Attribute (atribut) dari suatu entiti ialah karakteristik dari entiti tersebut. Sebagai contoh, attribute untuk entiti mahasiswa mungkin ialah NRP, Nama, Alamat, Sekolah asal, dan sebagainya. • Identifier ialah atribut yang mengidentifikasi suatu entiti secara unik, contohnya ialah NRP untuk mahasiswa. Dalam ERD, identifier dituliskan sebagai atribut dengan garis bawah. Seringkali identifier disebut juga dengan Key atau primary key. Karena berlaku sebagai atribut yang membedakan antara record dengan record, maka nilai dari key harus bersifat unik (tidak boleh ada suatu nilai key yang sama antara dua record dalam satu entiti) dan tidak boleh bernilai null atau kosong. • Foreign key adalah atribut tambahan hasil generate pada suatu entiti yang digunakan untuk menunjukkan bahwa entiti tersebut memiliki hubungan dengan entiti yang lain. Foreign key baru akan kelihatan pada skema fisikal. Tipe data dan panjang data pada foreign key harus sama dengan key induk [2]. • Relationship ialah hubungan yang terjadi antara dua buah entiti. Dalam ERD ada tiga jenis relationship yaitu one-to-one relationship, one-to-many relationship dan many-to-many relationship. Tabel 1. Jenis-jenis relasi pada ER-Diagram
Sumber: Whiten, Bentley, Dittman. System Analysis Design Methods 6th edition, [3]
3. XML SCHEMA XML Schema yang lebih dikenal dengan XML Schema Definition (XSD) adalah XML vocabulary yang digunakan untuk mengekspresikan rule (definisi data) yang digunakan dalam suatu data XML[1]. Berdasarkan XSD suatu dokumen XML dapat dispesifikasi secara detil struktur dan tipe datanya. Latar belakang timbulnya konsep dari XML Schema adalah adanya ketidakpuasan terhadap DTD. DTD menggunakan perintah yang berbeda yaitu Extended Backus Naur Form (EBNF) sedangkan dokumen XML menggunakan perintah XML. Perbedaan dalam penggunaan perintah menyebabkan suatu data tidak konsisten. Akibatnya timbul gagasan membuat definisi data yang digunakan dalam data XML dengan menggunakan perintah XML.[1] XSD merupakan pengembangan dari DTD sebagai data definition dari dokumen XML. Berdasarkan fungsi dan susunannya ada dua macam XSD yaitu flat dan hierarchical schema. Flat schema digunakan untuk melakukan validasi terhadap flat XML document yang digunakan untuk memindahkan dan menyimpan data. Hierarchical schema digunakan untuk membantu mempermudah pengolahan penampilan data yang disimpan.
212
National Conference: Design and Application of Technology 2008
4. DESAIN SISTEM Secara garis besar sistem dapat dibagi dalam tiga modul, yaitu: Modul Input dan Validasi data, Modul Konversi dan Modul Penyimpanan.
Gambar 1. Diagram Hubungan Empat Modul Dalam Sistem Gambar 1 menunjukkan beberapa modul dan penerapannya dalam sistem. Modul input dan validasi data adalah modul yang berguna dan berjalan saat pemakai membuat dan memasukkan data suatu ERD. Modul Konversi adalah modul yang berguna untuk mengkonversi ERD masukan dari pemakai menjadi XSD. Modul penyimpanan adalah modul yang berguna untuk melakukan penyimpanan data dan hasil dari ERD yang telah dibuat oleh pemakai.
Gambar 2. Diagram Alir Modul Input Data dan Validasi Data Gambar 2 adalah diagram alir untuk modul input dan validasi data. ERD memiliki dua bagian penting, yaitu tabel dan relasi. Untuk proses pembuatan ERD adalah dengan melakukan proses memasukkan data tabel dan atribut, setelah itu pemakai memasukkan data relasi. Kondisi yang digambarkan adalah kondisi penggunaan pembuatan ERD secara umum.
213
National Conference: Design and Application of Technology 2008
Gambar 3. Diagram Alir Proses Input Tabel Gambar 3 menunjukkan proses yang terjadi dalam pemasukan data tabel. Dalam pemasukan data tabel, pertama kali dilakukan memasukkan nama tabel. Setelah itu akan dilakukan validasi apakah nama tabel sudah ada sebelumnya. Selain itu juga validasi nama tabel sudah terisi atau belum. Setelah nama tabel, kemudian pemakai akan mulai memasukkan nama atribut dari tabel tersebut. Selain memasukan nama atribut, pemakai juga dapat mengubah properti dari atribut tersebut. Properti yang dimiliki oleh atribut antara lain key, unik, null, dan tipe dari atribut. Setelah selesai memasukan nama atribut maka proses memasukan data suatu tabel sudah selesai.
Gambar 4. Diagram Alir Proses Input Relasi Gambar 4. menunjukkan alur proses yang terjadi saat pemasukan data relasi ke dalam data relasi. Pertama pemakai akan memasukan nama relasi terlebih dahulu. Kemudian setelah nama sudah valid, maka pemilih akan memilih kedua tabel yang akan berelasi. Setelah itu pemakai akan memilih atribut tabel yang akan menjadi foreign key (fk) dan key yang ditampung oleh fk tersebut. Ada dua jenis relasi yang bisa terbentuk yaitu one-to-one dan one-to-many.
214
National Conference: Design and Application of Technology 2008
Konversi dilakukan setelah proses menggambar data telah selesai dilakukan. Untuk alur proses dapat dilihat pada Gambar 5 dimana proses konversi memiliki beberap tahapan. Yang pertama kali dilakukan adalah pengecekan ERD secara keseluruhan. Dalam hal ini tabel yang tidak memiliki atribut akan secara otomatis dihilangkan dari data, setelah itu mulai dibuat suatu file XSD dengan pembuatan header dan namespace. Namespace dalam perangkat lunak ini berupa nama file yang sedang dibuat oleh pemakai. Setelah itu dilakukan konversi pada tabel dan atribut dari ERD yang dibuat oleh pemakai dengan perangkat lunak ini. Dalam proses konversi tabel sekaligus dilakukan konversi untuk atribut, key dan unik dari tabel. Proses terakhir dari konversi adalah konversi pada relasi. Setelah melakukan semua konversi, kemudian akan dibuat sintak penutup namespace dan header dari file XSD. Setelah itu proses konversi suatu ERD telah selesai dijalankan dan hasilnya akan nampak. Penyimpanan pada perangkat lunak ini terdiri dari 2 macam penyimpanan data, yaitu penyimpanan hasil yang disimpan dalam format XSD (*.xsd) dan penyimpanan gambar disimpan dalam bentuk dokumen XML (*.xml) yang berisi metadata dari gambar. Penyimpanan hasil dilakukan dengan menggunakan prosedur yang disediakan oleh developer untuk menyimpan file teks. Sedangkan untuk penyimpanan gambar dengan menyusun metadata dalam bentuk format XML. Untuk alur proses dapat dilihat pada Gambar 6.
Gambar 5. Diagram Alir Modul Konversi
215
National Conference: Design and Application of Technology 2008
Gambar 6. Diagram Alir Pernyimpanan Data
5. DESAIN STRUKTUR DATA Struktur data dalam perangkat lunak ini menggunakan array of class. Perangkat lunak ini mempunyai dua class utama yaitu class c_tabel untuk mendeskripsikan tabel dan c_relasi untuk mendeskripsikan relasi antar tabel. Class yang ada digunakan sebagai metadata dari gambar. Untuk F_element adalah kelas yang berbentuk user control untuk menggambarkan tabel. Untuk lebih jelasnya mengenai struktur data yang digunakan dapat dilihat pada Tabel 2. Tabel 2.Daftar Struktur Data class yang Digunakan Struktur data class c_tabel c_relasi
F_element
Variabel public F_element element public Label relation public string r1,r2,key1,key2,id public Point xy,xy2,xy3 public bool mandatory1, mandatory2 public string nama, del,update public int stat1, stat2, relationstat private System.ComponentModel.IContainer components public int stat=1 public System.Windows.Forms.Label E_Elementname public System.Windows.Forms.Panel panel1 public System.Windows.Forms.Label label1 public FlexCell.Grid sg_element
Struktur data lain yang dipakai adalah struktur data array, yaitu deretan variabel yang memiliki tipe data sama, struktur data ini digabungkan dengan struktur data class akan menjadi array of class. Tabel 3. Tabel Daftar Array yang Digunakan. Struktur data array Tables Relasion
216
Variabel public ArrayList tabels public Arraylist relasion
National Conference: Design and Application of Technology 2008
6. HASIL Pengujian dilakukan dengan mengambil permasalahan yang berasal dari suatu contoh permasalahan mengenai transformasi model data IDEF1X dan FLAT XML Schema [4]. Untuk data tabel dan atribut dapat dilihat pada Tabel 5., sedang untuk data relasi yang dimiliki dapat dilihat pada Tabel 4. Sedangkan hasil dari ER-D dapat dilihat pada gambar 7. Sedang hasil XSD dapat dilihat pada gambar 8. Gambar 9. pada bagian yang dilingkari menunjukkan hasil validasi XSD dari sistem telah memenuhi aturan dari XML. Tabel 4. Data Relasi untuk Pengujian Nama relasi Employee Computer Employee Programmer Employee Operator Employee Account Employee Employee_skill Skill Employee_skill
Tabel1
Tabel2
Key1
FK
Update rule
Delete rule
Employee
Computer
SSN
SSN
SetDefault
SetDefault
Employee
Programmer
SSN
SSN
SetDefault
SetDefault
Employee
Operator
SSN
SSN
SetDefault
SetDefault
Employee
Account
SSN
SSN
SetDefault
SetDefault
Employee
Employee _skill
SSN
SSN
None
None
Skill
Employee skill
Skill Name
Skill Name
SetDefault
SetDefault
Tabel 5. Data Tabel dan Atribut untuk Pengujian Nama atribut
Nama Tabel
Primary key
S/N Make
Computer
PK
DiskCapacity SSN SSN Name JobCode SSN
Foreign Key
Null
Unik
Tipe
Y
string string
Y
string string string
Y
string string string
FK Employee
Programmer
PK
PK
FK
Language O/S SSN YearExperience Acc_no
string string Operator
PK
Account
PK
Bank SSN SSN
Employee_skill
PK PK
SkillName SkillName
Skill
PK PK
Description
FK
Y Y
string decimal string
FK FK
Y Y
string string string
FK
Y Y
string string string
217
National Conference: Design and Application of Technology 2008
Gambar 7. Hasil ER-D dari Pengujian Permasalahan
Gambar 8. Hasil XSD dari Pengujian Permasalahan
218
National Conference: Design and Application of Technology 2008
Gambar 9. Hasil Pengujian Validasi XSD dengan XMLWriter 2.6.
7. KESIMPULAN Sistem telah berhasil melakukan konversi ERD ke dalam XML Schema yang berasal dari data masukan pemakai. Hasil dari sistem dapat membantu pemakai untuk merancang suatu XML Schema (XSD) secara garis besar, tanpa harus mengerti detail dari perintah XML dalam pembuatan XSD. Berdasarkan pengujian dengan XML Writer 2.6. XML Schema yang dihasilkan oleh sistem telah memenuhi validitas yang ditetapkan
8. DAFTAR PUSTAKA [1] Carey, Patrick. New Perspective on XML-Brief. Australia: Thomson Course Technology. 2002. [2] Ramakrishnan, Raghu, Johannes Gehrke. Sistem Manajemen Database. Yogyakarta: Andi Yogyakarta. 2003. [3] Whitten, David, Bentley, Dittman. System Analysis Design Methods 6th Edition. Illinois: McGraw Hill. 2004. [4] Yuliana, Oviliani Yenti. Model Data IDEF1X dan FLAT XML Schema. The 7th Seminar on Intelligent Technology and its Applications May 2nd. 2006 [5] Halpin, Terry. Conceptual Schema & Relational Database Design. Prentice Hall Australia. 1995.
219