• Tidak ada hasil yang ditemukan

Komentar XML

Dalam dokumen BAB 2 LANDASAN TEORI (Halaman 43-49)

Komentar pada XML menggunakan sintaks sama seperti komentar pada HTML. Contoh:

<!-- ini adalah komentar -- >

Komentar ini dapat mengandung semua string kecuali ‘--‘.

2.6.6 CDATA Section dan Instruksi Proses

CDATA section memberitahu prosesor XML untuk melewati

karakter markup dan memberikan teks langsung ke aplikasi tanpa melakukan interpretasi. Instruksi proses dapat digunakan untuk menyediakan informasi ke sebuah aplikasi. Jika mengandung banyak karakter < atau &, elemen XML bisa didefinisikan sebagai CDATA. Contoh (http://www.w3schools.com/xml/xml_cdata.asp): <script> <![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1 } else { return 0 } } ]]> </script> 2.6.7 Urutan

Dalam XML urutan elemen sangatlah penting. Jadi, jika urutan elemen berbeda maka akan dianggap sebagai data yang berbeda. Contoh :

<NAME>

<LNAME>White</LNAME> </NAME>

akan berbeda dengan <NAME>

<LNAME>White</LNAME> <FNAME>John</FNAME>

</NAME>

Dalam XML urutan atribut tidak terpengaruh. Contoh :

<NAME FNAME=”John” LNAME=”White”/> <NAME LNAME=”White” FNAME=”John”/> Dua elemen diatas akan dianggap sama oleh prosesor XML.

2.7 Parser

Setiap bahasa program mempunyai aturan-aturan yang memberikan struktur sintaks dari program-program yang terbentuk baik. Sintaks suatu bahasa program dapat digambarkan oleh notasi tata bahasa bebas konteks (Context-Free

Grammar). Tata bahasa bebas konteks adalah sebuah string yang dibentuk dari

himpunan simbol-simbol. Tata bahasa itu sendiri memberikan keuntungan besar baik kepada perancang bahasa ataupun penulis kompilator. Keuntungan itu antara lain :

1. Terhadap bahasa program itu sendiri, tata bahasa memberikan penjelasan sintaks yang jelas dan mudah dimengerti.

2. Dari tata bahasa kelas tertentu, secara otomatis dapat dibentuk parser yang efisien dan yang dapat menentukan apakah suatu program sumber menuliskan sintaks dengan benar atau tidak.

3. Dari tata bahasa yang dirancang dengan baik, terbentuk suatu struktur pada bahasa program yang berguna untuk pengubahan bahasa sumber menjadi kode objek yang benar dan berguna untuk pendeteksian kesalahan.

4. Bahasa program berkembang dalam suatu periode waktu dengan menampilkan construct baru dan menyajikan kemampuan tambahan.

Construct-construct ini dapat ditambahkan secara mudah ke dalam suatu

bahasa jika sudah ada implementasi yang berdasarkan deskripsi tata bahasa dari bahasa itu (Aho, 1986, p157).

Parsing adalah proses menganalisa urutan token dengan tujuan untuk

menentukan struktur tata bahasanya dibandingkan dengan tata bahasa normal yang diberikan (http://www.wikipedia.com). Proses ini secara formal disebut analisis sintaks. Parser adalah sebuah program komputer yang menjalankan tugas ini. Parser adalah sebuah program, biasanya bagian dari sebuah compiler, yang menerima input dalam bentuk instruksi program sumber secara sekuensial, perintah-perintah online yang interaktif, tag-tag markup, atau beberapa interface terdefinisi lainnya, dan memecahkannya menjadi bagian-bagian

2.8 Queue

Pada penulisan ini, queue akan digunakan untuk mengimplementasikan

schedule transaksi dan operasi didalamnya. Pada aplikasi ini, sebuah transaksi

dapat terdiri atas satu atau banyak operasi. Semua operasi didalam satu transaksi akan disimpan ke dalam queue. Setiap operasi akan diproses sesuai prinsip queue.

Sebuah queue adalah sebuah daftar terurut di mana semua penambahan data dilakukan pada ujung yang satu dan semua penghapusan data dilakukan pada ujung sebaliknya (Horowitz, 2003, p104). Diberikan sebuah queue Q = (a0 , a1, … , an-1 ), a0 adalah elemen depan, an-1 adalah elemen belakang, dan ai+1 berada di belakang ai, 0≤ i ≤ n-1. Batasan pada sebuah queue berlaku jika kita menambahkan data A, B, C, D , dengan urutan itu, maka A adalah elemen pertama yang dihapus dari queue. Gambar 2.6 menggambarkan alur kejadian ini. Karena elemen pertama yang ditambahkan ke dalam queue adalah elemen pertama yang dihapus, queue juga dikenal sebagai daftar First-In-First-Out (FIFO).

Gambar 2.6 Menambahkan dan menghapus elemen dalam sebuah queue

(rear = belakang , front = depan)

Åfront Årear Årear Åfront Åfront Årear Årear Åfront A B A C B A D C B A D C B Årear Åfront

Representasi queue dalam lokasi sekuensial lebih sulit daripada stack. Skema paling sederhana adalah menggunakan sebuah array satu dimensi dan dua variabel, front dan rear. Dari representasi ini, operasi queue pada representasi sebagai berikut :

Queue CreateQ(max_queue_size)::=

#define MAX_QUEUE_SIZE 100 /*Maximum queue size*/

typedef struct { int key; /* other fields */ } element; element queue[MAX_QUEUE_SIZE]; int rear = -1; int front = -1;

Boolean IsEmptyQ(queue)::= front == rear

structure Queue is

objects : sebuah daftar terurut terbatas pada nol atau lebih

elemen.

functions:

for all queue Є Queue, item Є element, max_queue_size Є integer element

Queue CreateQ(max_queue_size) ::=

buat sebuah queue kosong yang ukuran maksimumnya adalah

if ( jumlah elemen dalam queue == max_queue_size )

return TRUE

else return FALSE

Queue AddQ(queue,item) ::=

if(IsFullQ(queue)) queue_full

else insert item at rear of queue and return queue

Boolean IsEmptyQ(queue) ::=

if ( queue==CreateQ(max_queue_size))

return TRUE

else return FALSE

Element DeleteQ(queue) ::=

if (isEmptyQ(queue)) return

else remove and return the item at front of queue

Tipe data abstrak queue

Boolean IsFullQ(queue) ::= rear == MAX_QUEUE_SIZE-1

Fungsi addq dan deleteq secara struktur mirip dengan add dan delete pada

stack. Stack menggunakan variabel top baik pada add maupun pada delete,

sedangkan queue menggeser posisi rear dalam addq dan front dalam deleteq. Pemanggilan fungsi umum yaitu addq(&rear,item) ; dan item=deleteq(&front,rear);. Perhatikan bahwa pemanggilan pada addq mengirimkan alamat rear. Hal ini dilakukan sehingga modifikasi pada rear bersifat permanen. Mirip dengan sebelumnya, pemanggilan deleteq mengirimkan alamat front sehingga modifikasi pada front bersifat permanen. Alamat rear tidak

dikirim karena deleteq tidak memodifikasi rear, namun deleteq menggunakan

rear untuk mengecek adanya queue kosong atau tidak (Horowitz, 2003,p107).

Dalam perancangan conccurrency control ini, operasi – operasi yang ada didalam transaksi akan disimpan dalam sebuah queue. Urutan eksekusi operasi akan dilakukan sesuai urutan pada queue. Setiap transaksi akan memiliki satu

queue untuk semua operasi didalam transaksi tersebut.

Dalam dokumen BAB 2 LANDASAN TEORI (Halaman 43-49)

Dokumen terkait