Anda di halaman 1dari 18

Nama : I Putu Kerta Yasa

NIM : 1705551080

Kelompok : 16

MODUL I
“Dasar-Dasar MYSQL dan Normalisasi”

Tujuan
1. Mengetahui dan memahami proses pembuatan program basis data serta
tahapan-tahapan normalisasi.
2. Memahami pemilihan tipe data yang tepat dan efisien dalam pembuatan
basis data di MySQL.
3. Memahami komponen-komponen yang ada di dalam konsep basis data
seperti key dan relationship.

Tugas Pendahuluan
1. Sebutkan dan jelaskan dengan rinci tahapan-tahapan yang semestinya
dilakukan dalam pembuatan suatu program basis data.
2. Sebutkan dan jelaskan dengan rinci tahapan-tahapan yang semestinya
dilakukan dalam proses normalisasi, berikan contoh untuk
menggambarkan proses yang terjadi di setiap tahapan normalisasi.
3. Sebutkan macam-macam tipe data yang ada dalam MySQL serta
kebutuhan memory dan penggunaannya dengan jelas.
4. Sebutkan kegunaan key dalam suatu tabel. Lalu sebutkan dan jelaskan
macam - macam key yang ada dalam konsep basis data.
5. Sebutkan dan jelaskan macam-macam relationship (keterhubungan) yang
ada dalam konsep basis data.
6. Sebutkan dan jelaskan masing-masing relationship (keterhubungan) yang
terdapat pada basis data.
Jawaban
1. Tahapan dalam Pembuatan Basis Data
Tahapan-tahapan yang semestinya dilakukan dalam pembuatan suatu
program basis data adalah sebagai berikut:
1.1 Mengumpulkan data dan menganalisis
Proses identifikasi dan analisis kebutuhan-kebutuhan data disebut
mengumpulkan data dan analisis. Untuk mentukan kebutuhan-kebutuhan suatu
sistem basis data, pertama harus mengenal bagian-bagian lain dan sistem
informasi yang akan berinteraksi dengan sistem basis data, termasuk para pemakai
yang ada dan para pemakai yang baru serta aplikasi-aplikasinya. Kebutuhan-
kebutuhan dan para pemakai dan aplikasi-aplikasi inilah yang kemudian
dikumpulkan dan dianalisis.
Aktifitas-aktifitas mengumpulkan data dan analisis diantaranya adalah
menentukan kelompok pemakai dan bidang-bidang aplikasinya, meninjau
dokumentasi yang ada, analisis lingkungan operasi dan pemprosesan data, dan
daftar pertanyaan dan wawancara.

1.2 Merancang basis data secara konseptual


Tujuan dalam fase ini adalah menghasilkan conseptual schema untuk basis
data yang tergantung pada sebuah DBMS yang spesifik. Sering menggunakan
high-level data model, seperti ER model, selama fase ini. Dalam konseptual
schema, kita harus merinci aplikasi-aplikasi basis data yang diketahui dan
transaksi-transaksi yang mungkin. Fase merancang basis data secara konseptual
mempunyai dua aktifitas pararel, yaitu;
1.2.1 Merancang Skema Konseptual
Menguji kebutuhan-kebutuhan data dan suatu basis data yang
menggunakan hasil dan fase satu dan menghasilakan sebuah conceptual database
schema di DBMS-idependent model data tingkat tinggi seperti EER (Enhanced
Entity Relationship) model. Skema ini dapat dihasilkan dengan menggabungkan
bermacam-macam kebutuhan user dan secara langsung membuat skema basis data
atau merancang skema-skema yang terpisah dan kebutuhan tiap-tiap user.
Gabungankan skema-skema tersebut. Model data yang digunakan pada
perancangan skema konseptual adalah DBMS independent dan langkah
selanjutnya adalah memilih sebuah DBMS untuk melaksanakan rancangan
tersebut.

1.2.2 Merancang Transaksi


Menguji aplikasi-aplikasi basis data yang kebutuhan-kebutuhannya telah
dianalisis di fase satu dan menghasilakan perincian transaksi-transaksi ini.
Kegunanan fase ini yang diproses secara pararel bersama fase merancang skema
konseptual adalah merancang karakteristik dari transaksi-transaksi basis data yang
telah diketauhui dalam suatu DBMS independent. Transaksi-transaksi ini akan
digunakan untuk memproses dan memanipulasi basis data suatu saat di tempat
basis data tersebut dilaksanakan.

1.3 Memilih DBMS


Pemilihan DBMS ditentukan oleh beberapa faktor, diantaranya: faktor
teknik, ekonomi, dan politik organisasi. Contoh faktor teknik: keberadaan DBMS
dalam menjalankan tugasnya, seperti jenis-jenis DBMS (Relational, Network,
Hierarchial, dan lain-lain), struktur penyimpanan dan jalur akses yang
mendukung DBMS, pemakai, dan lain-lain. Faktor-faktor ekonomi dan organisasi
yang mempengaruhi satu sama lain dalam pemilihan DBMS.
1.3.1 Struktur data
Jika data yang disimpan dalam basis data mengikuti struktur hierarki,
maka suatu jenis hierarki dan DBMS harus dipikirkan.

1.3.2 Personal yang telah terbiasa dengan suatu sistem


Jika staf programmer dalam suatu organisasi sudah terbiasa dengan suatu
DBMS, maka hal ini dapat mengurangi biaya latihan dan waktu belajar.

1.3.3 Tersedianya layanan penjual


Keberadaan fasilitas pelayanan penjual sangat dibutuhkan untuk
membantu memecahkan beberapa masalah sistem.

1.4 Merancang basis data secara logika (pemetaan model)


Phase selanjutnya adalah merancang basis data dengan membuat sebuah
skema konseptual dan skema eksternal di model data dan DBMS yang terpilih.
Phase ini dilakukan oleh pemetaan skema konseptual dan skema eksternal yang
dihasilkan di fase dua. Pada fase ini, skema konseptual ditransformasikan dan
model data tingkat tinggi yang digunakan di fase dua ke dalam model data dan
DBMS yang dipilih di fase tiga. Pemetaan dapat diproses dalam dua tingkatan,
yaitu:
1.4.1 Pemetaan System Independent
Pemetaan ke dalam model data DBMS dengan tidak mempertimbangkan
karakteristik atau hal-hal yang khusus yang berbeda dengan implementasi DBMS
dari model data tersebut.

1.4.2 Menyusuaikan skema ke DBMS yang spesifik


Mengatur skema yang dihasilkan di langkah satu untuk disesuaikan
dengan implementasi khusus yang akan datang dan suatu model data yang
digunakan di DBMS yang dipilih.

1.5 Merancang basis data secara fisik


Merancang basis data secara fisik merupakan proses memilih struktur-
struktur penyimpanan dan jalur-jalur kses ke file-file basis data untuk mencapai
performa terbaik di berbagai macam aplikasi. Selama fase ini, dirancang
spesifikasi-spesifikasi untuk basis data yang disimpan yang berhubungan dengan
struktur-struktur penyimpanan fisik, penempatan record, dan jalur akses yang
berhubungan dengan internal schema. Berikut ini beberapa petunjuk saat memilih
perancangan basis data secara fisik:
1.5.1 Respon Time
Waktu yang telah berlalu dan suatu transaksi basis data yang diajukan
untuk menjalankan suatu tanggapan. Pengaruh utama di response time adalah
pada pengawasan DBMS, yaitu: waktu akses basis data untuk data item yang
ditujuk oleh sutu transaksi. Respon time juga dipengaruhi oleh beberapa faktor
yang tidak berada di bawah pengawasan DBMS, seperti menjadwal sistem operasi
atau penundaan komunikasi.
1.5.2 Space Utility
Yaitu jumlah ruang penyimpanan yang digunakan oleh file-file basis data
dan struktur-struktur jalur akses.

1.5.3 Transaction Throughput


Yaitu rata-rata jumlah transaksi yang dapat diproses per menit oleh sistem
basis data dan merupakan parameter kritis dan sistem transaksi. Misalnya,
digunakan pada reservasi penerbangan, bank, dan lain-lain. Hasil dan fase ini
adalah penentuan awal dan struktur penyimpanan dan jalur akses untuk file-file.

1.6 Implementasi sistem basis data


Setelah merancang secara logika dan secara fisik lengkap, kita dapat
melaksanakan sistem basis data, perintah-perintah dalam DDL dan SDL (Stroage
Definition Language) dan DBMS yang dipilih, dihimpun, dan digunakan untuk
membuat skema basis data dan file-file basis data yang kosong. Sekarang basis
data tersebut dimuat atau disatukan dengan datanya. Jika data harus diubah, maka
diperlukan perubahan-perubahan yang mungkin untuk format ulang datanya yang
kemudian dimasukan ke basis data yang baru. Transaksi-transaksi basis dat
sekarang harus dilaksanakan oleh para programmer aplikasi. Spesifikasi secara
konseptual diuji dan dihubungkan dengan kode program dengan perintah-perintah
dan embedded DML yang telah ditulis dan diuji.

2. Tahapan Normalisasi
Tahapan Normalisasi dimulai dari tahap ringan (1NF) hingga paling ketat
(5NF). Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup
memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Urutannya : 1NF,
2NF, 3NF, BCNF, 4NF, 5NF. Tahapannya dapat diurutkan yaitu ; Bentuk tidak
Normal, Bentuk Normal Pertama (1NF): menghilangkan perulangan grup, Bentuk
Normal Kedua (2NF): menghilangkan ketergantungan parsial, Bentuk Normal
Ketiga (3NF): menghilangkan ketergantungan transitif, Bentuk Normal Boyce-
Code Form (BCNF): menghilangkan anomali-anomali hasil dari ketergantungan
fungsional, Bentuk Normal Keempat (4NF): menghilangkan ketergantungan
multivalue, Bentuk Normal Kelima (5NF): menghilangkan anomali-anomali yang
tersisa
2.1 Bentuk Tidak Normal (Unnormalized Form)
Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada
keharusan mengikuti suatu format tertentu. Dapat saja data tidak lengkap atau
terduplikasi. Data dikumpulkan apa adanya sesuai dengan saat mengimput.
Tabel 2.1 Bentuk Tidak Normal
No_siswa nama Pa Kelas 1 Kelas 2 Kelas 3

22890100 Shandy Linda 1234 1543 1543


22890101 Susi Riska 1234 1775
Tabel 2.1 menunjukan bahwa siswa yang punya nomor siswa, nama, dan
Pa mengikuti tiga mata pelajaran/kelas. Disini ada perulangan kelas tiga kali, ini
bukan bentuk 1 NF.

2.2 Bentuk Normal Pertama


Suatu relasi dikatakan sudah memenuhi Bentuk Normal Kesatu bila setiap
data bersifat atomik yaitu setiap irisan baris dan kolom hanya mempunyai satu
nilai data. Adapun ciri-ciri bentuk normal ke satu adalah setiap data dibentuk
dalam flat file, data dibentuk per satu record nilai dan field berupa “atomic value”,
tidak ada set atribute yang berulang atau bernilai ganda, serta tiap field hanya satu
pengertian.
Tabel 2.2 Bentuk Normal Pertama

No_siswa Nama Pa Kode_kelas

22890100 Shandy Linda 1234


22890100 Shandy Linda 1543
22890101 Susi Riska 1234
22890101 Susi Riska 1775
22890101 Susi Riska 1543
Tabel 2.2 merupakan contoh dari normalisasi normal pertama, dimana
setiap irisan baris dan kolom mempunyai satu nilai data saja. Tabel 2.2 juga
adalah tabel uraian dari tabel bentuk tidak normal pada tabel 2.1.

2.3 Bentuk Normal Kedua


Bentuk normal kedua mempunyai syarat yaitu bentuk data telah memenuhi
kriteria bentuk normal kesatu. Atribute bukan kunci haruslah bergantung secara
fungsi pada primary key. Jadi, untuk membentuk normal kedua haruslah sudah
ditentukan kunci-kunci field. Kunci field haruslah unik dan dapat mewakili
atribute lain yang menjadi anggotanya. Misal : Dari contoh relasi Siswa pada 1
NF terlihat bahwa primary key adalah nomor siswa. Nama siswa dan Pa
bergantung fungsi pada no_siswa, tetapi kode_kelas bukanlah fungsi dan siswa,
maka file siswa dipecah menjadi dua relasi ;
Tabel 2.3 Bentuk normal kedua relasi siswa
No_siswa Nama Pa
22890100 Shandy Linda
22890101 Susi Riska
Tabel 2.3 merupakan tabel contoh dari bentuk kedua relasi siswa dimana
setiap siswa memiliki pa masing-masing. Misalnya No_siswa adalah 22890100
dengan nama Shandy maka pembimbing akademiknya (Pa) adalah Linda.
Tabel 2.4 Bentuk normal kedua relasi ambil_kelas
No_siswa Kode_kelas
22890100 1234
22890100 1543
22890101 1234
22890101 1775
22890101 1543
Tabel 2.4 menunjukan bahwa bentuk normal kedua dimana terjadi relasi
antara No_siswa dengan Kode_kelas. Setiap No_siswa memiliki Kode_kelas
masing-masing.

2.4 Bentuk Normal Ketiga


Untuk menjadi bentuk normal ketiga maka relasi haruslah dalam bentuk
normal kedua dan semua atribute bukan primer tidak punya hubungan yang
transitif. Dengan kata lain, setiap atribute bukan kunci haruslah bergantung hanya
pada primary key dan pada primary key secara menyeluruh.
Contoh pada bentuk normal kedua di atas termasuk juga bentuk normal
ketiga karena seluruh atribute yang ada bergantung penuh pada kunci primernya.

2.5 Boyce-Codd Normal Form (BCNF)


BCNF mempunyai paksaan lebih kuat dan bentuk normal ketiga. Untuk
menjadi BCNF, relasi harus dalam bentuk normal kesatu dan setiap atribute harus
bergantung fungsi pada atribute superkey. Pada contoh dibawah ini terdapat relasi
seminar dengan ketentuan sebagai berikut : Kunci primer adalah no_siswa +
seminar, Siswa boleh mengambil satu atau dua seminar, Setiap siswa dibimbing
oleh salah satu di antara dua instruktur seminar tersebut, setiap instruktur boleh
hanya mengambil satu seminar saja.
Pada contoh ini no_siswa dan seminar menunjuk seorang instruktur :
Tabel 2.5 Boyce-codd normal form relasi seminar
No_siswa Seminar Instruktur
22890100 2281 Si doel
22890101 2281 Pak tile
22890102 2291 Mandra
22890101 2291 Basuki
22890109 2291 Basuki
Tabel 2.5 mempresentasikan bentuk relasi seminar yang merupakan bentuk
normal ketiga, tetapi tidak BCNF karena nomor seminar masih bergantung fungsi
pada instruktur. Jika setiap instruktur dapat mengajar hanya pada satu seminar,
maka seminar bergantung fungsi pada satu atribute bukan superkey seperti
disyaratkan oleh BCNF. Maka relasi seminar haruslah dipecah menjadi dua yaitu :

Tabel 2.6 Boyce-codd normal form relasi pelajar

Instruktur Seminar
Si doel 2281
Pak tile 2281
Mandra 2291
Basuki 2291

No_siswa Instruktur
22890100 Si doel
22890101 Pak tile
22890102 Mandra
22890101 Basuki
22890109 Basuki
Tabel 2.6 adalah tabel Boyce-codd normal form relasi pelajar yang
merupakan uraian dari tabel 2.5 Boyce-codd normal form relasi seminar.
2.6 Bentuk Normal Keempat
Relasi R adalah bentuk 4 NF jika dan hanya jika relasi tersebut juga
termasuk BCNF dan semua ketergantungan multivalue adalah juga
ketergantungan fungsional.

2.7 Bentuk Normal Kelima


Disebut juga BJNF (Projection Join Normal Form) dan 4 NF dilakukan
dengan menghilangkan ketergantungan join yang bukan merupakan kunci
kandidat.

3. Tipe Data dalam MySQL


Dalam dunia pemrograman, tipe data merupakan sebuah klasifikasi untuk
menentukan satu dari beberapa tipe data yang tersedia, seperti integer, string, atau
boolean yang menjelaskan value yang memungkinkan untuk variabel dan operasi
yang memungkinkan untuk dijalankan terhadap value dari sebuah variabel. Secara
umum, tipe data pada database engine dapat dibedakan menjadi numerik, date
time, string, dan karakter. Berikut merupakan penjelasan dari beberapa tipe data
dalam MySQL.
3.1 Tipe Data Numeric
Tipe Data Numeric pada database MySQL terbagi atas beberapa macam
tipe data, yaitu:
3.1.1 INT
Digunakan untuk menyimpan data yang berupa bilangan bulat positif dan
negatif dengan jangkauan antara -2.147.483.648 s/d 2.147.483.647. Tipe data ini
mempunyai ukuruan 4 byte (32 bit).

3.1.2 TINYINT
Digunakan untuk menyimpan data berupa bilangan bulat positif dan
negatif dengan jangkauan -128 s/d 127. Tipe data ini mempunyai ukuran 1 byte (8
bit).

3.1.3 SMALLINT
Digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan untuk bilangan bertanda -32768 sampai dengan 32767 dan untuk yang
tidak bertanda (jangkauan unsigned) 0 sampai dengan 65535. Tipe data ini
mempunyai ukuran 2 byte.

3.1.4 MEDIUMINT
Digunakan untuk menyimpan data bilangan bulat positif dan negatif.
Jangkauan untuk bilangan bertanda -8388608 sampai dengan 8388607 dan untuk
yang tidak bertanda (jangkauan unsigned) 0 sampai dengan 16777215. Tipe data
ini mempunyai ukuran 3 byte.

3.1.5 BIGINT
Digunakan untuk menyimpan data bilangan bulat positif dan negatif. Tipe
data ini mempunyai ukuran 8 byte.

3.1.6 FLOAT
Berfungsi menyimpan data bilangan pecahan positif dan negatif presisi
tunggal. Tipe data ini mempunyai ukuran 4 byte.

3.1.7 DOUBLE
Berfungsi untuk menyimpan data bilangan pecahan positif dan negatif
presisi ganda. Tipe data ini mempunyai ukuran 8 byte.

3.1.8 REAL
Berfungsi untuk menyimpan data bilangan pecahan positif dan negatif
presisi ganda. Tipe data ini mempunyai ukuran 8 byte.

3.1.9 DECIMAL
Berfungsi untuk menyimpan data bilangan positif dan negatif. Tipe data
ini mempunyai ukuran 8 byte.

3.1.10 NUMERIC
Berfungsi untuk menyimpan data bilangan positif dan negatif. Tipe data
ini mempunyai ukuran 8 byte.
3.2 Tipe Data Date dan Time
Tipe Data Date dan Time pada database MySQL terbagi atas beberapa
macam tipe data, yaitu:
3.2.1 DATE
Berfungsi menyimpan data tanggal. Tipe data ini mempunyai ukuran 3
byte.

3.2.2 TIME
Berfungsi untuk menyimpan data waktu. Tipe data ini mempunyai ukuran
3 byte.

3.2.3 DATETIME
Berfungsi untuk menyimpan data tanggal dan waktu. Tipe data ini
mempunyai ukuran 8 byte. Dengan jangkauan ‘1000-01-01 00:00:00’ s/d ‘9999-
12-31 23:59:59’

3.2.4 YEAR
Berfungsi untuk menyimpan data tahun dari tanggal. Tipe data ini
mempunyai ukuran 1 byte.

3.3 Tipe Data Karakter


Tipe Data untuk Karakter pada database MySQL terbagi atas beberapa
macam tipe data, yaitu:
3.3.1 CHAR
Data string dengan panjang yang tetap. CHAR(1) cukup ditulis dengan
CHAR. 1<=M<=255, Jika ada sisa, maka sisa tersebut diisi dengan spasi
(misalnya nilai M adalah 10, tapi data yang disimpan hanya memiliki 7 karakter,
maka 3 karakter sisanya diisi dengan spasi). Spasi ini akan dihilangkan apabila
data dipanggil. Nilai dari CHAR akan disortir dan diperbandingkan secara case-
insensitive menurut default character set yang tersedia, kecuali bila atribut
BINARY disertakan. Tipe data ini mempunyai ukuran M byte (menurut banyak
karakter yang disimpan).

3.3.2 VARCHAR
Ukuran L+1 byte dengan L kurang dari sama dengan M dan
1<=M<=255. Data string dengan panjang bervariasi tergantung datanya. Jika nilai
M adalah 10 sedangkan data yang disimpan hanya terdiri dari 5 karakter, maka
lebar data tersebut hanya 5 karakter saja, tidak ada tambahan spasi.

3.3.3 ENUM
Ukuran satu atau dua byte tergantung nilai enumerasinya maks 65535
nilai. Bentuk penulisannya yaitu : ENUM (“nilai1”,”nilai2”,...).

3.3.4 SET
Ukuran 1,2,3,4 atau 8 byte tergantung jumlah anggota himpunan maks 64
anggota. Dengan bentuk penulisannya yaitu : SET (“nilai1”,”nilai2”,...).

4. Macam-Macam Key
Key adalah satu gabungan dari beberapa atribut yang dapat membedakan
semua basis data (row) dalam tabel secara unik. Key di dalam database berfungsi
sebagai suatu cara untuk mengidentifikasi dan menghubungkan satu tabel data
dengan tabel yang lain.
4.1 Kunci Calon (Kandidat key)
Kunci calon adalah salah satu rangkaian yang mempunyai nilai unik untuk
membedakan atau mengidentifikasi nilai-nilai kombinasi yang unik diantara
semua kejadian yang spesifik dari entetitas. Kunci calon ini tidak boleh berisi
atribut dari tabel yang lain. Kombinasi dari atribut yang dapat digunakan untuk
mengidentifikasi secara unik rekor database tanpa data apapun yang asing. Setiap
tabel dapat memiliki satu atau lebih kunci calon.

4.2 Kunci Utama (Primary key)


Kunci utama adalah atribut yang merupakan kunci calon yang telah dipilih
untuk mengidentifikasi setiap record secara unik. Kunci utama harus merupakan
atribut yang benar-benar unik dan tidak boleh ada nilai NULL. Kunci
utama adalah suatu nilai dalam basis data yang digunakan untuk mengidentifikasi
suatu baris dalam table. Salah satu dari kunci calon dapat dipilih menjadi kunci
utama dengan tiga kriteria yaitu kunci tersebut lebih natural untuk dijadikan acuan
yaitu kunci tersebut lebih sederhana dan kunci tersebut cukup unik.

4.3 Kunci Alternatif (Alternate Key)


Kunci Alternatif adalah kunci alternatif yang tidak terpilih. Misal : dalam
suatu entitas terdapat dua atribut yang bisa dijadikan sebagai kunci. Sementara
yang boleh dijadikan kunci hanya satu, maka kita harus memilih salah satu.
Atribut yang dipilih, disebut kunci utama, sedangkan atribut yang tidak dipilih
disebut dengan kunci alternatif.

4.4 Kunci Tamu (Foreign Key)


Jika sebuah kunci utama terhubungan ke tebel lain, maka keberadaan
kunci utama pada tersbut di sebut sebagai kunci tamu. Kunci tamu adalah Sebuah
kumpulan atribut dalam satu relasi yang digunakan untuk me“refer” (menunjuk)
ke suatu baris (tuple) pada relasi yang lain (harus berkorespondensi dengan kunci
utama pada relasi yang kedua), seperti: ‘logical pointer’.

4.5 Kunci Komposit (Composite Key)


Dalam desain basis data, kunci komposit adalah kunci yang terdiri dari dua
atau lebih atribut yang secara unik mengidentifikasi suatu merupakan kunci yang
sederhana dalam haknya sendiri. Hal ini sering bingung dengan kunci gabungan,
meskipun ini merupakan kunci yang terdiri dari dua atau lebih atribut yang secara
unik mengidentifikasi suatu kejadian, setidaknya satu atribut yang membentuk
kunci komposit bukanlah kunci sederhana.

4.6 Kunci Sekunder (Secondary Key)


Kunci sekunder adalah sebuah atribut atau kombinasi yang digunakan
hanya untuk tujuan pengambilan data.

5. Macam-Macam Relationship
Relationship adalah hubungan antara tabel yang mempresentasikan
hubungan antar objek di dunia nyata. Relasi merupakan hubungan yang terjadi
pada suatu tabel dengan lainnya yang mempresentasikan hubungan antar objek di
dunia nyata dan berfungsi untuk mengatur mengatur operasi suatu database.
Hubungan yang dapat dibentuk dapat mencakup tiga macam hubungan, yaitu
sebagai berikut:
5.1 One-To-One (1-1)
Mempunyai pengertian "Setiap baris data pada tabel pertama dihubungkan
hanya ke satu baris data pada tabel ke dua". Contohnya : relasi antara tabel
mahasiswa dan tabel orang tua. Satu baris mahasiswa hanya berhubungan dengan
satu baris orang tua begitu juga sebaliknya.

Gambar 1.1 Contoh Relasi one-to-one


Gambar 1.1 merupakan contoh relasi one-to-one dimana setiap satu entity
saling berhubungan satu entity yang lainnya.

5.2 One-To-Many (1-N)


Mempunyai pengertian "Setiap baris data dari tabel pertama dapat
dihubungkan ke satu baris atau lebih data pada tabel ke dua". Contohnya : relasi
perwalian antara tabel dosen dan tabel mahasiswa. Satu baris dosen atau satu
dosen bisa berhubungan dengan satu baris atau lebih mahasiswa.

Gambar 1.2 Contoh Relasi one-to-many


Gambar 1.2 menunjukan contoh relasi one-to-many yang merupakan
hubungan satu entity dengan banyak entity atau banyak entity dengan satu entity.

5.3 Many-To-Many (N-M)


Mempunyai pengertian "Satu baris atau lebih data pada tabel pertama bisa
dihubugkan ke satu atau lebih baris data pada tabel ke dua". Artinya ada banyak baris di
tabel satu dan tabel dua yang saling berhubungan satu sama lain. Contohnya : relasi
antar tabel mahasiswa dan tabel mata kuliah. Satu baris mahasiswa bisa berhubungan
dengan banyak baris mata kuliah begitu juga sebaliknya.

Gambar 1.3 Contoh Relasi many-to-many


Gambar 1.3 adalah contoh dari relasi many-to-many dimana terjadi hubungan
antara banyak entity dengan banyak entity.

6. Relationship Pada PDM Modul 1.


Relasi merupakan hubungan antara tabel yang merepresentasikan
hubungan antar objek di dunia nyata dan berfungsi untuk mengatur operasi suatu
basis data. Relasi yang terdapat pada PDM Modul 1 yang merupakan PDM dari
sosial media dapat dijabarkan sebagai berikut.
6.1 Relasi One-to-One
Relasi yang terjadi antara tb_user dengan tb_profil_user adalah relasi
one-to-one yang menunjukan bahwa setiap record pada tb_user memiliki
hubungan dengan satu record pada tb_profil_user seperti yang terlihat pada
Gambar 1.4.
Gambar 1.4 Relasi tb_user dengan tb_profil_user
Gambar 1.4 ini merepresentasikan relasi tb_user dengan tb_profil_user
dimana setiap satu user pasti akan memiliki satu profil pada tb_user_profil
yang merepresentasikan relasi one-to-one.

6.2 Relasi One-to-Many


Relasi one-to-many pada PDM Modul 1 terdapat pada relasi tb_profil_user
dengan relasinya dengan beberapa tabel, dan membentuk relasi one-to-many ke
setiap tabel yang berelasi dengan tb_profil_user, seperti terlihat pada Gambar 1.5.
Gambar 1.5 Relasi pada tb_profil_user
Gambar 1.5 terjadi 6 relasi yang menghubungkan antara tb_profil_user
dengan tb_member_grup, tb_komen_post, tb_post_user, tb_repost,

tb_daftar_teman, dan tb_like_post yang memiliki relasi one-to-many. Ini


menunjukan bahwa setiap satu record pada tb_profil_user dapat memiliki
relasi yang lebih dari satu record pada tabel yang berelasi dengan
tb_profil_user.

6.3 Relasi Many-to-Many


Relasi yang terjadi antara tb_profil_user dengan tb_grup adalah relasi
many-to-many yang menunjukan bahwa setiap satu atau lebih record pada
tb_profil_user memiliki hubungan dengan satu atau lebih record pada tb_grup
yang terlihat pada Gambar 1.6.
Gambar 1.6 Relasi tb_profil_user dengan tb_grup

Gambar 1.6 terlihat bahwa relasi tb_profil_user dengan tb_grup


memiliki relasi many-to-many, tetapi karena pada implementasi PDM tidak bisa
terjadi relasi many-to-many maka akan membentuk tabel ketiga sebagai
penghubung antara dua tabel tersebut, yang menyebabkan relasi one-to-many
antara tb_profil_user dengan tb_member_grup dan antara tb_grup dengan
tb_member_grup.

Anda mungkin juga menyukai