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 :

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

A. Integritas data yang baik


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

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

nilai yang sama. Joining tables memungkinkan Anda untuk menggabungkan


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

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

Joining tables sangat penting dalam pemrosesan data di basis data relasional
karena memungkinkan Anda untuk menggabungkan data dari berbagai tabel
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

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

2.2.1.1 Pembuatan tabel kemiskinan.

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

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

yang sama tergantung sisi tabel. Eksekusi dapat lebih efisien jika ditulis
ulang 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_nam
nama
a 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
Kelas X Page
12
RHAFLI RIZKI P. (15121041) GD3104 BASIS DATA SPASIAL MODUL KE-(6)

hasilnya akan tetap ditampilkan dan menjadi NULL. Dalam inner join, hanya
baris yang memiliki nilai yang cocok yang akan ditampilkan sehingga dalam
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]".

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

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


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

[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