SlideShare a Scribd company logo
1 of 16
BAB VI SIMPLE API FOR XML (SAX)
Riza Muhammad Nurman, S.Kom
Email : rizaman@eng.ui.ac.id ; rizamn@ymail.com
Sunday, April 22, 2018 Riza Muhammad Nurman 2
CONTENT
 PENGENALAN SAX
 PERBEDAAN DOM DAN SAX
 MENGGUNAKAN SAX
 BEBERAPA CONTOH SAX PARSER
 MENGGUNAKAN SAX API INTERFACE
 MEMPARSING DOKUMEN XML DENGAN MENGGUNAKAN SAX
API
Sunday, April 22, 2018 Riza Muhammad Nurman 3
Pengenalan SAX
• Simple API for XML (SAX) adalah public domain software dibuat oleh
anggota dari XML-DEV mailing list
• SAX digunakan untuk memproses dokumen XML.
• Software yang mengimplementasikan SAX untuk memproses
dokumen XML disebut SAX Parser.
• SAX cocok untuk memproses dokumen XML dengan ukuran besar
karena menggunakan memory yang lebih kecil.
Sunday, April 22, 2018 Riza Muhammad Nurman 4
Perbedaan DOM dan SAX
KRITERIA DOM SAX
Metode Parsing proses parsing sebuah dokumen XML
secara random
menggunakan callback untuk
event yang terjadi ketika
pemrosesan sebuah dokumen
sedang berjalan
Pengorganisasian
Informasi
komponen dari dokumen XML dibaca
sebagai struktur hierarki dalam bentuk
pohon di dalam memory internal sebuah
komputer
Permintaan atas informasi
tentang sebuah komponen dari
dokumen XML diperlakukan
sebagai sebuah event
Pengaksesan Informasi pengaksesan data ke bagian manapun di
dalam dokumen lebih mudah karena
adanya struktur tree di dalam memory
informasi dapat diakses dalam
urutan berdasarkan urutan
pemrosesannya
Kecepatan Lambat Lebih cepat
Kesulitan Dalam
Pengembangan
Mudah Sulit
Penggunaan Memory Banyak Sedikit
Navigability melakukan navigasi antara berbagai
nodes pada tree node
dokumen XML diparsing mulai
dari awal dokumen ke akhir dan
tidak mengijinkan dilakukannya
navigasi.
Kemudahan
Transformasi Dokumen
mengijinkan developer untuk
memodifikasi deokumen XML secara
langsung
tidak dapat memodifikasi sebuah
dokumen XML karena bersifat
read-only
Sunday, April 22, 2018 Riza Muhammad Nurman 5
Menggunakan SAX
* Cara Kerja SAX API
SAX menggunakan class dan interface yang didefinisikan dalam SAX API
untuk memproses sebuah dokumen XML dalam bentuk data stream
Sunday, April 22, 2018 Riza Muhammad Nurman 6
Beberapa Contoh SAX Parser
• Parser adalah sebuah program komputer atau komponen dari
program komputer yang menganalisa struktur dari input berdasarkan
format tertentu
NAMA SUMBER
BAHASA
PEMROGRAMAN
YANG DIDUKUNG
Xerces http://xml.apache.org Java, C++, Perl
MSXML 4.0
http://www.microsoft.com/downloads/details.a
spx
C++, VB
JAXP http://java.sun.com/xml/downloads/jaxp.html Java
Sunday, April 22, 2018 Riza Muhammad Nurman 7
Menggunakan SAX API Interface
• SAX API terdiri atas beberapa packages yang dapat digunakan untuk
memparsing sebuah dokumen XML.
• Package yang berisi interface dasar dari SAX API dikenal sebagai
org.xml.sax.
• Handler interface utama dari package ini yang mengijinkan sebuah
aplikasi untuk menerima notifikasi ketika sebuah SAX parser
memparsing sebuah dokumen XML :
– Contenthandler Interface
– Errorhandler Interface
– Dtdhandler Interface
– Entityresolver Interface
Sunday, April 22, 2018 Riza Muhammad Nurman 8
CONTENTHANDLER INTERFACE
• ContentHandler interface menyediakan berbagai macam fungsi yang
dipanggil ketika sebuah SAX Parser memparsing XML dokumen
• setDocumentLocator()
• Method ini menggunakan object dari class Locator untuk mengambil
lokasi dimana sebuah event terjadi di dalam dokumen XML
public void setDocumentLocator(Locator locator)
{
System.out.println(“The setDocumentLocator is called”);
this.locator=locator
}
Sunday, April 22, 2018 Riza Muhammad Nurman 9
CONTENTHANDLER INTERFACE - II
• startDocument()
• Method ini dipanggil hanya satu kali dan menandai awal dari proses
parsing
• endDocument()
• Method ini dipanggil hanya satu kali dan menandai akhir dari proses
parsing
public void startDocument() throws SAXException
{
System.out.println(“Parsing Document Begins”);
}
public void endDocument() throws SAXException
{
System.out.println(“Parsing Document Ends”);
}
Sunday, April 22, 2018 Riza Muhammad Nurman 10
CONTENTHANDLER INTERFACE - III
• startElement()
• Method ini dipanggil ketika parser menemukan tag pembuka dari sebuah
elemen
• Method ini menggunakan beberapa komponen sebagai parameter, yaitu:
– Nama dari elemen
– Atribut dari elemen
– Namespace URI
public void startElement(String namespace, String local_name, String
full_name, Attributes attributes) throws SAXException {
System.out.println(“Start Element Method Calling”);
System.out.println(“n Name Of the start element” + local_name);
if(!namespace.equals(“”)) {
System.out.println(“The element is in this namespace” +
full_name);
}
for (int c=0;c<attributes.getLength();c++) {
System.out.println(“n Attribute name: “+
attributes.getLocalName[c]);
}
}
Sunday, April 22, 2018 Riza Muhammad Nurman 11
CONTENTHANDLER INTERFACE - IV
• endElement()
• Method ini dipanggil ketika parser menemukan tag penutup dari sebuah
elemen
• characters()
• Method ini dipanggil ketika parser menemukan data karakter di dalam
elemen
public void endElement(String namespaceURI, String sName,
String qName) throws SAXException {
…………
}
public void characters(char buf[], int offset, int
len)throws SAXException {
…………
}
Sunday, April 22, 2018 Riza Muhammad Nurman 12
ERRORHANDLER INTERFACE
• Interface ErrorHandler mendefinisikan berbagai macam fungsi yang
digunakan untuk menangani error yang mungkin terjadi pada saat
proses parsing berjalan
Berbagai method yang dimiliki oleh ErrorHandler interface adalah:
• warning()
• error()
• fatalError()
Sunday, April 22, 2018 Riza Muhammad Nurman 13
DTDHANDLER INTERFACE
• DTDHandler Interface mendefinisikan method untuk menangani
event yang terjadi ketika parser memproses DTD dari sebuah XML.
• Method ini mengidentifikasi deklarasi untuk entitas-entitas yang
ditandai sebagai notations, seperti file grafik dan image.
• Berbagai method yang dimiliki oleh interface ini adalah:
• notationDecl()
Menerima notifikasi tentang entity yang dideklarasikan sebagai
notation.
• unparsedEntityDecl()
Menerima notifikasi tentang entity dari dokumen XML yang
tidak dapat diparsing.
Sunday, April 22, 2018 Riza Muhammad Nurman 14
ENTITYRESOLVER INTERFACE
• Interface ini mendefinisikan method untuk menangani entity eksternal
selama prose parsing berjalan.
• Method yang didefinisikan pada interface ini : resolveEntity()
• resolveEntity()  menerjemahkan sebuah entitas eksternal dari
sebuah dokumen XML.
Sunday, April 22, 2018 Riza Muhammad Nurman 15
MEMPARSING DOKUMEN XML DENGAN
MENGGUNAKAN SAX API
XML - Chapter 6 SIMPLE API FOR XML (SAX)

More Related Content

Similar to XML - Chapter 6 SIMPLE API FOR XML (SAX)

Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
alqod
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
alqod
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
alqod
 
Jeni Intro2 Bab05 Aplikasi Berbasis Teks
Jeni Intro2 Bab05 Aplikasi Berbasis TeksJeni Intro2 Bab05 Aplikasi Berbasis Teks
Jeni Intro2 Bab05 Aplikasi Berbasis Teks
Individual Consultants
 
SITIA 2007 - first paper
SITIA 2007 - first paperSITIA 2007 - first paper
SITIA 2007 - first paper
Soetam Rizky
 

Similar to XML - Chapter 6 SIMPLE API FOR XML (SAX) (20)

Tugas 3 0317
Tugas 3 0317Tugas 3 0317
Tugas 3 0317
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
 
Integrasi slims atau eprints dengan dspace
Integrasi slims atau eprints dengan dspaceIntegrasi slims atau eprints dengan dspace
Integrasi slims atau eprints dengan dspace
 
Tips Keamanan Software OJS : Panduan Untuk Pemula
Tips Keamanan Software OJS : Panduan Untuk PemulaTips Keamanan Software OJS : Panduan Untuk Pemula
Tips Keamanan Software OJS : Panduan Untuk Pemula
 
Pengenalan code igniter
Pengenalan code igniterPengenalan code igniter
Pengenalan code igniter
 
Materi 4 db konsep client server
Materi 4  db konsep client serverMateri 4  db konsep client server
Materi 4 db konsep client server
 
Materi4dbkonsepclientserver 170426200536
Materi4dbkonsepclientserver 170426200536Materi4dbkonsepclientserver 170426200536
Materi4dbkonsepclientserver 170426200536
 
Tugas 4 - Rekayasa Web
Tugas 4 - Rekayasa WebTugas 4 - Rekayasa Web
Tugas 4 - Rekayasa Web
 
Praktikum 3
Praktikum 3Praktikum 3
Praktikum 3
 
Jeni Intro2 Bab05 Aplikasi Berbasis Teks
Jeni Intro2 Bab05 Aplikasi Berbasis TeksJeni Intro2 Bab05 Aplikasi Berbasis Teks
Jeni Intro2 Bab05 Aplikasi Berbasis Teks
 
Pengantar Sistem Informasi Akuntansi 2
Pengantar Sistem Informasi Akuntansi 2Pengantar Sistem Informasi Akuntansi 2
Pengantar Sistem Informasi Akuntansi 2
 
Mengenal Rapidminer
Mengenal RapidminerMengenal Rapidminer
Mengenal Rapidminer
 
Tugas 1 rekayasa web
Tugas 1 rekayasa webTugas 1 rekayasa web
Tugas 1 rekayasa web
 
SITIA 2007 - first paper
SITIA 2007 - first paperSITIA 2007 - first paper
SITIA 2007 - first paper
 
694-P01.pdf
694-P01.pdf694-P01.pdf
694-P01.pdf
 
XML - Chapter 1
XML - Chapter 1XML - Chapter 1
XML - Chapter 1
 
Service Function Chaining in OpenStack & Demo Scenario
Service Function Chaining in OpenStack & Demo ScenarioService Function Chaining in OpenStack & Demo Scenario
Service Function Chaining in OpenStack & Demo Scenario
 
Algoritma dan Struktur Data - Pengenalan Bahasa C++
Algoritma dan Struktur Data - Pengenalan Bahasa C++Algoritma dan Struktur Data - Pengenalan Bahasa C++
Algoritma dan Struktur Data - Pengenalan Bahasa C++
 

More from Riza Nurman

More from Riza Nurman (20)

TOT PHP DAY 1
TOT PHP DAY 1TOT PHP DAY 1
TOT PHP DAY 1
 
SE - Chapter 9 Pemeliharaan Perangkat Lunak
SE - Chapter 9 Pemeliharaan Perangkat LunakSE - Chapter 9 Pemeliharaan Perangkat Lunak
SE - Chapter 9 Pemeliharaan Perangkat Lunak
 
SE - Chapter 8 Strategi Pengujian Perangkat Lunak
SE - Chapter 8 Strategi Pengujian Perangkat LunakSE - Chapter 8 Strategi Pengujian Perangkat Lunak
SE - Chapter 8 Strategi Pengujian Perangkat Lunak
 
SE - Chapter 7 Teknik Pengujian Perangkat Lunak
SE - Chapter 7 Teknik Pengujian Perangkat LunakSE - Chapter 7 Teknik Pengujian Perangkat Lunak
SE - Chapter 7 Teknik Pengujian Perangkat Lunak
 
SE - Chapter 6 Tim dan Kualitas Perangkat Lunak
SE - Chapter 6 Tim dan Kualitas Perangkat LunakSE - Chapter 6 Tim dan Kualitas Perangkat Lunak
SE - Chapter 6 Tim dan Kualitas Perangkat Lunak
 
XML - Chapter 8 WEB SERVICES
XML - Chapter 8 WEB SERVICESXML - Chapter 8 WEB SERVICES
XML - Chapter 8 WEB SERVICES
 
XML - Chapter 7 XML DAN DATABASE
XML - Chapter 7 XML DAN DATABASEXML - Chapter 7 XML DAN DATABASE
XML - Chapter 7 XML DAN DATABASE
 
DBA BAB 5 - Keamanan Database
DBA BAB 5 - Keamanan DatabaseDBA BAB 5 - Keamanan Database
DBA BAB 5 - Keamanan Database
 
DBA BAB 4 - Recovery Data
DBA BAB 4 - Recovery DataDBA BAB 4 - Recovery Data
DBA BAB 4 - Recovery Data
 
DBA BAB 3 - Manage Database
DBA BAB 3 - Manage DatabaseDBA BAB 3 - Manage Database
DBA BAB 3 - Manage Database
 
DBA BAB 2 - INSTALASI DAN UPGRADE SQL SERVER 2005
DBA BAB 2 - INSTALASI DAN UPGRADE SQL SERVER 2005DBA BAB 2 - INSTALASI DAN UPGRADE SQL SERVER 2005
DBA BAB 2 - INSTALASI DAN UPGRADE SQL SERVER 2005
 
DBA BAB 1 - Pengenalan Database Administrator
DBA BAB 1 - Pengenalan Database AdministratorDBA BAB 1 - Pengenalan Database Administrator
DBA BAB 1 - Pengenalan Database Administrator
 
RMN - XML Source Code
RMN -  XML Source CodeRMN -  XML Source Code
RMN - XML Source Code
 
XML - Chapter 2
XML - Chapter 2XML - Chapter 2
XML - Chapter 2
 
ADP - Chapter 5 Exploring JavaServer Pages Technology
ADP - Chapter 5 Exploring JavaServer Pages TechnologyADP - Chapter 5 Exploring JavaServer Pages Technology
ADP - Chapter 5 Exploring JavaServer Pages Technology
 
ADP - Chapter 4 Managing Sessions
ADP - Chapter 4 Managing SessionsADP - Chapter 4 Managing Sessions
ADP - Chapter 4 Managing Sessions
 
ADP- Chapter 3 Implementing Inter-Servlet Communication
ADP- Chapter 3 Implementing Inter-Servlet CommunicationADP- Chapter 3 Implementing Inter-Servlet Communication
ADP- Chapter 3 Implementing Inter-Servlet Communication
 
ADP - Chapter 2 Exploring the java Servlet Technology
ADP - Chapter 2 Exploring the java Servlet TechnologyADP - Chapter 2 Exploring the java Servlet Technology
ADP - Chapter 2 Exploring the java Servlet Technology
 
ADP - Chapter 1 Introducing Web Application Development
ADP - Chapter 1 Introducing Web Application DevelopmentADP - Chapter 1 Introducing Web Application Development
ADP - Chapter 1 Introducing Web Application Development
 
MIS BAB 10
MIS BAB 10MIS BAB 10
MIS BAB 10
 

Recently uploaded

IPS - karakteristik geografis, sosial, budaya, dan ekonomi di ASEAN
IPS - karakteristik geografis, sosial, budaya, dan ekonomi di ASEANIPS - karakteristik geografis, sosial, budaya, dan ekonomi di ASEAN
IPS - karakteristik geografis, sosial, budaya, dan ekonomi di ASEAN
GilangNandiaputri1
 
konsep pidato Bahaya Merokok bagi kesehatan
konsep pidato Bahaya Merokok bagi kesehatankonsep pidato Bahaya Merokok bagi kesehatan
konsep pidato Bahaya Merokok bagi kesehatan
SuzanDwiPutra
 
443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx
443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx
443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx
ErikaPutriJayantini
 
,,,,,,,,,,,,,,,,,,,,,,Swamedikasi 3.pptx
,,,,,,,,,,,,,,,,,,,,,,Swamedikasi 3.pptx,,,,,,,,,,,,,,,,,,,,,,Swamedikasi 3.pptx
,,,,,,,,,,,,,,,,,,,,,,Swamedikasi 3.pptx
furqanridha
 
KISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docx
KISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docxKISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docx
KISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docx
DewiUmbar
 
Surat Pribadi dan Surat Dinas 7 SMP ppt.pdf
Surat Pribadi dan Surat Dinas 7 SMP ppt.pdfSurat Pribadi dan Surat Dinas 7 SMP ppt.pdf
Surat Pribadi dan Surat Dinas 7 SMP ppt.pdf
EirinELS
 
Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...
Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...
Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...
luqmanhakimkhairudin
 

Recently uploaded (20)

MODUL AJAR BAHASA INGGRIS KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INGGRIS KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INGGRIS KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INGGRIS KELAS 6 KURIKULUM MERDEKA.pdf
 
MODUL AJAR SENI MUSIK KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR SENI MUSIK KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR SENI MUSIK KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR SENI MUSIK KELAS 6 KURIKULUM MERDEKA.pdf
 
Webinar 1_Pendidikan Berjenjang Pendidikan Inklusif.pdf
Webinar 1_Pendidikan Berjenjang Pendidikan Inklusif.pdfWebinar 1_Pendidikan Berjenjang Pendidikan Inklusif.pdf
Webinar 1_Pendidikan Berjenjang Pendidikan Inklusif.pdf
 
Materi Asuransi Kesehatan di Indonesia ppt
Materi Asuransi Kesehatan di Indonesia pptMateri Asuransi Kesehatan di Indonesia ppt
Materi Asuransi Kesehatan di Indonesia ppt
 
BAB 1 BEBATAN DAN BALUTAN DALAM PERTOLONGAN CEMAS
BAB 1 BEBATAN DAN BALUTAN DALAM PERTOLONGAN CEMASBAB 1 BEBATAN DAN BALUTAN DALAM PERTOLONGAN CEMAS
BAB 1 BEBATAN DAN BALUTAN DALAM PERTOLONGAN CEMAS
 
IPS - karakteristik geografis, sosial, budaya, dan ekonomi di ASEAN
IPS - karakteristik geografis, sosial, budaya, dan ekonomi di ASEANIPS - karakteristik geografis, sosial, budaya, dan ekonomi di ASEAN
IPS - karakteristik geografis, sosial, budaya, dan ekonomi di ASEAN
 
konsep pidato Bahaya Merokok bagi kesehatan
konsep pidato Bahaya Merokok bagi kesehatankonsep pidato Bahaya Merokok bagi kesehatan
konsep pidato Bahaya Merokok bagi kesehatan
 
Penyuluhan DM Tipe II Kegiatan Prolanis.ppt
Penyuluhan DM Tipe II Kegiatan Prolanis.pptPenyuluhan DM Tipe II Kegiatan Prolanis.ppt
Penyuluhan DM Tipe II Kegiatan Prolanis.ppt
 
PPT PENDIDIKAN KELAS RANGKAP MODUL 3 KELOMPOK 3.pptx
PPT PENDIDIKAN KELAS RANGKAP MODUL 3 KELOMPOK 3.pptxPPT PENDIDIKAN KELAS RANGKAP MODUL 3 KELOMPOK 3.pptx
PPT PENDIDIKAN KELAS RANGKAP MODUL 3 KELOMPOK 3.pptx
 
443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx
443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx
443016507-Sediaan-obat-PHYCOPHYTA-MYOPHYTA-dan-MYCOPHYTA-pptx.pptx
 
,,,,,,,,,,,,,,,,,,,,,,Swamedikasi 3.pptx
,,,,,,,,,,,,,,,,,,,,,,Swamedikasi 3.pptx,,,,,,,,,,,,,,,,,,,,,,Swamedikasi 3.pptx
,,,,,,,,,,,,,,,,,,,,,,Swamedikasi 3.pptx
 
SISTEM SARAF OTONOM_.SISTEM SARAF OTONOM
SISTEM SARAF OTONOM_.SISTEM SARAF OTONOMSISTEM SARAF OTONOM_.SISTEM SARAF OTONOM
SISTEM SARAF OTONOM_.SISTEM SARAF OTONOM
 
Materi Bab 6 Algoritma dan bahasa Pemrograman
Materi Bab 6 Algoritma dan bahasa  PemrogramanMateri Bab 6 Algoritma dan bahasa  Pemrograman
Materi Bab 6 Algoritma dan bahasa Pemrograman
 
Modul 5 Simetri (simetri lipat, simetri putar)
Modul 5 Simetri (simetri lipat, simetri putar)Modul 5 Simetri (simetri lipat, simetri putar)
Modul 5 Simetri (simetri lipat, simetri putar)
 
PPT BAHASA INDONESIA KELAS 1 SEKOLAH DASAR
PPT BAHASA INDONESIA KELAS 1 SEKOLAH DASARPPT BAHASA INDONESIA KELAS 1 SEKOLAH DASAR
PPT BAHASA INDONESIA KELAS 1 SEKOLAH DASAR
 
KISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docx
KISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docxKISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docx
KISI-KISI SOAL DAN KARTU SOAL BAHASA INGGRIS.docx
 
Surat Pribadi dan Surat Dinas 7 SMP ppt.pdf
Surat Pribadi dan Surat Dinas 7 SMP ppt.pdfSurat Pribadi dan Surat Dinas 7 SMP ppt.pdf
Surat Pribadi dan Surat Dinas 7 SMP ppt.pdf
 
Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...
Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...
Asimilasi Masyarakat Cina Dengan Orang Melayu di Kelantan (Cina Peranakan Kel...
 
MESYUARAT KURIKULUM BIL 1/2024 SEKOLAH KEBANGSAAN SRI SERDANG
MESYUARAT KURIKULUM BIL 1/2024 SEKOLAH KEBANGSAAN SRI SERDANGMESYUARAT KURIKULUM BIL 1/2024 SEKOLAH KEBANGSAAN SRI SERDANG
MESYUARAT KURIKULUM BIL 1/2024 SEKOLAH KEBANGSAAN SRI SERDANG
 
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
 

XML - Chapter 6 SIMPLE API FOR XML (SAX)

  • 1. BAB VI SIMPLE API FOR XML (SAX) Riza Muhammad Nurman, S.Kom Email : rizaman@eng.ui.ac.id ; rizamn@ymail.com
  • 2. Sunday, April 22, 2018 Riza Muhammad Nurman 2 CONTENT  PENGENALAN SAX  PERBEDAAN DOM DAN SAX  MENGGUNAKAN SAX  BEBERAPA CONTOH SAX PARSER  MENGGUNAKAN SAX API INTERFACE  MEMPARSING DOKUMEN XML DENGAN MENGGUNAKAN SAX API
  • 3. Sunday, April 22, 2018 Riza Muhammad Nurman 3 Pengenalan SAX • Simple API for XML (SAX) adalah public domain software dibuat oleh anggota dari XML-DEV mailing list • SAX digunakan untuk memproses dokumen XML. • Software yang mengimplementasikan SAX untuk memproses dokumen XML disebut SAX Parser. • SAX cocok untuk memproses dokumen XML dengan ukuran besar karena menggunakan memory yang lebih kecil.
  • 4. Sunday, April 22, 2018 Riza Muhammad Nurman 4 Perbedaan DOM dan SAX KRITERIA DOM SAX Metode Parsing proses parsing sebuah dokumen XML secara random menggunakan callback untuk event yang terjadi ketika pemrosesan sebuah dokumen sedang berjalan Pengorganisasian Informasi komponen dari dokumen XML dibaca sebagai struktur hierarki dalam bentuk pohon di dalam memory internal sebuah komputer Permintaan atas informasi tentang sebuah komponen dari dokumen XML diperlakukan sebagai sebuah event Pengaksesan Informasi pengaksesan data ke bagian manapun di dalam dokumen lebih mudah karena adanya struktur tree di dalam memory informasi dapat diakses dalam urutan berdasarkan urutan pemrosesannya Kecepatan Lambat Lebih cepat Kesulitan Dalam Pengembangan Mudah Sulit Penggunaan Memory Banyak Sedikit Navigability melakukan navigasi antara berbagai nodes pada tree node dokumen XML diparsing mulai dari awal dokumen ke akhir dan tidak mengijinkan dilakukannya navigasi. Kemudahan Transformasi Dokumen mengijinkan developer untuk memodifikasi deokumen XML secara langsung tidak dapat memodifikasi sebuah dokumen XML karena bersifat read-only
  • 5. Sunday, April 22, 2018 Riza Muhammad Nurman 5 Menggunakan SAX * Cara Kerja SAX API SAX menggunakan class dan interface yang didefinisikan dalam SAX API untuk memproses sebuah dokumen XML dalam bentuk data stream
  • 6. Sunday, April 22, 2018 Riza Muhammad Nurman 6 Beberapa Contoh SAX Parser • Parser adalah sebuah program komputer atau komponen dari program komputer yang menganalisa struktur dari input berdasarkan format tertentu NAMA SUMBER BAHASA PEMROGRAMAN YANG DIDUKUNG Xerces http://xml.apache.org Java, C++, Perl MSXML 4.0 http://www.microsoft.com/downloads/details.a spx C++, VB JAXP http://java.sun.com/xml/downloads/jaxp.html Java
  • 7. Sunday, April 22, 2018 Riza Muhammad Nurman 7 Menggunakan SAX API Interface • SAX API terdiri atas beberapa packages yang dapat digunakan untuk memparsing sebuah dokumen XML. • Package yang berisi interface dasar dari SAX API dikenal sebagai org.xml.sax. • Handler interface utama dari package ini yang mengijinkan sebuah aplikasi untuk menerima notifikasi ketika sebuah SAX parser memparsing sebuah dokumen XML : – Contenthandler Interface – Errorhandler Interface – Dtdhandler Interface – Entityresolver Interface
  • 8. Sunday, April 22, 2018 Riza Muhammad Nurman 8 CONTENTHANDLER INTERFACE • ContentHandler interface menyediakan berbagai macam fungsi yang dipanggil ketika sebuah SAX Parser memparsing XML dokumen • setDocumentLocator() • Method ini menggunakan object dari class Locator untuk mengambil lokasi dimana sebuah event terjadi di dalam dokumen XML public void setDocumentLocator(Locator locator) { System.out.println(“The setDocumentLocator is called”); this.locator=locator }
  • 9. Sunday, April 22, 2018 Riza Muhammad Nurman 9 CONTENTHANDLER INTERFACE - II • startDocument() • Method ini dipanggil hanya satu kali dan menandai awal dari proses parsing • endDocument() • Method ini dipanggil hanya satu kali dan menandai akhir dari proses parsing public void startDocument() throws SAXException { System.out.println(“Parsing Document Begins”); } public void endDocument() throws SAXException { System.out.println(“Parsing Document Ends”); }
  • 10. Sunday, April 22, 2018 Riza Muhammad Nurman 10 CONTENTHANDLER INTERFACE - III • startElement() • Method ini dipanggil ketika parser menemukan tag pembuka dari sebuah elemen • Method ini menggunakan beberapa komponen sebagai parameter, yaitu: – Nama dari elemen – Atribut dari elemen – Namespace URI public void startElement(String namespace, String local_name, String full_name, Attributes attributes) throws SAXException { System.out.println(“Start Element Method Calling”); System.out.println(“n Name Of the start element” + local_name); if(!namespace.equals(“”)) { System.out.println(“The element is in this namespace” + full_name); } for (int c=0;c<attributes.getLength();c++) { System.out.println(“n Attribute name: “+ attributes.getLocalName[c]); } }
  • 11. Sunday, April 22, 2018 Riza Muhammad Nurman 11 CONTENTHANDLER INTERFACE - IV • endElement() • Method ini dipanggil ketika parser menemukan tag penutup dari sebuah elemen • characters() • Method ini dipanggil ketika parser menemukan data karakter di dalam elemen public void endElement(String namespaceURI, String sName, String qName) throws SAXException { ………… } public void characters(char buf[], int offset, int len)throws SAXException { ………… }
  • 12. Sunday, April 22, 2018 Riza Muhammad Nurman 12 ERRORHANDLER INTERFACE • Interface ErrorHandler mendefinisikan berbagai macam fungsi yang digunakan untuk menangani error yang mungkin terjadi pada saat proses parsing berjalan Berbagai method yang dimiliki oleh ErrorHandler interface adalah: • warning() • error() • fatalError()
  • 13. Sunday, April 22, 2018 Riza Muhammad Nurman 13 DTDHANDLER INTERFACE • DTDHandler Interface mendefinisikan method untuk menangani event yang terjadi ketika parser memproses DTD dari sebuah XML. • Method ini mengidentifikasi deklarasi untuk entitas-entitas yang ditandai sebagai notations, seperti file grafik dan image. • Berbagai method yang dimiliki oleh interface ini adalah: • notationDecl() Menerima notifikasi tentang entity yang dideklarasikan sebagai notation. • unparsedEntityDecl() Menerima notifikasi tentang entity dari dokumen XML yang tidak dapat diparsing.
  • 14. Sunday, April 22, 2018 Riza Muhammad Nurman 14 ENTITYRESOLVER INTERFACE • Interface ini mendefinisikan method untuk menangani entity eksternal selama prose parsing berjalan. • Method yang didefinisikan pada interface ini : resolveEntity() • resolveEntity()  menerjemahkan sebuah entitas eksternal dari sebuah dokumen XML.
  • 15. Sunday, April 22, 2018 Riza Muhammad Nurman 15 MEMPARSING DOKUMEN XML DENGAN MENGGUNAKAN SAX API