Uploaded by User12215

Modul 2 - SISTER(1)

advertisement
SISTEM TERDISTRIBUSI
XML FUNDAMENTAL
Dosen Pengampu : Fandy Setyo Utomo, S.Kom., M.Cs
Agenda Perkuliahan :
1.
Struktur XML
2.
Elemen, Tag, Data Karakter, dan Attribute
3.
CDATA Section
4.
Komentar
5.
Deklarasi XML
6.
XML Well Formed
7.
Mengaitkan dokumen XML dengan HTML
Tujuan Perkuliahan :
1.
Mahasiswa dapat membuat dokumen XML dan file XML Well Formed.
2.
Mahasiswa dapat membedakan antara Tag, Elemen, Attribute, CDATA, dan Entity.
3.
Mahasiswa dapat mengaitkan dokumen XML dengan halaman HTML.
1
Saat ini XML sangat populer. Format penyimpanan data XML membuat
platform ini independen dan bermacam aplikasi dapat memprosesnya dengan mudah.
XML kepanjangan dari Extensible Markup Language. Informasi dalam XML disimpan
di dalam Tag. Markup berarti sebuah bahasa yang dibangun dengan menggunakan Tag
untuk mengelilinginya atau Markup Text.
Pada HTML, tag didefinisikan dan diterjemahkan oleh browser. Pada XML
tidak ada struktur informasi yang disampaikan seperti pada HTML, sehingga untuk
menampilkan informasi diperlukan parser untuk menerjemahkan antara data dan tag.
A. Struktur Dokumen XML
Dokumen XML berisi informasi dan markup yang dibagi menjadi
beberapa bagian penting, yaitu :
1.
Element
Masing-masing dokumen XML berisi satu atau lebih elemen.
Elemen mengenalkan dan menandakan isi. Elemen mendominasi di dalam
dokumen XML. Beberapa orang menyebut elemen dengan nodes. Aturan
penulisan XML adalah case sensitive. Berikut adalah contoh sebuah element :
<tag>Some Text</tag>
Elemen di atas berisi 2 tag dan beberapa text. Elemen dapat berisi elemen yang
lain. Elemen juga dapat berisi “kosong” atau tidak berisi teks, seperti HTML,
XML dimulai dengan tag pembuka dan penutup. Sebuah elemen kosong
dituliskan dengan :
<tagname></tagname>
atau
<tagname />
Ketika elemen berisi elemen yang lain, elemen yang diisi disebut dengan
parent dan elemen di dalamnya disebut child.
<tagname>
<childTag>Some Text</ childTag>
</tagname>
2
Elemen pertama pada dokumen XML disebut root element atau document root
atau root node. Root element berisi elemen yang lain. Struktur dokumen XML
dapat dilihat pada ilustrasi berikut :
Sekarang, anda buat dokumen XML yang mencakup apa yang telah dibahas
sebelumnya. Tulis kode program di bawah ini dan simpan dengan nama
latihan2.xml pada folder masing-masing.
<orang>
<mahasiswa>Budi Susanto</mahasiswa>
<mahasiswa>
<nim>07.11.0123</nim>
<nama>Agung Laksono</nama>
</mahasiswa>
<mahasiswa></mahasiswa>
<mahasiswa>
<nim>08.12.0657</nim>
<nama>
<nama_depan>Ali</nama_depan>
<nama_belakang>Sadikin</nama_belakang>
</nama>
</mahasiswa>
<mahasiswa />
</orang>
3
2.
Attribute
Attribute berfungsi sebagai tambahan informasi tentang sebuah
elemen. Attribute disimpan dengan tag pembuka sebuah elemen setelah nama
elemen. Attribute menguraikan antara nama dan nilainya, dan setiap attribute
harus memiliki keduanya, yaitu nama dan nilai.
<tagname attributeName=”attributeValue”>
Some Text
</tagname>
Contoh :
<person born="1912-06-23" died="1954-06-07">
Alan Turing
</person>
3.
Text
Text menggambarkan isi informasi diantara tag pembuka dan tag
penutup elemen. Contohnya :
<fullname>
Alan Turing
</fullname>
4.
Entity References
Text diantara tag pembuka dan tag penutup dalam sebuah elemen
akan diproses dalam pengolahan XML, sehingga spesial karakter seperti “<”
dan “>” diganti dengan entity < dan >
Contoh :
<tutorial>
<judul>Menuliskan Elemen Sedrhana</judul>
<penulis>Hendra Kusmayadi</penulis>
<isi>
Berikut adalah contoh penulisan elemen sederhana
<mahasiswa>Joni Suraya</mahasiswa>
4
</isi>
</tutorial>
5.
Comment
Comment atau komentar dalam XML sama dengan comment pada
HTML, yaitu dimulai dengan karakter “<!--” dan diakhiri dengan “-->”
Sintaq :
<!-- Ini adalah bagian komentar, tidak akan dieksekusi -->
6.
CDATA Sections
Pada bahasan sebelumnya kita telah membahas apa yang namanya
entity references dimana jika kita akan menuliskan string “<” maka yang kita
tuliskan adalah entitasnya yaitu “&lt”. Namun, dengan menggunakan CDATA
kita dapat menuliskan string atau karakter tersebut tanpa harus menggunakan
entitas. Cara penulisannya adalah dengan diawali string “<![CDATA[” dan
diakhiri dengan “]]>”. Contoh :
<tutorial>
<judul>Menuliskan Elemen Sederhana</judul>
<penulis>Hendra Kusmayadi</ penulis >
<isi>
Berikut adalah contoh penulisan elemen sederhana
<![CDATA[
<mahasiswa>Joni Suraya</mahasiswa>
]]>
</isi>
</tutorial>
5
B. Deklarasi XML
Sebuah dokumen XML biasanya dimulai dari XML Declaration,
meskipun itu bersifat optional. Deklarasi XML berada pada baris pertama dokumen
XML. Contoh deklarasi XML adalah sebagai berikut :
<?xml version="1.0" encoding="ASCII" ?>
Deklarasi XML berisi versi XML. Dalam contoh di atas adalah versi 1.0.
C. XML Well Formed
Sebuah dokumen XML dikatakan Well Formed jika memenuhi kriteria
berikut ini :
1.
Dokumen berisi satu atau lebih elemen
2.
Dokumen berisi single root element, yang mana berisi beberapa elemen di
dalamnya
3.
Tiap elemen harus ditutup
4.
Tag pembuka dan tag penutup harus sama (case sensitive)
5.
Nilai attribute berada di dalam tanda petik (“....”)
D. Mengaitkan Dokumen XML dengan HTML (Case Study)
Untuk lebih memperdalam pengertian XML, kita akan membandingkan
dengan model data yang sering digunakan, yaitu model data relasional. Database
relasional direpresentasikan dalam bentuk tabel. Dalam sebuah tabel terdiri dari
kolom atau field dan record.
Diketahui dari database perpustakaan, terdapat tabel buku dengan
susunan informasi sebagai berikut :
ID
1
Judul
Pemrograman
Penerbit
Graha Ilmu
Basis Data
Penulis
Sri
ISBN
989-209-
Jum Hal
151
Kusumadewi 321-1
dengan C#.NET
2
Perancangan
Andi
Samuel
Game 3D
3
Teknik Instalasi
298-211-
200
443-2
Pohon
Mohammad
6
233-123-
97
dan
Cahaya
Imron
321-1
Graha Ilmu
Andi
988-555-
Sunyoto
212-3
Maintenance
Komputer
4
Algoritma dan
Struktur Data
322
dengan Java
Kemudian, informasi yang ada pada tabel buku tersebut, kita ubah ke dalam bentuk
XML. Ketikkan kode program berikut, kemudian simpan dengan nama buku.xml
<?xml version="1.0" encoding="utf-8"?>
<buku>
<idBuku id="1">
<judul>Pemrograman Basis Data dengan C#.NET</judul>
<penerbit>Graha Ilmu</penerbit>
<penulis>Sri Kusumadewi</penulis>
<isbn>989-209-321-1</isbn>
<jumlah_halaman>151</jumlah_halaman>
</idBuku>
<idBuku id="2">
<judul>Perancangan Game 3D</judul>
<penerbit>Andi</penerbit>
<penulis>Samuel</penulis>
<isbn>298-211-443-2</isbn>
<jumlah_halaman>200</jumlah_halaman>
</idBuku>
<idBuku id="3">
<judul>Teknik
Instalasi
dan
Komputer</judul>
<penerbit>Pohon Cahaya</penerbit>
<penulis>Mohammad Imron</penulis>
<isbn>233-123-321-1</isbn>
<jumlah_halaman>97</jumlah_halaman>
7
Maintenance
</idBuku>
<idBuku id="4">
<judul>Algoritma dan Struktur Data dengan Java</judul>
<penerbit>Graha Ilmu</penerbit>
<penulis>Andi Sunyoto</penulis>
<isbn>988-555-212-3</isbn>
<jumlah_halaman>322</jumlah_halaman>
</idBuku>
</buku>
Kemudian, dokumen buku.xml yang telah dibuat, akan kita hubungkan dengan
HTML, sehingga tampilan datanya lebih menarik. Ketikkan kode program berikut,
kemudian simpan dengan nama koleksi.html (simpan koleksi.html, satu folder
dengan buku.xml).
<!DOCTYPE
html
Transitional//EN"
PUBLIC
"-//W3C//DTD
XHTML
1.0
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-
transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Koleksi Buku Perpustakaan</title>
</head>
<body>
<XML ID="dsoBuku" SRC="buku.xml"></XML>
<center>
<h2>KOLEKSI BUKU PERPUSTAKAAN</h2>
</center>
<br /><br />
<button onclick="tabelBuku.firstPage()">First</button>
<button onclick="tabelBuku.previousPage()">Prev</button>
8
<button onclick="tabelBuku.nextPage()">Next</button>
<button onclick="tabelBuku.lastPage()">Last</button>
<br />
<table id="tabelBuku" datapagesize="2" DATASRC="#dsoBuku"
border="1" cellpadding="2" cellspacing="2">
<thead>
<th>Judul</th>
<th>Penerbit</th>
<th>Penulis</th>
<th>ISBN</th>
<th>Jumlah Halaman</th>
</thead>
<tr>
<td><span DATAFLD="judul"></span></td>
<td><span DATAFLD="penerbit"></span></td>
<td><span DATAFLD="penulis"></span></td>
<td><span DATAFLD="isbn"></span></td>
<td><span DATAFLD="jumlah_halaman"></span></td>
</tr>
</table>
</body>
</html>
9
Hasilnya akan tampak di browser, seperti berikut ini :
10
SISTEM TERDISTRIBUSI
DOCUMENT TYPE DEFINITIONS (DTD) & NAMESPACE
Dosen Pengampu : Fandy Setyo Utomo, S.Kom., M.Cs
Agenda Perkuliahan :
1.
Validation
2.
Deklarasi elemen
3.
Deklarasi Atribut
4.
General Entity Declarations
5.
Standar penempatan DTD
6.
Sintak Namespace
7.
Namespace dan DTD
Tujuan Perkuliahan :
1.
Mahasiswa memahami DTD
2.
Mahasiswa dapat menggunakan DTD untuk elemen dan atribut
3.
Mahasiswa dapat membuat dokumen XML berdasarkan DTD yang telah ada
4.
Mahasiswa dapat memahami maksud dan tujuan dari pembuatan namespace
5.
Mahasiswa dapat menentukan kapan menggunakan namespace
11
DOCUMENT TYPE DEFINITIONS (DTD)
DTD berfungsi untuk mendefinisikan tipe dokumen XML. DTD ditulis untuk
menjelaskan elemen dan entitas yang mungkin muncul di dalam dokumen dan elemen
isi serta atributnya. Sehingga dapat diketahui seperti apa struktur dokumen dan dapat
membedakan yang mana tag dan yang mana elemen.
A. Validation
DTD digunakan untuk mendeklarasikan semua elemen, atribut, dan
entitas yang akan digunakan di dalam dokumen. Semua elemen, atribut, dan entitas
yang akan digunakan harus dideklarasikan di dalam DTD.
Sebagai contoh, buatlah dokumen XML berikut yang menyertakan
deklarasi DTD. Kemudian, simpan file tersebut dengan nama latihanDTD.xml :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mahasiswa [
<!ELEMENT mahasiswa (nim,nama,jurusan,alamat,telp)>
<!ELEMENT nim (#PCDATA)>
<!ELEMENT nama (nama_depan,nama_belakang)>
<!ELEMENT nama_depan (#PCDATA)>
<!ELEMENT nama_belakang (#PCDATA)>
<!ELEMENT jurusan (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT telp (#PCDATA)>
]>
<mahasiswa>
<nim>10.11.0178</nim>
<nama>
<nama_depan>Budi</nama_depan>
<nama_belakang>Hartanto</nama_belakang>
</nama>
<jurusan>Teknik Informatika</jurusan>
<alamat>Jl. Kaliputih no. 121</alamat>
12
<telp>08123476556</telp>
</mahasiswa>
B. Dekalarasi Elemen
Jika dipahami pada dokumen XML di atas, ada beberapa bagian dari
deklarasi elemen, yaitu :
1.
#PCDATA
Konten yang terkandung di dalam elemen yang dimaksud adalah text.
Meskipun data yang ada di elemen tersebut berupa angka, tetap dianggap
sebagai text. Contoh :
<!ELEMENT telp (#PCDATA)>
2.
Elemen anak
Nama anak ditulis di dalam tanda kurung. Misalnya :
ELEMENT fax (phone_number)>
3.
Sequence
Kita dapat menuliskan elemen anak lebih dari satu pada deklarasinya. Dengan
penulisan ini dimaksudkan untuk menuliskan elemen anak lebih dari satu
elemen. Misalnya :
<!ELEMENT nama (nama_depan,nama_belakang)>
4.
Jumlah anak
Penulisan jumlah anak dari suatu elemen dapat kita tuliskan dengan cara
menambahkan tanda berikut pada akhir nama elemen.
Karakter
Arti
+
Muncul satu kali atau lebih. Minimal muncul satu kali
*
Muncul 0 kali atau lebih
?
Boleh tidak muncul, tapi jika muncul maksimal 1 kali
|
Fungsi ATAU
13
Contoh penggunaannya sebagai berikut :
<!ELEMENT mahasiswa (telp+)>
Artinya, elemen mahasiswa memiliki satu atau lebih elemen telp.
5.
Elemen Kosong
Elemen kosong adalah sebuah tag yang tidak memiliki elemen nilai.
Penulisannya dapat berupa :
<image source="bus.jpg" width="152" height="345" alt="Alan Turing
standing in front of bus"/>
Dengan deklarasi elemennya :
<!ELEMENT image EMPTY>
6.
Any
Kita dapat mengijinkan apapun dapat berada pada suatu elemen. Penulisan
deklarasinya adalah :
<!ELEMENT page ANY>
C. Deklarasi Atribut
Sama seperti elemen, dokumen dikatakan valid jika dapat menyatakan
semua atribut elemen jika elemennya memiliki atribut. Sintaks penulisannya adalah
dengan ATTLIST.
Sebagai contoh, buatlah dokumen XML berikut yang menyertakan
deklarasi atribut. Kemudian, simpan file tersebut dengan nama latihanAttlist.xml :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE orang [
<!ELEMENT orang (nama)>
<!ELEMENT nama (#PCDATA)>
<!ATTLIST nama profesi CDATA #REQUIRED hobi CDATA
"Belajar" umur CDATA #IMPLIED jenis_kelamin CDATA #FIXED
"Pria">
14
]>
<orang>
<nama profesi="Dosen">Moh. Imron</nama>
</orang>
D. General Entity Declarations
Kita juga dapat mendeklarasikan entitas sesuai dengan yang kita
inginkan. Sebagai contoh, buatlah file dengan nama latihanEntity.xml dengan isi
sebagai berikut :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE orang [
<!ELEMENT orang (nama, email)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ENTITY mail "[email protected]">
]>
<orang>
<nama>Moh. Imron</nama>
<email>&mail;</email>
</orang>
E. Standar Penempatan DTD
DTD dan validity merupakan hal yang sangat penting ketika kita hendak
mengganti data dengan yang lainnya. Hal ini untuk memastikan kita, apakah data
yang kita kirim diterima dengan baik.
15
F. File DTD dan File XML
Kita juga dapat membuat file DTD pada file yang terpisah dengan
dokumen XML aslinya. Caranya dengan penulisan DTD-nya menjadi :
<!DOCTYPE nama_dokumen SYSTEM “lokasi_file_DTD”>
Sekarang, ubah file latihan latihanDTD.xml, menjadi;
<?xml version=”1.0” encoding=”UTF-8”?>
<!DOCTYPE mahasiswa SYSTEM “mahasiswa.dtd”>
<mahasiswa>
<nim>10.11.0178</nim>
<nama>
<nama_depan>Budi</nama_depan>
<nama_belakang>Hartanto</nama_belakang>
</nama>
<jurusan>Teknik Informatika</jurusan>
<alamat>Jl. Kaliputih no. 121</alamat>
<telp>08123476556</telp>
</mahasiswa>
Dan buat dokumen baru dengan nama mahasiswa.dtd yang isinya sebagai berikut :
<!ELEMENT mahasiswa (nim,nama,jurusan,alamat,telp)>
<!ELEMENT nim (#PCDATA)>
<!ELEMENT nama (nama_depan,nama_belakang)>
<!ELEMENT nama_depan (#PCDATA)>
<!ELEMENT nama_belakang (#PCDATA)>
<!ELEMENT jurusan (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT telp (#PCDATA)>
Kemudian, cek hasilnya di browser.
16
G. Studi Kasus DTD
Buatlah file DTD dengan ketentuan sebagai berikut :
1.
Studi kasus tentang koleksi film yang ada di Bioskop Rajawali Purwokerto.
2.
Data film terdiri dari judul film, pemain, sutradara, jenis film/kategori,
produser
3.
Setiap film harus memiliki judul dan maksimal hanya satu judul untuk satu
film
4.
Dalam satu film harus memiliki paling tidak satu nama pemain
5.
Tiap film harus memiliki sutradara dan hanya boleh ada satu sutradara untuk
satu film
6.
Satu film bisa termasuk dalam beberapa kategori film, contoh : film
“Battleship” termasuk dalam kategori Action & Fiction
7.
Dalam satu film boleh memiliki lebih dari satu produser. nama produser tidak
harus disertakan dalam informasi film tersebut
8.
Judul film dapat memiliki attribut berupa “durasi” yang merupakan informasi
tentang lama film (dalam menit), tapi bisa juga tidak.
9.
Judul film harus memiliki attribut tahun produksi yang merupakan informasi
tentang tahun pembuatan film tersebut.
Kemudian, buat file XML dari DTD tersebut.
17
NAMESPACES
A. Definisi
Namespaces merupakan penambahan suatu string pada suatu elemen.
Namespaces diimplementasikan dengan menempelkan awalan untuk setiap elemen
dan atribut. Penulisannya dengan menambahkan string tertentu pada elemen/atribut
yang kemudian dibatasi oleh titik dua ( : ) antara namespace nama elemen/atribut.
Setiap awalan dipetakan ke URI oleh atribut xmlns:prefix. URI default juga dapat
diberikan untuk elemen yang tidak memiliki prefix atribut xmlns. Elemen dan
atribut yang melekat pada URI yang sama, merupakan namespace yang sama.
B. Tujuan
Tujuan namespaces untuk membedakan antara nama elemen dengan
nama atribut yang sama, namun memiliki arti yang berbeda, dan untuk berbagai
nama yang sama, serta untuk semua grup terkait dengan elemen dan atribut dari
satu aplikasi share XML, sehingga perangkat lunak dapat dengan mudah mengenali
mereka.
C. Contoh
XML DAN NAMESPACES
Untuk kasus penggunaan elemen, misalnya jika kita ingin
menuliskan sebuah dokumen untuk menyimpan nama bambu, dimana bambu
yang pertama merupakan data untuk menyatakan bahwa sebuah bambu akan
digunakan untuk membuat pagar rumah dimana penulisan elemen tersebut
adalah sebagai berikut :
<bambu>
<jenis>Jawa</jenis>
<panjang>2</panjang>
</bambu>
sedangkan ada dokumen yang kedua menyatakan bahwa bambu itu adalah
sebuah merk produk dengan penulisan dokumen :
18
<bambu>
<jumlah>246</jumlah>
<hargasatuan>200</hargasatuan>
</bambu>
Apabila kedua file XML tersebut digabungkan pada sebuah dokumen tunggal,
maka akan menyebabkan pemrosesan yang ambigu. Solusinya, yaitu dengan
menambahkan namespace, dengan sintak dasar sebagai berikut :
<prefiks:nama_elemen xmlns:prefiks=”Namespace”>
prefiks adalah awalan yang digunakan, nama_elemen merupakan nama
elemen yang akan diberi namespace, karena memiliki kesamaan nama dengan
elemen lain namun berbeda maksud.
Sehingga, bentuk penulisan dokumen XML tersebut menjadi :
<bahan>
<n_pertama:bambu xmlns:n_pertama="Namespace1">
<n_pertama:jenis>Jawa</n_pertama:jenis>
<n_pertama:panjang>3m</n_pertama:panjang>
</n_pertama:bambu>
<n_kedua:bambu xmlns:n_kedua="Namespace2">
<n_kedua:jumlah>100</n_kedua:jumlah>
<n_kedua:hargasatuan>300</n_kedua:hargasatuan>
</n_kedua:bambu>
</bahan>
Simpan dokumen tersebut dengan nama latihNamespace.xml
19
Download