Download Data KMP

Untuk mendownload data KDMP (Koperasi Desa Merah Putih) dapat dilakukan di website Simkopdes (Sistem Informasi Koperasi Desa)

Langkah-langkah:

  1. Persiapkan tabel kdmplist, kdmpjson

  2. Download list KDMP (koperasi) yang terdaftar di Simkopdes

  3. 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!