(Parsing) DOM VS SAX

Simple API for XML Parsing (SAX) dan Document Object Model (DOM)

Both SAX and DOM are used to parse the XML document. Both has advantages and disadvantages and can be used in our programming depending on the situation.

SAX:

  • Parses node by node
    Doesn’t store the XML in memory
    We cant insert or delete a node
    SAX is an event based parser
    SAX is a Simple API for XML
    doesn’t preserve comments
    SAX generally runs a little faster than DOM
  • Figure2

DOM:

  • Stores the entire XML document into memory before processing
    Occupies more memory
    We can insert or delete nodes
    Traverse in any direction.
    DOM is a tree model parser
    Document Object Model (DOM) API
    Preserves comments
    SAX generally runs a little faster than DOM
  • dom

(http://stackoverflow.com/questions/6828703/difference-about-sax-and-dom)

Dari beberapa kelebihan dan kekurangan yang saya dapatkan di alamat tersebut, bahwa keduanya sama sama merupakan XML parsing, dengan itu kita dapat menyimpulkan bahwa, saat DOM melakukan parsing XML, parsinganan itu di simpan pada memory, sedangkan untuk SAX tidak, sehingga SAX lebih cepat dari pada DOM, tapi dalam ruang lingkup sequrity DOM sangat di anjurkan, karena parsing XML nya di bungkus dan di letakan pada memory, sehingga pada saat pihak yang ingin mencuri data tersebut harus membongkar bungkusan itu.

Sehingga semua itu tergantung dengan kasus yang di ambil, ketika data itu tidak terlalu berpengaruh sebaiknya menggunakan SAX, dan ketika data parsing XML itu sangat di unggulkan sebaiknya menggunakan DOM.

Referensi :
http://stackoverflow.com/questions/6828703/difference-about-sax-and-dom
http://javarevisited.blogspot.com/2011/12/difference-between-dom-and-sax-parsers.html
http://www.coderanch.com/t/122873/XML/SAX-DOM

Advertisements

BroadcastReceiver

Sedikit memberi pengalaman dalam beberapa pembaca, saya sering sekali yang namanya membaca ebook luar seperti ebook Android Beggginer dan sebagainya yang pastinya berbahasa inggris, ini sering sekali saya alami pada pengelolahan kata dan pengartian defenisi dalam sebuah kalimat, sehingga point tertentu sering kita dapatkan, BroadcastReceiver merupakan suatu deklarasi global dimana ada dua suku kata, yang pertama Broadcast yang mengartikan seluruh data di sebarkan dan dapat di gunakan di fungsi lain atau class lain, sedangkan Receiver merupakan penerima. jadi dengan itu kita paham apa itu BroadcasReceiver…. ini merupakan pengalam saya, karena mungkin dari beberapa teman – teman yang sering membaca buku bahasa inggris pasti sering mengalami apa yang saya alami, di bawah ini merupakan contoh dimana deklarasi itu dikatakan BroadcastReveicer…
2

Catatan : Dalam memberikan point – point tertentu dalam sebuah kasus sangatlah harus mengerti beberapa arti suku kata tersebut

Referensi : Buku Manning Android in Action 3rd

ContenProvider

Jika aplikasi mengelola data dan kebutuhan untuk mengekspos bahwa data ke aplikasi lain berjalan di lingkungan Android, Anda harus mempertimbangkan ContentProvider. Jika komponen aplikasi (Activity, Service, atau BroadcastReceiver) kebutuhan untuk mengakses data dari aplikasi lain, komponen mengakses aplikasi lainnya ContentProvider. The ContentProvider menerapkan satu set standar metode untuk memungkinkan aplikasi untuk mengakses menyimpan data. Akses mungkin untuk membaca atau menulis operasi, atau untuk keduanya. Sebuah ContentProvider dapat menyediakan data untuk Kegiatan atau Layanan dalam aplikasi yang mengandung sama, serta ke Activity atau Layanan terkandung
dalam aplikasi lain. Sebuah ContentProvider dapat menggunakan bentuk data-mekanisme penyimpanan yang tersedia pada Platform Android, termasuk file, database SQLite, atau bahkan hash memori berbasis peta jika data ketekunan tidak diperlukan. The ContentProvider adalah lapisan data yang menyediakan
Data abstraksi untuk klien dan penyimpanan sentralisasi dan rutinitas pengambilan dalam tunggal tempat. Berbagi file atau database secara langsung tidak disarankan pada platform Android, dan ditegakkan oleh sistem keamanan Linux yang mendasari, yang mencegah ad hoc akses file dari satu ruang aplikasi yang lain tanpa izin eksplisit diberikan. Data yang tersimpan dalam ContentProvider dapat data tradisional jenis, seperti bilangan bulat dan
string. Penyedia konten juga dapat mengelola data biner, seperti data citra. ketika Data biner diambil, praktek terbaik yang disarankan adalah untuk mengembalikan string yang mewakili nama file yang berisi data biner. Jika nama file dikembalikan sebagai bagian dari ContentProvider permintaan, aplikasi tidak harus mengakses file secara langsung, Anda harus
Capture

menggunakan kelas pembantu, metode openInputStream ContentResolver, untuk mengakses Data biner. Pendekatan ini menavigasi proses Linux dan rintangan keamanan, serta membuat semua akses data normal melalui ContentProvider. Gambar 1,5 garis hubungan antara ContentProviders, menyimpan data, dan klien mereka. Data Sebuah ContentProvider yang diakses oleh sebuah aplikasi Android melalui suatu Konten URI. Sebuah ContentProvider mendefinisikan URI ini sebagai final String public static. untuk Sebagai contoh, aplikasi mungkin memiliki menyimpan data mengelola lembar data keamanan bahan. URI Konten untuk ContentProvider ini mungkin terlihat seperti ini: Uri public static final CONTENT_URI = Uri.parse (“konten :/ / com.msi.manning.provider.unlockingandroid / lembar data”); Dari titik ini, mengakses ContentProvider mirip dengan menggunakan Structured Query Language (SQL) di platform lain, meskipun pernyataan SQL lengkap tidak dipekerjakan. Sebuah permintaan yang disampaikan kepada ContentProvider, termasuk kolom
diinginkan dan opsional mana dan Order By klausa. Mirip dengan query parameter dalam SQL tradisional, substitusi parameter juga didukung ketika bekerja dengan ContentProvider kelas. Di mana hasil dari query pergi? Dalam kelas kursor, alami. Kami akan memberikan contoh ContentProvider rinci dalam bab 5.

CATATAN Dalam banyak hal, ContentProvider bertindak seperti server database.
Meskipun aplikasi bisa berisi hanya ContentProvider dan esensi menjadi server database, ContentProvider biasanya komponen dari Android aplikasi yang lebih besar yang host setidaknya satu Kegiatan, Layanan, atau BroadcastReceiver.

Referensi : Buku Manning . Android ic Action 3rd

Mengenal Object Model DOM (Document Object Model)

Document Object Model (DOM) adalah object model standar untuk HTML dan XML yang bersifat platform independent. Sebuah web browser tidak harus menggunakan DOM untuk menampilkan dokumen HTML. Namun DOM diperlukan oleh JavaScript yang akan mengubah tampilan sebuah website secara dinamis. Dengan kata lain, DOM adalah cara JavaScript melihat suatu halaman HTML.
W3C mulai mengembangkan DOM pada awal 1990-an. Pada bulan Oktober 1998, DOM 1 diluncurkan. Spesifikasi DOM W3C terbagi menjadi beberapa tingkat. Sebuah halaman yang mendukung suatu level harus menerapkan semua persyaratan level tersebut dan di bawahnya.
Sebelum ada standar DOM dari W3C, masing-masing web browser memiliki DOM sendiri. Akibatnya, bila suatu website ingin ditampilkan secara cross-browser compatible, ia harus dirancang untuk setiap web browser yang akan didukung. DOM standar mempermudah pengembangan aplikasi web. (http://id.wikipedia.org/wiki/Document_Object_Model)

DOM Sering di gunakan pada sebuah web ataupun app yang berjalan di atas web, karena dom merupakan suatu object model yang dapat memudahkan pengguna dalam meletakkan object itu, Prinsipnya sebuah Mamalia yang sudah di tempatkan secara masing masing tempat yang berbeda, DOM di gunakan Untuk memanipulasi dokumen dengan DOM, suatu parser akan membentuk representasi logik dari bagian isi dokumen XML dalam bentuk struktur pohon. DOM tidak menjelaskan bagaimana melakukan parsing terhadap dokumen, pembuatan dokumen baru ataupun melakukan serialisasi terhadap dokumen. Hal ini dikarenakan DOM adalah spesifikasi yang bebas bahasa. Untuk melakukan fungsi-fungsi tersebut dibutuhkan DOM parser yang diimplementasikan kedalam berbagai bahasa pemrograman tertentu seperti C, C++, atau Java. Beberapa contoh DOM parser adalah Apache Xerces, Crimson, Oracle XML Parser for Java atau MsXML.

Activitas pengembangan DOM di W3C sudah ditutup sejak tahun 2004 dengan lengkapnya pengembangan DOM Level 3 Recommendations. Tapi saat ini W3C Web Applications Working Group sudah mulai bergerak untuk melakukan revisi. Jika tertari, diskusinya bisa diikuti di public-webapps@w3.org atau www-dom@w3.org mailing lists.

Referensi :
http://id.wikipedia.org/wiki/Document_Object_Model
http://yaniwid.wordpress.com/2009/04/01/document-object-model-dom/

XML vs JSON

XML (Extensible Markup Language) adalah bahasa markup untuk keperluan umum yang disarankan oleh W3C untuk membuat dokumen markup keperluan pertukaran data antar sistem yang beraneka ragam. XML merupakan kelanjutan dari HTML (HyperText Markup Language) yang merupakan bahasa standar untuk melacak Internet.

XML, merupakan standar format dari struktur berkas (file).
XSL, merupakan standar untuk memodifikasi data yang diimpor atau diekspor.
XSD, merupakan standar yang mendefinisikan struktur database dalam XML.

Keunggulan XML bisa diringkas sebagai berikut :
– Pintar (Intelligence). XML dapat menangani berbagai tingkat (level) kompleksitas.
– Dapat beradaptasi. Dapat mengadaptasi untuk membuat bahasa sendiri. Seperti Microsoft membuat bahasa MSXML atau Macromedia mengembangkan MXML.
– Mudah pemeliharaannya.
– Sederhana. XML lebih sederhana.
– Mudah dipindah-pindahkan (Portability). XML mempunyai kemudahan perpindahan (portabilitas) yang lebih bagus.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">  
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:id="@+id/tanggal"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="#dc6800"
            android:textSize="18sp"
            android:textStyle="bold"
            android:paddingTop="6dip"
            android:paddingBottom="2dip" />
            
        <TextView
            android:id="@+id/jam"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="#acacac"
            android:paddingBottom="2dip">
        </TextView>

        <TextView
            android:id="@+id/lintang"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#5d5d5d"
            android:gravity="left"
            android:textStyle="bold"
            android:text="Cost: " >
        </TextView>

        <TextView
            android:id="@+id/bujur"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#5d5d5d"
            android:gravity="left"
            android:textStyle="bold"
            android:text="Cost: " >
        </TextView>
        
        <TextView
            android:id="@+id/kekuatan"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#acacac" 
            android:textStyle="bold"
            android:gravity="left">
        </TextView>
        
        <TextView
            android:id="@+id/kedalaman"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#acacac" 
            android:textStyle="bold"
            android:gravity="left">
        </TextView>
        
        <TextView
            android:id="@+id/wilayah"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="#acacac" 
            android:textStyle="bold"
            android:gravity="left">
        </TextView>
        
    </LinearLayout>

</LinearLayout>

JSON (dilafalkan “Jason”), singkatan dari JavaScript Object Notation (bahasa Indonesia: notasi objek JavaScript), adalah suatu format ringkas pertukaran data komputer. Formatnya berbasis teks dan terbaca-manusia serta digunakan untuk merepresentasikan struktur data sederhana dan larik asosiatif (disebut objek). Format JSON sering digunakan untuk mentransmisikan data terstruktur melalui suatu koneksi jaringan pada suatu proses yang disebut serialisasi. Aplikasi utamanya adalah pada pemrograman aplikasi web AJAX dengan berperan sebagai alternatif terhadap penggunaan tradisional format XML.
Walaupun JSON didasarkan pada subset bahasa pemrograman JavaScript (secara spesifik, edisi ketiga standar ECMA-262, Desember 1999 [1]) dan umumnya digunakan dengan bahasa tersebut, JSON dianggap sebagai format data yang tak tergantung pada suatu bahasa. Kode untuk pengolahan dan pembuatan data JSON telah tersedia untuk banyak jenis bahasa pemrograman. Situs json.org menyediakan daftar komprehensif pengikatan JSON yang tersedia, disusun menurut bahasa.
Format JSON dispesifikasikan di RFC 4627 oleh Douglas Crockford. Tipe media Internet resmi JSON adalah application/json sedangkan ekstensi berkasnya adalah .json.
Pada Desember 2005, Yahoo! mulai menawarkan opsi format JSON untuk layanan webnya [2]. Google mulai menyediakan umpan JSON untuk protokol web GData-nya pada Desember 2006

<html>
<head>
<title>JSON testing - adiputra</title>
<script type='text/javascript'>
    var JSON_adi = {nama:’adiputra’};
    document.write (JSON_adi.nama);
</script>
</head>
<body>
</body>
</html>

Kenapa xml yang banyak di gunakan dari pada JSON..?

referensi :

http://wikipedia.com