Misalkan, kita akan mengakses URL http://app.aswamedia.my.id/api/pas_by_nik.php?id={{nik}}
Buatlah desain form seperti berikut
Tambahkan komponen TRESTClient, TRESTRequest, dan TRESTResponse, perhatikan gambar berikut
Secara mudah, akan menjadi seperti gambar di bawah ini
Klik parameter yang telah dibuat, dan isikan name dengan id (atau bisa disesuaikan dengan parameter URL yang akan diakses)
Masih pada TRESTRequest, isikan Resource dengan pas_by_nik.php (sesuaikan dengan URLnya), dan pastikan Response terisi RESTResponse1
Tambahkan di bawah implementation code berikut
uses System.IOUtils, System.JSON, System.Generics.Collections;
Kemudian, isikan code berikut di procedure cari
var data:TJSonValue; begin //setting value parameter yang akan dikirim ke server RESTRequest1.Params[0].Value:=Edit1.Text; //eksekusi RESTRequest1.Execute; //menampilkan JSON respon API Memo1.Text:=RESTResponse1.Content; //parsing json yang ada di memo 1, atau bisa langsung dari content respon data:=TJSONObject.ParseJSONValue(Memo1.Text); //mengambil nilai untuk diletakkan ke dalam input dan memo edit2.Text:=data.GetValue<string>('nm_lkp'); memo2.Text:=data.GetValue<string>('almt'); edit3.Text:=data.GetValue<string>('umur'); end;
Hasilnya seperti berikut
Jika respon dari API lebih dari 1 data, maka kita perlu mengubah json tersebut menjadi array dengan code TJSONArray, kemudian data tersebut ditampilkan di . Berikut code lengkapnya:
var data: TJSONArray; i: Integer; row : TJSONObject; nama,jml_pg : string; begin //setting value parameter yang akan dikirim ke server StringGrid1.Cells[0,0]:='Nama'; StringGrid1.Cells[1,0]:='Jumlah PG'; RESTRequest1.Params[0].Value:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date); RESTRequest1.Params[1].Value:=FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date); //eksekusi RESTRequest1.Execute; //menampilkan JSON respon API Memo1.Text:=RESTResponse1.Content; //parsing json yang ada di memo 1, atau bisa langsung dari content respon data:=TJSONObject.ParseJSONValue(RESTResponse1.Content) as TJSONArray; for i := 0 to data.Size - 1 do begin row := data.Get(i) as TJSONObject; nama := row.Get('nm').JsonValue.Value; jml_pg := row.Get('jml_pg').JsonValue.Value; StringGrid1.Cells[0,i+1]:=nama; StringGrid1.Cells[1,i+1]:=jml_pg; end; //mengambil nilai untuk diletakkan ke dalam input dan memo end;
Hasilnya sebagai berikut.
Semoga bermanfaat.
0 Komentar