Anda di halaman 1dari 13

LECTURE NOTES

ISYS6307 – Data & Information


Management

Week 7

XML Query in Native and Framework


LEARNING OUTCOMES

LO3: Organize data in information as a necessity to make business decision support

OUTLINE MATERI :

1. Overview of XML

2. JSON (JavaScript Object Notation)

3. XML Query Languages

4. Extending Lore and Lorel to Handle XML

5. Integrating PHP Unit

6. The phpunit.xml file

ISYS6307 – Data and Information Management


ISI MATERI

A. Overview of XML
Pada bagian ini, kami memberikan gambaran umum singkat tentang XML menggunakan
contoh sederhana yang ditunjukkan pada Gambar 7.1 yang menunjukkan detail Staff.

Gambar 7.1. Contoh XML untuk menampilkan informasi staff

XML Declaration
Dokumen XML dimulai dengan deklarasi XML opsional, yang dalam contoh kami
menentukan versi XML yang digunakan untuk menulis dokumen (1.0), sistem pengkodean yang
digunakan (UTF-8 untuk Unicode), dan apakah referensi dibuat untuk markup eksternal
deklarasi (standalone = "No" menunjukkan bahwa dokumen tersebut harus dibandingkan
dengan dokumen DTD yang terpisah). Baris kedua dan ketiga dari dokumen XML pada Gambar
7.1 mengacu pada style sheets dan DTD.
Element

ISYS6307 – Data and Information Management


Elemen, atau tag, adalah bentuk pemformatan yang paling umum. Elemen pertama harus
berupa elemen root, yang dapat berisi elemen (sub) lainnya. Dokumen XML harus memiliki
satu elemen utama, dalam contoh kami <STAFFLIST>. Sebuah elemen dimulai dengan tag awal
(misalnya <STAFF>) dan diakhiri dengan tag akhir (misalnya </STAFF>). Elemen XML peka
huruf besar / kecil, jadi elemen <STAFF> akan berbeda dari elemen <staff> (perhatikan bahwa
ini tidak terjadi pada HTML). Sebuah elemen boleh kosong, dalam hal ini dapat disingkat
menjadi <EMPTYELEMENT />. Elemen harus disarangkan dengan benar, seperti yang
digambarkan oleh kutipan dari Gambar 7.1 berikut:

<STAFF>
<NAME>
<FNAME>John</FNAME><LNAME>White</LNAME>
</NAME>
</STAFF>

Dalam kasus ini, elemen NAME bersarang sepenuhnya di elemen STAFF dan elemen FNAME
dan LNAME bersarang di elemen NAME.
Attributes
Atribut adalah pasangan nama-nilai yang berisi informasi deskriptif tentang suatu
elemen. Atribut ditempatkan di tag awal setelah nama elemen yang sesuai dengan nilai atribut
diapit tanda kutip. Misalnya, kami telah memilih untuk menampilkan branch yang sedang
dikerjakan karyawan dengan atribut branchNo di elemen STAFF:
<STAFF branchNo = "B005">

Kita bisa saja mewakili branch serta sub-elemen dari STAFF. Jika kita merepresentasikan
jenis kelamin anggota staf, kita bisa menggunakan atribut elemen kosong; sebagai contoh:
<SEX gender = "M"/>

Atribut tertentu mungkin hanya muncul sekali dalam tag; sub-elemen dengan tag yang
sama dapat diulang.

ISYS6307 – Data and Information Management


Entity references
Entitas memiliki tiga tujuan utama:
1. Sebagai jalan pintas ke teks yang sering diulang atau untuk memasukkan konten file
eksternal;
2. Untuk memasukkan karakter Unicode yang berubah-ubah ke dalam teks (misalnya, untuk
menampilkan karakter yang tidak dapat diketik secara langsung di keyboard);
3. Untuk membedakan karakter yang dipesan dari konten. Misalnya, tanda pangkat dua kiri (<)
menunjukkan awal dari tag awal atau tag akhir dari sebuah elemen. Untuk membedakan
simbol ini dari konten sebenarnya, XML telah memperkenalkan entitas lt, yang diganti
dengan simbol '<'.
Setiap entitas harus memiliki nama unik dan penggunaannya dalam dokumen
XML disebut referensi entitas. Referensi entitas dimulai dengan ampersand (&) dan diakhiri
dengan titik koma (;), misalnya & lt;
Comment
Komentar ada di <! - dan -> tag dan dapat berisi data apa pun kecuali string literal "-."
Komentar dapat dimasukkan dalam markup di mana saja dalam dokumen XML, meskipun
prosesor XML tidak diperlukan untuk meneruskan komentar ke aplikasi.

B. JSON (JavaScript Object Notation)


JSON adalah sintaks alternatif dengan standar terbuka untuk menyimpan dan bertukar
informasi teks. JSON lebih kecil dari XML dan lebih cepat serta lebih mudah untuk diurai.
Meskipun JSON diturunkan dari JavaScript, ini adalah bahasa independen, dengan parser
tersedia untuk banyak bahasa. JSON terutama digunakan untuk mengirim data antara server dan
aplikasi web dan berfungsi sebagai alternatif XML. Jenis data dasar JSON adalah sebagai
berikut:
1. Number (format titik mengambang presisi ganda dalam JavaScript).
2. String (diapit tanda kutip ganda).
3. Boolean.
4. Array (rangkaian nilai yang diurutkan, dipisahkan dengan koma dan diapit oleh tanda
kurung; nilainya tidak harus dari jenis yang sama).

ISYS6307 – Data and Information Management


5. Objek (kumpulan pasangan kunci: nilai yang tidak berurutan di mana karakter ":"
memisahkan kunci dan nilai, dipisahkan dengan koma dan diapit oleh tanda kurung; kunci
harus berupa string dan harus berbeda satu sama lain).
6. Null (kosong)

Contoh JSON adalah sebagai berikut:


{
“branchNo”: “B005”,
“address”: {
]
}
},
“staff ”: [
“street”: “22 Deer Rd”,
“city”: “London”,
“postcode”: “SW1 4EH”
{“fName”: “John”, “lName”: “White”},
{“fName”: “Ann”, “lName”: “Beech”}

C. XML Query Languages


Ekstraksi data, transformasi, dan integrasi adalah masalah database yang dipahami
dengan baik yang bergantung pada bahasa kueri. Ada banyak bahasa kueri semi-terstruktur yang
dapat digunakan untuk mencari dokumen XML, termasuk XML-QL, UnQL, dan XQL dari
Microsoft. Bahasa ini memiliki gagasan tentang ekspresi jalur untuk menavigasi struktur XML
bertingkat. Misalnya, XML-QL menggunakan struktur mirip XML bertingkat untuk
menentukan bagian dokumen yang akan dipilih dan struktur hasil XML. Misalnya untuk
menemukan nama belakang staf yang berpenghasilan lebih dari £ 30.000, kita dapat
menggunakan pencarian berikut:
WHERE <
STAFF>
<
SALARY>$S</SALARY>
<

ISYS6307 – Data and Information Management


NAME><FNAME>$F</FNAME> <LNAME>$L</LNAME></NAME>
</
STAFF> IN "http://www.dreamhome.co.uk/staff.xml"
$
S > 30000
CONSTRUCT <LNAME>$L</LNAME>

D. Extending Lore and Lorel to Handle XML


Dengan munculnya XML, sistem Lore telah bermigrasi untuk memproses XML
(Goldman et al., 1999). Dalam Lore baru yang merupakan model data berbasis XML , elemen
XML adalah pasangan (eid, value), di mana eid adalah ID elemen unik dan value adalah string atau
nilai kompleks yang berisi salah satu dari berikut ini :
1. Tag nilai string yang cocok dengan tag XML untuk elemen itu;
2. Daftar urutan nama atribut dan pasangan nilai, dengan nilai tipe dasar (misalnya, integer
atau string) atau ID, IDREF atau IDREFS;
3. Daftar urutan sub-elemen tautan silang dari formulir (label, id), di mana label adalah string
(sub-elemen tautan silang diperkenalkan menggunakan IDREF atau IDREFS);
4. Daftar berurutan dari sub-elemen normal formulir (label, eid), di mana label adalah string
(sub-elemen normal diperkenalkan menggunakan lexical nesting dalam dokumen XML).

Komentar dan spasi antara elemen yang diberi tag diabaikan dan bagian CDATA
diterjemahkan ke dalam elemen teks atomic. Gambar 7.2 mengilustrasikan pemetaan dokumen
XML dari Gambar 7.3 ke model data. Menariknya, Lore mendukung dua representasi data
XML: semantik dan literal. Dalam mode semantik, database dilihat sebagai grafik yang saling
berhubungan, dengan atribut IDREF dan IDREFS dihilangkan, dan batas sub-elemen dan crosslink
dihapus. Dalam mode literal, atribut IDREF dan IDREFS hadir saat string teks dan batas tautan
silang dihapus, sehingga database selalu berupa pohon. Pada gambar 7.2, tepi subelemen solid
dan tepi crosslink rusak Atribut IDREF terdaftar di {}.

ISYS6307 – Data and Information Management


Gambar 7.3. Dokumen XML di Lore.

Gambar 7.3. Contoh penggunaan ID dan


IDREFS.
Lorel
Konsep path expression telah diperluas dalam versi XML Lorel untuk memungkinkan
navigasi atribut dan sub-elemen, dibedakan dengan path expression qualifier (">" untuk sub-
elemen yang cocok saja dan "@" untuk atribut). Jika tidak ada kualifikasi yang diberikan, baik
atribut maupun sub-elemen cocok. Selain itu, Lorel telah diperpanjang sehingga ekspresi [range]

ISYS6307 – Data and Information Management


dapat secara opsional diterapkan ke komponen atau variabel ekspresi jalur apa pun (range adalah
daftar nomor dan / atau rentang tunggal, seperti [1–3, 7]).

E. Integrating PHP Unit


PHPUnit adalah kerangka kerja yang menyediakan seperangkat alat untuk menulis
pengujian dengan cara yang lebih mudah, memungkinkan kita menjalankan pengujian secara
otomatis dan memberikan umpan balik yang berguna kepada pengembang.
Untuk menggunakan PHPUnit, kita menginstalnya secara tradisional di laptop. Selain
itu, kita menambahkan kelas kerangka kerja untuk menyertakan jalur PHP dan juga file yang
dapat dieksekusi untuk menjalankan pengujian. Saat ini, Composer membantu kita memasukkan
PHPUnit sebagai dependensi pada proyek. Ini berarti menjalankan Composer, yang pasti akan
Anda lakukan untuk mendapatkan dependensi lainnya, juga akan mendapatkan PHPUnit.
Kemudian tambahkan yang berikut ini ke composer.json:
{
//...
"require": {
"monolog/monolog": "^1.17",
"twig/twig": "^1.23"
},
"require-dev": {
"phpunit/phpunit": "5.1.3"
},
"autoload": {
"psr-4": {
"Bookstore\\": "src"
}
}
}
Perhatikan bahwa ketergantungan ini ditambahkan sebagai require-dev. Ini berarti
bahwa ketergantungan hanya akan diunduh ketika kita berada dalam lingkungan pengembangan,
tetapi ini bukan bagian dari aplikasi yang akan kita produksi karena kita tidak perlu menjalankan
pengujian di sana. Seperti biasa, jalankan composer update untuk mendapatkan dependensi.

ISYS6307 – Data and Information Management


F. The phpunit.xml file
PHPUnit membutuhkan file phpunit.xml untuk menentukan cara kita menjalankan
pengujian. File ini mendefinisikan sekumpulan aturan seperti lokasi pengujian, kode apa yang
diuji, dan sebagainya. Tambahkan file berikut ke direktori root Anda:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
bootstrap="vendor/autoload.php"
>
<testsuites>
<testsuite name="Bookstore Test Suite">
<directory>./tests/</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>./src</directory>
</whitelist>
</filter>
</phpunit>

File ini menjelaskan beberapa hal. Yang utama dijelaskan sebagai berikut:
1. Dengan ConvertErrorsToExceptions, convertNoticesToExceptions, dan
convertWarningsToExceptions memiliki nilai true akan menyebabkan pengujian Anda
gagal jika ada kesalahan, peringatan, atau notifikasi PHP. Tujuannya adalah untuk
memastikan kode Anda bebas dari bug minor dalam kasus edge, yang selalu menjadi sumber
potensi masalah.

ISYS6307 – Data and Information Management


2. StopOnFailure memberi tahu PHPUnit apakah akan terus menjalankan sisa pengujian atau
tidak jika ada pengujian yang gagal. Dalam hal ini, kita ingin menjalankan semuanya untuk
mengetahui berapa banyak pengujian yang gagal dan mengapa.
3. bootstrap menentukan file mana yang akan dijalankan sebelum kita mulai menjalankan
pengujian. Penggunaan yang paling umum adalah menyertakan pemuat otomatis, tetapi
Anda juga dapat menyertakan file yang menginisialisasi dependensi tertentu, seperti
database atau pembaca konfigurasi.
4. testuites menentukan direktori tempat PHPUnit akan mencari pengujian. Dalam kasus
kita, kita mendefinisikan ./tests, tetapi kita dapat menambahkan lebih banyak jika kita
memilikinya di direktori yang berbeda.
5. whitelist menentukan daftar direktori yang berisi kode yang kita uji. Ini dapat berguna
untuk menghasilkan keluaran terkait dengan cakupan kode.

ISYS6307 – Data and Information Management


KESIMPULAN

Kesimpulan dari topik ini adalah:

Ada banyak Bahasa dan variasi untuk menggunakan XML seperti Json hingga XMLQuery
language. Penggunaan XML untuk memvisualisasikan informasi supaya lebih mudah untuk
diintepretasikan oleh penggunanya.

ISYS6307 – Data and Information Management


DAFTAR PUSTAKA

1. Connolly, T., & Begg, C. (2015). Database System A Practical Approach to Design,
Implemetation, and Management 6th Edition. Pearson

2. Antonio Lopez. (2016). Learning PHP 7. Published by Packt Publishing Ltd. Livery
Place 35 Livery Street. Birmingham B3 2PB, UK. ISBN 978-1-78588-054-4

ISYS6307 – Data and Information Management

Anda mungkin juga menyukai