SlideShare a Scribd company logo
1 of 23
BAB
VII
XML DAN DATABASE
Riza Muhammad Nurman, S.Kom
Email : rizaman@eng.ui.ac.id ; rizamn@ymail.com
Sunday, April 22, 2018 Riza Muhammad Nurman 2
CONTENT
 MENGGUNAKAN KLAUSA FOR XML
 PENGGUNAAN KLAUSA OPENXML
 MEMBUAT DOKUMEN XML PADA SQL SERVER
 PENGGUNAAN XQUERY
Sunday, April 22, 2018 Riza Muhammad Nurman 3
MENGGUNAKAN KLAUSA FOR XML
• Dalam SQL Query, data dapat ditampilkan dalam bentuk XML
dengan menggunakan klausa FOR XML.
• FOR XML query memiliki beberapa tipe yang dapat dipilih
bergantung pada bentuk tampilan hasil yang diinginkan.
• Beberapa tipe dari query FOR XML adalah:
– FOR XML RAW
– FOR XML AUTO
– FOR XML PATH
– FOR XML EXPLISIT
Sunday, April 22, 2018 Riza Muhammad Nurman 4
FOR XML RAW
SELECT [PurchaseOrderID],[Status],[EmployeeID],[VendorID]
,[ShipMethodID],[OrderDate],[ShipDate],[SubTotal],[TaxAmt]
,[Freight],[TotalDue]
FROM [Purchasing].[PurchaseOrderHeader]
WHERE [TotalDue] > 1000000
FOR XML RAW
<row PurchaseOrderID="4012" Status="2" EmployeeID="231"
VendorID="29" ShipMethodID="3"
OrderDate="2004-07-25T00:00:00" ShipDate="2004-08-
19T00:00:00" SubTotal="997680.0000"
TaxAmt="79814.4000" Freight="19953.6000"
TotalDue="1097448.0000" />
FOR XML RAW menghasilkan data dalam bentuk atribut yang dikelompokkan
dalam elemen <row>
Sunday, April 22, 2018 Riza Muhammad Nurman 5
<row>
<PurchaseOrderID>4012</PurchaseOrderID>
<Status>2</Status>
<EmployeeID>231</EmployeeID>
<VendorID>29</VendorID>
<ShipMethodID>3</ShipMethodID>
<OrderDate>2004-07-25T00:00:00</OrderDate>
<ShipDate>2004-08-19T00:00:00</ShipDate>
<SubTotal>997680.0000</SubTotal>
<TaxAmt>79814.4000</TaxAmt>
<Freight>19953.6000</Freight>
<TotalDue>1097448.0000</TotalDue>
</row>
SELECT [PurchaseOrderID],[Status],[EmployeeID],[VendorID]
,[ShipMethodID],[OrderDate],[ShipDate],[SubTotal],[TaxAmt]
,[Freight],[TotalDue]
FROM [Purchasing].[PurchaseOrderHeader]
WHERE [TotalDue] > 1000000
FOR XML RAW, ELEMENTS
FOR XML RAW - 2
Sunday, April 22, 2018 Riza Muhammad Nurman 6
<Orders>
<Order>
<PurchaseOrderID>4012</PurchaseOrderID>
<Status>2</Status>
<EmployeeID>231</EmployeeID>
<VendorID>29</VendorID>
<ShipMethodID>3</ShipMethodID>
<OrderDate>2004-07-25T00:00:00</OrderDate>
<ShipDate>2004-08-19T00:00:00</ShipDate>
<SubTotal>997680.0000</SubTotal>
<TaxAmt>79814.4000</TaxAmt>
<Freight>19953.6000</Freight>
<TotalDue>1097448.0000</TotalDue>
</Order>
</Orders>
SELECT [PurchaseOrderID],[Status],[EmployeeID],[VendorID]
,[ShipMethodID],[OrderDate],[ShipDate],[SubTotal],[TaxAmt]
,[Freight],[TotalDue]
FROM [Purchasing].[PurchaseOrderHeader]
WHERE [TotalDue] > 1000000
FOR XML RAW('Order'), ROOT('Orders') , ELEMENTS
FOR XML RAW - 3
Sunday, April 22, 2018 Riza Muhammad Nurman 7
SELECT [PurchaseOrderID],[Status],[EmployeeID],[VendorID]
,[ShipMethodID],[OrderDate],[ShipDate],[SubTotal],[TaxAmt]
,[Freight],[TotalDue]
FROM [Purchasing].[PurchaseOrderHeader]
WHERE [TotalDue] > 1000000
FOR XML RAW('Order'), ROOT('Orders') , ELEMENTS, XMLSCHEMA
FOR XML RAW - 4
Sunday, April 22, 2018 Riza Muhammad Nurman 8
FOR XML AUTO
• FOR XML RAW tidak dapat digunakan jika data yang dihasilkan dari
query tersebut berbentuk nested data
• Perbedaan FOR XML RAW dan FOR XML AUTO akan terlihat jika
query digunakan untuk menampilkan data dari dua tabel yang saling
terhubung
• Contoh :
• query FOR XML AUTO berikut yang digunakan untuk menampilkan
data dari tabel PurchaseOrderHeader dan PurchaseOrderDetail yang
dihubungkan dengan Join
Sunday, April 22, 2018 Riza Muhammad Nurman 9
FOR XML AUTO - 2
SELECT
PO.PurchaseOrderID,PO.Status,PO.EmployeeID,PO.VendorID
,PO.ShipMethodIDPO.OrderDate,PO.ShipDate,PO.SubTotal,PO.TaxA
mt,
PO.Freight,PO.TotalDue,POD.OrderQty,POD.ProductID,POD.UnitPr
ice
FROM Purchasing.PurchaseOrderHeader PO INNER JOIN
Purchasing.PurchaseOrderDetail POD
ON PO.PurchaseOrderID = POD.PurchaseOrderID
WHERE PO.TotalDue > 1000000
FOR XML AUTO, ROOT('Orders')
Sunday, April 22, 2018 Riza Muhammad Nurman 10
FOR XML AUTO - 3
<Orders>
<PurchaseOrderHeader PurchaseOrderID="4012" Status="2"
EmployeeID="231" VendorID="29" ShipMethodID="3"
OrderDate="2004-07-25T00:00:00" ShipDate="2004-08-
19T00:00:00"
SubTotal="997680.0000" TaxAmt="79814.4000"
Freight="19953.6000" TotalDue="1097448.0000">
<PurchaseOrderDetail OrderQty="6000" ProductID="881"
UnitPrice="41.5700" />
<PurchaseOrderDetail OrderQty="6000" ProductID="882"
UnitPrice="41.5700" />
<PurchaseOrderDetail OrderQty="6000" ProductID="883"
UnitPrice="41.5700" />
<PurchaseOrderDetail OrderQty="6000" ProductID="884"
UnitPrice="41.5700" />
</PurchaseOrderHeader>
</Orders>
Sunday, April 22, 2018 Riza Muhammad Nurman 11
FOR XML EXPLICIT
• Opsi EXPLICIT dapat digunakan untuk berbagai macam hal untuk
dapat menghasilkan data dalam format XML
Sunday, April 22, 2018 Riza Muhammad Nurman 12
FOR XML PATH
• FOR XML PATH dapat digunakan untuk menampilkan data dalam
bentuk nested XML yang terdiri dari elemen dan atribut menjadi lebih
mudah
• Contoh  query yang menampilkan kolom PurchaseOrderID, Status
dan EmployeeID dalam bentuk atribut
SELECT [PurchaseOrderID] [@PurchaseOrderID],
[Status] [@Status],[EmployeeID][@EmployeeID],
[VendorID] ,[ShipMethodID],[OrderDate],[ShipDate],
[SubTotal],[TaxAmt],[Freight],[TotalDue]
FROM [Purchasing].[PurchaseOrderHeader]
WHERE [TotalDue] > 1000000
FOR XML PATH('Order'), ROOT('Orders')
Sunday, April 22, 2018 Riza Muhammad Nurman 13
FOR XML PATH - 2
<Orders>
<Order PurchaseOrderID="4012" Status="2" EmployeeID="231">
<VendorID>29</VendorID>
<ShipMethodID>3</ShipMethodID>
<OrderDate>2004-07-25T00:00:00</OrderDate>
<ShipDate>2004-08-19T00:00:00</ShipDate>
<SubTotal>997680.0000</SubTotal>
<TaxAmt>79814.4000</TaxAmt>
<Freight>19953.6000</Freight>
<TotalDue>1097448.0000</TotalDue>
</Order>
</Orders>
Sunday, April 22, 2018 Riza Muhammad Nurman 14
FOR XML PATH - 3
• FOR XML PATH juga dapat digunakan untuk
mengkontrol nesting document.
• Contoh  menampilkan data dari dua tabel yaitu
PurchaseOrderHeader dan
PurchaseOrderDetail
– data dari tabel PurchaseOrderHeader dituliskan
dalam bentuk atribut
– data dari tabel PurchaseOrderDetail dituliskan
dalam bentuk elemen.
Sunday, April 22, 2018 Riza Muhammad Nurman 15
PENGGUNAAN KLAUSA OPENXML
• Dokumen XML dan isinya dapat disisipkan ke dalam tabel database standar.
• Proses ini terdiri atas tiga tahapan dan biasanya dikenal dengan istilah
shredding
1. Langkah pertama ini dapat dianalogikan
dengan melakukan pemuatan
DOMDOcument object
2. Langkah kedua adalah langkah
memproses dokumen XML
3. Langkah terakhir adalah melakukan
penghapus representasi XML dalam
tabel internal di SQL Server
Sunday, April 22, 2018 Riza Muhammad Nurman 16
PENGGUNAAN KLAUSA OPENXML - 2
• Salah satu keuntungan dari penggunaan OPENXML adalah dapat
digunakan dengan stored procedure yang memiliki parameter dalam
bentuk array.
• Contoh  jika terdapat sebuah aplikasi e-commerce yang
memungkinkan pembeli untuk memilih barang dan jumlah barang
yang ingin dibeli dan menyimpannya dalam sebuah keranjang
pembelian
• Setelah pembeli menyelesaikan proses belanja, maka nilai yang
tersimpan dalam keranjang belanja tersebut perlu dikirimkan ke
sebuah stored procedure agar bisa dilakukan perhitungan.
Sunday, April 22, 2018 Riza Muhammad Nurman 17
PENGGUNAAN KLAUSA OPENXML - 3
Sunday, April 22, 2018 Riza Muhammad Nurman 18
MEMBUAT DOKUMEN XML PADA SQL SERVER
create table dbo.Docs
(
DocID int identity primary key,
XMLDoc XML
)
insert docs
values('<Person><FirstName>Joe</FirstName>
<LastName>Fawcett</LastName></Person>')
Sunday, April 22, 2018 Riza Muhammad Nurman 19
PENGGUNAAN XQUERY
• Data yang memiliki tipe data XML dapat diperlakukan sama seperti
data lainnya, dalam hal pemodifikasian dan juga penghapusan
dengan menggunakan Xquery
• Perintah XQuery biasanya diletakkan sebagai tambahan pada T-SQL.
Sunday, April 22, 2018 Riza Muhammad Nurman 20
PENGGUNAAN XQUERY – MENGHAPUS DATA
DECLARE @myDoc XML
SET @myDoc = '<Person><FirstName>Joe</FirstName>
<LastName>Fawcett</LastName></Person>'
SELECT @myDoc
SET @myDoc.modify(' delete /Person/*[2]')
SELECT @myDoc
Sunday, April 22, 2018 Riza Muhammad Nurman 21
PENGGUNAAN XQUERY – MENAMBAH DATA
DECLARE @myDoc XML
SET @myDoc = '<Person><LastName>Fawcett</LastName></Person>'
SELECT @myDoc
SET @myDoc.modify(' insert <FirstName>Joe</FirstName> as first
into /Person[1]')
SELECT @myDoc
DECLARE @myDoc XML
SET @myDoc = '<Person><LastName>Fawcett</LastName></Person>'
SELECT @myDoc
SET @myDoc.modify('insert <FirstName>Joe</FirstName>
before (/Person/LastName)[1]')
SELECT @myDoc
Sunday, April 22, 2018 Riza Muhammad Nurman 22
PENGGUNAAN XQUERY – MEMODIFIKASI DATA
DECLARE @myDoc XML
SET @myDoc = '<Person><FirstName>Joe</FirstName>
<LastName>Fawcett</LastName></Person> '
SELECT @myDoc
SET @myDoc.modify('replace value of (/Person/FirstName/text())[1]
with "Gillian"')
SELECT @myDoc
XML - Chapter 7 XML DAN DATABASE

More Related Content

More from Riza Nurman

XML - Chapter 5 XML DOM
XML - Chapter 5 XML DOMXML - Chapter 5 XML DOM
XML - Chapter 5 XML DOMRiza Nurman
 
DBA BAB 5 - Keamanan Database
DBA BAB 5 - Keamanan DatabaseDBA BAB 5 - Keamanan Database
DBA BAB 5 - Keamanan DatabaseRiza Nurman
 
DBA BAB 4 - Recovery Data
DBA BAB 4 - Recovery DataDBA BAB 4 - Recovery Data
DBA BAB 4 - Recovery DataRiza Nurman
 
DBA BAB 3 - Manage Database
DBA BAB 3 - Manage DatabaseDBA BAB 3 - Manage Database
DBA BAB 3 - Manage DatabaseRiza Nurman
 
DBA BAB 2 - INSTALASI DAN UPGRADE SQL SERVER 2005
DBA BAB 2 - INSTALASI DAN UPGRADE SQL SERVER 2005DBA BAB 2 - INSTALASI DAN UPGRADE SQL SERVER 2005
DBA BAB 2 - INSTALASI DAN UPGRADE SQL SERVER 2005Riza Nurman
 
DBA BAB 1 - Pengenalan Database Administrator
DBA BAB 1 - Pengenalan Database AdministratorDBA BAB 1 - Pengenalan Database Administrator
DBA BAB 1 - Pengenalan Database AdministratorRiza Nurman
 
RMN - XML Source Code
RMN -  XML Source CodeRMN -  XML Source Code
RMN - XML Source CodeRiza Nurman
 
ADP - Chapter 5 Exploring JavaServer Pages Technology
ADP - Chapter 5 Exploring JavaServer Pages TechnologyADP - Chapter 5 Exploring JavaServer Pages Technology
ADP - Chapter 5 Exploring JavaServer Pages TechnologyRiza Nurman
 
ADP - Chapter 4 Managing Sessions
ADP - Chapter 4 Managing SessionsADP - Chapter 4 Managing Sessions
ADP - Chapter 4 Managing SessionsRiza Nurman
 
ADP- Chapter 3 Implementing Inter-Servlet Communication
ADP- Chapter 3 Implementing Inter-Servlet CommunicationADP- Chapter 3 Implementing Inter-Servlet Communication
ADP- Chapter 3 Implementing Inter-Servlet CommunicationRiza Nurman
 
ADP - Chapter 2 Exploring the java Servlet Technology
ADP - Chapter 2 Exploring the java Servlet TechnologyADP - Chapter 2 Exploring the java Servlet Technology
ADP - Chapter 2 Exploring the java Servlet TechnologyRiza Nurman
 
ADP - Chapter 1 Introducing Web Application Development
ADP - Chapter 1 Introducing Web Application DevelopmentADP - Chapter 1 Introducing Web Application Development
ADP - Chapter 1 Introducing Web Application DevelopmentRiza Nurman
 
MIS BAB 4 - Sistem Penunjang Keputusan
MIS BAB 4 - Sistem Penunjang KeputusanMIS BAB 4 - Sistem Penunjang Keputusan
MIS BAB 4 - Sistem Penunjang KeputusanRiza Nurman
 

More from Riza Nurman (20)

XML - Chapter 5 XML DOM
XML - Chapter 5 XML DOMXML - Chapter 5 XML DOM
XML - Chapter 5 XML DOM
 
DBA BAB 5 - Keamanan Database
DBA BAB 5 - Keamanan DatabaseDBA BAB 5 - Keamanan Database
DBA BAB 5 - Keamanan Database
 
DBA BAB 4 - Recovery Data
DBA BAB 4 - Recovery DataDBA BAB 4 - Recovery Data
DBA BAB 4 - Recovery Data
 
DBA BAB 3 - Manage Database
DBA BAB 3 - Manage DatabaseDBA BAB 3 - Manage Database
DBA BAB 3 - Manage Database
 
DBA BAB 2 - INSTALASI DAN UPGRADE SQL SERVER 2005
DBA BAB 2 - INSTALASI DAN UPGRADE SQL SERVER 2005DBA BAB 2 - INSTALASI DAN UPGRADE SQL SERVER 2005
DBA BAB 2 - INSTALASI DAN UPGRADE SQL SERVER 2005
 
DBA BAB 1 - Pengenalan Database Administrator
DBA BAB 1 - Pengenalan Database AdministratorDBA BAB 1 - Pengenalan Database Administrator
DBA BAB 1 - Pengenalan Database Administrator
 
RMN - XML Source Code
RMN -  XML Source CodeRMN -  XML Source Code
RMN - XML Source Code
 
XML - Chapter 4
XML - Chapter 4XML - Chapter 4
XML - Chapter 4
 
XML - Chapter 3
XML - Chapter 3XML - Chapter 3
XML - Chapter 3
 
XML - Chapter 1
XML - Chapter 1XML - Chapter 1
XML - Chapter 1
 
ADP - Chapter 5 Exploring JavaServer Pages Technology
ADP - Chapter 5 Exploring JavaServer Pages TechnologyADP - Chapter 5 Exploring JavaServer Pages Technology
ADP - Chapter 5 Exploring JavaServer Pages Technology
 
ADP - Chapter 4 Managing Sessions
ADP - Chapter 4 Managing SessionsADP - Chapter 4 Managing Sessions
ADP - Chapter 4 Managing Sessions
 
ADP- Chapter 3 Implementing Inter-Servlet Communication
ADP- Chapter 3 Implementing Inter-Servlet CommunicationADP- Chapter 3 Implementing Inter-Servlet Communication
ADP- Chapter 3 Implementing Inter-Servlet Communication
 
ADP - Chapter 2 Exploring the java Servlet Technology
ADP - Chapter 2 Exploring the java Servlet TechnologyADP - Chapter 2 Exploring the java Servlet Technology
ADP - Chapter 2 Exploring the java Servlet Technology
 
ADP - Chapter 1 Introducing Web Application Development
ADP - Chapter 1 Introducing Web Application DevelopmentADP - Chapter 1 Introducing Web Application Development
ADP - Chapter 1 Introducing Web Application Development
 
MIS BAB 10
MIS BAB 10MIS BAB 10
MIS BAB 10
 
MIS BAB 9
MIS BAB 9MIS BAB 9
MIS BAB 9
 
MIS BAB 8
MIS BAB 8MIS BAB 8
MIS BAB 8
 
MIS BAB 7
MIS BAB 7MIS BAB 7
MIS BAB 7
 
MIS BAB 4 - Sistem Penunjang Keputusan
MIS BAB 4 - Sistem Penunjang KeputusanMIS BAB 4 - Sistem Penunjang Keputusan
MIS BAB 4 - Sistem Penunjang Keputusan
 

Recently uploaded

P5 Gaya Hidup berkelanjutan gaya hidup b
P5 Gaya Hidup berkelanjutan gaya hidup bP5 Gaya Hidup berkelanjutan gaya hidup b
P5 Gaya Hidup berkelanjutan gaya hidup bSisiliaFil
 
perwalian IKLIM SEKOLAH AMAN Mencegah Intoleransi.pptx
perwalian IKLIM SEKOLAH AMAN Mencegah Intoleransi.pptxperwalian IKLIM SEKOLAH AMAN Mencegah Intoleransi.pptx
perwalian IKLIM SEKOLAH AMAN Mencegah Intoleransi.pptxMas PauLs
 
UAS Matematika kelas IX 2024 HK_2024.pdf
UAS Matematika kelas IX 2024 HK_2024.pdfUAS Matematika kelas IX 2024 HK_2024.pdf
UAS Matematika kelas IX 2024 HK_2024.pdfssuser29a952
 
MODUL AJAR BAHASA INDONESIA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 2 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 2 KURIKULUM MERDEKA.pdfAndiCoc
 
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdfAndiCoc
 
Materi Bid PPM Bappeda Sos Pemutakhiran IDM 2024 di kec Plumbon.pptx
Materi Bid PPM Bappeda Sos Pemutakhiran  IDM 2024 di kec Plumbon.pptxMateri Bid PPM Bappeda Sos Pemutakhiran  IDM 2024 di kec Plumbon.pptx
Materi Bid PPM Bappeda Sos Pemutakhiran IDM 2024 di kec Plumbon.pptxAvivThea
 
Demokrasi dan Pendidikan Demokrasi kwn ppt.ppt
Demokrasi dan Pendidikan Demokrasi kwn ppt.pptDemokrasi dan Pendidikan Demokrasi kwn ppt.ppt
Demokrasi dan Pendidikan Demokrasi kwn ppt.pptretno12886
 
Penjelasan Asmaul Khomsah bahasa arab nahwu
Penjelasan Asmaul Khomsah bahasa arab nahwuPenjelasan Asmaul Khomsah bahasa arab nahwu
Penjelasan Asmaul Khomsah bahasa arab nahwuKhiyaroh1
 
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidananASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidananriniaandayani
 
PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...
PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...
PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...Kanaidi ken
 
MODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdfAndiCoc
 
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdfMODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdfAndiCoc
 
E-modul materi Ekosistem Kelas 10 SMA (Preview)
E-modul materi Ekosistem Kelas 10 SMA (Preview)E-modul materi Ekosistem Kelas 10 SMA (Preview)
E-modul materi Ekosistem Kelas 10 SMA (Preview)Ammar Ahmad
 
Obat pada masa kehamilan: uteretonik dan tokolitik
Obat pada masa kehamilan: uteretonik dan tokolitikObat pada masa kehamilan: uteretonik dan tokolitik
Obat pada masa kehamilan: uteretonik dan tokolitikNegustinNegustin
 
Ppt kelompok 6 (preeklamsia ringan).pptx
Ppt kelompok 6 (preeklamsia ringan).pptxPpt kelompok 6 (preeklamsia ringan).pptx
Ppt kelompok 6 (preeklamsia ringan).pptxMeilianiPuspitaSari
 
Informatika Latihan Soal Kelas Tujuh.pptx
Informatika Latihan Soal Kelas Tujuh.pptxInformatika Latihan Soal Kelas Tujuh.pptx
Informatika Latihan Soal Kelas Tujuh.pptxMateriSMPTDarulFalah
 
Modul 5 Simetri (simetri lipat, simetri putar)
Modul 5 Simetri (simetri lipat, simetri putar)Modul 5 Simetri (simetri lipat, simetri putar)
Modul 5 Simetri (simetri lipat, simetri putar)BashoriAlwi4
 
MODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdfAndiCoc
 
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdfAndiCoc
 
PPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptx
PPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptxPPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptx
PPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptxiwidyastama85
 

Recently uploaded (20)

P5 Gaya Hidup berkelanjutan gaya hidup b
P5 Gaya Hidup berkelanjutan gaya hidup bP5 Gaya Hidup berkelanjutan gaya hidup b
P5 Gaya Hidup berkelanjutan gaya hidup b
 
perwalian IKLIM SEKOLAH AMAN Mencegah Intoleransi.pptx
perwalian IKLIM SEKOLAH AMAN Mencegah Intoleransi.pptxperwalian IKLIM SEKOLAH AMAN Mencegah Intoleransi.pptx
perwalian IKLIM SEKOLAH AMAN Mencegah Intoleransi.pptx
 
UAS Matematika kelas IX 2024 HK_2024.pdf
UAS Matematika kelas IX 2024 HK_2024.pdfUAS Matematika kelas IX 2024 HK_2024.pdf
UAS Matematika kelas IX 2024 HK_2024.pdf
 
MODUL AJAR BAHASA INDONESIA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 2 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 2 KURIKULUM MERDEKA.pdf
 
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 5 KURIKULUM MERDEKA.pdf
 
Materi Bid PPM Bappeda Sos Pemutakhiran IDM 2024 di kec Plumbon.pptx
Materi Bid PPM Bappeda Sos Pemutakhiran  IDM 2024 di kec Plumbon.pptxMateri Bid PPM Bappeda Sos Pemutakhiran  IDM 2024 di kec Plumbon.pptx
Materi Bid PPM Bappeda Sos Pemutakhiran IDM 2024 di kec Plumbon.pptx
 
Demokrasi dan Pendidikan Demokrasi kwn ppt.ppt
Demokrasi dan Pendidikan Demokrasi kwn ppt.pptDemokrasi dan Pendidikan Demokrasi kwn ppt.ppt
Demokrasi dan Pendidikan Demokrasi kwn ppt.ppt
 
Penjelasan Asmaul Khomsah bahasa arab nahwu
Penjelasan Asmaul Khomsah bahasa arab nahwuPenjelasan Asmaul Khomsah bahasa arab nahwu
Penjelasan Asmaul Khomsah bahasa arab nahwu
 
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidananASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
ASPEK KIMIA TUBUH dalam ilmu kesehatan dan kebidanan
 
PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...
PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...
PELAKSANAAN + Link2 MATERI Training_ "AUDIT INTERNAL + SISTEM MANAJEMEN MUTU ...
 
MODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR SENI RUPA KELAS 5 KURIKULUM MERDEKA.pdf
 
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdfMODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
MODUL AJAR PENDIDIKAN PANCASILA KELAS 2 KURIKULUM MERDEKA.pdf
 
E-modul materi Ekosistem Kelas 10 SMA (Preview)
E-modul materi Ekosistem Kelas 10 SMA (Preview)E-modul materi Ekosistem Kelas 10 SMA (Preview)
E-modul materi Ekosistem Kelas 10 SMA (Preview)
 
Obat pada masa kehamilan: uteretonik dan tokolitik
Obat pada masa kehamilan: uteretonik dan tokolitikObat pada masa kehamilan: uteretonik dan tokolitik
Obat pada masa kehamilan: uteretonik dan tokolitik
 
Ppt kelompok 6 (preeklamsia ringan).pptx
Ppt kelompok 6 (preeklamsia ringan).pptxPpt kelompok 6 (preeklamsia ringan).pptx
Ppt kelompok 6 (preeklamsia ringan).pptx
 
Informatika Latihan Soal Kelas Tujuh.pptx
Informatika Latihan Soal Kelas Tujuh.pptxInformatika Latihan Soal Kelas Tujuh.pptx
Informatika Latihan Soal Kelas Tujuh.pptx
 
Modul 5 Simetri (simetri lipat, simetri putar)
Modul 5 Simetri (simetri lipat, simetri putar)Modul 5 Simetri (simetri lipat, simetri putar)
Modul 5 Simetri (simetri lipat, simetri putar)
 
MODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 3 KURIKULUM MERDEKA.pdf
 
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 5 KURIKULUM MERDEKA.pdf
 
PPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptx
PPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptxPPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptx
PPt-Juknis-PPDB-2024 (TerbarU) kabupaten GIanyar.pptx
 

XML - Chapter 7 XML DAN DATABASE

  • 1. BAB VII XML DAN DATABASE Riza Muhammad Nurman, S.Kom Email : rizaman@eng.ui.ac.id ; rizamn@ymail.com
  • 2. Sunday, April 22, 2018 Riza Muhammad Nurman 2 CONTENT  MENGGUNAKAN KLAUSA FOR XML  PENGGUNAAN KLAUSA OPENXML  MEMBUAT DOKUMEN XML PADA SQL SERVER  PENGGUNAAN XQUERY
  • 3. Sunday, April 22, 2018 Riza Muhammad Nurman 3 MENGGUNAKAN KLAUSA FOR XML • Dalam SQL Query, data dapat ditampilkan dalam bentuk XML dengan menggunakan klausa FOR XML. • FOR XML query memiliki beberapa tipe yang dapat dipilih bergantung pada bentuk tampilan hasil yang diinginkan. • Beberapa tipe dari query FOR XML adalah: – FOR XML RAW – FOR XML AUTO – FOR XML PATH – FOR XML EXPLISIT
  • 4. Sunday, April 22, 2018 Riza Muhammad Nurman 4 FOR XML RAW SELECT [PurchaseOrderID],[Status],[EmployeeID],[VendorID] ,[ShipMethodID],[OrderDate],[ShipDate],[SubTotal],[TaxAmt] ,[Freight],[TotalDue] FROM [Purchasing].[PurchaseOrderHeader] WHERE [TotalDue] > 1000000 FOR XML RAW <row PurchaseOrderID="4012" Status="2" EmployeeID="231" VendorID="29" ShipMethodID="3" OrderDate="2004-07-25T00:00:00" ShipDate="2004-08- 19T00:00:00" SubTotal="997680.0000" TaxAmt="79814.4000" Freight="19953.6000" TotalDue="1097448.0000" /> FOR XML RAW menghasilkan data dalam bentuk atribut yang dikelompokkan dalam elemen <row>
  • 5. Sunday, April 22, 2018 Riza Muhammad Nurman 5 <row> <PurchaseOrderID>4012</PurchaseOrderID> <Status>2</Status> <EmployeeID>231</EmployeeID> <VendorID>29</VendorID> <ShipMethodID>3</ShipMethodID> <OrderDate>2004-07-25T00:00:00</OrderDate> <ShipDate>2004-08-19T00:00:00</ShipDate> <SubTotal>997680.0000</SubTotal> <TaxAmt>79814.4000</TaxAmt> <Freight>19953.6000</Freight> <TotalDue>1097448.0000</TotalDue> </row> SELECT [PurchaseOrderID],[Status],[EmployeeID],[VendorID] ,[ShipMethodID],[OrderDate],[ShipDate],[SubTotal],[TaxAmt] ,[Freight],[TotalDue] FROM [Purchasing].[PurchaseOrderHeader] WHERE [TotalDue] > 1000000 FOR XML RAW, ELEMENTS FOR XML RAW - 2
  • 6. Sunday, April 22, 2018 Riza Muhammad Nurman 6 <Orders> <Order> <PurchaseOrderID>4012</PurchaseOrderID> <Status>2</Status> <EmployeeID>231</EmployeeID> <VendorID>29</VendorID> <ShipMethodID>3</ShipMethodID> <OrderDate>2004-07-25T00:00:00</OrderDate> <ShipDate>2004-08-19T00:00:00</ShipDate> <SubTotal>997680.0000</SubTotal> <TaxAmt>79814.4000</TaxAmt> <Freight>19953.6000</Freight> <TotalDue>1097448.0000</TotalDue> </Order> </Orders> SELECT [PurchaseOrderID],[Status],[EmployeeID],[VendorID] ,[ShipMethodID],[OrderDate],[ShipDate],[SubTotal],[TaxAmt] ,[Freight],[TotalDue] FROM [Purchasing].[PurchaseOrderHeader] WHERE [TotalDue] > 1000000 FOR XML RAW('Order'), ROOT('Orders') , ELEMENTS FOR XML RAW - 3
  • 7. Sunday, April 22, 2018 Riza Muhammad Nurman 7 SELECT [PurchaseOrderID],[Status],[EmployeeID],[VendorID] ,[ShipMethodID],[OrderDate],[ShipDate],[SubTotal],[TaxAmt] ,[Freight],[TotalDue] FROM [Purchasing].[PurchaseOrderHeader] WHERE [TotalDue] > 1000000 FOR XML RAW('Order'), ROOT('Orders') , ELEMENTS, XMLSCHEMA FOR XML RAW - 4
  • 8. Sunday, April 22, 2018 Riza Muhammad Nurman 8 FOR XML AUTO • FOR XML RAW tidak dapat digunakan jika data yang dihasilkan dari query tersebut berbentuk nested data • Perbedaan FOR XML RAW dan FOR XML AUTO akan terlihat jika query digunakan untuk menampilkan data dari dua tabel yang saling terhubung • Contoh : • query FOR XML AUTO berikut yang digunakan untuk menampilkan data dari tabel PurchaseOrderHeader dan PurchaseOrderDetail yang dihubungkan dengan Join
  • 9. Sunday, April 22, 2018 Riza Muhammad Nurman 9 FOR XML AUTO - 2 SELECT PO.PurchaseOrderID,PO.Status,PO.EmployeeID,PO.VendorID ,PO.ShipMethodIDPO.OrderDate,PO.ShipDate,PO.SubTotal,PO.TaxA mt, PO.Freight,PO.TotalDue,POD.OrderQty,POD.ProductID,POD.UnitPr ice FROM Purchasing.PurchaseOrderHeader PO INNER JOIN Purchasing.PurchaseOrderDetail POD ON PO.PurchaseOrderID = POD.PurchaseOrderID WHERE PO.TotalDue > 1000000 FOR XML AUTO, ROOT('Orders')
  • 10. Sunday, April 22, 2018 Riza Muhammad Nurman 10 FOR XML AUTO - 3 <Orders> <PurchaseOrderHeader PurchaseOrderID="4012" Status="2" EmployeeID="231" VendorID="29" ShipMethodID="3" OrderDate="2004-07-25T00:00:00" ShipDate="2004-08- 19T00:00:00" SubTotal="997680.0000" TaxAmt="79814.4000" Freight="19953.6000" TotalDue="1097448.0000"> <PurchaseOrderDetail OrderQty="6000" ProductID="881" UnitPrice="41.5700" /> <PurchaseOrderDetail OrderQty="6000" ProductID="882" UnitPrice="41.5700" /> <PurchaseOrderDetail OrderQty="6000" ProductID="883" UnitPrice="41.5700" /> <PurchaseOrderDetail OrderQty="6000" ProductID="884" UnitPrice="41.5700" /> </PurchaseOrderHeader> </Orders>
  • 11. Sunday, April 22, 2018 Riza Muhammad Nurman 11 FOR XML EXPLICIT • Opsi EXPLICIT dapat digunakan untuk berbagai macam hal untuk dapat menghasilkan data dalam format XML
  • 12. Sunday, April 22, 2018 Riza Muhammad Nurman 12 FOR XML PATH • FOR XML PATH dapat digunakan untuk menampilkan data dalam bentuk nested XML yang terdiri dari elemen dan atribut menjadi lebih mudah • Contoh  query yang menampilkan kolom PurchaseOrderID, Status dan EmployeeID dalam bentuk atribut SELECT [PurchaseOrderID] [@PurchaseOrderID], [Status] [@Status],[EmployeeID][@EmployeeID], [VendorID] ,[ShipMethodID],[OrderDate],[ShipDate], [SubTotal],[TaxAmt],[Freight],[TotalDue] FROM [Purchasing].[PurchaseOrderHeader] WHERE [TotalDue] > 1000000 FOR XML PATH('Order'), ROOT('Orders')
  • 13. Sunday, April 22, 2018 Riza Muhammad Nurman 13 FOR XML PATH - 2 <Orders> <Order PurchaseOrderID="4012" Status="2" EmployeeID="231"> <VendorID>29</VendorID> <ShipMethodID>3</ShipMethodID> <OrderDate>2004-07-25T00:00:00</OrderDate> <ShipDate>2004-08-19T00:00:00</ShipDate> <SubTotal>997680.0000</SubTotal> <TaxAmt>79814.4000</TaxAmt> <Freight>19953.6000</Freight> <TotalDue>1097448.0000</TotalDue> </Order> </Orders>
  • 14. Sunday, April 22, 2018 Riza Muhammad Nurman 14 FOR XML PATH - 3 • FOR XML PATH juga dapat digunakan untuk mengkontrol nesting document. • Contoh  menampilkan data dari dua tabel yaitu PurchaseOrderHeader dan PurchaseOrderDetail – data dari tabel PurchaseOrderHeader dituliskan dalam bentuk atribut – data dari tabel PurchaseOrderDetail dituliskan dalam bentuk elemen.
  • 15. Sunday, April 22, 2018 Riza Muhammad Nurman 15 PENGGUNAAN KLAUSA OPENXML • Dokumen XML dan isinya dapat disisipkan ke dalam tabel database standar. • Proses ini terdiri atas tiga tahapan dan biasanya dikenal dengan istilah shredding 1. Langkah pertama ini dapat dianalogikan dengan melakukan pemuatan DOMDOcument object 2. Langkah kedua adalah langkah memproses dokumen XML 3. Langkah terakhir adalah melakukan penghapus representasi XML dalam tabel internal di SQL Server
  • 16. Sunday, April 22, 2018 Riza Muhammad Nurman 16 PENGGUNAAN KLAUSA OPENXML - 2 • Salah satu keuntungan dari penggunaan OPENXML adalah dapat digunakan dengan stored procedure yang memiliki parameter dalam bentuk array. • Contoh  jika terdapat sebuah aplikasi e-commerce yang memungkinkan pembeli untuk memilih barang dan jumlah barang yang ingin dibeli dan menyimpannya dalam sebuah keranjang pembelian • Setelah pembeli menyelesaikan proses belanja, maka nilai yang tersimpan dalam keranjang belanja tersebut perlu dikirimkan ke sebuah stored procedure agar bisa dilakukan perhitungan.
  • 17. Sunday, April 22, 2018 Riza Muhammad Nurman 17 PENGGUNAAN KLAUSA OPENXML - 3
  • 18. Sunday, April 22, 2018 Riza Muhammad Nurman 18 MEMBUAT DOKUMEN XML PADA SQL SERVER create table dbo.Docs ( DocID int identity primary key, XMLDoc XML ) insert docs values('<Person><FirstName>Joe</FirstName> <LastName>Fawcett</LastName></Person>')
  • 19. Sunday, April 22, 2018 Riza Muhammad Nurman 19 PENGGUNAAN XQUERY • Data yang memiliki tipe data XML dapat diperlakukan sama seperti data lainnya, dalam hal pemodifikasian dan juga penghapusan dengan menggunakan Xquery • Perintah XQuery biasanya diletakkan sebagai tambahan pada T-SQL.
  • 20. Sunday, April 22, 2018 Riza Muhammad Nurman 20 PENGGUNAAN XQUERY – MENGHAPUS DATA DECLARE @myDoc XML SET @myDoc = '<Person><FirstName>Joe</FirstName> <LastName>Fawcett</LastName></Person>' SELECT @myDoc SET @myDoc.modify(' delete /Person/*[2]') SELECT @myDoc
  • 21. Sunday, April 22, 2018 Riza Muhammad Nurman 21 PENGGUNAAN XQUERY – MENAMBAH DATA DECLARE @myDoc XML SET @myDoc = '<Person><LastName>Fawcett</LastName></Person>' SELECT @myDoc SET @myDoc.modify(' insert <FirstName>Joe</FirstName> as first into /Person[1]') SELECT @myDoc DECLARE @myDoc XML SET @myDoc = '<Person><LastName>Fawcett</LastName></Person>' SELECT @myDoc SET @myDoc.modify('insert <FirstName>Joe</FirstName> before (/Person/LastName)[1]') SELECT @myDoc
  • 22. Sunday, April 22, 2018 Riza Muhammad Nurman 22 PENGGUNAAN XQUERY – MEMODIFIKASI DATA DECLARE @myDoc XML SET @myDoc = '<Person><FirstName>Joe</FirstName> <LastName>Fawcett</LastName></Person> ' SELECT @myDoc SET @myDoc.modify('replace value of (/Person/FirstName/text())[1] with "Gillian"') SELECT @myDoc