Download Data KMP¶
Untuk mendownload data KDMP (Koperasi Desa Merah Putih) dapat dilakukan di website Simkopdes (Sistem Informasi Koperasi Desa)
Langkah-langkah:
Persiapkan tabel kdmplist, kdmpjson
Download list KDMP (koperasi) yang terdaftar di Simkopdes
Jalankan script iterasi download detail KDMP
Persiapan Tabel¶
Database menggunakan MariaDB
Siapkan tabel kdmplist
CREATE TABLE `kdmplist`
(
`kopid` INT(10) UNSIGNED NOT NULL,
`name` VARCHAR(255) NOT NULL,
`status` SET('d', 'l', 'k') NOT NULL DEFAULT 'd',
PRIMARY KEY (`kopid`)
)
engine=innodb
DEFAULT charset=ascii
COLLATE=ascii_general_ci
Buat tabel kdmpjson
CREATE TABLE `kdmpjson`
(
`kopid` int(10) unsigned NOT NULL,
`NAME` varchar(255) NOT NULL,
`status`SET('d','l','k') NOT NULL DEFAULT 'd',
`json` mediumtext DEFAULT NULL,
`datecreated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP(),
`datemodified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP() ONUPDATE CURRENT_TIMESTAMP(),
PRIMARY KEY (`kopid`)
)
engine=innodb DEFAULT charset=ascii COLLATE=ascii_general_ci
Mendapatkan Daftar Koperasi¶
KDMP terdaftar di Simkopdes dapat dilihat (download) di https://api.merahputih.kop.id/api/cooperatives/search dan akan memunculkan data kira-kira seperti ini:
{
"message": "Daftar koperasi berhasil dicari.",
"data": [
{
"cooperative_id": 20520,
"name": "KOPERASI DESA MERAH PUTIH ABABI"
},
{
"cooperative_id": 78060,
"name": "KOPERASI DESA MERAH PUTIH ABADI JAYA KECAMATAN MAGINTI"
},
{
"cooperative_id": 89719,
"name": "KOPERASI DESA MERAH PUTIH ABAIMAIDA"
},
{
"cooperative_id": 72295,
"name": "KOPERASI DESA MERAH PUTIH ABAK"
},
]
}
JSON string ini selanjutnya disimpan pada tabel kdmplist untuk dipergunakan pada langkah selanjutnya.
Script Download Data Koperasi¶
Jumlah detail data KDMP yang akan di-download, perkiraan sejumlah 80ribu records berupa JSON, menggunakan iterasi script dibawah ini. Perkiraan waktu 12-24 jam tergantung dari kecepatan internet dan proses pada PC/Laptop.
Berikut script diperlukan dalam BASH:
#!/bin/bash
baseurl="https://api.merahputih.kop.id/api/cooperatives/by-slug/"
sql="SELECT kopid,name,status FROM kdmpjson WHERE json IS NULL"
readarray -t rows < <(mysql -u admin -pkahayan kdmp -BNse "$sql")
for row in "${rows[@]}"; do
IFS=$'\t' read -r -a kolom <<< $row
case ${kolom[2]} in
'd') nama=${kolom[1]:26};;
'l') nama=${kolom[1]:31};;
*) nama=${kolom[1]:18};;
esac
nama=${nama,,}; nama=${nama// /-};
jsondata=$(curl -s $baseurl$nama)
sql="UPDATE kdmpjson SET json='"$jsondata"' WHERE kopid="${kolom[0]}
mysql -u admin -pkahayan kdmp -e "$sql"
echo $baseurl$nama
sleep 0.1
done
Iterasi ini dilakukan berulang, sampai seluruh data KDMP di Simkopdes terdownload.
Catatan
Happy Coding!