(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

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

Array (perl) Part 5

#print qw (‘one’,’two’,’three’)

print ((‘salt’, ‘vinegar’, ‘mustard’, ‘pepper’)[2]);
print(“\n \n”);
#array dalam sebuah perl sama saja seperti bahasa pemograman lain

#ARRAY 1 DIMENSI
my $bulan = -3;
print qw(
January february maret
April mei juny
July agustus september
October november december
)[$bulan];
print(“\n \n”);
# bahwa sebuah array di atas merupakan
# 0 1 2
# 3 4 5
# 6 7 8
# 9 10 11

#ARRAY MULTI DIMENSI

my $mone=1; my $mtwo=3;
#($mone, $mtwo) = (1, 3);
print ((“heads “, “shoulders “, “knees “, “toes “)[$mone, $mtwo]);
print “\n \n”;

#ranges(batasan)
print “Counting up: “, (1 .. 6), “\n”;
print “Counting down: “,reverse (6 .. 1), “\n”;
print “Counting down (properly this time) : “, reverse(1 .. 6), “\n”;
print “Half the alphabet: “, (‘a’ .. ‘m’), “\n”;
print “The other half (backwards): “, reverse(‘n’ .. ‘z’), “\n”;
print “Going from 3 to z: “, (3 .. ‘z’), “\n”;
print “Going from z to 3: “, (‘z’ .. 3), “\n \n”;

my @days;
@days = qw(Monday Tuesday Wednesday Thursday Friday Saturday Sunday);
$days = 31;

my @array1;
my $scalar1;
@array1 = qw(Monday Tuesday Wednesday Thursday Friday Saturday Sunday);
$scalar1 = @array1;
print “Array 1 is @array1\nScalar 1 is $scalar1\n”;
my @array2;
my $scalar2;
@array2 = qw(Winter Spring Summer Autumn);
$scalar2 = @array2;
print “Array 2 is @array2\nScalar 2 is $scalar2\n”;

Download Project nya di Sini

Konverter Mata Uang (perl)

#kali ini udah masuk dalam variabel modifikasi

$a=4;
$b=10;
print “Untuk variabel a =”, $a, ” dan b = “, $b, “\n”;
$b=$a++; # a++ di hasilkan 5 dan b=4
print ” untuk variaben a++ = “, $a, ” dan b = “, $b, “\n”;
$b=++$a*2; #a*2 di hasilkan 6 dan b = 6*2;
print “Untuk variabel a*2 = “, $a, ” dan b = “, $b, “\n”;
$a=–$b+4; # masih bingung dengan hasil akhir ini hahaa……
print “Untuk hasil akhir”, $a, ” and “, $b, “\n \n”;

# variabel a termasuk bilangan hexsadesimal dan di tambahkan 1 pada variabel ++$a dan maka hasilnya
$a = “A9”; print ++$a, “\n”;
$a = “bz”; print ++$a, “\n”;
$a = “Zz”; print ++$a, “\n”;
$a = “z9”; print ++$a, “\n”;
$a = “9z”; print ++$a, “\n \n”;

#waktunya kita mulai membuat aplikasi sebenarnya hahaa….
#Scoping
#di bawah ini beramain dengan variabel global
$var = 4;
print “Variabel global = “, $var, “\n”;
{
my $var;
$var = 7;
print “variabel local = “, $var, “\n”;
}
print “Variabel Global = “, $var, “\n \n”;

#converter mata uang juga bisa di terapkan di perl dengan mudah ingan (case-sensitive)
use warnings;
use strict;
my $yen = 180;
print “49518 Yen adalah “, (49_518/$yen), ” pounds\n”;
print “360 Yen adalah “, (360/$yen), ” pounds\n”;
print “30510 Yen adalah “, (30_510/$yen), ” pounds\n \n”;

#Introducing (perintah untuk memasukkan )
use warnings;
use strict;
print “Masukkan Jumlah uang yen yang akan di konverter: “;
my $yen = ;
print “49518 Yen adalah “, (49_518/$yen), ” pounds\n”;
print “360 Yen adalah “, (360/$yen), ” pounds\n”;
print “30510 Yen adalah “, (30_510/$yen), ” pounds\n”;

Download Projectnya di sini

Membandingkan,Memodifikasi Variabel (perl ) Part 3

print”NOT 85 is”, ~85, “\n”;
#membandingkan persamaan angka dalam perl
#dari hasil antara perbandingan tersebut 1=benar tidak ada hasil atau 0=salah

print”Lima lebih besar dari enam? “, 5 > 6, “\n”;
print “Tujuh lebih kecil dari enam belas? “, 7 1, “\n”;
print “Enam tidak sama dengan tujuh? “, 6 != 7, “\n \n”;

#boolean operator and(&&)

print”Test one: “, 6 > 3 && 3 > 4, “\n”;
print “Test two: “, 6 > 3 and 3 > 4, “\n \n”;

#Operator String dalam perl

print” \n Four sevens are “. 4+7 .”\n”;
print “go !” x3,”\n”; # bila menggunakan operator * dalam x3 maka dia menghasilkan nilai angka
print”an”.”na” x(3+2),”\n”;#dapat juga menggunakan penjumlahan dan yang lainnya untuk perulangan berkali kali
print”12 monkeys” +0 ,”\n”;
print “Eleven to fly” +0 ,”\n”;
print “UB40″ +0 ,”\n”;
print “-20 10″ +0 ,”\n”;
print “0x30″ +0 ,”\n \n”; #halaman 21

#Perbandingan String(String Comparison)
print”A # has ASCII value “, ord(“#”),”\n”;
print “A * has ASCII value “, ord(“*”),”\n \n”;

print”Which came first, the chicken or the egg? “;
print “chicken” cmp “egg”, “\n”;
print “Are dogs greater than cats? “;
print “dog” gt “cat”, “\n”;
print “Is ^ less than + ? “;
print “^” lt “+”, “\n \n”;

print “Test one: “, “four” eq “six”, “\n”;
print “Test two: “, “four” == “six”, “\n \n”;
#operator halaman 24

#variabel $(digunakan dalam variabel perl

$name = “dede”;
print “Nama saya adalah = “, $name, “\n \n”;

#modifikasi variabel

$name = “Anna”;
print “My name is “,
$name, “\n”;
print “It’s still “,
$name, “\n”;
$name = “aerdy”;
print “Well, actually, it’s “, $name, “\n”;
$name = “putra”;
print “No, really, it’s “,
$name, “\n \n”;

$a = 6*9;
print “6*9 = ” , $a, “\n”;
$b = $a + 3;
print ” a + 3 = “, $b, “\n”;
$c = $b / 3;
print ” b / 3 = “, $c, “\n”;
$d = $c + 1;
print ” c + 1 =”, $d, “\n”;
print “\nDi tulis kembali: “, $a, ” “, $b, ” “, $c, ” “, $d, “\n \n”;

# dilanjutkan lain kali ya…di perl4