SlideShare a Scribd company logo
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

PPTX
XML - Chapter 5 XML DOM
PPTX
XML - Chapter 3
PPT
PostgreSQL Karakteristik dan Pengamanannya
PPTX
Presentation dyan
PDF
2 file dan directory
PDF
Elastic search, logstash, kibana untuk big data
PPT
Sistem berkas lr
PPTX
XML - Chapter 4
XML - Chapter 5 XML DOM
XML - Chapter 3
PostgreSQL Karakteristik dan Pengamanannya
Presentation dyan
2 file dan directory
Elastic search, logstash, kibana untuk big data
Sistem berkas lr
XML - Chapter 4

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

PPTX
Tugas 3 0317 hendrie prasetyo 1612510899
PPTX
Tugas 3 0317
PPTX
Kelompok 15
PPTX
Kelompok 15
PPTX
Kelompok 15
PDF
Integrasi slims atau eprints dengan dspace
PDF
Tips Keamanan Software OJS : Panduan Untuk Pemula
PDF
Pengenalan code igniter
PDF
Materi4dbkonsepclientserver 170426200536
PDF
Materi 4 db konsep client server
PPTX
SISTEM BASIS DATA_Pengenalan Lazarus.pptx
PPTX
Tugas 4 - Rekayasa Web
PDF
Praktikum 3
PDF
Jeni Intro2 Bab05 Aplikasi Berbasis Teks
PPTX
Pengantar Sistem Informasi Akuntansi 2
ODP
Mengenal Rapidminer
PPTX
Tugas 1 rekayasa web
PPS
SITIA 2007 - first paper
PDF
694-P01.pdf
PPTX
XML - Chapter 1
Tugas 3 0317 hendrie prasetyo 1612510899
Tugas 3 0317
Kelompok 15
Kelompok 15
Kelompok 15
Integrasi slims atau eprints dengan dspace
Tips Keamanan Software OJS : Panduan Untuk Pemula
Pengenalan code igniter
Materi4dbkonsepclientserver 170426200536
Materi 4 db konsep client server
SISTEM BASIS DATA_Pengenalan Lazarus.pptx
Tugas 4 - Rekayasa Web
Praktikum 3
Jeni Intro2 Bab05 Aplikasi Berbasis Teks
Pengantar Sistem Informasi Akuntansi 2
Mengenal Rapidminer
Tugas 1 rekayasa web
SITIA 2007 - first paper
694-P01.pdf
XML - Chapter 1
Ad

More from Riza Nurman (20)

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

Recently uploaded (20)

PDF
Lembar Kerja Mahasiswa Konsep Sistem Operasi
PPTX
Rancangan Kegiatan Kokurikuler SMP N 1 Karanggede
PPTX
MATERI MPLS TENTANG KURIKULUM DAN KEGIATAN PEMBELAJARAN
PPTX
PPT Kurikulum Berbasis Cinta tahun 2025.
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Tari Kelas XII Terbaru 2025
PPTX
Keterbatasan-Fasilitas-dalam-Mengajar-KKA.pptx
PDF
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
PDF
PPT IPS Geografi SMA Kelas X_Bab 1 Pengantar Geografi_May.pdf
DOCX
Lembar Kerja Mahasiswa Information System
PPTX
Pancasila: fondasi peradaban dan kebudayaan berkelanjutan
PPTX
Modul 2. Berpikir Komputasional sebagai Dasar Koding untuk Kecerdasan Artifis...
PDF
Materi Seminar AITalks: AI dan Konseling GPT
DOCX
Modul Ajar Deep Learning PJOK Kelas 12 SMA Terbaru 2025
PPTX
PENGIMBASAN PEMBELAJARAN MENDALAM (DEEP LEARNING)
PDF
Digital Statecraft Menuju Indonesia Emas 2045: Diplomasi Digital, Ketahanan N...
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Rupa Kelas XII Terbaru 2025
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Musik Kelas XII Terbaru 2025
DOCX
Modul Ajar Pembelajaran Mendalam Senbud Seni Teater Kelas 12 Terbaru 2025
DOCX
Modul Ajar Deep Learning PKWU Rekayasa Kelas 12 SMA Terbaru 2025
PDF
KELOMPOK 4 LK Modul 4 KP4 Asesmen PM (3).pdf
Lembar Kerja Mahasiswa Konsep Sistem Operasi
Rancangan Kegiatan Kokurikuler SMP N 1 Karanggede
MATERI MPLS TENTANG KURIKULUM DAN KEGIATAN PEMBELAJARAN
PPT Kurikulum Berbasis Cinta tahun 2025.
Modul Ajar Pembelajaran Mendalam Senbud Seni Tari Kelas XII Terbaru 2025
Keterbatasan-Fasilitas-dalam-Mengajar-KKA.pptx
Deck Rumah Pendidikan untuk Mendukung Program Prioritas Kemendikdasmen.pdf
PPT IPS Geografi SMA Kelas X_Bab 1 Pengantar Geografi_May.pdf
Lembar Kerja Mahasiswa Information System
Pancasila: fondasi peradaban dan kebudayaan berkelanjutan
Modul 2. Berpikir Komputasional sebagai Dasar Koding untuk Kecerdasan Artifis...
Materi Seminar AITalks: AI dan Konseling GPT
Modul Ajar Deep Learning PJOK Kelas 12 SMA Terbaru 2025
PENGIMBASAN PEMBELAJARAN MENDALAM (DEEP LEARNING)
Digital Statecraft Menuju Indonesia Emas 2045: Diplomasi Digital, Ketahanan N...
Modul Ajar Pembelajaran Mendalam Senbud Seni Rupa Kelas XII Terbaru 2025
Modul Ajar Pembelajaran Mendalam Senbud Seni Musik Kelas XII Terbaru 2025
Modul Ajar Pembelajaran Mendalam Senbud Seni Teater Kelas 12 Terbaru 2025
Modul Ajar Deep Learning PKWU Rekayasa Kelas 12 SMA Terbaru 2025
KELOMPOK 4 LK Modul 4 KP4 Asesmen PM (3).pdf

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