Anda di halaman 1dari 14

RHAFLI RIZKI P.

(15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

MODUL 6_JOINING TABLES


02 November 2023

1. Pendahuluan
1.1 Tujuan Praktikum
1.1.1 Membuat database dengan nama “modul06” pada software PostgreSQL
1.1.2 Membuat tabel “Kemiskinan” pada database “modul06” pada software
PostgreSQL
1.1.3 Melakukan joining tables dan spatial join pada data vektor
1.2 Dasar Teori
1.2.1 Pengertian Database
Database adalah kumpulan informasi yang disimpan di dalam komputer
secara sistematik sehingga dapat diperiksa menggunakan suatu program
komputer untuk memperoleh informasi dari basis data tersebut. Database
adalah representasi kumpulan fakta yang saling berhubungan disimpan secara
bersama sedemikian rupa dan tanpa pengulangan (redudansi) yang tidak perlu,
untuk memenuhi berbagai kebutuhan. Database merupakan sekumpulan
informasi yang saling berkaitan pada suatu subjek tertentu pada tujuan tertentu
pula. Database adalah s [1]usunan record data operasional lengkap dari suatu
organisasi atau perusahaan, yang diorganisir dan disimpan secara terintegrasi
dengan menggunakan metode tertentu dalam komputer sehingga mampu
memenuhi informasi yang optimal yang dibutuhkan oleh para pengguna. [1]

Perkembangan penyimpanan data semakin besar setiap waktu sehingga


diperlukan bantuan yang lebih praktis dan cepat seperti DBMS (Database
Management System). Lalu Sistem Manajemen Basis Data atau Database
Management System (DBMS) itu sendiri mengacu pada solusi teknologi yang
digunakan untuk mengoptimalkan dan mengelola penyimpanan dan
pengambilan data dari basis data. DBMS menawarkan pendekatan sistematis
untuk mengelola database melalui antarmuka untuk pengguna serta beban
kerja yang mengakses database melalui aplikasi. Terdapat beberapa kelebihan
dalamm penggunaan DBMS yaitu sebagai berikut :
A. Integritas data yang baik

Kelas X Page
1
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

Integritas data berarti data konsisten dan akurat dalam database yang
penting karena ada banyak database di DBMS. Semua database ini berisi
data yang dapat dilihat oleh banyak pengguna. Oleh karena itu, penting
untuk memastikan bahwa data konsisten dan benar di semua database
untuk semua pengguna.
B. Keamanan data
Keamanan data adalah konsep penting dalam database. Hanya pengguna
yang berwenang harus diizinkan untuk mengakses database dan identitas
mereka harus diautentikasi menggunakan nama pengguna dan kata sandi.
Pengguna yang tidak sah tidak boleh diizinkan mengakses database dalam
keadaan apapun karena melanggar batasan integritas. DBMS menyediakan
platform yang lebih baik untuk privasi data sehingga membantu
perusahaan menawarkan keamanan data yang lebih baik.
C. Akses data lebih cepat
Sistem manajemen basis data membantu pengguna untuk menghasilkan
jawaban dan permintaan masuk cepat atas pertanyaan yang membuat
pengaksesan data menjadi akurat dan lebih cepat.
D. Dukungan pemulihan dan cadangan
DBMS secara otomatis menangani pemulihan dan pencadangan. Pengguna
tidak perlu melakukan backup secara berkala karena hal ini ditangani oleh
DBMS. Selain itu, juga mengembalikan database setelah kegagalan sistem
atau crash untuk mencegah kondisi sebelumnya. [2]
1.2.2 PostgreSQL
PostgreSQL adalah sebuah sistem basis data yang disebarluaskan secara
bebas menurut Perjanjian lisensi BSD. Peranti lunak ini merupakan salah satu
basis data yang paling banyak digunakan saat ini, selain MySQL dan Oracle.
PostgreSQL menyediakan fitur yang berguna untuk replikasi basis data.
Fiturfitur yang disediakan PostgreSQL antara lain DB Mirror, PGPool, Slony,
PGCluster ,dan lain-lain.

PostgreSQL memiliki sejumlah kelebihan dan kekurangan yang perlu


dipertimbangkan sebelum mengadopsinya. Salah satu kelebihan utama
PostgreSQL adalah fleksibilitasnya yang luar biasa. Dengan dukungan untuk

Kelas X Page
2
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

berbagai jenis data, termasuk teks, gambar, audio, dan JSON, PostgreSQL
cocok untuk beragam aplikasi. Selain itu, dukungan transaksi ACID yang kuat
menjadikannya pilihan yang tepat untuk aplikasi yang memerlukan integritas
data. Kelebihan lainnya adalah kinerjanya yang baik, dengan indeks yang kuat,
optimasi kueri, dan kemampuan untuk menangani beban tinggi. Selain itu,
sebagai perangkat lunak sumber terbuka, PostgreSQL dapat digunakan tanpa
biaya lisensi, dan komunitas pengembang yang besar terus berkontribusi untuk
memperbaiki dan memperbarui sistem. Kemampuan PostgreSQL untuk
mengatasi aplikasi yang berkembang juga membuatnya sangat skalabel.

Sebagai database relasional, fungsi utama PostgreSQL adalah tempat


untuk menyimpan dan mengelola data melalui perintah atau query SQL.
Dengan query tersebut, maka PostgreSQL bisa digunakan untuk:
- Membuat atau memanipulasi tabel dengan Data Definition Language
(DDL) menggunakan query seperti CREATE, DROP, ALTER.
- Memanipulasi isian data atau value dari tabel dengan Data Manipulation
Language (DML) menggunakan query semacam INSERT, UPDATE,
DELETE.
- Mengelola transaksi di database dengan Data Control Language (DCL)
menggunakan query seperti GRANT, REVOKE, COMMIT.
Tidak hanya itu, ada beberapa fungsi lain menggunakan query SQL lain yang
mengharuskan Anda untuk memasukkan tipe data, contohnya CREATE,
ADD, dan INSERT.

Gambar 1. Logo PostgreSQL


1.2.3 PostGIS

Kelas X Page
3
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

PostGIS adalah ekstensi geospasial open source untuk sistem


manajemen basis data (DBMS) PostgreSQL. Ini memungkinkan pengguna
PostgreSQL untuk menyimpan, mengelola, dan mengolah data geospasial,
seperti peta, titik koordinat geografis, garis, dan poligon. PostGIS
menambahkan jenis data geospasial baru ke PostgreSQL, yang
memungkinkan pengguna untuk menyimpan dan mengambil informasi
geografis dari database dengan mudah. Dengan PostGIS, pengguna dapat
melakukan berbagai operasi geospasial seperti analisis jarak, pencarian
spasial, manipulasi geometri, dan transformasi koordinat. Ini membuatnya
sangat berguna untuk aplikasi yang memerlukan komponen geografis, seperti
sistem informasi geografis (GIS), pemetaan, analisis lingkungan, dan banyak
lagi.

PostGIS adalah salah satu perangkat lunak open source yang paling
populer di dunia untuk pengelolaan data geospasial, dan karena terintegrasi
dengan PostgreSQL, memungkinkan pengembang untuk membangun aplikasi
basis data geografis yang kuat dan skalabel dengan biaya yang rendah.

Gambar 2. Logo PostGIS


1.2.4 Joining Tables
Joining tables adalah proses penggabungan dua atau lebih tabel dalam
basis data relasional. Dalam basis data relasional, data disimpan dalam
berbagai tabel yang saling terkait melalui kunci atau kolom yang memiliki
nilai yang sama. Joining tables memungkinkan Anda untuk menggabungkan
Kelas X Page
4
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

data dari tabel yang berbeda berdasarkan kunci ini untuk mendapatkan
informasi yang lebih lengkap atau terkait. [1]

Ada beberapa jenis join yang umum digunakan, termasuk:


1. INNER JOIN: Menggabungkan baris dari dua tabel yang
memiliki nilai yang cocok dalam kolom kunci. Baris yang tidak
memiliki kecocokan akan diabaikan.
2. LEFT JOIN (atau LEFT OUTER JOIN): Menggabungkan
semua baris dari tabel yang ada di sebelah kiri dengan baris
yang cocok di tabel di sebelah kanan. Jika tidak ada kecocokan
di tabel kanan, baris dari tabel kiri akan tetap ada dengan nilai
NULL di kolom yang sesuai.
3. RIGHT JOIN (atau RIGHT OUTER JOIN): Kebalikan dari
LEFT JOIN, menggabungkan semua baris dari tabel yang ada
di sebelah kanan dengan baris yang cocok di tabel di sebelah
kiri. Jika tidak ada kecocokan di tabel kiri, baris dari tabel
kanan akan tetap ada dengan nilai NULL di kolom yang sesuai.
4. FULL JOIN (atau FULL OUTER JOIN): Menggabungkan
semua baris dari kedua tabel, termasuk baris yang memiliki
kecocokan dan yang tidak memiliki kecocokan. Jika tidak ada
kecocokan, nilai NULL akan diisi di kolom yang sesuai.

Gambar 3. SQL Joins


Joining tables sangat penting dalam pemrosesan data di basis data relasional
karena memungkinkan Anda untuk menggabungkan data dari berbagai tabel
Kelas X Page
5
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

untuk menganalisis, melaporkan, atau mengambil informasi yang lebih


kompleks. Ini adalah salah satu dasar dari bahasa SQL (Structured Query
Language) yang digunakan untuk mengelola dan mengambil data dari basis
data relasional.
2. Pembahasan
2.1 Tahapan Pelaksanaan Praktikum

Gambar 4. Tahapan Pelaksanaan Praktikum


2.2 Hasil dan Analisis
2.2.1 Hasil
2.2.1.1 Pembuatan tabel kemiskinan.

Kelas X Page
6
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

Gambar 5. Syntax Input Field ke Dalam Tabel Kemiskinan

Gambar 6. Hasil Input Field Tabel Kemiskinan


2.2.1.2 Inner Join Tabel Kemiskinan dan Tabel Jawa region

Gambar 7. Syntax Inner Join Kemiskinan dan Jawaregion

Kelas X Page
7
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

Gambar 8. Hasil Inner Join Kemiskinan dan Jawaregion

2.2.1.3 Left Join Tabel Kemiskinan dan Tabel Jawa_Dissolve

Gambar 9. Syntax Left Join Tabel Kemiskinan dan Tabel Jawa_Dissolve

Gambar 10. Hasil Left Join Tabel Kemiskinan dan Tabel Jawa_Dissolve

2.2.1.4 Join Tabel Kemiskinan dan Jawaregion yang Hanya Menampilkan Kolom
Jml_Penduduk_Miskin, Garis_Kemiskinan, Propinsi, dan Klasifikasi

Kelas X Page
8
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

Gambar 11. Syntax Join Tabel Kemiskinan dan Jawaregion yang Hanya Menampilkan
Kolom Jml_Penduduk_Miskin, Garis_Kemiskinan, Propinsi, dan Klasifikas

Gambar 12. Hasil Join Tabel Kemiskinan dan Jawaregion yang Hanya Menampilkan Kolom
Jml_Penduduk_Miskin, Garis_Kemiskinan, Propinsi, dan Klasifikas

2.2.1.5 Spatial Join untuk Menampilkan Pola_Ruang di Desa Cibenda

Gambar 13. Syntax Spatial Join untuk Menampilkan Pola_Ruang di Desa Cibenda

Gambar 14. Hasil Spatial Join untuk Menampilkan Pola_Ruang di Desa Cibenda

2.2.2 Analisis

Kelas X Page
9
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

Pembuatan basis data ‘modul06’ pada PostgreSQL dilakukan dengan


menambahkan database. Setelah membuat database, dilakukan pembuatan
tabel. Penamaan tabel dan pengaturan kolom seperti primary key, tipe data,
dan lain-lain dilakukan pada menu Columns. Setelah membuat database,
dilakukan integrasi dengan PostGIS dan melakukan impor data vektor. Data
vektor diunduh pada modul dan mengganti SRID menjadi 32748 sebagai
sistem referensi yang digunakan. Setelah itu, pada Gambar 5, masukkan syntax
pada gambar untuk menginput field dari tabel ‘kemiskinan’ yang sudah dibuat.
Hasil dari syntax dapat dilihat pada Gambar 6.
Script yang digunakan adalah INSERT INTO untuk memasukkan nilai
field sesuai dengan kolom yang telah dibuat pada tabel. Selanjutnya, pada
Gambar 7, script yang digunakan adalah CREATE TABLE kemiskinan_jawa
AS (SELECT * FROM kemiskinan INNER JOIN jawaregion ON id_prov =
kode_prov); dengan penjelasan untuk membuat tabel baru yang bernama
‘kemiskinan_jawa’ dari tabel ‘kemiskinan’ yang menampilkan nilai yang
memenuhi syarat (inner join) dengan tabel jawaregion dengan atribut yang
cocok, yaitu id_prov dari ‘kemiskinan’ dan kode_prov dari ‘jawaregion’.
Hasilnya dapat dilihat pada Gambar 8. Pada Gambar 9, script yang digunakan
adalah CREATE TABLE table_leftjoin AS (SELECT * FROM kemiskinan
LEFT JOIN jawa_dissolve ON id_prov = kode_prov); dengan penjelasan
membuat tabel baru bernama ‘table_leftjoin’ menggunakan left join dari data
pada tabel kiri ‘kemiskinan’ dan data pada tabel kanan ‘jawa_dissolve’ yang
menampilkan nilai (tabel) gabungan seluruh data tabel kiri yang memiliki
atribut yang sama, yaitu id_prov dari ‘kemiskinan’ dan kode_prov dari
‘jawa_dissolve’. Hasilnya dapat dilihat pada Gambar 10. Gambar 11
menggunakan script CREATE TABLE join_2 AS (SELECT
kemiskinan.jumlah_penduduk_miskin, kemiskinan.garis_kemiskinan,
jawaregion.propinsi, jawaregion.klasifikas FROM kemiskinan JOIN
jawaregion ON id_prov = kode_prov); untuk membuat tabel baru Bernama
‘join_2’ dari hasil join antara tabel ‘kemiskinan’ dan ‘jawaregion’. Kolom
yang dipilih adalah jumlah_penduduk_miskin, garis_kemiskinan dari tabel
‘kemiskinan’ dan kolom propinsi dan klasifikas dari tabel ‘jawaregion’.
Kondisi join dari kedua tabel akan digabungkan jika nilai id_prov di tabel

Kelas X Page
10
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

‘kemiskinan’ sama dengan nilai kode_prov di tabel ‘jawaregion’. Selanjutnya


terdapat script SELECT batas_desa.gid, batas_desa.kecamatan,
batas_desa.desa, pola_ruang.pola FROM batas_desa join pola_ruang ON
ST_Intersects(batas_desa.geom, pola_ruang.geom) WHERE desa = 'DESA
CIBENDA' digunakan untuk menampilkan kondisi dari pola ruang desa
tertentu, yaitu Desa Cibenda. Kolom yang diambil adalah kolom gid,
kecamatan, dan desa dari tabel ‘batas_desa’ dengan kolom pola dari tabel
‘pola_ruang’. ST_Intersects digunakan untuk menentukan kondisi join, yaitu
kedua tabel akan digabungkan jika geometri dari kedua tabel berpotongan.
WHERE digunakan untuk menentukan nama desa yang ingin ditentukan pola
ruangnya.
Joining tables adalah operasi yang menggabungkan dua atau lebih tabel
berdasarkan kolom yang sama atau terkait [1]. Hasil dari join adalah set data
baru yang berisi semua kolom dari tabel yang digabungkan. Ada beberapa
jenis join dalam SQL, termasuk INNER JOIN, LEFT JOIN, RIGHT JOIN, dan
FULL JOIN. Spatial join adalah operasi yang menggabungkan dua dataset
berdasarkan predikat spasial. Predikat spasial biasanya digunakan sebagai
kondisi dalam klausa WHERE atau JOIN dalam SQL. Spatial join biasanya
digunakan dalam konteks GIS (Geographic Information System), di mana data
memiliki atribut spasial seperti titik, garis, atau poligon [4]. Perbedaan utama
antara joining tables dan spatial join adalah joining tables menggabungkan
data berdasarkan nilai kolom yang sama atau terkait, sedangkan spatial join
menggabungkan data berdasarkan hubungan spasial antara objek [5]
Berdasarkan jenis-jenis joining tables yang digunakan, semuanya
memiliki kekurangan dan kelebihan masing-masing. Kondisi ini ditentukan
sesuai dengan kebutuhan dalam analisis basis data. Jika ingin mengambil baris
yang memiliki nilai cocok di kedua tabel, maka inner join cocok untuk
digunakan. Eksekusi lebih cepet sehingga lebih efisien karena indeksnya
spesifik. Akan tetapi, karena ada banyak join lainnya, dapat menyebabkan
kebingungan tentang join mana yang akan digunakan untuk menghasilkan set
yang diinginkan. Jika ingin mengambil salah satu sisi pada tabel (kiri atau
kanan), right and left join tepat untuk digunakan. Keduanya memiliki tipe yang
sama tergantung sisi tabel. Eksekusi dapat lebih efisien jika ditulis ulang

Kelas X Page
11
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

sebagai join dan tidak dapat memodifikasi tabel yang sama dalam pernyataan
SQL yang sama. Keduanya dapat lebih lambat untuk dieksekusi jika salah satu
sisi tabel besar dan jika tidak diindeks dengan benar, maka kinerja akan buruk.
Full join mengembalikan semua baris dari kedua tabel baik yang memiliki
baris cocok atau tidak. Jika tidak cocok dari tabel kiri, maka tabel kanan akan
mengisi nilai null. Full join dapat lambat untuk dieksekusi jika kedua tabel
besar. Join terbaik dapat ditentukan sesuai dengan kebutuhan masing-masing.
Terdapat kasus lain di luar dari tabel dalam modul ini. Misalkan terdapat
dua tabel, yaitu Tabel A dan Tabel B. Tabel A berisi id_nama dan nama serta
Tabel B berisi id_kota dan kota. Berikut adalah tabel-tabelnya.

Tabel_A Tabel_B
id_nama nama id_kota kota
1 Rhafli 1 Dpk
2 Rizki 2 Bdg
3 Pratama 4 Mdn
Kemudian, pada SQL, dapat digunakan script SELECT Tabel_A.id_nama,
Tabel_A.nama, Tabel_B.kota FROM Tabel_A LEFT JOIN Tabel_B ON
Tabel_A .id_nama = Tabel_B.id_kota. Script di atas merupakan SQL untuk
left join. Hasil dari script tersebut akan menjadi seperti berikut.
id_nama nama kota
1 Rhafli Dpk
2 Rizki Bdg
3 Pratama NULL
Pada inner join, script yang digunakan adalah SELECT
Tabel_A.id_nama, Tabel_A.nama, Tabel_B.kota FROM Tabel_A INNER
JOIN Tabel_B ON Tabel_A .id_nama = Tabel_B.id_kota. Hasil dari script
tersebut adalah sebagai berikut.
id_nama nama kota
1 Rhafli Dpk
2 Rizki Bdg
Pada left join, semua baris dari tabel A akan ditampilkan dan jika ada
nilai yang tidak cocok dalam tabel B seperti nilai kota pada id_nama 3, maka
hasilnya akan tetap ditampilkan dan menjadi NULL. Dalam inner join, hanya
baris yang memiliki nilai yang cocok yang akan ditampilkan sehingga dalam

Kelas X Page
12
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

kasus ini ‘Nainggolan’ tidak ditampilkan karena tidak ada kota yang dicatat
untuk ‘Nainggolan’ di tabel B. Left join akan tetap menampilkan nilai dari
tabel kiri (pertama) dan nilai yang tidak cocok akan menjadi NULL sedangkan
inner join tidak akan menampilkan tabel yang tidak cocok sehingga baris
tersebut akan dihilangkan jika ditampilkan.

3. Penutup
3.1 Kesimpulan
3.1.1 Pembuatan database dengan nama “modul06” pada software PostgreSQL
telah dilakukan
3.1.2 Pembuatan tabel “Kemiskinan” pada database “modul06” pada software
PostgreSQL telah dilakukan
3.1.3 Joining tables dan spatial join pada data vector telah dilakukan
3.2 Saran dan Kritik Praktikum
Terima kasih kepada seluruh kakak-kakak asisten praktikum Basis Data Spasial 2023.

4. Daftar Referensi

[1] "A. Vennila, “SQL JOIN and different types of JOIN's,” Stack Overflow, 23 Juli 2013. [Online].
Available: https://stackoverflow.com/questions/17946221/sql-join-anddifferent-types-of-joins.
[Diakses 4 November 2023]".

[2] E. Helmud, OPTIMASI BASIS DATA ORACLE MENGGUNAKAN COMPLEX VIEW, 2021.

[3] "PostgreSQL Joins,” POSTGRESQL TUTORIAL, 2021. [Online]. Available:


https://www.postgresqltutorial.com/postgresql-tutorial/postgresql-joins/. [Diakses 4 November
2023".

[4] "M. K, “SQL Spatial Join,” Stack Overflow, 12 Oktober 2011. [Online]. Available:
https://stackoverflow.com/questions/7655408/sql-spatial-join. [Diakses 4 November 2023]".

[5] "“Section Ten: Joins (Table and Spatial) and Relates,” Learn GIS, 2019. [Online]. Available:
https://vector.geospatial.science/textbook/chapter-five/joins-and-relates. [Diakses 4 November
2023]".

[6] S. Hoberman, ""Database Design: A One-to-One Relationship Example."," Journal of Computer


Science & Technology, 11(3), 312-325, 2011.

Kelas X Page
13
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

[7] G. C. C. S. J. Xin Cao, "(Efficient Processing of Top-k Queries in Uncertain Databases," 2007.

Kelas X Page
14

Anda mungkin juga menyukai