BAB I
PENDAHULUAN
menyimpan informasi atau data [12]. Bagi setiap institusi maupun perusahaan,
basis data sangat penting karena basis data tidak hanya mempercepat perolehan
informasi, tetapi juga dapat meningkatkan daya saing terhadap perusahaan lain.
Terdapat beberapa model basis data, salah satu model basis data yang
banyak digunakan saat ini adalah model basis data relasional [12]. Dalam
[12]. DBMS sendiri merupakan suatu program komputer yang digunakan untuk
hanya di dalam DBMS itu sendiri. Setelah data tersebut dipanggil, data akan
kehilangan sifat dan strukturnya [2]. Hal ini dapat dipecahkan dengan cara
pemrograman, misalkan memakai PHP, ASP, atau yang lain. Namun, cara ini
1
2
harus membuat program deskripsi data setiap kali data ditransferkan. Selain itu,
pada umumnya tiap vendor DBMS menggunakan tipe data yang berbeda-beda
untuk mendeskripsikan data. Sehingga terdapat kesulitan semisal suatu data yang
disimpan dalam DBMS Oracle akan disimpan / dikirim dalam DBMS MySQL.
eXtensible Markup Language (XML). Format XML berbasis teks, hal inilah yang
menyebabkan XML dengan mudah dapat memindahkan data antar platform dan
dapat berpindah melalui Internet [6]. XML dapat digunakan untuk pertukaran
informasi antara sistem-sistem yang terpisah jauh, seperti pada aplikasi Busines-
to-Busines (B2B). Dengan struktur dan definisi yang jelas, XML dapat dipakai
[11].
data (query) menjadi tidaklah mudah, karena setiap proses query harus me-
parsing (mengurai) dokumen XML dari awal yang memerlukan banyak tahapan
dan waktu [5]. Dalam mengurai dokumen XML yang berukuran besar, dapat
ditangani dengan menggunakan metode parsing SAX untuk lebih efisien [7].
Penyimpanan data XML dalam suatu model basis data relasional yang
seseorang diharuskan untuk dapat menangani perbedaan model data XML yang
bersifat hirarki dengan model data relasional yang cenderung bersifat flat.
3
bagaimana menyimpan model data XML yang bersifat hirarki ke dalam model
data relasional yang cenderung bersifat flat dengan menggunakan metode parsing
proses query, dan memberikan banyak keuntungan dari sisi manajemen data dan
keamanannya.
Definition) external.
1.4 TUJUAN
XML menjadi model basis data relasional dengan menggunakan metode parsing
BAB I : PENDAHULUAN
akhir ini.
data relasional.
data relasional.
5
BAB V : PENUTUP
BAB II
LANDASAN TEORI
Basis data menurut Stephens dan Plew adalah mekanisme yang digunakan
untuk menyimpan informasi atau data [12]. Dengan basis data, pengguna dapat
mudah diambil. Cara data disimpan menentukan seberapa mudah mencari suatu
informasi berdasarkan kriteria yang ada. Data pun harus mudah ditambahkan ke
Language) untuk menentukan skema basis data dan bahasa manipulasi data (Data
Manipulation Language) untuk menyatakan query dan update basis data. Pada
bagian bahasa basis data. Untuk saat ini bahasa basis data yang paling populer
adalah Sructured Query Language (SQL). Selain SQL terdapat pula bahasa yang
6
7
pengguna mengakses atau memanipulasi data seperti yang diatur oleh model data.
mendapatkannya.
informasi yang tersimpan dalam basis data. Bagian DML yang terlibat dalam
dengan istilah bahasa manipulasi data. Berikut ini diberikan contoh tabel pegawai
dan tabel pesan pada tabel 2.1 dan tabel 2.2 yang akan diberikan query.
8
KdPegawai = 001:
Query dapat juga melihat informasi lebih dari satu tabel. Sebagai contoh,
query berikut ini mencari NmBarang yang dipesan oleh pegawai dengan
KdPegawai = 002:
Ada beberapa tipe basis data, beberapa basis data bertipe sederhana,
sedangkan yang lainnya sangat kompleks. Salah satu tipe model basis data yang
Unit penyimpanan utama dalam basis data relasional adalah tabel atau
kelompok data yang saling berhubungan. Sebuah tabel terdiri atas baris dan
kolom. Baris berhubungan dengan record dalam tabel dan kolom mengandung
nilai semua baris yang berhubungan dengan field tertentu. Tabel dapat
dihubungkan satu sama lain melalui nilai kolom yang disebut kunci (key) [12].
9
dan kunci tamu (foreign key). Integritas referensial adalah seperangkat aturan
yang mengatur hubungan antara kunci utama dengan kunci tamu milik tabel-
tabel yang berada dalam suatu basis data relasional untuk menjaga konsistensi
data. Tipe batasan lain dapat pula dibuat untuk mengontrol data yang bisa
data.
ekstra yang telah ditambahkan pada pemrosesannya, dan saat ini teknologi XML
merupakan suatu hibrida dari pemrosesan dokumen dan basis data [6]. Sebagai
bahasa markup, XML sangat jauh lebih baik daripada HTML yang merupakan
bahasa dari world wide web (www) yang dipergunakan untuk menyusun dan
membentuk dokumen agar dapat ditampilkan pada program browser [13]. Ada
beberapa alasan atas keunggulan XML. Pertama, para desainer XML membuat
pemisah yang jelas antara struktur, isi, dan perwujudan dokumen. XML memiliki
fasilitas untuk menangani masing-masing hal tersebut, dan sifat dasar dari
Sebuah dokumen XML memiliki tiga bagian, yaitu : prolog, elemen root
(root element) atau disebut document element, dan epilog [13]. Namun sebuah
dokumen XML, utamanya memiliki dua bagian yaitu prolog dan elemen dokumen
2.2.1.1 Prolog
Sebuah prolog dalam sebuah dokumen XML tidaklah harus ada. Akan
tetapi, prolog dapat memberikan informasi penting pada program aplikasi (misal
Terdapat empat konsep dasar dalam prolog, yaitu deklarasi XML, komentar
1. Deklarasi XML
standalone=”yes”?>
2. Komentar
dengan
1
-->. Apapun yang terletak di antara tanda <!-- dan --> akan diabaikan
3. Perintah pemrosesan
href=”pustaka01.cs”?>
Kata yang mengikuti pembukaan <? (dalam kasus ini realaudio) disebut
Hanya tiga name yang diperlukan dari tiga potong kode yang mengikuti
root.
DTD eksternal dan juga terdapat DTD internal, maka DTD internal
Elemen root adalah komponen utama suatu dokumen XML. Tata cara
penulisan elemen root harus memperhatikan struktur yang dibawa oleh DTD yang
c. Semua nama dalam elemen XML harus diawali huruf dan tidak boleh
memiliki satu akar. Akar simpul tersebut dapat diisi oleh elemen lain
(bersarang).
1
Misalnya, untuk „>‟ digunakan >, untuk „&‟ digunakan &. Untuk
Document Type Definition (DTD) secara formal menyatakan struktur dan isi
elemen (tag, hubungan di antara tag-tag berbeda, dan seterusnya) dari dokumen
b. Valid XML: jika mengikuti spesifikasi / aturan XML dan memiliki &
c. Invalid XML: jika tidak mengikuti aturan XML & tidak memiliki DTD.
nilai-nilai yang diijinkan dalam sebuah dokumen XML. DTD terdiri dari 2
2.2.2.1 ELEMENT
elemen. Aturan ini mendefinisikan struktur logis dari dokumen XML dan dapat
digunakan untuk memeriksa validitas dokumen tersebut. Aturan dapat terdiri dari
EMPTY
a. PCDATA
hanya berupa teks (konten yang tidak mengandung unsur anak). Semisal :
b. ANY
Deklarasi ANY dapat mencakup konten teks dan elemen anak (child
dalam contoh ini tag html dapat mengandung elemen body dan head
c. EMPTY
konten, baik konten elemen anak (child element) maupun konten teks
biasa. Contoh :
elemen anak : head dan body. Contoh di atas digunakan tanda penghubung
Terdapat 2 jenis pemisah antar elemen anak, tanda koma “ ,” dan tanda
bar vertikal “|”. Tanda koma, bermakna dalam urutan isi elemen anak, yang
dapat di baca elemen anak A diikuti oleh elemen anak B. Tanda vertikal bar,
bermakna pilihan yaitu elemen induk hanya boleh memiliki salah satu dari
makna berapa kali elemen anak dapat muncul dalam dokumen XML, karakter-
2.2.2.2 ATTLIST
Setiap elemen dapat memiliki satu set atribut yang terkait dengannya.
Atribut DTD XML dapat memiliki beberapa tipe. Tabel 2.4 menjelaskan tiap tipe
menjaga integritas, konsistensi, dan ketersediaan [12]. Ada tiga pendekatan untuk
menyimpan data dalam format XML di dalam sistem basis data, yaitu [12] :
asli adalah tidak harus merancang pemetaan antara dokumen dan tabel. Dokumen
XML dapat disimpan begitu saja dalam basis data dan diambil dengan XPath
maupun XQuery.
berorientasi objek (OODB). Pada kerangka kerja OODB, sebuah objek data
disimpan sebagai objek yang menetap dan sebuah aplikasi dapat mengalamatkan
objek melalui pointer. Pada OODB berbasis XML, sebuah dokumen XML dapat
dinyatakan sebagai objek DOM tree dan disimpan dalam tempat penyimpanan
1
yang bersifat menetap. Salah satu implementasi pendekatan kedua adalah eXcelon.
yang merupakan salah satu karakteristik penting XML. Oleh karena itu, kita tidak
mudah mengubah sebuah dokumen XML menjadi satu atau lebih tabel.
sebagian besar aplikasi yang ada, menyimpan data dalam RDBMS. Untuk
membuat aplikasi Web berbasis XML yang terintegrasi dengan sumber daya
RDBMS. Kedua, sebagian besar RDBMS komersil, seperti Oracle dan DB2,
mampu menangani data dalam jumlah besar dan jumlah akses yang besar pula.
manajemen, termasuk backup data dan recovery. Dengan alasan inilah mengapa
yaitu :
a. Menggunakan bahasa query yang dibuat khusus untuk hal ini seperti
OpenText.
Expresi XPath juga dapat diubah menjadi SQL untuk mencari sebuah basis
menjadi data untuk disimpan dalam sebuah tabel sebagai nilai kolom atau
jika dokumen XML dihasilkan data yang tersimpan dalam basis data,
Penyimpanan model data XML yang bersifat hirarki ke dalam model data
atribut dalam DTD suatu relasi di mana elemen / atribut tersebut akan
disimpan.
algoritma SDM.
yang sesuai. Dalam tugas akhir ini tidak dibahas query mapping ini.
salah satu pendekatan yakni dengan memetakan setiap elemen DTD ke tabel yang
terlalu banyak tabel. Pendekatan yang lain adalah dengan memetakan semua
elemen DTD ke tabel tunggal. Kelemahan dari pendekatan ini akan menghasilkan
tabel yang besar. Sedangkan pendekatan yang lebih baik dengan menggunakan
algoritma ODTDMap, yakni dengan memetakan child dan parent pada tabel yang
sama ketika child muncul maksimal sekali dibawah parent, operasi ini disebut
mengurangi jumlah tabel pada skema basis data yang dihasilkan [7].
2
b. Creating and inlining DTD graph : dibuat DTD graph dari hasil
inlining).
memiliki unsur elemn b atau c tetapi tidak memiliki keduanya, dengan demikian
dapat dibuat kolom b dan c dalam satu tabel sesuai dengan elemen a, dengan
menghasilkan skema relasional pada DTD yang diberikan. Berikut ini aturan
1. e+ e*
2. e? e
3. (e1 | … | en) (e1, …, en)
4. (a.) (e1 | … | en)* (e1*, …, en*)
(b.) e** e*
5. (a.) …, e, …, e, … …, e*, …, …
(b.)…, e, …, e*, … …, e*, …, …
(c.) …, e*, …, e, … …, e*, …, …
(d.)…, e*, …, e*, … …, e*, …, …
Dalam langkah ini, dibuat DTD graph dari hasil simplifying DTD dan
dilakukan operasi inlining pada DTD graph. Struktur dari DTD D dapat diwakili
adalah himpunan dari edge (garis). Node mewakili elemen dan atribut DTD, dan
edge mewakili relasi parent-child. Setiap node diberi label dengan nama elemen
terkait atau tipe atribut. Sebuah edge diberi label '*' jika edge tersebut dapat
muncul lebih dari sekali di bawah parent dalam dokumen XML. Sebagai contoh,
DTD hasil simplifying pada gambar 2.2 menghasilkan DTD graph seperti pada
gambar 2.3.
2
xbib
* book
**
@id@year @publisherauthortitlechaptercitation
* * *
* paragraph *
Node yang berisi atribut, didahului dengan tanda “@” dalam DTD graph.
Untuk atribut bertipe IDREFS atau NMTOKENS, edge diberi label dengan '*'
DTD graph menjadi inlined DTD graph pada gambar 2.4 [7].
2
a ab man a
b * * *
**
mnmnbb
Case 1Case 2Case 3
Pada case 1, node a berhubungan dengan node b oleh garis normal (garis
tanpa label „*‟) dan tak ada garis lain yang menuju b. Dalam case ini, a dapat
anaknya.
Pada case 2, node a berhubungan dengan node b oleh garis normal dan
terdapat garis lain yang menuju b. dalam case ini node a dan b tak dapat
Pada case 3, node a berhubungan dengan node b oleh star edge (garis
dengan label „*‟). Dalam case ini node b tak dapat digabungkan dengan node a.
xbib
*
* * *
author {fname, lname} chapter @cites
*
* section
* *
paragrap
Dengan mengikuti aturan seperti pada gambar 2.4, DTD graph xbib.dtd,
dari gambar 2.3 dilakukan proses inlining menjadi inlined DTD graph seperti
Langkah akhir dari schema mapping adalah menghasilkan skema basis data
relasional berdasarkan inlined DTD graph yang akan digunakan untuk langkah
Pada dasarnya, skema basis data yang akan dihasilkan mengaitkan setiap
elemen e dengan ID yang unique. Diberikan juga f.ID yang unique untuk setiap
tipe elemen f pada kelompok node inline e. Alasan di balik diberikannya ID atau
f.ID untuk setiap elemen adalah untuk dapat menyimpan urutan elemen XML
Atribut parentID dikenakan pada setiap elemen yang tidak inline untuk
menjaga struktur relasi parent-child pada DTD graph untuk menangani query
maksimum child dari e. atribut f.endID juga diberikan pada tiap tipe elemen f
untuk tujuan yang sama. Berikut ini skema basis data yang dihasilkan dari inlined
relasional dan memasukkan ke dalam skema basis data relasional yang dihasilkan
pada tahap sebelumnya. Terdapat dua algoritma data mapping yang akan dibahas,
yakni DOM-based OXInsert (DOM parser) dan SAX-based SDM (metode parsing
SAX).
DOM merupakan singkatan dari dari Document Object Model. DOM Parser
Pada gambar 2.7 terdapat dokumen XML, elemen kuliah memiliki 2 child
elemen mk, pada tiap elemen mk memiliki 2 child elemen nama dan jenis.
XML [2].
SAX adalah singkatan dari Simple API for XML. API sendiri adalah
Parser, isi program SAX Parser lebih sederhana. SAX parser bekerja
berdasarkan apa yang disebut event-based. Berikut ini gambaran cara kerja SAX
Dekumen XML
<nama> 3
</nama> 5
<jenis> 6
Wajib 7
</jenis> 8
</mk> 9
</kuliah> 10
SAX parser berjalan menjelajahi dokumen dari awal. Begitu SAX parser
dokumen XML. Cara kerja SAX parser diilustrasikan dalam gambar 2.8.
2
Dari dua jenis metode yang dibahas di atas, tidak ada yang dapat dikatakan
lebih unggul dari yang lain. SAX dan DOM dapat dimanfaatkan secara optimal
tergantung pada sifat dari dokumen yang hendak di-parse. Bila dokumen
SAX, seorang pemrogram harus bekerja lebih keras dalam mengakses dokumen
SAX lebih tepat digunakan untuk menangani dokumen XML yang dinamis,
sedang DOM lebih tepat untuk menangani dokumen yang sifatnya statis [2].
Dalam tugas akhir metode parsing SAX yang digunakan karena keunggulannya
Hypertext Preprocessor (PHP) adalah salah satu bahasa script yang berjalan
dalam sebuah web server dan berfungsi sebagai pengolah data pada sebuah server
[14]. Dengan menggunakan script PHP, sebuah website akan lebih interaktif dan
dinamis. Data yang dikirim oleh pengguna website atau komputer client akan
diolah dan disimpan pada database web server dan dapat ditampilkan kembali
3
apabila diakses. Untuk menjalankan kode-kode script PHP ini, file harus diupload
kedalam server. Upload adalah proses mentransfer data atau file dari computer
klien ke dalam web server sedangkan proser mentransfer data dari webserver ke
e. PHP juga mendukung akses ke beberapa database yang sudah ada, baik
yang bersifat free maupun komersial. Database itu antara lain MySQL,
tersebut. Terdapat berbagai macam model proses perangkat lunak, salah satunya
pengembang perangkat lunak yang sistematik dan sekuensial yang mulai pada
Pemodelan
Analisis Perancanga Implementasi
Pengujian
Dalam penyusunan tugas akhir ini, dipilih model sekuensial linier, mulai
dari tahap analisis sampai tahap pengujian. Berikut ini penjelasan tiap tahap dari
2.6.1 Analisis
Model analisis harus dapat mencapai tiga sasaran utama : (1) untuk
dasar bagi pembuatan desain perangkat lunak, (3) untuk membatasi serangkaian
mencapai sasaran tersebut, model analisis yang ditarik selama analisis terstruktur
Entity-
Relationship Diagram Data Flow
Diagram
Data
Dictionary
State-
Transition Diagram
Pada inti model ada kamus data (data dictionary) penyimpanan yang berisi
deskripsi dari semua objek data yang dikonsumsi atau diproduksi oleh perangkat
lunak. Di sini ada tiga diagram yang mengelilingi inti, yaitu : Entity-relationship
data. ERD adalah notasi yang digunakan untuk melakukan aktivitas pemodelan
data [10]. Atribut dari masing-masing objek data yang ditulis pada ERD dapat
pemodelan fungsi. Deskripsi setiap fungsi yang disajikan pada DFD diisikan
mengenai aspek kontrol dari perangkat lunak diisikan dalam control specification
(CSPEC).
3
2.6.2 Perancangan
rancangan data
State-
Transition Diagram
perangkat lunak
dalam ERD dan isi data detail yang digambarkan di dalam kamus data, menjadi
utama dari program. Desain arsitektur ini dirancang berdasarkan DFD yang telah
elemen struktural dari arsitektur program ke dalam suatu deskripsi prosedural dari
terdiri dari sekumpulan obyek-obyek, yang disebut dengan entitas dan hubungan
yang terjadi diantara obyek-obyek tersebut. Model data ERD terbagi menjadi tiga
konsep dasar yaitu himpunan entitas, himpunan relasi, dan atribut [16].
Suatu entitas merupakan suatu obyek dasar atau individu yang mewakili
sesuatu yang nyata eksistensinya dan dapat dibedakan dari obyek-obyek yang
lain. Suatu entitas mempunyai sekumpulan sifat, dan nilai dari beberapa sifat
Sekumpulan entitas yang mempunyai tipe yang sama (sejenis) dan berada
dalam lingkup yang sama membentuk suatu himpunan entitas. Sehingga dapat
2) Atribut
yang dimiliki oleh entitas. Atribut inilah yang membedakan antara entitas
relasi yaitu kumpulan semua relasi di antara entitas-entitas yang terdapat pada
4) Kardinalitas
dapat berelasi dengan entitas pada himpunan entitas yang lain. Terdapat
empat macam kardinalitas relasi yang terjadi antara himpunan entitas A dan
himpunan entitas A.
satu entitas di dalam himpunan entitas B, dan entitas di dalam himpunan entitas B
dapat dihubungkan dengan lebih dari satu entitas dalam himpunan entitas A.
lebih dari satu entitas di dalam himpunan entitas B, dan entitas di dalam
Simbol-simbol yang digunakan dalam ERD dapat dilihat pada tabel 2.5
berikut [16] :
Atribut
Menggambarkan himpunan atribut yang
merupakan suatu elemen-elemen dari entitas.
Relasi
Menggambarkan himpunan relationship antara
entitas yang satu dengan yang lain.
Garis
Menggambarkan hubungan atribut ke entitas dan
himpunan entitas ke himpunan relationship.
jaringan proses fungsional yang dihubungkan satu sama lain dengan alur data,
Simbol-simbol yang digunakan dalam DFD dapat dilihat pada tabel 2.6
berikut [9] :
Notasi Keterangan
Terminator/Entitas
Mewakili entitas eksternal yang berkomunikasi
dengan sistem yang dikembangkan. Biasanya
terminator dikenal dengan nama entitas luar
(external entity).
Proses
Menggambarkan bagian dari sistem yang
mentransformasikan dari input menjadi output.
Data Store
Komponen ini digunakan untuk membuat
model sekumpulan paket data dan diberi nama
dengan kata benda jamak. Data store juga
berkaitan dengan penyimpanan seperti file atau
database.
Data Flow/Alur Data
Menunjukkan arah menuju ke dan keluar dari
suatu proses. Alur data ini digunakan untuk
menerangkan perpindahan data atau paket
data/informasi dari satu bagian sistem ke
bagian lainnya.
Kamus data merupakan sebuah daftar yang teorganisasi dari elemen data
yang berhubungan dengan sistem, dengan definisi yang tegar dan teliti sehingga
3
pemakai dan analis sistem akan memiliki pemahaman yang umum mengenai
Adapun notasi dalam penulisan kamus data dapat dilihat pada tabel 2.7 [10].