4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag dan ... elemen dalam XML....

34
Pemrograman XML XML Tree & XML Tree & DTD DTD Salhazan Nasution, S.Kom Salhazan Nasution, S.Kom

Transcript of 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag dan ... elemen dalam XML....

Page 1: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Pemrograman XML

XML Tree & XML Tree & DTDDTD

Salhazan Nasution, S.KomSalhazan Nasution, S.Kom,,

Page 2: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

XML TreeXML Tree

2Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 3: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

XML Tree<person>

<name>

<first_name>Michael</first_name>

<last_name>Heart</last_name>

</name>

<profession>computer scientist</profession>

<profession>musicians</profession>

<profession>volunteer</profession>

</person>

3Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 4: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Parent and ChildrenPada contoh sebelumnya tag <person> merupakan parent, sedangkan tag <name> dan <profession> adalah child.

Tapi tag <name> merupakan parent dari tag p g p p g<first_name> dan <last_name>

Tag child yang berada pada level yang samaTag child yang berada pada level yang sama dinamakan siblings (saudara kandung)

4Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 5: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

The Root ElementSetiap dokumen XML memiliki satu element yang tidak memiliki parent, inilah yang dinamakan root element

5Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 6: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

AttributAttribut merupakan informasi tambahan mengenai elemen dalam XML.

Setiap tag XML boleh memiliki lebih dari 1 atribut, untuk penulisan nilai dari attribut sebuah tag kirauntuk penulisan nilai dari attribut sebuah tag kiraharus menggunakan tanda ‘ atau “.

Contoh :Contoh :

<person gender="male">

Michael Heart

</person>

6

p

Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 7: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

CommentsSama seperti HTML, di XML kita juga dapatmemberikan komentar.

Contoh :

<! ini merupakan komentar ><!–- ini merupakan komentar -->

<person gender="male">

Michael Heart

</person>

7Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 8: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

XML DefinitionDokumen XML dimulai (boleh juga tidak) dengandeklarasi XML. 

Contoh :

<?xml version="1 0" encoding="ASCII"<?xml version="1.0" encoding="ASCII" standalone="yes"?>

<person gender="male"><person gender="male">

Michael Heart

</person>

8Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 9: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

XML Naming RulesElement XML harus mengikuti aturan sebagai berikut :

Dapat mengandung kata, angka, dan karakterDapat mengandung kata, angka, dan karakter lainnya.

Tidak boleh diawali dengan angka dan tanda bacaTidak boleh diawali dengan angka dan tanda baca

Tidak boleh mengandung spasi

9Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 10: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Well formed‐DocumentSetiap dokumen XML harus memiliki bentuk yang benar (well formed). Ada beberapa aturan untuk membuat dokumen XML yang well formed :yang well formed :

Setiap tag harus ada penutupnya

Setiap element boleh bersarang, akan tetapi tidak boleh saling overlap 

Hanya boleh memiliki 1 root element

Atribut value harus memiliki tanda “ atau ‘

10Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 11: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Ciri‐ciri Tag XMLExtensible, penulis bisa mendefinisikan tag sendiri.

Tag XML selalu berpasangan.

Case sensitive.

Ekstensi file .xmlEkstensi file .xml

Hanya boleh memiliki 1 tag root.

T XML h di k t k b d t tid k t kTag XML hanya digunakan untuk membawa data, tidak untuk menampilkan data.

11Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 12: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Contoh XMLBenar :

<daftarmahasiswa><nim>04523001</nim><nama>Budi</nama><nama>Budi</nama>

</daftarmahasiswa>

12Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 13: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Contoh XMLSalah :

<daftarmahasiswa><nim>06523001<nama>Banu</nim><nama>Banu</nim></nama>

</daftarmahasiswa>/

13Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 14: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Contoh XML<daftar><mahasiswa>

<nim>04523356</nim>/<nama>salhazan</nama>

</mahasiswa><mahasiswa>

<nim>04523293</nim><nama>ari wibowo</nama>

</mahasiswa><mahasiswa>

< i >04523117</ i ><nim>04523117</nim><nama>mursalim tonggiroh</nama>

</mahasiswa>

14

</daftar>

Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 15: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Contoh XML<daftar><mahasiswa>

<nim>04523356</Nim>/<nama>salhazan</nama>

</mahasiswA><mahasiswa>

<nim>04523293<nama>ari wibowo</nim></nama>

</mahasiswa><maha siswa>

< i >04523117</ i ><nim>04523117</nim><nama>manohara</nama>

</mahasiswa>

15

</daftar>

Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 16: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Any Question?

16Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 17: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

DTD( f )(Document Type Definition)

17Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 18: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Document Type Definition (DTD)Bertujuan untuk mendefinisikan pembangunan blokpada dokumen XML. 

Dengan DTD, setiap dokumen XML dapat membawainformasi tentang format yang dibangun padainformasi tentang format yang dibangun padadokumen tersebut .

Digunakan untuk memvalidasi dokumen XMLDigunakan untuk memvalidasi dokumen XML, Sebuah dokumen XML tidak hanya memiliki bentukyang benar (well formed) akan tetapi juga harusyang benar (well formed) akan tetapi juga harusValid. Maka untuk itu digunakan DTD.

18Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 19: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Document Type Definition (DTD)Dokumen XML yang valid selalu mengikut sertakanDTD. DTD berisi daftar element,atribut dan entitiyang digunakan didalam sebuah dokumen XML.

Agar bisa dikatakan valid, semua yang ada didalamAgar bisa dikatakan valid, semua yang ada didalamdokumen XML harus dideklarasikan didalam DTD. Jika sebuah dokumen XML telah mengikut sertakangDTD maka dokumen XML tersebut bisa dikatakanValid.

19Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 20: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Document Type Definition (DTD)DTD tidak harus ditambahkan kedalam dokumenXML, namun konsekuensinya Dokumen XML tanpaDTD tidak dapat diperiksa validitasnya.

Dengan DTD, setiap dokumen XML dapat membawaengan T , setiap dokumen XM dapat membawainformasi tentang format yang dibangun padadokumen tersebut.

Dengan DTD, Aplikasi yang dibuat dapat melakukanverifikasi apakah boleh menerima data dari luar atauverifikasi apakah boleh menerima data dari luar atautidak.

20Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 21: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Well‐formed XML<daftarmahasiswa>

<nim>04523001</nim><nama>Budi Anduk</nama><jurusan>Teknik Informatika</jurusan>

</daftarmahasiswa>

21Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 22: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Contoh DTD<?xml version=“1.0”?><!DOCTYPE daftarmahasiswa [

<!ELEMENT daftarmahasiswa (nim nama jurusan)><!ELEMENT daftarmahasiswa (nim,nama,jurusan)><!ELEMENT nim (#PCDATA)><!ELEMENT nama (#PCDATA)><!ELEMENT jurusan (#PCDATA)>

]>

<daftarmahasiswa><nim>04523001</nim><nim>04523001</nim><nama>Budi Anduk</nama><jurusan>Teknik Informatika</jurusan>

22

j j</daftarmahasiswa>

Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 23: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Document Type Definition (DTD)Untuk mendeklarasikan DTD, bisa menggunakan 2 cara :

Internal DTD (menjadi satu dengan dokumen XML)<?xml version=“1.0” standalone=“yes”?><!DOCTYPE daftar [<!ELEMENT daftar (#PCDATA)><!ELEMENT daftar (#PCDATA)>]>

Eksternal DTD (terpisah pada file lainnya)<?xml version=“1.0” standalone=“no”?><!DOCTYPE daftar SYSTEM “daftar.dtd”>

23Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 24: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Internal DTD<?xml version=“1.0”?><!DOCTYPE daftarmahasiswa [

<!ELEMENT daftarmahasiswa (nim nama jurusan)><!ELEMENT daftarmahasiswa (nim,nama,jurusan)><!ELEMENT nim (#PCDATA)><!ELEMENT nama (#PCDATA)><!ELEMENT jurusan (#PCDATA)>

]>

<daftarmahasiswa><nim>04523001</nim><nim>04523001</nim><nama>Budi Anduk</nama><jurusan>Teknik Informatika</jurusan>

24

j j</daftarmahasiswa>

Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 25: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Eksternal DTD<?xml version=“1.0”?><!DOCTYPE daftarmahasiswa SYSTEM “mahasiswa.dtd”>

<daftarmahasiswa><nim>04523001</nim><nama>Budi Anduk</nama><jurusan>Teknik Informatika</jurusan>

</daftarmahasiswa>

25Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 26: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Document Type Definition (DTD)Pada contoh sebelumnya elemen berisi (#PCDATA) yang berartibahwa isi dari elemen hanya teks biasa. Jika diinginkan elemenberisi teks dan elemen lain maka kita bisa menggunakan ANYberisi teks dan elemen lain maka kita bisa menggunakan ANY, adapun jika hanya elemen saja maka isikan dengan namaelemen.elemen.

26Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 27: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Element DefinitionSetiap element yang digunakan didalam dokumen XML harusdideklarasikan didalam Dokumen DTD

<!ELEMENT element_name content_specification>

27Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 28: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Tipe DataSetiap element pada dokumen XML harus memiliki tipe data

• #PCDATA  tipe data yang bisa di parserCth : <!ELEMENT phone_number (#PCDATA)> p _

• CDATA  tipe data yang tidak bisa diparser. Biasanyadigunakan pada atribut list

Cth : <!ATTLIST phone_number (CDATA)>

28Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 29: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

The Number of ChildrenSetiap element dalam dokumen XML yang telah dideklarasikanpada DTD  bisa ditampilkan sesuai dengan yang kita inginkan.

?  element BOLEH TIDAK muncul atau MAX 1 kali

*  element BOLEH TIDAK muncul atau BOLEH LEBIH 1 kali

+  element HARUS muncul dan BOLEH LEBIH 1 kali

|  element boleh berisi beberapa child atau karakter (seperti fungsi or)

tidak ada tanda  element harus muncul tepat 1 kali

29Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 30: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Contoh DTD<?xml version=“1.0” standalone=“yes”?><!DOCTYPE daftarmahasiswa [

<!ELEMENT daftarmahasiswa (nim nama jurusan)><!ELEMENT daftarmahasiswa (nim,nama,jurusan)><!ELEMENT nim (#PCDATA)><!ELEMENT nama (#PCDATA)><!ELEMENT jurusan (#PCDATA)>

]>

<daftarmahasiswa><nim>04523001</nim><nim>04523001</nim><nama>Budi Anduk</nama><jurusan>Teknik Informatika</jurusan>

30

j j</daftarmahasiswa>

Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 31: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

Contoh DTD<?xml version=“1.0” standalone=“yes”?><!DOCTYPE daftarmahasiswa [

<!ELEMENT daftarmahasiswa (nim nama jurusan)><!ELEMENT daftarmahasiswa (nim,nama,jurusan)><!ELEMENT nim (#PCDATA)><!ELEMENT nama (#PCDATA)><!ELEMENT jurusan (#PCDATA)>

]>

<daftarmahasiswa><nim>04523001</nim><nim>04523001</nim><nama>Budi Anduk</nama>

</daftarmahasiswa>

31Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 32: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

<?xml version=“1.0” standalone=“yes”?><?xml version 1.0 standalone yes ?>

<!DOCTYPE daftarmahasiswa [

<!ELEMENT daftarmahasiswa (mahasiswa)>

<!ELEMENT mahasiswa (nama alamat+ telp?)><!ELEMENT mahasiswa (nama,alamat+,telp?)>

<!ELEMENT nama (#PCDATA)>

<!ELEMENT alamat (#PCDATA)>

<!ELEMENT telp (#PCDATA)>

]>

<daftarmahasiswa>

<mahasiswa>

<nama>Budi Anduk</nama>

</mahasiswa>

<mahasiswa>

<nama>Sabria</nama>

<alamat>Jakal km 15</alamat><alamat>Jakal km 15</alamat>

<telp>08123456789</telp>

<telp>0219876543</telp>

</mahasis a>

32

</mahasiswa>

</daftarmahasiswa>Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 33: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

<?xml version=“1.0” standalone=“yes”?><?xml version 1.0 standalone yes ?>

<!DOCTYPE daftarmahasiswa [

<!ELEMENT daftarmahasiswa (mahasiswa+)>

<!ELEMENT mahasiswa (nama alamat+ telp*)><!ELEMENT mahasiswa (nama,alamat+,telp*)>

<!ELEMENT nama (#PCDATA)>

<!ELEMENT alamat (#PCDATA)>

<!ELEMENT telp (#PCDATA)>

]>

<daftarmahasiswa>

<mahasiswa>

<nama>Budi Anduk</nama>

<alamat>Jakal km 10</alamat>

</mahasiswa>

<mahasiswa>

<nama>Sabria</nama><nama>Sabria</nama>

<alamat>Jakal km 15</alamat>

<telp>08123456789</telp>

<telp>0219876543</telp>

33

<telp>0219876543</telp>

</mahasiswa>

</daftarmahasiswa> Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom

Page 34: 4. Pemrograman XML - XML Tree & DTD · merupakan parent, sedangkan tag  dan ... elemen dalam XML. 9Setiaptag XML boleh memilikilebih dari1 atribut, ... 9Bertujuan untuk

See you next timeSee you next timeAny Question?

See you next time..See you next time..

34Pemrograman XML (Semester Ganjil 2009/2010) ‐ Salhazan Nasution, S.Kom