100% menganggap dokumen ini bermanfaat (1 suara)
645 tayangan25 halaman

Delphi JSON Web Service API

Dokumen tersebut membahas tentang JSON, web service, API, dan koneksi database MySQL menggunakan JSON dan API dalam bahasa Delphi. JSON digunakan sebagai format pertukaran data antara aplikasi Delphi dengan server, sedangkan API dipakai untuk mengakses database MySQL di server melalui permintaan HTTP. Koneksi database dilakukan secara tidak langsung melalui JSON dan API agar dapat bekerja di berbagai platform.

Diunggah oleh

Aminis Mifta Se
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
100% menganggap dokumen ini bermanfaat (1 suara)
645 tayangan25 halaman

Delphi JSON Web Service API

Dokumen tersebut membahas tentang JSON, web service, API, dan koneksi database MySQL menggunakan JSON dan API dalam bahasa Delphi. JSON digunakan sebagai format pertukaran data antara aplikasi Delphi dengan server, sedangkan API dipakai untuk mengakses database MySQL di server melalui permintaan HTTP. Koneksi database dilakukan secara tidak langsung melalui JSON dan API agar dapat bekerja di berbagai platform.

Diunggah oleh

Aminis Mifta Se
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 25

Delphi JSON Web Service/API

1. JSON

JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah
dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh
komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript,
Standar ECMA-262 Edisi ke-3 - Desember 1999. JSON merupakan format teks yang tidak
bergantung pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang umum
digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python
dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data.

JSON terbuat dari dua struktur:


1. Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai
objek (object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash (hash
table), daftar berkunci (keyed list), atau associative array.
2. Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa, hal ini
dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence).

Struktur-struktur data ini disebut sebagai struktur data universal. Pada dasarnya, semua
bahasa pemprograman moderen mendukung struktur data ini dalam bentuk yang sama maupun
berlainan. Hal ini pantas disebut demikian karena format data mudah dipertukarkan dengan
bahasa-bahasa pemprograman yang juga berdasarkan pada struktur data ini.

JSON menggunakan bentuk sebagai berikut:


Objek adalah sepasang nama/nilai yang tidak terurutkan. Objek dimulai dengan { (kurung
kurawal buka) dan diakhiri dengan } (kurung kurawal tutup). Setiap nama diikuti dengan : (titik
dua) dan setiap pasangan nama/nilai dipisahkan oleh , (koma).

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

Larik adalah kumpulan nilai yang terurutkan. Larik dimulai dengan [ (kurung kotak buka) dan
diakhiri dengan ] (kurung kotak tutup). Setiap nilai dipisahkan oleh , (koma).

Nilai (value) dapat berupa sebuah string dalam tanda kutip ganda, atau angka, atau true atau
false atau null, atau sebuah objek atau sebuah larik. Struktur-struktur tersebut dapat disusun
bertingkat.

String adalah kumpulan dari nol atau lebih karakter Unicode, yang dibungkus dengan tanda
kutip ganda. Di dalam string dapat digunakan backslash escapes "\" untuk membentuk karakter
khusus. Sebuah karakter mewakili karakter tunggal pada string. String sangat mirip dengan
string C atau Java.

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

Angka adalah sangat mirip dengan angka di C atau Java, kecuali format oktal dan heksadesimal
tidak digunakan.

Spasi kosong (whitespace) dapat disisipkan di antara pasangan tanda-tanda tersebut, kecuali
beberapa detil encoding yang secara lengkap dipaparkan oleh bahasa pemprograman yang
bersangkutan.

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

2. Web Service

Web service menurut W3.org mendefinisikan web service sebagai “sebuah software
aplikasi yang dapat teridentifikasi oleh URI dan memiliki interface yang didefiniskan,
dideskripsikan, dan dimengerti oleh XML dan juga mendukung interaksi langsung dengan
software aplikasi yang lain dengan menggunakan message berbasis XML melalui protokol
internet”.

Web service adalah sebuah sofware aplikasi yang tidak terpengaruh oleh platform, ia
akan menyediakan method-method yang dapat diakses oleh network. Ia juga akan
menggunakan XML untuk pertukaran data, khususnya pada dua entities bisnis yang berbeda.

Definisi lain : Web service adalah sistem software yang dirancang untuk mendukung
interopabilitas mesin-ke-mesin yang dapat berinteraksi melalui jaringan. Web service
memiliki antarmuka yang dijelaskan dalam format mesin-processable (khusus WSDL). Sistem
lain berinteraksi dengan Web service dalam cara ditentukan oleh deskripsi dengan
menggunakan pesan SOAP, biasanya disampaikan menggunakan HTTP dengan serialisasi
XML dalam hubungannya dengan Web lainnya yang terkait standar.

Dalam pengertian yang sederhana , XML Web Services dapat di definisikan sebagai
aplikasi yang diakses oleh aplikasi yang lain. Mungkin orang berpendapat itu semacam web
site, tetapi itu bukan demikian. Ada perbedaan – perbedaan yang membedakan dengan web
site.

Perbedaan tersebut dapat dilihat dibawah ini :

WEB SITE
 Memiliki web interface
 Dibuat untuk ber interaksi langsung dengan user
 Dibuat untuk bekerja pada web browser.
Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

WEB SERVICES
 Tidak memiliki interface yang bagus
 Dibuat untuk ber interaksi langsung dengan applikasi yang lain baik beda OS / Konsep
sekalipun.
 Dibuat untuk bekerja pada semua tipe client applikasi / perangkat device

Beberapa karakteristik dari web service adalah:


 Message-based
 Standards-based Programming language independent
 Platform-neutral

3. API (Application Programming Interface)

API (Application Programming Interface) adalah sekumpulan perintah, fungsi,


komponen, dan protokol yang disediakan oleh sistem operasi ataupun bahasa pemrograman
tertentu yang dapat digunakan oleh programmer saat membangun perangkat lunak.

Dalam API terdapat fungsi-fungsi atau perintah-perintah untuk menggantikan bahasa


yang digunakan dalam system calls dengan bahasa yang lebih terstruktur dan mudah
dimengerti oleh programmer.

Keuntungan menggunakan API:


Probabilitas
API dapat digunakan untuk bahasa pemrograman ataupun untuk sistem operasi mana
saja asalkan paket-paket API sudah terpasang.
Lebih Mudah Dimengerti

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

API menggunakan bahasa yang lebih terstruktur dan mudah dimengerti daripada bahasa
system call. Hal ini sangat penting dalam hal editing dan pengembangan.
Mudah Dikembangkan
Dengan adanya API, memudahkan programmer untuk mengembangkan suatu system.

4. Koneksi MySQL dengan JSON Parse Delphi

Data
Data

Software
Application
Data JSON Data API (PHP) Data DB MySQL
Develop With
Delphi

Data

Sesuai dengan gambar diatas, data bergerak dimulai dari Aplikasi yang dibuat oleh
Developper dengan tujuan untuk menghubungkan databasenya dan begitupula sebaliknya. Hal
ini dilakukan karena beberapa alasan yaitu :
1. Dikarenakan menggunakan webhosting gratisan, mysqlnya tidak dibukankan portnya
guna diremote melalui internet. Solusi menggunakan JSON dan API ini.
2. Dikarenakan ingin meningkatkan performa/kecepatan dalam pentransferan data yang
tinggi, maka solusinya menggunakan JSON dan API ini.
3. API ini bisa dihubungkan dengan bahasa pemrograman apapun tanpa memberikan
pembukaan port database dari MySQLnya
4. Untuk pengguna Android Studio dengan gampang mengembangkan sistem yang
mereka rancang.

Komponen yang digunakan untuk menghubungkan antara JSON dan Delphi adalah
1. Indy. Bisa juga menggunakan Synapse akan tetapi dalam projek penulis buat hanya
menggunakan Indy
2. Library uLkJSON.pas. Library uLKJSON ini bisa didownload DISINI . Sebenarnya
ada 1 Library lagi yaitu menggunakan IS-WEBSTART akan tetapi dalam projek
penulis hanya menggunakan uLkJSON.

Langkah-Langkah Untuk Mengkonekkan Database dengan program


1. Desainlah Form Pada Delphi.

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

2. Untuk Komponen Indynya memiliki bebrapa settingan/sama seperti settingan


standarnya

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

3. Untuk Sttingan Formnya disesuaikan seperti gambar dan nama formnya  Form1
4. Siapkan fungsi URL encode agar tidak terjadi error dalam penginputtan,pengubahan
data. Pada bahasan kali ini penulis menggunakan fungsi dengan nama  HTTPEncode
walau ada 2 Fungsi yang penulis buat dalam projek ini
Fungsi HTTPEncode

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

Fungsi  MyEncodeUrl

Kedua fungsi ini dituliskan dibawah baris ini

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

Cara menggunakan Fungsi ini adalah sebagai berikut contohnya :


a. Misalnya ingin mengencode Data dari Editbox 1 ketikkan saja
HTTPEncode(Edit1.Text), MyEncodeUrl(Edit1.Text), begitupula dari komponen
Combobox, Listbox, dan Memo.
b. Misalnya ingin mengencode data dari field dalam database yang menggunakan
komponen AdoQuery atau komponen ZQuery (Zeos) ataupun Komponen Query
lainnya : HTTPEncode(ADOQuery1.FieldByName(‘nama’).AsString),
MyEncodeUrl(ZQuery1.FieldByName(‘nama’).AsString)

5. Setelah fungsinya dibuat selanjutnya penulis mengajak pembaca untuk membuat


Databasenya dengan settingan seperti ini
Nama Database : tes_jason
Nama Tabel : datajson
Primary Key : id

6. Setelah databasenya dibuat, maka selanjutnya penulis mengajak kepada para pembaca
untuk membuat APInya melalui scrip PHP yang dibawah ini
File : koneksi.php
<?php
$user = "tesjason";
$pass = "tesjason";
$database = "tes_jason";
$host = "localhost";
$connect_db = mysql_connect($host, $user, $pass) or die("Koneksi Gagal");
mysql_select_db($database, $connect_db) or die("Database Tidak Ada");
?>

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

File : tampilkan.php
<?php
include('koneksi.php');

$respon = array();

$data = mysql_query("SELECT * FROM datajason ORDER BY id");


if (mysql_num_rows($data)>0){
$respon["data"] = array();
while ($row = mysql_fetch_array($data)){
$item = array();
$item["id"] = $row["id"];
$item["nama"] = $row["nama"];
$item["alamat"] = $row["alamat"];
$item["jk"] = $row["jk"];

array_push($respon["data"], $item);
}
$respon["sukses"]=1;
} else {
$respon["sukses"]=0;
$respon["pesan"]="Data tidak ditemukan";
}
echo json_encode($respon);
?>

File : slect.php
<?php
include('koneksi.php');

$respon = array();
$id = $_GET['id'];

$data = mysql_query("SELECT * FROM datajason WHERE id='$id'");


if (mysql_num_rows($data)>0){
$respon["data"] = array();
while ($row = mysql_fetch_array($data)){
$item = array();
$item["id"] = $row["id"];
$item["nama"] = $row["nama"];
$item["alamat"] = $row["alamat"];
$item["jk"] = $row["jk"];

array_push($respon["data"], $item);
}
$respon["sukses"]=1;
}
else {
Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

$respon["sukses"]=0;
$respon["pesan"]="Data tidak ditemukan";
}
echo json_encode($respon);
?>

File : insert.php
<?php
include('koneksi.php');
$id = $_GET['id'];
$nama = $_GET['nama'];
$alamat = $_GET['alamat'];
$jk = $_GET['jk'];
$respon = array();
$hasil = mysql_query("INSERT INTO datajason (id,nama,alamat, jk) VALUES
('$id','$nama', '$alamat','$jk')");
if ($hasil){
$respon["sukses"]=1;
$respon["pesan"]="Data Berhasil Disimpan!";
}
else {
$respon["sukses"]=0;
$respon["pesan"]="Penyimpanan Gagal!";
}
echo json_encode($respon);
?>

File : ubah.php
<?php
include('koneksi.php');
$id = $_GET['id'];
$nama = $_GET['nama'];
$alamat = $_GET['alamat'];
$jk = $_GET['jk'];
$respon = array();
$hasil = mysql_query("UPDATE datajason SET nama='$nama',alamat='$alamat',
jk='$jk' WHERE id='$id'");
if ($hasil){
$respon["sukses"]=1;
$respon["pesan"]="Pengubahan Data Berhasil";
}
else {
$respon["sukses"]=0;
$respon["pesan"]="Pengubahan Data Gagal";
}
echo json_encode($respon);
Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

?>

File : hapus.php
<?php
include('koneksi.php');
$id = $_GET['id'];
$respon = array();
$hasil = mysql_query("DELETE FROM datajason WHERE id='$id'");
if ($hasil){
$respon["sukses"]=1;
$respon["pesan"]="Delete Berhasil";
}
else {
$respon["sukses"]=0;
$respon["pesan"]="Delete Gagal";
}
echo json_encode($respon);
?>

Seluruh File PHP yang dibuat ini dibuat dan diletakkan pada folder Publik Web ataupun
htdoc/folder public Localhostnya. Dengan contoh pengalamatan dari projek yang penulis buat
seperti ini : C:\xampp\htdocs\tesjson . Disini penulis menggunakan XAMPP sebagai tool
engine dan databasenya.

7. Setelah membuat file phpnya, bisa diteskan pada bagian URL dimasing-masing
browsernya seperti ini.
URL Menampilkan seluruh data dari dalam database jika datanya ada maka akan
tampil seperti dibawah ini. URLnya seperti ini http://localhost:69/tesjson/tampilkan.php

Untuk URL simpan formatnya seperti ini :


http://localhost:69/tesjson/insert.php?id=A006&nama=Gusrio%20Tendra&alamat=Dihatim
u&jk=Laki-Laki
Pesan yang ditampilkan saat Link diatas dijalankan :

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

Setelah simbol tanda tanya “ ? “ pada link diatas itu merupakan query yang harus dilakukan
untuk mengentrikan value yang diminta oleh coding phpnya karena menggunakan method GET
selain GET ada juga method yang sering digunakan yaitu method POST akan tetapi ddalam
projeknya penulis menggunakan method GET.
id, nama, alamat, jk adalah variabel untuk menampung value yang dientrikan sementara data
setelah sama dengan itu isi dari valuenya.

Untuk URL Ubah formatnya hampir sama dengan URL ubah dengan fromat URL :
http://localhost:69/tesjson/ubah.php?id=A006&nama=Gusrio%20Tendra&alamat=Dihatim
u&jk=Laki-Laki
Pesan yang ditampilkan saat Link diatas dijalankan :

Untuk URL Hapus formatnya seperti ini :


http://localhost:69/tesjson/hapus.php?id=A006
Pesan yang ditampilkan saat Link diatas dijalankan :

Untuk URL Cari data formatnya hampir sama dengan hapus, seperti ini :
http://localhost:69/tesjson/hapus.php?id=A006

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

Jika diperhatikan diatas Link yang penulis buat menggunakan Localhost dikarenakan
laptop penulis, penulis jadikan sebagai web server, disini penulis ajak kepada pembaca
menggunakan milik sendiri saja dalam artian jangan langsung menyewa sebuah server atau
membuat sebuah web hosting gratisan.
Pada link diatas terdapat angka 69 dimana laptop penulis port webnya menggunakan angka
69. Mengapa demikian? Itu dikarenakan laptop penulis ada yang memakai port defaultnya web
yaitu 80. Jadi jika pembaca tidak ada kendala dalam port 80 maka sanagat disarankan
menggunakan port defaultnya saja dan otomatis link akan terubah menjadi seperti ini
Contoh : http://localhost/tesjson/hapus.php?id=A006

8. Jika sudah selesai membuat file-file APInya maka penulis mengajak kepada para
pembaca untuk kembalilah ke coding delphinya. Disini penulis memfokuskan ke
coding prosedur yang akan digunakan pada projeknya nanti
Pendeklarasian Prosedur pada delphi, dimana penulis menggunakan prosedur privat

Prosedur Buat Tabel

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

Pada coding diatas berguna untuk membuat tabel mirip seperti tabel yang ada didalam
databse akan tetapi pembuatannya menual coding karena menggunakan komponen String Grid.

Prosedur Kondisi Awal dan Proses

Kondisi Awal dan Proses ini adalah hendel inputan kosong maupan hendel editan
kosong yang difokuskan disini adalah EdID (Inputan id) dan cmbJK (Inputan Jenis Kelamin)
Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

Prosedur Bersih

Prosedur Bersih ini digunakan untuk membersihkan komponen yang di gunakan saja
dimulai dari EdNama sampai cmbJK.

Selain prosedur diatas ada beberapa coding agar projek dibuat berjalan lancar. Codingnya
sebagai berikut :
Coding Button On/OFF atau Refresh Data :

Coding Form Show :

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

5. Cara Menampilkan Data dari MySQL Menggunakan JSON, MySQL, dan Delphi
Pada projek yang penulis buat kali ini, cara menampilkan Data dari MySQL
menggunakan JSON tertulis pada prosedur Tampil
Berikut ini Coding Prosedur Tampil:
procedure TForm1.tampil;
var
i : Integer;
begin
//Hendel Error jika Server Nati
try
get_url := IdHTTP1.Get('http://localhost:69/tesjson/tampilkan.php');
except
application.MessageBox('Servernya Mati.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Koneksi...',MB_ICONERROR);
exit;
end;

//Hendel Error jika URL tidak bisa diterjermahkan JSON


try
js := TlkJSON.ParseText(get_url) as TlkJSONObject;
except
application.MessageBox('Web Servis Gagal Diterjemahkan.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Terjemah...',MB_ICONERROR);
exit;
end;

//Hendel Error apabila Datanya kosong


try
sts := StrToInt(VarToStr(js.Field['sukses'].Value));
except
application.MessageBox('Web Servis Gagal Diterjemahkan.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Terjemah...',MB_ICONERROR);

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

exit;
end;
if sts <> 1 then begin
application.MessageBox('Datanya Kosong.'+#13+
'Silahkan Menunggu Datanya Diinput Oleh Admin!!!','Informasi Data
Kosong...',MB_ICONEXCLAMATION);
exit;
end;

//Baca data json dengan label data yang terdapat pada coding PHPnya
js:= TlkJSONObject(js.Field['data']);
//Sesuaikan julmlah baris Grid dengan banyaknya data dari databasenya
Grid.RowCount := js.Count + 1;

//Meload data ke Memo, Listbox dan Grid


for i := 0 to js.Count - 1 do begin
//Load Data Ke Grid
Grid.Cells[0,i+1] := IntToStr(i+1)+'.';
Grid.Cells[1, i + 1] := VarToStr(js.Child[i].Field['id'].Value);
Grid.Cells[2, i + 1] := VarToStr(js.Child[i].Field['nama'].Value);
Grid.Cells[3, i + 1] := VarToStr(js.Child[i].Field['alamat'].Value);
Grid.Cells[4, i + 1] := VarToStr(js.Child[i].Field['jk'].Value);
end;

js.Free;
end;

Berikut ini Coding Button Simpan :


procedure TForm1.BtnSimpanClick(Sender: TObject);
begin
if Length(EdId.Text) = 0 then begin
Beep;
application.MessageBox('Id Tidak Boleh Kosong!'+#13+
'Silahkan Diisi!!!','Informasi Kosong...',MB_ICONERROR);
EdId.SetFocus;
end
else if Length(cmbJK.Text) = 0 then begin
Beep;
application.MessageBox('Jenis Kelamin Tidak Boleh Kosong!'+#13+
'Silahkan Dipilih!!!','Informasi Kosong...',MB_ICONERROR);
cmbJK.SetFocus;
end
else begin
//Hendel Error jika Server Nati
try
{

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

http://localhost:69/tesjson/insert.php?id=A006&nama=Gusrio%20Tendra&alamat=Dihati
mu&jk=Laki-Laki
}
get_url :=
IdHTTP1.Get('http://localhost:69/tesjson/insert.php?id='+HTTPEncode(EdId.Text)+'&nam
a='+HTTPEncode(EdNama.Text)+'&alamat='+HTTPEncode(MmAlamat.Text)+'&jk='+H
TTPEncode(cmbJK.Text)+'');
except
application.MessageBox('Servernya Mati.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Koneksi...',MB_ICONERROR);
exit;
end;

//Hendel Error jika URL tidak bisa diterjermahkan JSON


try
js := TlkJSON.ParseText(get_url) as TlkJSONObject;
except
application.MessageBox('Web Servis Gagal Diterjemahkan.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Terjemah...',MB_ICONERROR);
exit;
end;

//Hendel Error apabila Datanya kosong


try
sts := StrToInt(VarToStr(js.Field['sukses'].Value));
except
application.MessageBox('Web Servis Gagal Diterjemahkan.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Terjemah...',MB_ICONERROR);
exit;
end;
if sts = 1 then begin
//Menampilkan Pesan Dari API Server Jika Berhasil
MessageDlg(VarToStr(js.Field['pesan'].Value), mtInformation, [mbOK], 0);
Bersih;
EdId.Clear;
tampil;
EdId.Text;
end
else begin
//Menampilkan Pesan Dari API Server Jika Gagal
MessageDlg(VarToStr(js.Field['pesan'].Value), mtError, [mbOK], 0);
end;
end;

end;

Berikut ini Coding Button Ubah :

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

procedure TForm1.BtnUbahClick(Sender: TObject);


begin
if Length(EdId.Text) = 0 then begin
Beep;
application.MessageBox('Id Tidak Boleh Kosong!'+#13+
'Silahkan Diisi!!!','Informasi Kosong...',MB_ICONERROR);
EdId.SetFocus;
end
else if Length(cmbJK.Text) = 0 then begin
Beep;
application.MessageBox('Jenis Kelamin Tidak Boleh Kosong!'+#13+
'Silahkan Dipilih!!!','Informasi Kosong...',MB_ICONERROR);
cmbJK.SetFocus;
end
else begin
//Hendel Error jika Server Nati
try
{

http://localhost:69/tesjson/ubah.php?id=A006&nama=Gusrio%20Tendra&alamat=Dihatim
u&jk=Laki-Laki
}
get_url :=
IdHTTP1.Get('http://localhost:69/tesjson/ubah.php?id='+HTTPEncode(EdId.Text)+'&nam
a='+HTTPEncode(EdNama.Text)+'&alamat='+HTTPEncode(MmAlamat.Text)+'&jk='+H
TTPEncode(cmbJK.Text)+'');
except
application.MessageBox('Servernya Mati.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Koneksi...',MB_ICONERROR);
exit;
end;

//Hendel Error jika URL tidak bisa diterjermahkan JSON


try
js := TlkJSON.ParseText(get_url) as TlkJSONObject;
except
application.MessageBox('Web Servis Gagal Diterjemahkan.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Terjemah...',MB_ICONERROR);
exit;
end;

//Hendel Error apabila Datanya kosong


try
sts := StrToInt(VarToStr(js.Field['sukses'].Value));
except
application.MessageBox('Web Servis Gagal Diterjemahkan.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Terjemah...',MB_ICONERROR);
exit;
end;
if sts = 1 then begin
Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

//Menampilkan Pesan Dari API Server Jika Berhasil


MessageDlg(VarToStr(js.Field['pesan'].Value), mtInformation, [mbOK], 0);
Bersih;
EdId.Clear;
tampil;
EdId.Text;
end
else begin
//Menampilkan Pesan Dari API Server Jika Gagal
MessageDlg(VarToStr(js.Field['pesan'].Value), mtError, [mbOK], 0);
end;
end;
end;

Berikut ini Coding Button Hapus :


procedure TForm1.BtnHapusClick(Sender: TObject);
begin
if Length(EdId.Text) = 0 then begin
Beep;
application.MessageBox('Id Tidak Boleh Kosong!'+#13+
'Silahkan Diisi!!!','Informasi Kosong...',MB_ICONERROR);
EdId.SetFocus;
end
else if Length(cmbJK.Text) = 0 then begin
Beep;
application.MessageBox('Jenis Kelamin Tidak Boleh Kosong!'+#13+
'Silahkan Dipilih!!!','Informasi Kosong...',MB_ICONERROR);
cmbJK.SetFocus;
end
else begin
//Hendel Error jika Server Nati
try
{
http://localhost:69/tesjson/hapus.php?id=A006
}
get_url := IdHTTP1.Get('http://localhost:69/tesjson/hapus.php?id='+EdId.Text);

except
application.MessageBox('Servernya Mati.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Koneksi...',MB_ICONERROR);
exit;
end;

//Hendel Error jika URL tidak bisa diterjermahkan JSON


try
js := TlkJSON.ParseText(get_url) as TlkJSONObject;
except
application.MessageBox('Web Servis Gagal Diterjemahkan.'+#13+

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

'Silahkan Hubungi Admin!!!','Informasi Terjemah...',MB_ICONERROR);


exit;
end;

//Hendel Error apabila Datanya kosong


try
sts := StrToInt(VarToStr(js.Field['sukses'].Value));
except
application.MessageBox('Web Servis Gagal Diterjemahkan.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Terjemah...',MB_ICONERROR);
exit;
end;
if sts = 1 then begin
//Menampilkan Pesan Dari API Server Jika Berhasil
MessageDlg(VarToStr(js.Field['pesan'].Value), mtInformation, [mbOK], 0);
Bersih;
EdId.Clear;
tampil;
EdId.SetFocus;
end
else begin
//Menampilkan Pesan Dari API Server Jika Gagal
MessageDlg(VarToStr(js.Field['pesan'].Value), mtError, [mbOK], 0);
end;
end;
end;

Berikut ini Coding Edit ID Pada Event Change Agar Tidak Terjadi Redudansi Data :
procedure TForm1.EdIdChange(Sender: TObject);
var
i : Integer;
begin
if Length(EdId.Text) <> 0 then begin
//Hendel Error jika Server Nati
try
get_url := IdHTTP1.Get('http://localhost:69/tesjson/slect.php?id='+EdId.Text);

except
application.MessageBox('Servernya Mati.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Koneksi...',MB_ICONERROR);
exit;
end;

//Hendel Error jika URL tidak bisa diterjermahkan JSON


try
js := TlkJSON.ParseText(get_url) as TlkJSONObject;
except
application.MessageBox('Web Servis Gagal Diterjemahkan.'+#13+

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

'Silahkan Hubungi Admin!!!','Informasi Terjemah...',MB_ICONERROR);


exit;
end;

//Hendel Error apabila Datanya kosong


try
sts := StrToInt(VarToStr(js.Field['sukses'].Value));
except
application.MessageBox('Web Servis Gagal Diterjemahkan.'+#13+
'Silahkan Hubungi Admin!!!','Informasi Terjemah...',MB_ICONERROR);
exit;
end;
if sts = 1 then begin
application.MessageBox('Datanya Sudah Ada!'+#13+
'Silahkan Inputkkan Data Yang Lain!!!','Informasi Data
Kosong...',MB_ICONEXCLAMATION);
kondisi_proses;
//Baca data json dengan label data yang terdapat pada coding PHPnya
js:= TlkJSONObject(js.Field['data']);
//Sesuaikan julmlah baris Grid dengan banyaknya data dari databasenya
Grid.RowCount := js.Count + 1;

//Meload data ke Memo, Listbox dan Grid


for i := 0 to js.Count - 1 do begin
//Load Data Ke Editbox Memo dan Combo
EdNama.Text:=VarToStr(js.Child[i].Field['nama'].Value);
MmAlamat.Clear;
MmAlamat.Lines.Clear;
MmAlamat.Lines.Add(VarToStr(js.Child[i].Field['alamat'].Value));
cmbJK.Text:=VarToStr(js.Child[i].Field['jk'].Value);

//Load Data Ke Grid


Grid.Cells[0,i+1] := IntToStr(i+1)+'.';
Grid.Cells[1, i + 1] := VarToStr(js.Child[i].Field['id'].Value);
Grid.Cells[2, i + 1] := VarToStr(js.Child[i].Field['nama'].Value);
Grid.Cells[3, i + 1] := VarToStr(js.Child[i].Field['alamat'].Value);
Grid.Cells[4, i + 1] := VarToStr(js.Child[i].Field['jk'].Value);
end;

js.Free;
end
else begin
kondisi_awal;
Bersih;
tampil;
end;
end;
end;

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/
Delphi JSON Web Service/API

6. Data Penulis
1. Nama : Jean Riko Kurniawan Putra, M.Kom
2. Blog : http://delphianimelover.blogspot.co.id/
3. Facebook : http://www.facebook.com/Jean.Riko.K.P
Fanpage : https://www.facebook.com/jean.software/
4. BBM : 54B5758E
5. WA/SMS/Line : 087790319305
6. Telegram : @Yamiriko

7. Link Unduh Source Coding Full


Single Link Download
No. Hosting Link
1 Google Drive http://q.gs/ClpA6
2 Kutucugum http://q.gs/CloLz
3 Partagora http://q.gs/CloOh
4 Diskokosmiko http://q.gs/ClnyA
5 Copiapop http://q.gs/Clnpa
6 Kumpulbagi http://q.gs/Clntn

Jean Riko Kurniawan Putra, M.Kom Delphi Anime Lover | Riko Software Delphi Anime Lover
https://www.facebook.com/jean.software/

Anda mungkin juga menyukai