MAPDB Injector Pelaporan Data Perguruan Tinggi UNISA

ssusere5db05 0 views 18 slides Oct 06, 2025
Slide 1
Slide 1 of 18
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18

About This Presentation

MAPDB Injector Pelaporan Data Perguruan Tinggi UNISA


Slide Content

oleh:
Basit Adhi Prabowo
mapdb, injektor PDDIKTI

Tentang

Penjelasan tentang penggunaan mapdb

Tautan:
https://pdsi.unisayogya.ac.id/tag/injector/

Sifat:
Open Source

Penulis Utama:
Basit Adhi Prabowo, S.T.
[email protected]

Bahasan
Sinkron
Injek
Insert
Injek
Update
Internal
Filter
Cek Tabel Ekstrak

Cek Tabel

Apakah tabel sudah dipetakan

Apakah tabel referensi Institusi sudah sama dengan
tabel referensi PDDIKTI (setidaknya nama dan kode-nya)
Tabel Institusi
kodenama field2
1 A X
2 B Y
3 C Z
Tabel PDDIKTI
kode nama
1 A
2 B
3 C
4 D
Sama?
pt_agama ok agama
jurusan ok ak_programstudi
belum dipetakanjabfung

C
E
K
Membandingkan data tabel Institusi dengan data tabel PDDIKTI
select guid, field2, field3, ... from A where <filterInstansi> order by `field1 (pk)`
$this->GetRecordset(“P”)
3
3
1 1
5
T
A
B
E
L
4
1
1 2
4
5

Ekstrak

Memasukkan data dari tabel PDDIKTI ke tabel Institusi
(tanpa update UUID/GUID)
Tabel Institusi
kode GUID1 GUID2
Tabel PDDIKTI
UUID1 UUID2
d555e532-8dfa-490b-a30b-
72ab03274475
944f5369-5183-4841-
8543-c7610f1bebf4
Ekstrakd555e532-8dfa-490b-
a30b-72ab03274475
944f5369-5183-4841-
8543-c7610f1bebf4
1

E
K
S
T
R
A
K
Ambil data tabel PDDIKTI, kemudian dimasukkan ke tabel Institusi (jika belum ada)
GetRecordset(“P”, <filtertahunakademik>)
insert into A (guid, field2, field3, ...) select nilai[id], nilai[fieldb], nilai[fieldc], ... from A where not exists (select 1 from A
where fieldInstitusi[0]=nilai[fieldPDDIKTI[0]] and ...) limit 0,1
1
2
1 2
4 4
3
3 4 5
5 5
3 3
6 7
6 7

Sinkron

Proses menghubungkan 1 baris di tabel Institusi dengan
1 baris di tabel PDDIKTI melalui UUID/GUID primary key
1 baris data PDDIKTI tersebut
Tabel Institusi
nim namamahasiswa GUID
123456Fulan
456789John Doe
Tabel PDDIKTI
UUID nim namamahasiswa
d555e532-8dfa-490b-
a30b-72ab03274475
123456Fulan
944f5369-5183-4841-
8543-c7610f1bebf4
456789John Doe
Sinkron
GUID
d555e532-8dfa-490b-
a30b-72ab03274475
944f5369-5183-4841-
8543-c7610f1bebf4

S
I
N
K
R
O
N
Langkah 1: check, ambil data tabel Institusi yang belum ada UUID/GUIDnya, kemudian dicari di tabel PDDIKTI
select `field1 (pk)`,<fieldInstitusi>, <fieldtambahanInstitusi> from A a where `a.guid`="" or isnull(`a.guid`)) and
<filterInstitusi> order by <fieldorderInstitusi>
GetRecordset(“P”, <fieldPDDIKTI>=nilai[<fieldInstitusi>])
1 2 3 4 5 5
3
5
4
6
8 9 2
8
2
7
1

S
I
N
K
R
O
N
Langkah 2: update guid, UUID/GUID yang didapat dari PDDIKTI disimpan ke Institusi
update Aa set a.guid=nilai[`fielda (pk)`] where `field1 (pk)`=nilai[`field1 (pk)`]
1 3 4
2
4
1
42
3

Injek - Insert

Proses memasukkan data dari tabel Institusi ke dalam tabel
PDDIKTI, kemudian akan mendapatkan UUID/GUID primary key
untuk setiap baris baru dan disimpan ke dalam tabel Institusi
Tabel Institusi
nim namamahasiswa GUID
123456Fulan
Tabel PDDIKTI
UUID nim namamahasiswa
Update
GUIDd555e532-8dfa-490b-
a30b-72ab03274475
d555e532-8dfa-490b-
a30b-72ab03274475
Injek
123456 Fulan
ID Baru

I
N
J
E
K
Langkah 1: injek, ambil data tabel Institusi yang belum ada UUID/GUIDnya, kemudian dimasukkan ke tabel PDDIKTI
select `field1 (pk)`, field2, field3, ..., <fieldtambahanInstitusi> from A a where a.<fieldtahunakademikInstitusi> =
parameter["tahunakademik"] and isnull(guid) and <filterInstitusi>
InsertRecord(“P”, array(“fieldb”=>nilai[field2], “fieldc”=>nilai[field3], ...))
1 2 3 4 5 6
7
2 2
4
8
5
6
7
8
9
9 10 2 10 2
10 10
I
N
S
E
R
T
1
3
Tidak
berlaku
untuk
internalfilter

Langkah 2: update guid, UUID/GUID yang didapat dari PDDIKTI disimpan ke Institusi
update Aa set a.guid=nilai[`fielda (pk)`] where `field1 (pk)`=nilai[`field1 (pk)`]
1 3 4
2
4
1
42
3
I
N
J
E
K
I
N
S
E
R
T
-: SAMA DENGAN LANGKAH 2 PROSES SINKRON :-

Tabel PDDIKTI
UUID nim namamahasiswa
d555e532-8dfa-490b-
a30b-72ab03274475
Injek - Update

Proses memperbarui data dari tabel Institusi ke dalam tabel
PDDIKTI, kemudian memasukkan ulang UUID/GUID primary
key dari tabel PDDIKTI dalam tabel Institusi
Tabel Institusi
nim namamahasiswa GUID
123456Joh Doe
Update
GUID
d555e532-8dfa-490b-
a30b-72ab03274475
123456 John Doe
Injek
123456 Fulan
Berubah

I
N
J
E
K
Langkah 1: injek, ambil data tabel Institusi yang belum ada UUID/GUIDnya, kemudian dimasukkan ke tabel PDDIKTI
select `field1 (pk)`, <fieldwherePDDIKTI>, <fieldupdatePDDIKTI>, <fieldtambahanInstitusi> from A a where
a.<fieldtahunakademikInstitusi> = parameter["tahunakademik"] and isnull(guid) and <filterInstitusi>
UpdateRecord(“P”, array(“key”=>array(“fieldwherePDDIKTI[0]”=>nilai[field2], ...), “data”=>array(“fieldupdatePDDIKTI[0]”=>nilai[field2], ...))
1 2 3 4 5
6 7
5
8
6
7
8
9
10
10 2 11
11 11
U
P
D
A
T
E
9
1
4
2
3
3 11
Tidak
berlaku
untuk
internalfilter

Langkah 2: update guid, UUID/GUID yang didapat dari PDDIKTI disimpan ke Institusi
update Aa set a.guid=nilai[`fielda (pk)`] where `field1 (pk)`=nilai[`field1 (pk)`]
1 3 4
2
4
1
42
3
I
N
J
E
K
U
P
D
A
T
E
-: SAMA DENGAN LANGKAH 2 PROSES SINKRON :-

Internal Filter

Membuat query sendiri dengan klausa where
[internalfilter], tidak menggunakan mekanisme
mapping
select * from A a join B b on
b.kd=a.kd where [internalfilter]
a.field1=0
select * from A a join B b on
b.kd=a.kd where a.field1=0

Terima Kasih
Tags