MASIGNCLEAN101

Mengenal Tipe Data Kompleks: STRUCT

Apa itu STRUCT?  Berbeda dengan array yang hanya dapat menampung sekumpulan data yang memiliki tipe data sama, struct dapat menampung sekumpulan data yang memiliki tipe data berbeda. Dalam konsep pemrograman berorientasi objek, struct dapat kita analogikan sebagai sebuah objek dari suatu kelas yang memiliki beberapa properti, sementara dalam konsep basis data kita dapat menganalogikan struct sebagai sebuah baris data dalam suatu tabel (record)
STRUCT

Contoh Struct
Sebagaimana sudah dibahas sebelumnya bahwa struct adalah sebuah baris data, contoh struct dalam tabel mahasiswa adalah sebagai berikut:
nim : 3432253
nama : Ahmad Baihaqi
Alamat : Jalan Godean KM 4.5
Contoh lain struct dalam tabel transaksi misalnya
kode transaksi : TRA_001
tanggal transaksi : 2012-10-05
kode barang : BRG_003
jumlah : 3

Secara sederhana, struct dalam bahasa pemrograman php dapat diimplementasikan dalam bentuk array dengan indeks string. Misalnya pada contoh pertama, dapat diimplementasikan dalam kode php sebagai berikut :
<?php
$mahasiswa = array(
"nim"=>"3432253",
"nama"=>"Ahmad Baihaqi",
"alamat"=>"Jalan Godean KM 4.5"
);
echo "nim = ".$mahasiswa['nim']."<br />";
echo "nama = ".$mahasiswa['nama']."<br />";
echo "alamat = ".$mahasiswa['alamat'];
?>
Tipe Data Struct dalam Web Service
Dalam web service untuk membuat tipe data struct dapat digunakan fungsi addComplexType dengan menggunakan enam buah parameter.
$server->wsdl->addComplexType (
“nama tipe data”, (diisi dengan nama tipe data yang akan dibuat)
“complexType”, (selalu diisi dengan complexType)
“struct”, (selalu diisi dengan struct)
“all”, (selalu diisi dengan all)
“”, (selalu diisi string kosong)
array(
“nama_kolom_1”=>array(“name”=>”nama_kolom_1”, “type”=>”tipe data”),
“nama_kolom_2”=>array(“name”=>”nama_kolom_2”, “type”=>”tipe data”),
dst
)
);
Contoh kode php (server) : barang_server.php
<?php
require_once “lib/nusoap.php”;
function getDetailBarang() {
$contoh_barang = array(
“kode_barang”=>”BRG_001”,
“nama_barang”=>”Susu Formula 500 Gram”,
“harga_satuan”=>”55000”,
“jumlah_stok”=>”35”
);
return $contoh_barang;
}
$server = new soap_server();
$server->configureWSDL(“Layanan Detail Barang”, “urn:barangService”);
$server->wsdl->addComplexType(
“barang”,
“complexType”,
“struct”,
“all”,
“”,
array(
“kode_barang”=>array(“name”=>”kode_barang”, “type”=>”xsd:string”),
“nama_barang”=>array(“name”=>”nama_barang”, “type”=>”xsd:string”),
“harga_satuan”=>array(“name”=>”harga_satuan”, “type”=>”xsd:int”),
“jumlah_stok”=>array(“name”=>”jumlah_stok”, “type”=>”xsd:int”)
)
);
 $server->register(
“getDetailBarang”,
array(),
array(“hasil”=>”tns:barang”),
“urn:barangService”,
“urn:barangService#getDetailBarang”
);
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ?
$HTTP_RAW_POST_DATA : “”;
$server->service($HTTP_RAW_POST_DATA);
?>
Ketika kode di atas dijalankan, maka akan didapati potongan WSDL sebagai berikut:
<xsd:complexType name="barang">
<xsd:all>
<xsd:element name="kode_barang" type="xsd:string"/>
<xsd:element name="nama_barang" type="xsd:string"/>
<xsd:element name="harga_satuan" type="xsd:int"/>
<xsd:element name="jumlah_stok" type="xsd:int"/>
</xsd:all>
</xsd:complexType>
Dari potongan WSDL di atas, didapati bahwa sudah dibuat sebuah tipe data kompleks yang bernama barang kode program dari sisi client:
<?php
require_once "lib/nusoap.php";
$url = "http://localhost/web_service/server/barang_server.php";
$client = new soapclientNusoap($url);
$result = $client->call("getDetailBarang", array());
echo "kode barang = ".$result['kode_barang']."<br />";
echo "nama barang = ".$result['nama_barang']."<br />";
echo "harga satuan = ".$result['harga_satuan']."<br />";
echo "jumlah stok = ".$result['jumlah_stok']."<br />";
?>
Share This :
Apradiz Renfaan

Penikmat Kopi dan Teh