Anda di halaman 1dari 115

LAPORAN TEKNOLOGI BASIS DATA

DISUSUN OLEH:

KETUT NILA ARTA


1705551059

PROGRAM STUDI TEKNOLOGI INFORMASI


FAKULTAS TEKNIK
UNIVERSITAS UDAYANA
2018
ABSTRAK

Teknologi Informasi sangat berkembang pesat pada era globalisasi dalam


kehidupan masyarakat. Basis data adalah suatu perangkat lunak yang dapat
membantu penggunanya dalam menyimpan kumpulan informasi di dalam
komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program
komputer untuk memperoleh informasi dari basis data tersebut. Penelitian ini
bertujuan untuk mengetahui rancangan basis data, stored procedure, trigger, curso,
dan replikasi untuk yang digunakan untuk menangani database sebuah toko buku.
Toko buku merupakan sebuah tempat yang digunakan untuk membeli sebuah buku
yang diinginkan oleh pembeli. Dalam sebuah toko buku terdapat beberapa
komponen yang perlu untuk dimasukkan ke dalam database diantaranya yaitu
transaksi yang dilakukan, daftar buku, dan juga pegawai

Kata Kunci: Data Definition Language, Data Manipulation Language, Database,


Book_store.

i
KATA PENGANTAR

Puji syukur Penulis panjatkan kehadirat Tuhan Yang Maha Kuasa atas
segala berkah dan rahmat-Nya sehingga Penulis dapat menyelesaikan penulisan
Laporan Teknologi Basis Data dengan baik dan tepat pada waktunya. Penulis
menyampaikan ucapan terimakasih pada kesempatan ini kepada:
1. Dosen Pembimbing mata kuliah Teknologi Basis Data atas ilmu, saran,
dan bimbingan yang diberikan.
2. Semua pihak yang telah banyak membantu, yang tidak dapat Penulis
sebutkan satu persatu.
Penulis mengharapkan semoga dengan dibuatnya laporan ini dapat
menambah wawasan pembaca mengenai Teknologi Basis Data. Penulis menyadari
bahwa dalam penulisan tugas ini masih jauh dari kata sempurna. Oleh karena itu,
Penulis mengharapkan kritik, saran, serta informasi yang bersifat membangun
untuk kesempurnaan laporan ini.

Jimbaran, Mei 2018

Ketut Nila Arta

ii
DAFTAR ISI

ABSTRAK .............................................................................................................. i
KATA PENGANTAR ........................................................................................... ii
DAFTAR GAMBAR ............................................................................................ iv
DAFTAR KODE PROGRAM ........................................................................... vii
DAFTAR TABEL .............................................................................................. viii
BAB I PENDAHULUAN ...................................................................................... 2
1.1. Latar Belakang Masalah ....................................................................... 2
1.2. Rumusan Masalah ................................................................................. 3
1.3. Tujuan Penulisan................................................................................... 3
1.4. Batasan Masalah ................................................................................... 3
1.5. Sistematika Penulisan ........................................................................... 3
BAB II TINJAUAN PUSTAKA........................................................................... 5
2.1. Basis Data (Database) .......................................................................... 5
2.2. Relasi Basis Data .................................................................................. 6
2.3. Tipe Data Field ..................................................................................... 7
2.4. MySQL ............................................................................................... 10
2.5. Entity Relationship Diagram (ERD) dan Physical Data Model (PDM)
11
2.5. Relationship Pada Konsep Basis Data ................................................ 12
2.6. Perintah SQL....................................................................................... 13
2.7. DML Lanjutan .................................................................................... 18
2.8 Normalisasi ......................................................................................... 19
2.9 Tipe – Tipe Tabel Mysql .................................................................... 21
BAB III METODE DAN PERANCANGAN .................................................... 23
3.1. Waktu dan Tempat Penelitian ............................................................. 23
3.2. Sumber Data ....................................................................................... 23
3.3. Perancangan Basis Data ...................................................................... 23
BAB IV HASIL DAN PEMBAHASAN ............................................................ 46
4.1. Database Sosial Media ....................................................................... 46
4.2. Database Sekolah Menengah Atas ..................................................... 66
BAB V PENUTUP ............................................................................................. 103
5.1. Simpulan ........................................................................................... 103
5.2. Saran ................................................................................................. 104
DAFTAR PUSTAKA ........................................................................................ 105
LAMPIRAN ....................................................................................................... 105

iii
DAFTAR GAMBAR

Gambar 3. 1 ERD Database Sosial Media............................................................ 24


Gambar 3. 2 PDM Database Sosial Media ........................................................... 25
Gambar 3. 3 EDM dabatase sekolah menengah atas ............................................ 35
Gambar 3. 4 PDM database sekolah menengah atas ............................................ 36
Gambar 4. 1 Create database db_medsos. ........................................................ 46
Gambar 4. 2 Create Table tb_user. .................................................................. 47
Gambar 4. 3 Create Table tb_comment. ........................................................... 47
Gambar 4. 4 Create Table tb_comment_grup. ............................................... 48
Gambar 4. 5 Create Table tb_pertemanan. .................................................... 48
Gambar 4. 6 Create Table tb_grup. .................................................................. 49
Gambar 4. 7 Create Table tb_post. .................................................................. 49
Gambar 4. 8 Create Table tb_like. .................................................................. 49
Gambar 4. 9 Create Table tb_media. ................................................................ 50
Gambar 4. 10 Create Table tb_media_grup. .................................................. 50
Gambar 4. 11 Create Table tb_member. ........................................................... 51
Gambar 4. 12 Create Table tb_post. ................................................................ 51
Gambar 4. 13 Create Table tb_post_grup. .................................................... 51
Gambar 4. 14 Create Table tb_repost. ........................................................... 52
Gambar 4. 15 Alter Add Tabel tb_user. ........................................................... 52
Gambar 4. 16 Alter Change Tabel tb_user. .................................................... 53
Gambar 4. 17 Alter Rename Tabel tb_user. ..................................................... 53
Gambar 4. 18 Alter Drop Tabel tb_user. ......................................................... 54
Gambar 4. 19 Drop Database db_medsos. ........................................................ 54
Gambar 4. 20 Drop Tabel tb_repost. .............................................................. 55
Gambar 4. 21 Insert Data ke dalam tb_grup. .................................................... 55
Gambar 4. 22 Insert Data ke dalam tb_user. .................................................... 56
Gambar 4. 23 Insert Data ke dalam tb_post_grup......................................... 56
Gambar 4. 24 Insert Data ke dalam tb_member. ............................................... 57
Gambar 4. 25 Insert Data ke dalam tb_media. ................................................. 57
Gambar 4. 26 Insert Data ke dalam tb_comment. ............................................ 58
Gambar 4. 27 Update Tabel tb_grup. ............................................................... 58
Gambar 4. 28 Update Tabel tb_post_grup. ................................................... 59
Gambar 4. 29 Update Tabel tb_user. ............................................................... 59
Gambar 4. 30 Select Tabel tb_user. ................................................................. 60
Gambar 4. 31 Select Tabel tb_user. ................................................................. 60
Gambar 4. 32 Select Tabel tb_user. ................................................................. 60
Gambar 4. 33 Delete Tabel tb_post_grup. .................................................... 61
Gambar 4. 34 Delete Tabel tb_post_grup. .................................................... 61
Gambar 4. 35 Delete Tabel tb_user. ................................................................ 61
Gambar 4. 36 Result Query Pertama. .................................................................... 62

iv
Gambar 4. 37 Result Query Kedua. ...................................................................... 63
Gambar 4. 38 Result Query Ketiga. ...................................................................... 64
Gambar 4. 39 Result Query Keempat. .................................................................. 65
Gambar 4. 40 Result Query Kelima ...................................................................... 66
Gambar 4. 41 Create Database db_sekolah_menengah_atas .................. 67
Gambar 4. 42 Create Table tb_wali_siswa ................................................... 67
Gambar 4. 43 Create Table tb_siswa............................................................... 67
Gambar 4. 44 Create Table tb_periode .......................................................... 68
Gambar 4. 45 Create Table tb_mapel............................................................... 68
Gambar 4. 46 Create Table tb_jam ................................................................... 68
Gambar 4. 47 Create Table tb_detail_jadwal ........................................... 69
Gambar 4. 48 Create Table tb_detail_kelas .............................................. 69
Gambar 4. 49 Create Table tb_jurusan .......................................................... 69
Gambar 4. 50 Create Table tb_detail_nilai .............................................. 70
Gambar 4. 51 Create Table tb_detail_wali_siswa .................................. 70
Gambar 4. 52 Create Table tb_guru ................................................................. 71
Gambar 4. 53 Create Table tb_jadwal ............................................................ 71
Gambar 4. 54 Create Table tb_kelas............................................................... 72
Gambar 4. 55 Create Table tb_nilai ............................................................... 72
Gambar 4. 56 Create Table tb_team_teaching ........................................... 73
Gambar 4. 57 Create Table tb_wali_kelas ................................................... 73
Gambar 4. 58 Alter Add Tabel tb_user ............................................................ 74
Gambar 4. 59 Alter Change Tabel tb_user ...................................................... 74
Gambar 4. 60 Alter rename Tabel tb_siswa..................................................... 75
Gambar 4. 61 Alter Drop Tabel tb_murid ........................................................ 75
Gambar 4. 62 Drop Database db_sekolah_menengah_atas ..................... 76
Gambar 4. 63 Drop Tabel tb_team_teaching .............................................. 76
Gambar 4. 64 Insert Data ke dalam tb_detail_jawaban............................. 79
Gambar 4. 65 Insert Data ke dalam tb_detail_kelas ................................. 79
Gambar 4. 66 Insert Data ke dalam tb_detail_nilai ................................. 84
Gambar 4. 67 Insert Data ke dalam tb_detail_wali_siswa ..................... 85
Gambar 4. 68 Insert Data ke dalam tb_jadwal ................................................ 86
Gambar 4. 69 Insert Data ke dalam tb_jam ....................................................... 87
Gambar 4. 70 Insert Data ke dalam tb_jurusan ............................................. 87
Gambar 4. 71 Insert Data ke dalam tb_kelas .................................................. 87
Gambar 4. 72 Insert Data ke dalam tb_mapel .................................................. 88
Gambar 4. 73 Insert Data ke dalam tb_nilai .................................................. 88
Gambar 4. 74 Insert Data ke dalam tb_periode ............................................. 89
Gambar 4. 75 Insert Data ke dalam tb_siswa .................................................. 89
Gambar 4. 76 Insert Data ke dalam tb_team_teaching ............................... 92
Gambar 4. 77 Insert Data ke dalam tb_wali_kelas ...................................... 92
Gambar 4. 78 Insert Data ke dalam tb_wali_siswa ...................................... 93

v
Gambar 4. 79 Update Tabel tb_siswa .............................................................. 93
Gambar 4. 80 Update Tabel tb_guru ................................................................ 94
Gambar 4. 81 Update Tabel tb_jam................................................................... 94
Gambar 4. 82 Select Tabel tb_siswa ................................................................ 95
Gambar 4. 83 Select Tabel tb_siswa ................................................................ 95
Gambar 4. 84 Select Tabel tb_siswa ................................................................ 96
Gambar 4. 85 Delete column pada Tabel tb_detail_nilai ......................... 96
Gambar 4. 86 Delete column pada Tabel tb_team_teaching....................... 97
Gambar 4. 87 Delete column pada Tabel tb_detail_kelas ......................... 97
Gambar 4. 88 Result Query Pertama ..................................................................... 98
Gambar 4. 89 Result Query Kedua ....................................................................... 99
Gambar 4. 90 Result Query Ketiga ..................................................................... 100
Gambar 4. 91 Result Query Keempat ................................................................. 102

vi
DAFTAR KODE PROGRAM

Kode Program 2. 1 Sintaks Create Database ....................................................... 13


Kode Program 2. 2 Contoh penulisan Create Table. ............................................ 14
Kode Program 2. 3 Contoh penggunaan Alter Add. .............................................. 14
Kode Program 2. 4 Contoh penggunaan Alter Drop. ............................................ 15
Kode Program 2. 5 Contoh penggunaan Alter Rename. ....................................... 15
Kode Program 2. 6 Contoh penggunaan Alter Modify ......................................... 15
Kode Program 2. 7 Contoh penggunaan Insert statement. ................................... 16
Kode Program 2. 8 Contoh penggunaan Insert pada kolom tertentu. ................... 16
Kode Program 2. 9 Contoh penggunaan Select From. .......................................... 16
Kode Program 2. 10 Contoh penggunaan Select From dengan Where. ................ 17
Kode Program 2. 11 Contoh penggunaan Update. ............................................... 17
Kode Program 2. 12 Contoh penggunaan Delete statement. ................................ 17
Kode Program 2. 13 Contoh Nested Query .......................................................... 18
Kode Program 2. 14 Contoh penggunaan UNION ............................................... 18
Kode Program 2. 15 Contoh penggunaan HAVING............. Error! Bookmark not
defined.
Kode Program 2. 16 Contoh penggunaan WHERE Error! Bookmark not defined.
Kode Program 2. 17 Contoh penggunaan INNER JOIN ...... Error! Bookmark not
defined.
Kode Program 2. 18 Contoh penggunaan LEFT JOIN ........ Error! Bookmark not
defined.
Kode Program 2. 19 Contoh penggunaan RIGHT JOIN ...... Error! Bookmark not
defined.
Kode Program 2. 20 Contoh penggunaan COUNT Error! Bookmark not defined.
Kode Program 2. 21 Contoh penggunaan SUM ..... Error! Bookmark not defined.
Kode Program 2. 22 Contoh penggunaan MAX ..... Error! Bookmark not defined.
Kode Program 2. 23 Contoh penggunaan MIN ...... Error! Bookmark not defined.
Kode Program 2. 24 Contoh penggunaan AVG ..... Error! Bookmark not defined.
Kode Program 2. 25 Contoh GROUP_CONCAT .. Error! Bookmark not defined.
Kode Program 2. 26 Contoh penggunaan Lower ... Error! Bookmark not defined.
Kode Program 2. 27 Contoh penggunaan Upper ... Error! Bookmark not defined.
Kode Program 2. 28 Contoh penggunaan ASCII ... Error! Bookmark not defined.
Kode Program 2. 29 Contoh penggunaan Concat .. Error! Bookmark not defined.
Kode Program 2. 30 Contoh penggunaan Substring ............ Error! Bookmark not
defined.
Kode Program 2. 31 Contoh penggunaan Length .. Error! Bookmark not defined.
Kode Program 4. 1 Query Report Pertama. .......................................................... 62
Kode Program 4. 2 Query Report Kedua. ............................................................. 63
Kode Program 4. 3 Query Report Ketiga. ............................................................. 64
Kode Program 4. 4 Query Report Keempat. ......................................................... 65
Kode Program 4. 5 Query Report Kelima. ............................................................ 66

vii
Kode Program 4. 6 Query Report Pertama ........................................................... 98
Kode Program 4. 7 Query Report Kedua .............................................................. 99
Kode Program 4. 8 Query Report Ketiga ............................................................ 100
Kode Program 4. 9 Query Report Keempat ........................................................ 101

viii
DAFTAR TABEL

Tabel 3. 1 Kamus Data Tabel tb_user .............................................................. 25


Tabel 3. 2 Kamus Data Tabel tb_pertemanan ............................................... 27
Tabel 3. 3 Kamus Data Tabel tb_post .............................................................. 28
Tabel 3. 4 Kamus Data Tabel tb_grup .............................................................. 28
Tabel 3. 5 Kamus Data Tabel tb_like .............................................................. 29
Tabel 3. 6 Kamus Data tabel tb_comment....................................................... 29
Tabel 3. 7 Kamus Data tabel tb_media. .......................................................... 30
Tabel 3. 8 Kamus Data Tabel tb_repost. ....................................................... 31
Tabel 3. 9 Kamus Data Tabel tb_member. ....................................................... 31
Tabel 3. 10 Kamus Data Tabel tb_post_grup. ............................................. 32
Tabel 3. 11 Kamus Data Tabel tb_comment_grup. ...................................... 32
Tabel 3. 12 Kamus Data tabel tb_like_grup. ............................................. 33
Tabel 3. 13 Kamus Data Tabel tb_media_grup. ........................................... 34
Tabel 3. 14 Kamus Data tabel tb_jurusan..................................................... 36
Tabel 3. 15 Kamus Data tabel tb_periode..................................................... 37
Tabel 3. 16 Kamus Data tabel tb_mapel. ........................................................ 37
Tabel 3. 17 Kamus Data tabel tb_jam................................................................ 38
Tabel 3. 18 Kamus Data tabel tb_wali_siswa. .............................................. 38
Tabel 3. 19 Kamus Data tabel tb_jadwal. ....................................................... 39
Tabel 3. 20 Kamus Data tabel tb_guru. ............................................................ 39
Tabel 3. 21 Kamus Data tabel tb_kelas. .......................................................... 40
Tabel 3. 22 Kamus Data tabel tb_siswa. .......................................................... 41
Tabel 3. 23 Kamus Data Tabel tb_team_teaching. ..................................... 41
Tabel 3. 24 Kamus Data Tabel tb_wali_kelas. ............................................ 42
Tabel 3. 25 Kamus Data Tabel tb_nilai. ........................................................ 42
Tabel 3. 26 Kamus Data Tabel tb_detail_nilai......................................... 43
Tabel 3. 27 Kamus Data tabel tb_detail_jadwal........................................ 43
Tabel 3. 28 Kamus Data tabel tb_detail_kelas. ......................................... 44
Tabel 3. 29 Kamus Data Tabel tb_detail_wali_siswa............................. 44

ix
2

BAB I
PENDAHULUAN

Bab I pendahuluan laporan teknologi basis data memaparkan beberapa hal


diantaranya latar belakang masalah, rumusan masalah, tujuan penulisan, batasan
masalah, dan sistematika penulisan yang digunakan untuk menyelesaikan modul
pada praktikum konsep basis data.
1.1. Latar Belakang Masalah
Sistem informasi tidak dapat dipisahkan dengan perkembangan dunia
informasi internet pada saat ini. Sistem informasi merupakan sekumpulan
komponen yang saling berhubungan, mengumpulkan, memproses, menyimpan, dan
mendistribusikan informasi untuk menunjang pengambilan keputusan dan
pengawasan dalam suatu organisasi. Selain itu, sistem informasi juga dapat
membantu manusia dalam menganalisis permasalahan, menggambarkan hal-hal
yang rumit dan menciptakan produk baru. Perkembangan yang sangat pesat di
dukung oleh ketersediaannya perangkat keras dan perangkat lunak yang semakin
hari semakin canggih.
Basis data merupakan salah satu dari sekian perkembangan sistem
informasi, basis data merupakan kumpulan informasi yang disimpan di
dalam komputer secara sistematik sehingga dapat diperiksa menggunakan
suatu program komputer untuk memperoleh informasi. Perangkat lunak yang
digunakan untuk mengolah dan mengambil kueri (query) basis data disebut sistem
manajemen basis data. Query ini sendiri merupakan bahasa yang digunakan dalam
interaksi antara user dengan komputer. Bagi pengelola sistem informasi, tentunya
user juga harus memahami apa itu query, bagaimana query itu bekerja, serta kapan
suatu query itu digunakan. Dengan memahami query, maka pengelolaan sistem
informasi dapat dilakukan dengan manajemen yang baik.
3

1.2. Rumusan Masalah


1. Bagaimana pembuatan sebuah PDM
2. Bagaimana penggunaan stored procedure dalam basis data
3. Bagaimana pengguanan trigger dalam basis data
4. Bagaimana penggunaan cursor dalam basis data
5. Bagaimana cara melakukan replikasi pada database

1.3. Tujuan Penulisan


1. Untuk mengetahui pembuatan sebuah PDM
2. Untuk mengetahui penggunaan dari stored procedure dalam basis data
3. Untuk mengetahui penggunaan dari trigger dalam basis data
4. Untuk mengetahui penggunaan dari cursor dalam basis data
5. Untuk mengetahui cara melakukan replikasi database

1.4. Batasan Masalah


Berdasarkan latarbelakang diatas maka didapat batasan masalah yang
digunakan pada laporan ini yang akan mengacu pada materi teknologi basis data
yang telah diberikan dalam bentuk slide dan paparan materi

1.5. Sistematika Penulisan


1. Bab I Pendahuluan
Bab ini membahas mengenai latar belakang, rumusan masalah, tujuan,
manfaat, batasan masalah, dan sistematika penulisan dari laporan basis data ini
2. Bab II Tinjauan Pustaka
Bab ini membahas mengenai materi dari modul-modul teknologi basis data
ditinjau dari teori-teori yang terdapat di buku atau sumber lain
3. Bab III Metode dan Perencanaan Sistem
Bab III membahas tentang waktu dan tempat penelitian, sumber data yang
digunakan, dan perancangan basis data yang meliputi Entity Relationship Diagram
(ERD), Physical Data Model (PDM), stored procedure, trigger, serta replikasi
basis data yang dibuat berdasarkan seluruh studi kasus yang dibahas pada laporan
praktikum ini
4

4. Bab IV Hasil Dan Pembahasan


Bab ini akan menguraiakan tentang serta hasil report yang merupakan
pemecahan masalah dari seluruh studi kasus yang dibahas pada laporan praktikum
ini.
5. Bab V Penutup
Bab ini akan menyimpulkan yang telah di bahas pada bab-bab sebelumnya
serta memberikan saran sebagai acuan dalam penulisan laporan praktikum
BAB II
TINJAUAN PUSTAKA

Pembahasan dalam bab II merupakan tinjauan pustaka yang digunakan


dalam praktikum konsep basis data. Tinjauan pustaka berupa materi-materi yang
digunakan dalam mengerjakan modul dalam praktikum konsep basis data.
2.1. Basis Data (Database)
Basis Data (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. Basis data atau juga
disebut database, terdiri dari dua penggalan kata yaitu data dan base, yang artinya
berbasiskan pada data, tetapi secara konseptual, database diartikan sebuah koleksi
atau kumpulan data-data yang saling berhubungan (relation), disusun menurut
aturan tertentu secara logis, sehingga menghasilkan informasi. Perangkat lunak
yang digunakan adalah manajemen basis data. Konsep dasar dari basis data adalah
kumpulan dari catatan-catatan, atau potongan dari pengetahuan. Sebuah basis data
memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya yang
disebut skema.
Terdapat berbagai cara untuk mengorganisasi skema, atau memodelkan
struktur basis data. Hal ini dikenal sebagai model basis data atau model data. Model
yang umum digunakan sekarang adalah model relasional, yang menurut istilah
layman mewakili semua informasi dalam bentuk tabel-tabel yang saling
berhubungan dimana setiap tabel terdiri dari baris dan kolom (definisi yang
sebenarnya menggunakan terminologi matematika). Istilah basis data mengacu
pada koleksi dari data yang saling berhubungan, dan perangkat lunaknya
seharusnya mengacu sebagai sistem manajemen basis data (database management
system) DBMS.
Basis data juga dapat diartikan sebagai kumpulan dari item data yang
saling berhubungan satu dengan yang lainnya yang diorganisasikan berdasarkan
sebuah skema atau struktur tertentu, tersimpan di hardware komputer dan dengan
software untuk melakukan manipulasi untuk kegunaan tertentu

5
6

2.2. Relasi Basis Data


Basis Data terdapat struktur relasi, relasi merupakan penghubung antara
satu entitas dengan entitas lain. Berikut adalah beberapa struktur relasi yang
terdapat pada Basis Data.
2.2.1. Attributes
Attributes merupakan karakteristik suatu data, mewakili ciri atau fitur
spesifik dari suatu objek. Attributes selalu memiliki nama/label dan penamaan di
buat sedekat mungkin dengan ciri atau fitur spesifik yang ada.

2.2.2. Schemas
Merupakan semua database yang telah ada hubungan relasi antara 1 tabel
dengan tabel yang lain. Schemas ditunjukkan dengan gambar dan relasi yang ada.

2.2.3. Keys
Keys dalam database berfungsi untuk memaksa aturan dan constraint
dalam database. Data memiliki tujuan mengendalikan ketepatan dan konsistensi
data.

2.2.4. Candidate Key


Tabel-tabel dalam database minimal memiliki 1 candidate key. Syaratnya
adalah tidak ada nilai dalam baris yang sama dari atribut model. Atribut yang
dijadikan candidate key adalah calon-calon dari primary key.

2.2.5. Primary Key


Primary key merupakan candidate key yang dipilih untuk mewakili tabel
dan merupakan bagian yang unik untuk mengidentifikasi tiap record dari tabel.
Setiap tabel dalam database selalu memiliki primary key. Biasanya dalam
penggunaan primary key dalam atribut itu harus ‘NOT NULL’ (tidak boleh kosong)
dan nilai atribut itu harus ‘UNIQUE’.
7

2.2.6. Foreign Key


Foreign key adalah atribut atau kombinasi atribut dalam tabel contohnya
tabel b yang berelasi dengan tabel a, satu atribut dalam tabel b yang ingin dijadikan
foreign key nilainya harus sama dengan atribut tabel b di dalam tabel a yang
dijadikan primary key.

2.3. Tipe Data Field


Tipe field (kolom) menentukan besar kecilnya ukuran suatu tabel, dimana
masing-masing tipe field memiliki batasan lebar dan ukurannya. Pada MySQL
terdapat beberapa kelompok tipe data field.
2.3.1. Tipe Data Numerik
Tipe numerik dibedakan dalam dua macam kelompok, yaitu integer
dan floating point. Integer digunakan untuk data bilangan bulat sedangkan floating
point digunakan untuk bilangan desimal. Contoh tipe data numerik dapat dilihat
pada Tabel 2.1.

Tabel 2.1 Tabel Tipe Data Numerik


No Tipe Data Keterangan
1. TINYINT Ukuran 1 byte. Sebuah bilangan yang sangat kecil yang
dapat ditandatangani atau unsigned. Jika
ditandatangani, rentang yang diijinkan adalah dari -128
sampai 127. Jika unsigned, rentang yang diijinkan
adalah dari 0 sampai 255. Anda dapat menentukan lebar
sampai dengan 4 digit.
2. SMALLINT Ukuran 2 byte. Bilangan bulat dengan jangkauan untuk
bilangan bertanda -32768 sampai dengan 32767 dan
untuk yang tidak bertanda 0 sampai dengan 65535
3. MEDIUMINT Ukuran 3 byte. Bilangan bulat dengan jangkauan untuk
bilangan bertanda -8388608 sampai dengan 8388607
dan untuk yang tidak bertanda 0 sampai dengan
16777215
4. INT Ukuran 4 byte. Sebuah bilangan bulat berukuran normal
yang dapat ditandatangani atau unsigned. Jika
ditandatangani, rentang yang diijinkan adalah dari -
2147483648 sampai 2147483647. Jika unsigned,
rentang yang diijinkan adalah 0-4294967295. Anda
dapat menentukan lebar sampai dengan 11 digit.
5. BIGINT Ukuran 8 byte. Bilangan bulat dengan jangkauan untuk
bilangan bertanda -9223372036854775808 sampai
8

dengan 9223372036854775807 dan untuk yang tidak


bertanda 0 sampai dengan 184467440737079551615
6. FLOAT Ukuran 4 byte. Digunakan untuk menyimpan data
bilangan pecahan positif dan negatif presisi tunggal
7. DOUBLE Ukuran 8 byte. Bilangan pecahan. Sebuah presisi angka
floating-point ganda yang tidak dapat unsigned. Anda
dapat menentukan panjang tampilan (M) dan jumlah
desimal (D). Ini tidak diperlukan dan akan default ke
16,4, dimana 4 adalah jumlah desimal. Desimal presisi
bisa pergi ke 53 tempat untuk sebuah DOUBLE.
8. DOUBLE Ukuran 8 byte. Bilangan pecahan berpresisi ganda.
PRECISION
9. REAL Ukuran 8 byte. Sinonim dari DOUBLE.
10. DECIMAL(M,D) Ukuran M byte. Bilangan pecahan. Misalnya
DECIMAL(5,2) dapat digunakan untuk menyimpan
bilangan -99,99 sampai dengan 99,99
11. NUMERIC(M,D) Ukuran M byte. Sama dengan Decimal, misalnya
NUMERIC(5,2) dapat digunakan untuk menyimpan
bilangan -99,99 s/d 99,99
Tabel 2.1 merupakan tabel tipe data numerik untuk bilangan bulat positif
dan negatif.

2.3.2. Tipe Data String


String adalah rangkaian karakter. Tipe-tipe data yang termasuk dalam tipe
data string, berikut merupakan contoh tipe data string.

Tabel 2.2 Tabel Tipe Data String


No Tipe Data Keterangan
1. CHAR(M) Ukuran M byte, 1<=M<=255. Data string
dengan panjang yang tetap. CHAR(1) cukup
ditulis dengan CHAR.
2. VARCHAR(M) Ukuran L+1 byte dengan L<=M dan
1<=M<=255. Data string dengan panjang
bervariasi tergantung datanya.
3. TINYBLOB, L+1 byte, dengan L<28 . Tipe TEXT atau BLOB
TINYTEXT dengan panjang maksimum 255 karakter.
4. BLOB, TEXT L+2 byte, dengan L<216 . Tipe TEXT atau
BLOB dengan panjang maksimum 65535
karakter.
5. MEDIUMBLOB, L+3 byte, dengan L<224. Tipe TEXT atau
MEDIUMTEXT BLOB dengan panjang maksimum 1677215
karakter.
6. LONGBLOB, LONGTEXT L+4 byte, dengan L<232. Tipe TEXT atau
BLOB dengan panjang maksimum 4294967295
karakter.
9

Tabel 2.2 merupakan tabel tipe data yang digunakan untuk tulisan atau text,
pemilihan tipe data text tergantung dari kebutuhan dari panjang pendeknya basis
data.

2.3.3. Tipe Data Tanggal dan Waktu


Tipe data tanggal dan jam, tersedia tipe-tipe data field berupa datetime,
date, tme, dan year. Masing-masing tipe mempunyai kisaran nilai tertentu. MySQL
akan memberikan peringatan kesalahan (error) apabila tanggal atau waktu yang
dimasukkan salah. Contoh tipe data tanggal dapat dilihat pada Tabel 2.3.

Tabel 2.3 Tabel Tipe Data Date dan Time


No Tipe Data Keterangan
1. DATETIME Ukuran 8 byte. Kombinasi tanggal dan jam
dengan jangkauan dari ‘1000-01-01 00:00:00’
sampai dengan ‘9999-12-31 23:59:59’
2. DATE Ukuran 8 byte. Kombinasi tanggal dan jam
dengan jangkauan dari ‘1000-01-01’ sampai
dengan ‘9999-12-31 ’
3. TIMESTAMP Ukuran 4 byte. Kombinasi tanggal dan jam
dengan jangkauan dari ‘1970-01-01’ sampai
dengan ‘2037 ’
4. TIME Ukuran 3 byte.waktu dengan jangkauan dari -
838:59:59 sampai dengan 838:59:59
5. YEAR Ukuran 1 byte. Data tahun antara 1901 sampai
dengan 2155
Tabel 2.3 merupakan tabel tipe data yang digunakan untuk tanggal dan
waktu dalam membuat sebuah basis data.

2.3.4. Tipe Data Lainnya


Tipe data lainnya yaitu tipe data Enum dan tipe data Set yang biasanya
pada kasus memilih dua pilihan seperti jenis kelamin. Penjelasannya dapat dilihat
pada Tabel 2.4.
10

Tabel 2.4 Tabel Tipe Data Lainnya


1. ENUM(’nilai1’,’nilai2’,..) Ukuran 1 atau 2 byte tergantung nilai
enumerasinya maks 65535 nilai
2. SET(’nilai1’,’nilai2’,..) Ukuran 1,2,3,4 atau 8 byte tergantung
jumlah anggota himpunan maks 64
anggota.
Tabel 2.4 merupakan tabel tipe data lainnya yang mencakup ENUM dan
SET yang biasanya digunakan untuk kasus memilih dua pilihan.

2.4. MySQL
MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL
(database management system) atau DBMS. MySQL sebenarnya merupakan
turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured
Query Language). SQL adalah sebuah konsep pengoperasian database, terutama
untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan
pengoperasian data dikerjakan dengan mudah secara otomastis. Berikut ini
beberapa tools yang biasa digunakan dalam mempermudah administrasi server
MySQL.
2.4.1. MySQL-Front
MySQL-Front merupakan front-end MySQL berbasis, MySQL-Front
memiliki user interface yang cukup mudah digunakan, bahkan oleh user pemula.
Pada awalnya MySQL-Front merupakan software yang free, namun mulai versi 3.0
ke atas, software ini menjadi software yang bersifat shareware dengan masa
percobaan selama 30 hari.

2.4.2. MySQL CLI


MySQL CLI merupakan tools default MySQL yang sudah disertakan
dalam file instalasi MySQL. Aplikasi ini dapat digunakan untuk melakukan koneksi
ke MySQL melalui text-based mode.

2.4.3. SQLYog
SQLYog merupakan salah satu front-end MySQL dengan dukungan fitur
yang cukup banyak dan lengkap
11

2.5. ERD dan PDM


Entity Relationship Diagram (ERD) dan Physical Data Model (PDM)
merupakan tahapan yang dilakukan sebelum melakukan peracangan basis data.
Pembahasan mengenai ERD dan PDM adalah sebagai berikut.
2.1. Entity Relationship Diagram (ERD)
Entity Relationship Diagram (ERD) merupakan suatu model untuk
menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar
data yang mempunyai hubungan antar relasi. ERD digunakan untuk memodelkan
struktur data dan hubungan antar data. ERD memiliki beberapa notasi simbol dapat
dilihat pada Tabel 2.5.

Tabel 2. 5 Komponen-komponen ERD


Komponen ERD Simbol Keterangan

Entitas adalah konsep dasra dalam


pemodelan database berupa
Entitas individu yang mewakili sesuatu
yang nyata dan dapat dibedakan
dari sesuatu yang lain.

Atribut merupakan karakteristik


dari entitas yang menyajikan
Atribut
penjelasan detail mengenai entitas
tersebut.

Hubungan (Relasi/Relationship)
adalah hubungan antara dua jenis
Hubungan (Relasi/
entitas dan direpresentasikan
Relationship)
sebagai garis lurus yang
menghubungkan dua entitas

Alur memiliki fungsi untuk


menghubungkan atribut dengan
Alur
entitas dan entitas dengan relasi.
Dan berbentuk garis.
Tabel 2.5 merupakan komponen-komponen yang terdapat dalam ERD
yang digunakan dalam membangun diagram.
12

2.2. Physical Data Model (PDM)


PDM adalah presentasi suatu implementasi database secara spesifik dari
suatu Logical Data Model (LDM) yang merupakan konsumsi komputer yang
mencakup detail penyimpanan data di komputer yang direpresentasikan dalam
bentuk record format, record ordering dan access path dan menjelaskan bagaimana
data itu disimpan di dalam media penyimpanan yang digunakan secara fisik.
Sasarannya adalah menciptakan perancangan untuk penyimpanan data yang
menyediakan kinerja yang baik dan memastikan integritas, keamanan, serta
kemampuan untuk dipulihkan. PDM adalah model yang menjelaskan cara
komputer memandang data, bahwa data tersimpan pada lokasi fisik sebagai file-file
yang terpisah. PDM mempunyai komponen-kompen penyusun yang diperlukan
untuk membangun sebuah PDM yaitu sebagai berikut.
2.3.2.1 Tabel
Tabel adalah kumpulan data yang disusun berdasarkan baris dan kolom.
Baris dan kolom ini berfungsi untuk menunjukkan data terkait keduanya. Tabel
dalam PDM diisi dengan entitas dan atribut yang nantinya dihubungkan dengan
garis penghubung sesuai dengan relasinya antara tabel satu dan tabel yang lainnya.

2.3.2.2 Kolom
Kolom adalah bagian dari tabel yang strukturnya vertikal di dalam tabel,
kolom nanti akan diisi dengan atribut-atribut sesuai dengan entitas yang
dimilikinya.

2.5. Relationship Pada Konsep Basis Data


Relasi adalah hubungan antara tabel yang mempresentasikan hubungan
antar objek di dunia nyata. Hubungan yang dapat dibentuk dapat mencakup tiga
macam hubungan seperti berikut.
2.5.1. One-To-One (1-1)
One-To-One merupakan sebuah relasi yang memiliki arti bahwa setiap
baris data pada tabel pertama dihubungkan hanya ke satu baris data pada tabel ke
dua.
13

2.5.2. One-To-Many (1-M)


One-To-Many merupakan sebuah relasi yang memiliki arti bahwa setiap
baris data pada tabel pertama dihubungkan hanya ke satu baris data pada tabel ke
dua.

2.5.3. Many-To-Many (M-M)


Many-To-Many merupakan sebuah relasi yang memiki arti bahwa "Satu
baris atau lebih data pada tabel pertama bisa dihubungkan 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.

2.6. Perintah SQL


Perintah SQL dibagi dalam 2 kategori besar sesuai fungsinya, yaitu yang
terdiri dari DDL (Data Definition Language) dan DML (Data Manipulation
Language).
2.6.1. DDL (Data Definition Language)
DDL merupakan perintah-perintah yang biasa digunakan administrator
database untuk mendefinisikan skema dan sub skema database. DDL mempunyai
fungsi utama untuk mendefinisikan data dalam database secara logika, seperti
untuk membuat (create), mengubah (alter) dan menghapus (drop) struktur dan
definisi tipe data dari objek-objek database.
2.6.1.1. Create
Perintah create digunakan untuk membuat tabel, database maupun
perintah-perintah yang lain. Penggunaan syntax DDL ini merupakan sintaks dasar
yang ada dalam perintah DDL.
a. Create Database
Create Database adalah perintah yang digunakan untuk membuat
database yang baru. Sintaks umum create table ditunjukkan pada Kode Program
2.1.

CREATE DATABASE nama_database;


Kode Program 2. 1 Sintaks Create Database
14

Kode Program 2.1 merupakan sintaks yang digunakan untuk membuat


sebuah database yang baru. Pembuatan sintaks ini yaitu dengan memasukkan nama
database yang ingin dibuat.

b. Create Table
Sintaks Create Table yaitu dibuat untuk membuat sebuah tabel yang
diikutin oleh kolom-kolom pada tabel tersebut.

CREATE TABLE nama_tabel;


Kode Program 2. 2 Contoh penulisan Create Table.
Kode Program 2.2 merupakan sintaks untuk membuat create table atau
membuat tabel baru dalam sebuah database. Sintaks tersebut digunakan untuk
membuat tabel dengan nama tabel sesuai dengan keinginan. Selain itu juga terdapat
penentuan primary key dari masing-masing tabel yang dibuat.

2.6.1.2. Alter
Perintah alter digunakan untuk menambah atau menghapus data pada
tabel. Lebih detailnya digunakan untuk meng-edit kolom pada suatu tabel atau
database yang sudah ada.
a. Alter Add
Alter Add merupakan perintah untuk penambahan field dalam sebuah tabel
pada database. Penulisan umum sintaks Alter Add dapat dilihat pada Kode Program
2.3.

ALTER TABLE nama_tabel ADD nama_kolom tipe_data(range_data)


AFTER/BEFORE nama_field;
Kode Program 2. 3 Contoh penggunaan Alter Add.
Kode Program 2.3 merupakan sintaks yang digunakan untuk menambah
kolom atau field. Pembuatannya dengan memasukkan nama tabel yang ingin
ditambahkan kolom atau field-nya serta menentukan nama kolom atau nama field-
nya dengan tipe data dan panjang datanya yang ingin ditambahkan ke dalam tabel.
Sedangkan After Before berfungsi menentukan dimana field akan ditambahkan.
15

b. Alter Drop
Alter Drop merupakan perintah yang digunakan untuk penghapusan field
dalam sebuah tabel pada database. Penulisan umum sintaks Alter drop dapat dilihat
pada Kode Program 2.4.

ALTER TABLE nama_tabel DROP nama_kolom;


Kode Program 2. 4 Contoh penggunaan Alter Drop.
Kode program 2.4 merupakan sintaks dalam penghapusan kolom tabel
pada database dimana sintaks nama_tabel merupakan nama tabel yang menjadi
tempat penghapusan field dan sintak nama_kolom merupakan field yang akan
dihapus.

c. Alter Rename
Perintah ini digunakan pada MySQL untuk merubah nama tabel dengan
Sintaks menggunakan alter rename. Penulisan umum sintaks Alter Rename dapat
dilihat pada Kode Program 2.5.

ALTER TABLE nama_tabel_lama RENAME nama_tabel_baru


Kode Program 2. 5 Contoh penggunaan Alter Rename.
Kode program 2.5 merupakan sintaks untuk melakukan pengubahan nama
tabel dari sebuah tabel dalam database. Sintaks nama_tabel_lama adalah nama
tabel yang akan diubah dan sintak nama_tabel_baru adalah nama tabel yang baru.

d. Alter Modify Tipe Data Kolom


Alter Modify merupakan perintah yang digunakan untuk mengubah tipe
data field/kolom dalam sebuah tabel pada database.

ALTER TABLE table_name


MODIFY COLUMN column_name datatype;
Kode Program 2. 6 Contoh penggunaan Alter Modify
Kode Program 2.6 merupakan sintaks untuk melakukan perubahan
terhadap tipe data suatu kolom dalam tabel.
16

2.6.2. DML (Data Manipulation Language)


DML (Data Manipulation Language) adalah kumpulan perintah-perintah
SQL yang berhubungan dengan pengolah data di dalam tabel dan tidak terkait
dengan perubahan struktur dan definisi tipe data dari objek database seperti tabel,
kolom dan sebagainya. Terdapat beberapa perintah-perintah yang ada di dalam
DML (Data Manipulation Language).
2.6.2.1. Insert
Insert merupakan perintah dari SQL untuk menambah atau mengisikan
data atau record dalam tabel. Insert digunakan setelah database dan tabel selesai
dibuat.

INSERT INTO nama_tabel VALUES(value1, value 2,...);


Kode Program 2. 7 Contoh penggunaan Insert statement.
Kode Program 2.7 merupakan bentuk sintaks insert, yang tidak
menentukan nama kolom di mana data akan dimasukkan, hanya berupa nilai-nilai
saja, dimana urutan nilai yang diletakkan di dalam kurung disesuaikan dengan
urutan kolom dalam tabel. Sedangkan bentuk umum lainnya dari perintah insert
ditunjukkan pada Kode Program 2.6.

INSERT INTO nama_tabel (kolom1, kolom2,...) VALUES(value1,


value2, ....);
Kode Program 2. 8 Contoh penggunaan Insert pada kolom tertentu.
Kode Program 2.6 merupakan bentuk sintaks insert lanjutan dimana bisa
memasukan data pada kolom tertentu.
2.6.2.2. Select
Select merupakan perintah dari SQL untuk menampilkan data atau record
dari sebuah tabel atau beberapa tabel dalam relasi.
a. Menampilkan seluruh data pada tabel.
Perintah select from akan menampilkan semua data dalam tabel pada suatu
database. Berikut merupakan contoh penulisan select from.

SELECT * FROM nama_tabel;


Kode Program 2. 9 Contoh penggunaan Select From.
17

Kode Program 2.9 merupakan contoh penggunaan sintaks Select From


yang berfungsi untuk menampilkan semua data dalam tabel.

b. Menampilkan data dengan klausa Where.


Sintaks ini berfungsi untuk menampilkan data atau record dengan data
pada field atau kolom tertentu. Berikut merupakan contoh penulisan select from.

SELECT * FROM nama_tabel WHERE kolom_tertentu = ‘record’;


Kode Program 2. 10 Contoh penggunaan Select From dengan Where.
Kode Program 2.10 di atas merupakan bentuk umum dari sintaks select
untuk menampilkan data pada field (kolom) tertentu dengan klausa where.

2.6.2.3. Update
Update merupakan perintah dari SQL untuk meng-update atau
memperbaiki data yang lama. Perintah update ini bersifat permanen artinya jika
sudah meng-update maka tidak dapat dirubah lagi. Berikut merupakan contoh
peggunaan Update.

UPDATE nama_tabel
SET kolom1 = value1,
kolom2 = value2, …
WHERE nama_kolom = nilai_kolom;
Kode Program 2. 11 Contoh penggunaan Update.
Kode Program 2.11 merupakan bentuk umum sintak update yang
berfungsi untuk memperbaharui data lama menjadi data baru.

2.6.2.4. Delete
Perintah delete digunakan untuk menghapus data atau record dalam suatu
tabel. Penghapusan ini dilakukan jika terdapat data atau record dalam suatu tabel
yang tidak diperlukan. Berikut merupakan contoh penggunaan Delete.

DELETE FROM nama_tabel WHERE nama_kolom = nilai_kolom;


Kode Program 2. 12 Contoh penggunaan Delete statement.
18

Kode Program 2.12 merupakan bentuk umum sintaks delete dimana


berfungsi untuk menghapus atau menghilangkan baris data (record) dari tabel.

2.7. DML Lanjutan


DML adalah sub perintah dari bahasa SQL yang digunakan untuk
memanipulasi data dalam database yang telah dibuat. DML lanjutan membahas
mengenai lanjutan dari perintah-perintah manipulasi data yang telah dibahas pada
sub bab sebelumnya.
2.7.1. Nested Query
Nested query merupakan suatu kondisi dimana sebuah query memiliki
query lain didalamnya. Ada kalanya klausa SELECT tidak diikuti dengan nama
kolom, melainkan dengan query lain. penulisan query pada beberapa kesempatan
klausa FROM tidak diikuti oleh nama tabel melainkan diikuti dengan
sebuah query lain. Adapun pada kasus lain salah satu ruas persamaan dalam klausa
WHERE berisi query lain. Kondisi seperti inilah yang disebut nested
query atau query di dalam query.

SELECT brand, harga FROM tb_barang


WHERE harga =(SELECT MAX(harga) FROM tb_barang);
Kode Program 2. 13 Contoh Nested Query
Kode Program 2.13 merupakan contoh Nested Query yang mana query
akan menampilkan hasil berupa data yang memiliki field harga yang paling tinggi.

2.7.2. UNION
Union merupakan operator yang digunakan untuk menggabungkan hasil
query, dengan ketentuan nama dan tipe kolom dari masing-masing yang datanya
akan ditampilkan harus sama.

SELECT barang.`nama`, barang.`harga`


FROM barang
WHERE id = 1
UNION
SELECT stock.`jumlah`, stock.`kapasitas`;
FROM stock
WHERE id = 1;
Kode Program 2. 14 Contoh penggunaan UNION
19

Kode Program 2.14 merupakan contoh union sintak yang digunakan untuk
menggabungkan dua buah query, outputnya berupa dua nilai yang di eksekusi oleh
statement select di antara UNION.

2.7.3. HAVING and WHERE


HAVING dan WHERE merupakan query yang hampir sama fungsinya.
Namun terdapat perbedaan dalam penggunaan tergantung dari kasus yang dihadapi
oleh program.

2.7.4. JOIN
JOIN merupakan query yang ada pada mysql. JOIN memiliki beberapa
macam tipe JOIN lainnya seperti INNER JOIN, LEFT JOIN dan RIGHT JOIN.
Penggunaan dan pemilihan tipe JOIN tergantung dari kasus yang dihadapi.

2.7.5. Fungsi Agregate


Fungsi agregat (aggregate) adalah fungsi yang menerima koleksi nilai dan
mengembalikan nilai tunggal sebagai hasilnya. Berikut fungsi-fungsi dalam query
aggregate.

2.8 Normalisasi
Normalisasi adalah proses pengelompokan atribut data yang membentuk
entitas sederhana, non redundan, fleksibel, dan mudah beradaptasi, sehingga dapat
dipastikan bahwa database yang dibuat berkualitas baik. Normalisasi dilakukan
sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah
relasi itu sudah baik, yaitu dapat dilakukan proses insert, update, delete, dan
modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data
dalam relasi tersebut. Pada tahapan – tahapan dalam proses normalisasi terdapat
tujuh normalisasi sebagai berikut.
2.8.1 Unnormalization Form
Bentuk yang tidak normal dimaksudkan suatu kumpulan data yang akan
diolah yang diperoleh dari format-format yang beraneka ragam, masih terdapat
duplikasi, bisa saja tidak sempurna atau tidak lengkap, dan sesuai fakta lapangan.
20

2.8.2 First Normal Form (1NF)


Normalisasi pertama merupakan tahap penghilangan beberapa group
elemen yang berulang agar menjadi satu harga tunggal yang berinteraksi di antara
setiap baris pada suatu tabel, dan setiap atribut harus mempunyai nilai data yang
atomic (bersifat atomic value). Atom adalah zat terkecil yang masih memiliki sifat
induknya, bila terpecah lagi maka ia tidak memiliki sifat induknya. Syarat normal
pertama (1NF) antara lain setiap data dibentuk dalam flat file, data dibentuk dalam
satu record demi satu record nilai dari field berupa “atomic value”. Tidak ada set
attribute yang berulang atau bernilai ganda. Telah ditentukannya primary key untuk
tabel/relasi tersebut. Satu atribut hanya memiliki satu pengertian.

2.8.3 Second Normal Form (2NF)


Relasi dikatakan sudah memenuhi bentuk normal kedua bila relasi tersebut
sudah memenuhi bentuk 1NF, dan atribut yang bukan key sudah tergantung penuh
terhadap key-nya.

2.8.4 Third Normal Form (3NF)


Suatu relasi dikatakan sudah memenuhi bentuk normal ketiga bila relasi
tersebut sudah memenuhi bentuk normal kedua dan atribut yang bukan key tidak
tergantung transitif terhadap key-nya. Tahap normalisasi ketiga kualitas tabel sudah
memiliki kualitas yang baik dan memenuhi standar normalisasi tabel yang baik,
namun masih ada beberapa tahap lagi untuk memenuhi perancangan database yang
lebih kompleks.

2.8.5 Boyce Codd Normal Form (BCNF)


Secara praktis tujuan analisis database cukup sampai pada 3NF, Akan
tetapi dalam kasus tertentu lebih baik bila dapat mencapat BCNF. Beberapa pemikir
suatu menyamakan antara 3NF dengan BCNF.

2.8.6 Fourth Normal Form (4NF)


Langkah ini dilakukan jika terdapat anomali pada (3NF). Bentuk normal
4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel
21

tersebut tidak boleh memiliki lebih dari sebuah multivalued attribute. Untuk setiap
multivalued attribute (MVD) juga harus merupakan Functional Dependenc.

2.8.7 Fifth Normal Form (5NF)


Langkah ini bertujuan untuk memecah relasi menjadi dua sehingga relasi
tersebut tidak digabungkan kembali menjadi satu dan jika terdapat anomali pada
Fifth Normal Form (5NF).

2.9 Tipe–tipe Tabel MySQL


MySQL memiliki 3 (tiga) tipe data utama, yaitu MyISAM, InnoDB dan
HEAP. Jika tidak menyebutkan tipe tabel saat membuat tabel, maka tipe tabel
otomatis akan dibuat sesuai konfigurasi default server MySQL. Berikut merupakan
tipe tabel pada MySQL beserta penjelasannya.
2.9.1. MyISAM
Tipe tabel MyISAM merupakan tipe tabel yang sederhana, stabil dan
mudah digunakan. Penyimpanan data sederhana yang tidak terlalu rumit dapat
menggunakan tipe tabel ini. Kelebihan utama MyISAM adalah kecepatan dan
kestabilannya.

2.9.2. InnoDB
InnoDB adalah jenis storage engine MySQL yang di gunakan untuk
menyimpan data yang sangat besar, lebih dari MyISAM. InnoDB juga punya
kekurangan yaitu membutuhkan resource hardware yang lebih tinggi.
Beberapa fasilitas yang bisa dilakukan oleh InnoDB diantaranya: Cascade
On Delete: fasilitas untuk melakukan delete ketika nilai pada reference di hapus.

2.9.3. Heap
Heap adalah sebuah binary tree dengan yang memiliki ketentuan
ketentuan. Ketentuan dari tipe tabel heap adalah sebagai berikut.
2.9.3.1. Tree harus complete binary tree:
Semua level tree mempunyai simpul maksimum kecuali pada level
terakhir. Level terakhir berisi node yang tersusun dari kiri ke kanan tanpa ada yang
dilewati.
22

2.9.3.2. Perbandingan nilai suatu node


Nilai node child-nya mempunyai ketentuan berdasarkan jenis HEAP,
diantaranya sebagai berikut.

2.9.3.3. Max Heap


Max Heap mempunyai ketentuan bahwa nilai suatu node lebih besar atau
sama dengan (>=) dari nilai childnya.
Contoh penggunaan HEAP adalah pada persoalan yang mempertahankan
antrian prioritas (priority queue). Dalam antrian prioritas, elemen yang dihapus
adalah elemen yang mempunyai prioritas terbesar (atau terkecil, tergantung
keperluan), dan elemen inilah yang selalu terletak di akar (root). Suatu heap dapat
sewaktu-waktu berubah baik itu penambahan elemen (insert) dan penghapusan
elemen (delete).

2.10 Stored Procedure


BAB III
METODE DAN PERANCANGAN

Pembahasan dalam bab III merupakan metode dan perancangan yang


digunakan dalam praktikum konsep basis data, menjelaskan tentang bagaimana
metode dan perancangan sistem database Sosial Media dan database Sekolah
Menengah Atas.
3.1. Waktu dan Tempat Penelitian
Tempat pembuatan praktikum basis data ini bertempat di kampus Program
Studi Teknologi Informasi Fakultas Teknik Universitas Udayana yang bertempat di
Bukit, Jimbaran.

3.2. Sumber Data


Sumber data yang digunakan pada laporan ini berupa sebuah data baru
yang dibuat sendiri (sumber data primer) dan sumber data yang diperoleh dari data
yang sudah ada (sumber data sekunder), data yang dikumpulkan dalam laporan
praktikum ini berasal dari berbagai sumber yaitu sebagai berikut.
3.2.1. Data Primer
Data primer berasal dari hasil diskusi atau berbagi pengalaman dan
pendapat dari diskusi kelompok.

3.2.2. Data Sekunder


Data sekunder berasal dari hasil publikasi berbagai sumber-sumber
(referensi) yang ada, baik dengan data-data yang ada di referensi buku-buku
maupun media lainnya.

3.3. Perancangan Basis Data


Perancangan basis data memerlukan beberapa tahapan diantaranya
pembuatan Entity Relationship Diagram, lalu masuk ke tahapan pembuatan
Physical Data Model.

23
24

3.3.1. Database Sosial Media


Database sosial media merupakan database yang bertujuan untuk
menampung sekaligus mendata semua kegiatan yang dilakukan user di sebuah
sosial media seperti postingan terbaru dari user maupun group.
3.3.1.1. ERD
ERD (Entity Relationship Diagram) merupakan tahapan awal yang
dilakukan dalam membuat suatu database. ERD dari database Sosial Media
ditunjukkan pada Gambar 3.1.

Gambar 3. 1 ERD Database Sosial Media


Gambar 3.1 merupakan ERD dari database Sosial Media dimana
merupakan tahapan awal dari perancangan suatu database.

3.3.1.2. PDM
PDM (Physical Data Model) adalah gambaran fisik secara detail dari suatu
basis data. PDM dari database Sosial Media ditunjukkan pada Gambar 3.2.
25

Gambar 3. 2 PDM Database Sosial Media


Gambar 3.2 merupakan PDM dari database Sosial Media yang merupakan
gambaran fisik dari database dan juga merupakan tahapan yang dilakukan setelah
pembuatan ERD. Penggambaran rancangan PDM memperlihatkan struktur
penyimpanan data yang benar pada basis data yang digunakan sesungguhnya.

3.3.1.3. Kamus Data


Kamus data adalah suatu kumpulan data elemen yang terstruktur dengan
pengertian yang konsisten dan sesuai dengan sistem, sehingga pengguna maupun
analis sistem memiliki pemahaman yang sama mengenai masukan, keluaran dan
komponen simpanan data. Berikut ini akan dibahas mengenai kamus data dari
setiap element yang tertera pada database db_sosmed.

Tabel 3. 1 Kamus Data Tabel tb_user


No Field Tipe Data Keterangan
1 id_user int Field id_user menggunakan
tipe data int, karena data yang
disimpan berupa bilangan bulat
dan id_user merupakan
primary key dari tabel
tb_jurusan.
2 username varchar Field username merupakan
field yang menyimpan data
berupa karakter, bisa huruf, bisa
simbol, maupun angka tetapi
tidak dapat dioperasikan yang
26

nama dari username pada tabel


tb_user.
3 pass varbinary Field pass merupakan field
yang menyimpan data berupa
karakter, bisa huruf, bisa
simbol, maupun angka tetapi
tidak dapat dioperasikan dan
case sensitive yang berfungsi
sebagai password dari
username pada tabel tb_user.
4 foto_profil varchar Field foto_profil merupakan
field yang menyimpan data link
gambar foto profil.
5 nama_user varchar Field nama_user merupakan
field yang menyimpan data
berupa karakter, bisa simbol,
maupun angka tetapi tidak
dapat dioperasikan yang
digunakan sebagai nama user
pada tabel tb_user.
6 jenis_kelamin enum Field jenis_grup merupakan
field yang menyimpan pilihan
yang dapat dipilih pada saat
input data.
7 alamat varchar Field alamat merupakan field
yang menyimpan data berupa
karakter, bisa simbol, maupun
angka tetapi tidak dapat
dioperasikan yang digunakan
sebagai alamat user pada tabel
tb_user.
8 email varchar Field email merupakan field
yang menyimpan data berupa
karakter, bisa simbol, maupun
angka tetapi tidak dapat
dioperasikan yang digunakan
sebagai email user pada tabel
tb_user.
9 no_telpn varchar Field no_telpon merupakan
field yang menyimpan data
berupa karakter, bisa simbol,
maupun angka tetapi tidak
dapat dioperasikan yang
digunakan sebagai no telepon
pada tabel tb_user.
10 tanggal_lahir date Field tanggal merupakan field
yang menyimpan data tanggal
27

yang digunakan sebagai tanggal


lahir user pada tabel tb_user.
Tabel 3.1 merupakan tabel yang menjelaskan isi dari tabel tb_user pada
database db_medsos. Kolom id_user menjadi primary key pada tabel tb_user.

Tabel 3. 2 Kamus Data Tabel tb_pertemanan


No Field Tipe Data Keterangan
1 id_pertemanan bigint Field id_pertemanan

menggunakan tipe data


bigint, karena data yang
disimpan berupa bilangan
bulat dan id_pertemanan

merupakan primary key dari


tabel tb_pertemanan.
2 id_user1 bigint Field id_user1 merupakan
field yang menampung data
dari id_user dan merupakan
foreign key.
3 id_user2 bigint Field id_user2 merupakan
field yang menampung data
dari id_user dan merupakan
foreign key.
4 status_pertemanan enum Field status_pertemanan

merupakan field yang


menyimpan pilihan yang
dapat dipilih pada saat input
data.
Tabel 3.2 merupakan tabel yang menjelaskan isi dari tabel tb_pertemanan
pada database db_medsos. Kolom id_pertemanan menjadi primary key pada tabel
tb_pertemanan.
28

Tabel 3. 3 Kamus Data Tabel tb_post


No Field Tipe Data Keterangan
1 id_post bigint Field id_post menggunakan
tipe data bigint, karena data
yang disimpan berupa
bilangan bulat dan id_post
merupakan primary key dari
tabel tb_post.
2 id_user bigint Field id_user merupakan
field yang menampung data
dari id_user dan merupakan
foreign key.
3 postingan text Field postingan merupakan
field yang menyimpan data
berupa karakter, bisa simbol,
maupun angka tetapi tidak
dapat dioperasikan yang
digunakan sebagai postingan
pada tb_post.
4 waktu_post datetime Field waktu_post merupakan
field yang menyimpan data
tanggal dan waktu yang
digunakan sebagai waktu post
user pada tabel tb_user.
Tabel 3.3 merupakan tabel yang menjelaskan isi dari tabel tb_post pada
database db_medsos. Kolom id_post menjadi primary key pada tabel tb_post.

Tabel 3. 4 Kamus Data Tabel tb_grup


No Field Tipe Data Keterangan
1 id_grup bigint Field id_grup menggunakan
tipe data bigint, karena data
yang disimpan berupa
bilangan bulat dan id_grup
merupakan primary key dari
tabel tb_grup.
2 nama_grup varchar Field nama_grup merupakan
field yang menyimpan data
berupa karakter, bisa simbol,
maupun angka tetapi tidak
dapat dioperasikan yang
digunakan sebagai nama grup
pada tabel tb_grup.
3 jenis_grup enum Field jenis_grup merupakan
field yang menyimpan pilihan
29

yang dapat dipilih pada saat


input data.
Tabel 3.4 merupakan tabel yang menjelaskan isi dari tabel tb_grup pada
database db_medsos. Kolom id_post menjadi primary key pada tabel tb_post.

Tabel 3. 5 Kamus Data Tabel tb_like


No Field Tipe Data Keterangan
1 id_like bigint Field id_like menggunakan
tipe data bigint, karena data
yang disimpan berupa
bilangan bulat dan id_like
merupakan primary key dari
tabel tb_like.
2 id_post bigint Field id_post merupakan
field yang menampung data
dari id_post dan merupakan
foreign key.
3 id_user bigint Field id_user merupakan
field yang menampung data
dari id_user dan merupakan
foreign key.
4 waktu_like datetime Field waktu_like merupakan
field yang menyimpan data
tanggal yang digunakan
sebagai tanggal dan waktu
like pada tabel tb_like.
Tabel 3.5 merupakan tabel yang menjelaskan isi dari tabel tb_like pada
database db_medsos. Kolom id_like menjadi primary key pada tabel tb_like.

Tabel 3. 6 Kamus Data tabel tb_comment.


No Field Tipe Data Keterangan
1 id_comment bigint Field id_comment
menggunakan tipe data
bigint, karena data yang
disimpan berupa bilangan
bulat dan id_comment
merupakan primary key dari
tabel tb_like.
2 id_post bigint Field id_post merupakan
field yang menampung data
dari id_post dan merupakan
foreign key.
3 id_user bigint Field id_user merupakan
field yang menampung data
30

dari id_user dan merupakan


foreign key.
4 komentar text Field komentar merupakan
field yang menyimpan data
berupa karakter, bisa simbol,
maupun angka tetapi tidak
dapat dioperasikan yang
digunakan sebagai komentar
pada tabel tb_comment.
5 waktu_komen datetime Field waktu_komen
merupakan field yang
menyimpan data tanggal yang
digunakan sebagai tanggal
dan waktu komen user pada
tabel tb_comment.
Tabel 3.6 merupakan tabel yang menjelaskan isi dari tabel tb_comment
pada database db_medsos. Kolom id_comment menjadi primary key pada tabel
tb_comment.

Tabel 3. 7 Kamus Data tabel tb_media.


No Field Tipe Data Keterangan
1 id_media bigint Field id_media
menggunakan tipe data
bigint, karena data yang
disimpan berupa bilangan
bulat dan id_media
merupakan primary key dari
tabel tb_like.
2 id_post bigint Field id_post merupakan
field yang menampung data
dari id_post dan merupakan
foreign key.
3 jenis_media enum Field jenis_media
merupakan field yang
menyimpan pilihan yang
dapat dipilih pada saat input
data.
4 path varchar Field path merupakan field
yang menyimpan data berupa
karakter, bisa simbol, maupun
angka tetapi tidak dapat
dioperasikan yang digunakan
sebagai link media.
Tabel 3.7 merupakan tabel yang menjelaskan isi dari tabel tb_media pada
database db_medsos. Kolom id_media menjadi primary key pada tabel tb_media.
31

Tabel 3. 8 Kamus Data Tabel tb_repost.


No Field Tipe Data Keterangan
1 id_repost bigint Field id_repost
menggunakan tipe data
bigint, karena data yang
disimpan berupa bilangan
bulat dan id_repost
merupakan primary key dari
tabel tb_repost.
2 id_user bigint Field id_user merupakan
field yang menampung data
dari id_user dan merupakan
foreign key.
3 id_post bigint Field id_post merupakan
field yang menampung data
dari id_post dan merupakan
foreign key.
4 waktu_repost datetime Field waktu_repost
merupakan field yang
menyimpan data berupa
tanggal dan waktu yang
digunakan senagai waktu
repost user.
Tabel 3.8 merupakan tabel yang menjelaskan isi dari tabel tb_repost
pada database db_medsos. Kolom id_repost menjadi primary key pada tabel
tb_repost.

Tabel 3. 9 Kamus Data Tabel tb_member.


No Field Tipe Data Keterangan
1 id_member bigint Field id_member
menggunakan tipe data
bigint, karena data yang
disimpan berupa bilangan
bulat dan id_member
merupakan primary key dari
tabel tb_member.
2 id_grup bigint Field id_grup merupakan
field yang menampung data
dari id_grup dan merupakan
foreign key.
3 id_user bigint Field id_user merupakan
field yang menampung data
dari id_user dan merupakan
foreign key.
32

Tabel 3.9 merupakan tabel yang menjelaskan isi dari tabel tb_member
pada database db_medsos. Kolom id_member menjadi primary key pada tabel
tb_member.

Tabel 3. 10 Kamus Data Tabel tb_post_grup.


No Field Tipe Data Keterangan
1 id_post_grup bigint Field id_post menggunakan
tipe data bigint, karena data
yang disimpan berupa
bilangan bulat dan id_post
merupakan primary key dari
tabel tb_post_grup.
2 id_grup bigint Field id_grup merupakan
field yang menampung data
dari id_grup dan merupakan
foreign key.
3 id_member bigint Field id_member merupakan
field yang menampung data
dari id_member dan
merupakan foreign key.
4 postingan text Field postingan merupakan
field yang menyimpan data
berupa karakter, bisa simbol,
maupun angka tetapi tidak
dapat dioperasikan yang
digunakan sebagai postingan
user pada group.
5 waktu_post datetime Field waktu_post merupakan
field yang menyimpan data
berupa tanggal dan yang
digunakan senagai waktu post
user.
Tabel 3.10 merupakan tabel yang menjelaskan isi dari tabel tb_post_grup
pada database db_medsos. Kolom id_post_grup menjadi primary key pada tabel
tb_post_grup.

Tabel 3. 11 Kamus Data Tabel tb_comment_grup.


No Field Tipe Data Keterangan
1 id_comment_grup bigint Field id_comment _grup
menggunakan tipe data
bigint, karena data yang
disimpan berupa bilangan
bulat dan id_comment _grup
merupakan primary key dari
tabel tb_comment_grup.
33

2 id_post_grup bigint Field id_post_grup


merupakan field yang
menampung data dari
id_post_grup dan
merupakan foreign key.
3 id_member bigint Field id_member merupakan
field yang menampung data
dari id_member dan
merupakan foreign key.
4 komentar text Field komentar merupakan
field yang menyimpan data
berupa karakter, bisa simbol,
maupun angka tetapi tidak
dapat dioperasikan yang
digunakan sebagai komentar
user pada grup.
5 waktu_komen datetime Field waktu_komen
merupakan field yang
menyimpan data berupa
tangal dan waktu senagai
waktu post comment user
Tabel 3.11 merupakan tabel yang menjelaskan isi dari tabel
tb_comment_grup pada database db_medsos. Kolom id_comment_grup menjadi
primary key pada tabel tb_comment.

Tabel 3. 12 Kamus Data tabel tb_like_grup.


No Field Tipe Data Keterangan
1 id_like_grup bigint Field id_like_grup
menggunakan tipe data
bigint, karena data yang
disimpan berupa bilangan
bulat dan id_like_grup
merupakan primary key dari
tabel tb_like_grup.
2 id_post_grup bigint Field id_post_grup
merupakan field yang
menampung data dari
id_post_grup dan
merupakan foreign key.
3 id_member bigint Field id_member merupakan
field yang menampung data
dari id_member dan
merupakan foreign key.
4 waktu_like Datetime Field waktu_like merupakan
field yang menyimpan data
34

berupa tanggal dan yang


digunakan senagai waktu like
user.
Tabel 3.12 merupakan tabel yang menjelaskan isi dari tabel tb_like_grup
pada database db_medsos. Kolom id_like_grup menjadi primary key pada tabel
tb_like_grup

Tabel 3. 13 Kamus Data Tabel tb_media_grup.


No Field Tipe Data Keterangan
1 id_media_grup bigint Field id_media_grup
menggunakan tipe data
bigint, karena data yang
disimpan berupa bilangan
bulat dan id_media_grup
merupakan primary key dari
tabel tb_media_grup.
2 id_post_grup bigint Field id_post_grup
merupakan field yang
menampung data dari
id_post_grup dan
merupakan foreign key.
3 jenis_media enum Field jenis_media
merupakan field yang
menyimpan pilihan yang
dapat dipilih pada saat input
data.
4 path varchar Field path merupakan field
yang menyimpan data berupa
karakter, bisa simbol, maupun
angka tetapi tidak dapat
dioperasikan yang digunakan
sebagai link media untuk
group.
Tabel 3.2 merupakan tabel yang menjelaskan isi dari tabel tb_media_grup
pada database db_medsos. Kolom id_media_grup menjadi primary key pada tabel
tb_media_grup.

3.3.2. Database Sekolah Menengah Atas


Database Sekolah Menengah Atas adalah database yang berfungsi untuk
menangani segala data baik jadwal, nilai siswa dan yang lainnya pada suatu SMA.
Berikut merupakan perancangan basis data dari database Sekolah Menengah Atas
dimana dimulai dari ERD lalu ke PDM dan juga dijelaskan kamus data yang
35

memuat elemen-elemen yang membentuk database Sekolah Menengah Atas


sebagai berikut.
3.3.2.1. ERD
ERD (Entity Relationship Diagram) merupakan tahapan awal yang
dilakukan dalam membuat suatu database. ERD dari database Sekolah Menengah
Atas ditunjukkan pada Gambar 3.3.

Gambar 3. 3 EDM dabatase sekolah menengah atas


Gambar 3.3 merupakan ERD dari database sekolah menengah atas dimana
merupakan tahapan awal dari perancangan suatu database.

3.3.2.2. PDM
PDM (Physical Data Model) adalah gambaran fisik secara detail dari suatu
basis data. PDM dari database SMA ditunjukkan pada Gambar 3.4.
36

Gambar 3. 4 PDM database sekolah menengah atas


Gambar 3.4 merupakan PDM dari database Sekolah Menengah Atas yang
merupakan gambaran fisik dari database dan juga merupakan tahapan yang
dilakukan setelah pembuatan ERD. Penggambaran rancangan PDM
memperlihatkan struktur penyimpanan data yang benar pada basis data yang
digunakan sesungguhnya.

3.3.2.3. Kamus Data


Kamus data adalah suatu kumpulan data elemen yang terstruktur dengan
pengertian yang konsisten dan sesuai dengan sistem, sehingga pengguna maupun
analis sistem memiliki pemahaman yang sama mengenai masukan, keluaran dan
komponen simpanan data. Berikut ini akan dibahas mengenai kamus data dari
setiap element yang tertera pada database db_sekolah_menengah_atas.

Tabel 3. 14 Kamus Data tabel tb_jurusan.


No Field Tipe Data Keterangan
1 id_jurusan int Field id_jurusan
menggunakan tipe data int,
karena data yang disimpan
berupa bilangan bulat dan
id_jurusan merupakan
primary key dari tabel
tb_jurusan.
2 nama_jurusan varchar Field nama_jurusan
merupakan field yang
37

menyimpan data berupa


karakter, bisa huruf, bisa
simbol, maupun angka tetapi
tidak dapat dioperasikan yang
berfungsi sebagai field nama
dari jurusan pada tabel
tb_jurusan.
Tabel 3.14 merupakan tabel yang menjelaskan isi dari tabel tb_jurusan
pada database db_sekolah_menengah_atas. Kolom id_jurusan menjadi
primary key pada tabel tb_jurusan.

Tabel 3. 15 Kamus Data tabel tb_periode.


No Field Tipe Data Keterangan
1 id_periode int Field id_periode merupakan
field yang menyimpan data
berupa int atau bilangan bulat
yang bersifat unik, id_periode
merupakan primary key dari
tb_periode.
2 smt enum Field smt merupakan field yang
menyimpan suatu pilihan
berupa karakter yang nantinya
akan ditampilkan pada
database.
3 th_ajaran int Field th_ajaran merupakan
field yang menyimpan bilangan
bulat yang di gunakan sebagai
tahun ajaran siswa.
Tabel 3.15 merupakan tabel yang menjelaskan isi dari tabel tb_perode
pada database db_sekolah_menengah_atas. Kolom id_periode menjadi
primary key pada tabel tb_periode.

Tabel 3. 16 Kamus Data tabel tb_mapel.


No Field Tipe Data Keterangan
1 id_mapel int Field id_mapel merupakan
field yang menyimpan data
berupa int atau bilangan bulat
yang bersifat unik, field
id_mapel merupakan primary
key dari tb_mapel
2 nama_mapel varchar Field nama_mapel merupakan
field yang menyimpan data
berupa karakter yang di
38

gunakan sebagai nama mata


pelajaran pada tabel tb_mapel.
Tabel 3.16 merupakan tabel yang menjelaskan isi dari tabel tb_mapel
pada database db_sekolah_menengah_atas. Kolom id_mapel menjadi primary
key pada tabel tb_mapel.

Tabel 3. 17 Kamus Data tabel tb_jam.


No Field Tipe Data Keterangan
1 id_jam int Field id_jam merupakan field
yang menyimpan data berupa
bilangan bulat yang bersifat
unik, dan field id_jam
merupakan primary key dari
tabel tb_jam.
2 mulai time Field mulai merupakan field
yang menyimpan data berupa
waktu atau time, yang
digunakan senagai waktu mulai
pelajaran.
3 berakhir time Field berakhir merupakan
field yang menyimpan data
berupa waktu atau time, yang
digunakan senagai waktu
berakhir pelajaran.
Tabel 3.17 merupakan tabel yang menjelaskan isi dari tabel tb_jam pada
database db_sekolah_menengah_atas. Kolom id_jam menjadi primary key pada
tabel tb_jam.

Tabel 3. 18 Kamus Data tabel tb_wali_siswa.


No Field Tipe Data Keterangan
1 id_wali_siswa int Field id_wali_siswa
merupakan field yang
menyimpan data berupa int atau
bilangan bulat yang unik dan
menjadi primary key dari tabel
tb_wali_kelas.
2 nama_wali_siswa varchar Field nama_wali_siswa
merupakan field yang
menyimpan data berupa
karakter dan digunakan sebagai
nama dari wali siswa pada tabel
tb_wali_siswa.
3 alamat varchar Field alamat merupakan field
yang menyimpan data berupa
39

karakter dan digunakan sebagai


alamat dari wali siswa pada
tabel tb_wali_siswa.
4 jenis_kelamin enum Field jenis_kelamin
merupakan field yang
menyimpan pilihan yang dapat
dipilih pada saat input data.
Tabel 3.18 merupakan tabel yang menjelaskan isi dari tabel
tb_wali_siswa pada database db_sekolah_menengah_atas. Kolom
id_wali_siswa menjadi primary key pada tabel tb_jurusan.

Tabel 3. 19 Kamus Data tabel tb_jadwal.


No. Field Tipe Data Keterangan
1 id_jadwal int Field id_wali_siswa
merupakan field yang
menyimpan data berupa int
atau bilangan bulat yang unik
dan menjadi primary key dari
tabel tb_wali_kelas.
2 id_jam int Field id_jam merupakan field
yang menampung data dari
id_jam dan merupakan foreign
key.
3 hari varchar Field hari merupakan field
yang menyimpan karakter yang
dapat di input data pada tabel
tb_jadwal.
Tabel 3.19 merupakan tabel yang menjelaskan isi dari tabel tb_jadwal
pada database db_sekolah_menengah_atas. Kolom id_jadwal menjadi primary
key pada tabel tb_jadwal.

Tabel 3. 20 Kamus Data tabel tb_guru.


No Field Tipe Data Keterangan
1 id_guru int Field id_guru merupakan field
yang menyimpan data berupa
int atau bilangan bulat yang
unik dan menjadi primary key
dari tabel tb_guru.
2 nama_guru varchar Field nama_guru merupakan
field yang menyimpan karakter
yang dapat di input data pada
tabel tb_guru.
40

3 jenis_kelamin enum Field jenis_kelamin


merupakan field yang
menyimpan karakter yang
dapat dipilih pada saat input
data.
4 alamat varchar Field alamat merupakan field
yang menyimpan karakter yang
dapat di input data pada tabel
tb_guru.
5 id_mapel int Field id_mapel merupakan
field yang menampung data
dari id_mapel dan merupakan
foreign key.
Tabel 3.20 merupakan tabel yang menjelaskan isi dari tabel tb_guru pada
database db_sekolah_menengah_atas. Kolom id_guru menjadi primary key
pada tabel tb_guru.

Tabel 3. 21 Kamus Data tabel tb_kelas.


No Field Tipe Data Keterangan
1 id_kelas int Field id_kelas merupakan
field yang menyimpan data
berupa int atau bilangan bulat
yang unik dan menjadi primary
key dari tabel tb_kelas.
2 nama_kelas varchar Field nama_kelas merupakan
field yang menyimpan karakter
yang dapat di input data pada
tabel tb_kelas.
3 id_jurusan int Field id_jurusan merupakan
field yang menampung data dari
id_jurusan dan merupakan
foreign key.
4 id_periode int Field id_periode merupakan
field yang menampung data dari
id_periode dan merupakan
foreign key.
Tabel 3.21 merupakan tabel yang menjelaskan isi dari tabel tb_kelas
pada database db_sekolah_menengah_atas. Kolom id_kelas menjadi primary
key pada tabel tb_kelas.
41

Tabel 3. 22 Kamus Data tabel tb_siswa.


No Field Tipe Data Keterangan
1 id_siswa int Field id_siswa merupakan
field yang menyimpan data
berupa int atau bilangan bulat
yang unik dan menjadi primary
key dari tabel tb_siswa.
2 nama varchar Field nama merupakan field
yang menyimpan karakter yang
dapat di input data pada tabel
tb_siswa.
3 jenis_kelamin enum Field jenis_kelamin
merupakan field yang
menyimpan karakter yang
dapat dipilih pada saat input
data.
4 alamat varchar Field alamat merupakan field
yang menyimpan karakter yang
dapat di input data pada tabel
tb_siswa.
Tabel 3.22 merupakan tabel yang menjelaskan isi dari tabel tb_siswa
pada database db_sekolah_menengah_atas. Kolom id_siswa menjadi primary
key pada tabel tb_siswa.

Tabel 3. 23 Kamus Data Tabel tb_team_teaching.


No Field Tipe Data Keterangan
1 id_team_teaching int Field id_team_teacing
merupakan field yang
menyimpan data berupa int
atau bilangan bulat yang unik
dan menjadi primary key dari
tabel tb_team_teaching.
2 id_guru int Field id_guru merupakan field
yang menampung data dari
id_guru dan merupakan
foreign key.
3 id_detail_jadwal int Field id_detail_jadwal
merupakan field yang
menampung data dari
id_detail_jadwal dan
merupakan foreign key.
Tabel 3.23 merupakan tabel yang menjelaskan isi dari tabel tb_kelas
pada database db_sekolah_menengah_atas. Kolom id_kelas menjadi primary
key pada tabel tb_kelas.
42

Tabel 3. 24 Kamus Data Tabel tb_wali_kelas.


No Field Tipe Data Keterangan
1 id_wali_kelas int Field id_wali_kelas
merupakan field yang
menyimpan data berupa int
atau bilangan bulat yang unik
dan menjadi primary key dari
tabel tb_wali_kelas.
2 id_guru int Field id_guru merupakan field
yang menampung data dari
id_guru dan merupakan
foreign key.
3 id_kelas int Field id_kelas merupakan
field yang menampung data
dari id_kelas dan merupakan
foreign key.
Tabel 3.24 merupakan tabel yang menjelaskan isi dari tabel
tb_wali_kelas pada database db_sekolah_menengah_atas. Kolom
id_wali_kelas menjadi primary key pada tabel tb_wali_kelas.

Tabel 3. 25 Kamus Data Tabel tb_nilai.


No Field Tipe Data Keterangan
1 id _nilai int Field id_nilai merupakan
field yang menyimpan data
berupa int atau bilangan bulat
yang unik dan menjadi primary
key dari tabel tb_nilai.

2 id_siswa int Field id_siswa merupakan


field yang menampung data
dari id_siswa dan merupakan
foreign key.
3 id_periode int Field id_periode merupakan
field yang menampung data
dari id_periode dan
merupakan foreign key.
Tabel 3.25 merupakan tabel yang menjelaskan isi dari tabel tb_nilai
pada database db_sekolah_menengah_atas. Kolom id_nilai menjadi primary
key pada tabel tb_nilai
43

Tabel 3. 26 Kamus Data Tabel tb_detail_nilai.


No Field Tipe Data Keterangan
1 id_detail_nilai int Field id_detail_nilai
merupakan field yang
menyimpan data berupa int
atau bilangan bulat yang unik
dan menjadi primary key dari
tabel tb_detail_nilai.
2 id_nilai int Field id_nilai merupakan
field yang menampung data
dari id_nilai dan merupakan
foreign key.
3 id_mapel int Field id_mapel merupakan
field yang menampung data
dari id_mapel dan merupakan
foreign key.
4 nilai tinyint Field nilai merupakan field
yang menyimpan bilangan
bulat namun lebih kecil dari
int yang dapat di input data
pada tabel tb_siswa.
Tabel 3.26 merupakan tabel yang menjelaskan isi dari tabel
tb_detail_nilai pada database db_sekolah_menengah_atas. Kolom
id_detail_nilai menjadi primary key pada tabel tb_detail_nilai

Tabel 3. 27 Kamus Data tabel tb_detail_jadwal.


No Field Tipe Data Keterangan
1 id_detail_jadwal int Field id_detail_jadwal
merupakan field yang
menyimpan data berupa int
atau bilangan bulat yang unik
dan menjadi primary key dari
tabel tb_detail_jadwal.
2 id_jadwal int Field id_jadwal merupakan
field yang menampung data
dari id_jadwal dan
merupakan foreign key.
3 id_kelas int Field id_kelas merupakan
field yang menampung data
dari id_kelas dan merupakan
foreign key.
Tabel 3.27 merupakan tabel yang menjelaskan isi dari tabel
tb_detail_jadwal pada database db_sekolah_menengah_atas. Kolom
id_detail_jadwal menjadi primary key pada tabel tb_detail_jadwal
44

Tabel 3. 28 Kamus Data tabel tb_detail_kelas.


No Field Tipe Data Keterangan
1 id_detail_kelas int Field id_detail_kelas
merupakan field yang
menyimpan data berupa int
atau bilangan bulat yang unik
dan menjadi primary key dari
tabel tb_detail_kelas.
2 id_kelas int Field id_kelas merupakan
field yang menampung data
dari id_kelas dan merupakan
foreign key.
3 id_siswa int Field id_siswa merupakan
field yang menampung data
dari id_siswa dan merupakan
foreign key.
Tabel 3.28 merupakan tabel yang menjelaskan isi dari tabel
tb_detail_kelas pada database db_sekolah_menengah_atas. Kolom
id_detail_kelas menjadi primary key pada tabel tb_detail_kelas

Tabel 3. 29 Kamus Data Tabel tb_detail_wali_siswa.


No Field Tipe Data Keterangan
1 id_detail_wali_s int Field
iswa id_detail_wali_siswa
merupakan field yang
menyimpan data berupa int
atau bilangan bulat yang
unik dan menjadi primary
key dari tabel
tb_detail_wali_siswa.
2 nama_wali_siswa varchar Field nama_wali_siswa
merupakan field yang
menyimpan karakter yang
dapat di input data pada
tabel
tb_detail_wali_siswa.
3 alamat varchar Field alamat merupakan
field yang menyimpan
karakter yang dapat di input
data pada tabel
tb_detail_wali_siswa.
4 jenis_kelamin enum Field jenis_kelamin
merupakan field yang
menyimpan karakter yang
45

dapat dipilih pada saat input


data.
Tabel 3.29 merupakan tabel yang menjelaskan isi dari tabel
tb_detail_wali_siswa pada database db_sekolah_menengah_atas. Kolom
id_ detail_wali_siswa menjadi primary key pada tabel tb_
detail_wali_siswa.
BAB IV
HASIL DAN PEMBAHASAN

BAB IV menjelaskan tentang hasil dan pembahasan pembuatan database


Sosial Media dan Sekolah Menengah Atas menggunakan DDL dengan Command
Prompt atau biasa disebut dengan CMD, pada BAB IV ini juga menjelaskan
mengenai penggunaan query DML dengan CMD.
4.1. Database Sosial Media
Database sosial media merupakan database yang bertujuan untuk
menampung sekaligus mendata semua kegiatan yang dilakukan user di sebuah
sosial media seperti postingan terbaru dari user maupun group.
4.1.1. Data Definition Language
DDL adalah singkatan dari Data Definition Language yaitu kumpulan
perintah pada SQL untuk menggambarkan desain dari database secara menyeluruh,
selain itu DDL (Data Definition Language) juga digunakan untuk membuat,
merubah maupun menghapus struktur atau definisi tipe data dari obyek yang ada
pada database. DDL (Data Definition Language) merupakan kumpulan perintah
SQL yang digunakan untuk membuat (create), mengubah (alter) dan menghapus
(drop) struktur dan definisi metadata dari objek-objek database. Objek-objek
database yang dimaksud pada SQL adalah database, table, view, index, procedure
(Stored Procedure), function, dan trigger.
4.1.1.1. Create
Create merupakan sintaks yang digunakan untuk membuat database
maupun objek-objek yang menjadi bagian dari database tersebut.

Gambar 4. 1 Create database db_medsos.

Gambar 4.1 merupakan screenshot query untuk pembuatan database


db_medsos. Selain untuk membuat database, sintaks create juga digunakan untuk
membuat objek–objek yang menjadi bagian dari database db_medsos yang salah
satunya adalah tabel.

46
47

Gambar 4. 2 Create Table tb_user.

Gambar 4.2 merupakan screenshot dari query untuk membuat tabel


tb_user di dalam database db_medsos berisi id_user sebagai primary key
yang bertipe data bigint dengan panjang 20, username yang bertipe data varchar
dengan panjang 50, pass bertipe data varbinary dengan panjang 50,
foto_profil yang bertipe data varchar dengan panjang 255, nama_user dengan
tipe data varchar dengan panjang 255, jenis_kelamin bertipe data enum dengan
pilihan laki-laki dan perempuan, alamat yang bertipe data varchar dengan panjang
50, email yang bertipe data varchar dengan panjang 50, no_telpon yang bertipe
data varchar dengan panjang 14, tgl_lahir dengan tipe data date.

Gambar 4. 3 Create Table tb_comment.

Gambar 4.3 merupakan screenshot query untuk membuat tabel


tb_comment di dalam database db_medsos dimana tabel tb_comment memuat
id_comment sebagai primary key yang bertipe data bigint dengan panjang 20,
48

id_post bertipe data bigint dengan panjang 20, id_user sebagai foreign key
bertipe data bigint dengan panjang 20, komentar dengan tipe data text,
waktu_komen dengan tipe data datetime.

Gambar 4. 4 Create Table tb_comment_grup.

Gambar 4.4 merupakan screenshot query untuk membuat tabel


tb_comment_grup di dalam database db_medsos dimana tabel tb_comment_grup
memuat id_comment_grup sebagai primary key yang bertipe data bigint dengan
panjang 20, id_post_grup sebagai foreign key bertipe data bigint dengan
panjang 20, id_member bertipe data bigint dengan panjang 20, komentar dengan
tipe data text mengisi komen pada grup.

Gambar 4. 5 Create Table tb_pertemanan.

Gambar 4.5 merupakan screenshot query untuk membuat tabel


tb_pertemanan di dalam database db_medsos dimana tabel tb_pertemanan
memuat id_pertemanan sebagai primary key yang bertipe data bigint dengan
panjang 20, id_user1 sebagai foreign key yang bertipe data bigint dengan
panjang 20, id_user2 sebagai foreign key yang bertipe data int dengan panjang
49

20, status_pertemanan dengan tipe data enum yang berisi pilihan berteman dan
request.

Gambar 4. 6 Create Table tb_grup.

Gambar 4.6 merupakan screenshot query untuk membuat tabel tb_grup


di dalam database db_medsos dimana tabel tb_grup memuat id_grup sebagai
primary key yang bertipe data bigint dengan panjang 20, nama_grup yang
bertipe data varchar dengan panjang 50, jenis_grup yang bertipe data enum
dengan pilihan terbuka atau tertutup.

Gambar 4. 7 Create Table tb_post.

Gambar 4.7 merupakan screenshot dari query untuk membuat tabel


tb_post di dalam database berisi id_post sebagai primary key yang bertipe data
bigint dengan panjang 20, id_user yang bertipe data bigint dengan panjang 20,

postingan yang bertipe data text, dan waktu_post yang bertipe data datetime.

Gambar 4. 8 Create Table tb_like.


50

Gambar 4.8 merupakan screenshot dari query untuk membuat tabel


tb_like di dalam database db_medsos berisi id_like sebagai primary key yang
bertipe data bigint dengan panjang 20, id_post yang bertipe data bigint dengan
panjang 20, id_user bertipe data bigint dengan panjang 20, waktu_like dengan
tipe data datetime.

Gambar 4. 9 Create Table tb_media.

Gambar 4.9 merupakan screenshot dari query untuk membuat tabel


tb_media di dalam database db_medsos berisi id_media sebagai primary key
yang bertipe data bigint dengan panjang 20, id_post sebagai foreign key yang
bertipe data bigint dengan panjang 20, jenis_media bertipe data enum dengan
pilihan tulisan, gambar atau video, path yang bertipe data varchar dengan panjang
255.

Gambar 4. 10 Create Table tb_media_grup.

Gambar 4.10 merupakan screenshot dari query untuk membuat tabel


tb_media_grup di dalam database db_medsos berisi id_media_grup sebagai
primary key yang bertipe data bigint dengan panjang 20, id_post_grup sebagai
foreign key yang bertipe data bigint dengan panjang 20, jenis_media bertipe
data enum dengan pilihan tulisan, gambar atau video, path yang bertipe data
varchar dengan panjang 255.
51

Gambar 4. 11 Create Table tb_member.

Gambar 4.11 merupakan screenshot dari query untuk membuat tabel


tb_member di dalam database db_medsos berisi id_member sebagai primary key
yang bertipe data bigint dengan panjang 20, id_grup yang bertipe data bigint
dengan panjang 20, id_user sebagai foreign key bertipe data bigint dengan
panjang 20, id_user dan id_grup sebagai foreign key yang bertipe data
bigint dengan panjang 20.

Gambar 4. 12 Create Table tb_post.

Gambar 4.12 merupakan screenshot dari query untuk membuat tabel


tb_post di dalam database db_medsos berisi id_post sebagai primary key
yang bertipe data bigint dengan panjang 20, id_user sebagai foreign key yang
bertipe data bigint dengan panjang 20, postingan yang bertipe data text,
waktu_post bertipe data datetime.

Gambar 4. 13 Create Table tb_post_grup.

Gambar 4.13 merupakan screenshot dari query untuk membuat tabel


tb_post_grup di dalam database db_medsos berisi id_post_grup sebagai
primary key yang bertipe data bigint dengan panjang 20, id_grup sebagai
52

foreign key yang bertipe data bigint dengan panjang 20, id_member bertipe
data bigint dengan panjang 20, postingan yang bertipe data text, waktu_post
bertipe data datetime.

Gambar 4. 14 Create Table tb_repost.

Gambar 4.14 merupakan screenshot dari query untuk membuat tabel


tb_repost di dalam database db_medsos berisi id_repost sebagai primary
key yang bertipe data bigint dengan panjang 20, id_post sebagai foreign key
yang bertipe data bigint dengan panjang 20, id_user sebagai foreign key yang
bertipe data bigint dengan panjang 20, waktu_repost bertipe data datetime.

4.1.1.2. Alter
Perintah alter merupakan salah satu perintah DDL yang terdapat pada
MySQL. Perintah ini berguna untuk mengubah struktur yang terdapat pada tabel.
Setelah pembuatan tabel-tabel dan database, jika ada beberapa hal yang terlewatkan
atau ada beberapa hal yang ingin di ubah.

Gambar 4. 15 Alter Add Tabel tb_user.


53

Gambar 4.15 merupakan screenshot dari query untuk menambah isi dari
tabel tb_user di dalam database db_medsos dimana tabel tb_user menambah data
yaitu data tanggal_join yang bertipe data DATE.

Gambar 4. 16 Alter Change Tabel tb_user.


Gambar 4.16 merupakan screenshot dari query untuk merubah isi dari tabel
tb_user di dalam database db_medsos dimana tabel tb_user mengubah data yaitu

data no_telpon yang bertipe data varchar dengan panjang 14 diubah menjadi
phone dengan tipe data tetap yaitu varchar dengan panjang 14.

Gambar 4. 17 Alter Rename Tabel tb_user.

Gambar 4.17 merupakan screenshot dari query untuk me-rename isi dari
tabel tb_pertemanan di dalam database db_medsos dimana tabel tb_pertemanan
me-rename menjadi tb_friend.
54

Gambar 4. 18 Alter Drop Tabel tb_user.

Gambar 4.18 merupakan screenshot dari query untuk drop isi dari tabel
tb_user di dalam database db_medsos dimana column di dalam tb_user yaitu
column tanggal_join.

4.1.1.3. Drop
Perintah drop merupakan salah satu perintah DDL yang terdapat pada
MySQL. Sintaks drop dapat digunakan jika ingin menghapus tabel maupun
database yang telah dibuat.

Gambar 4. 19 Drop Database db_medsos.

Gambar 4.19 merupakan screenshot dari query untuk menghapus database


db_medsos.
55

Gambar 4. 20 Drop Tabel tb_repost.

Gambar 4.20 merupakan screenshot dari query untuk menghapus tabel


tb_repost pada database db_medsos.

4.1.2. Data Manipulation Language


DML (Data Manipulation Language) merupakan bahasa basis data yang
digunakan untuk melakukan modifikasi dan pengambilan data pada suatu basis
data. Sintaks-sintaks yang digunakan untuk memasukan, meng-update, serta
menghapus data-data siswa dari database db_medsos adalah sebagai berikut.
4.1.2.1. Insert
Insert merupakan sintaks untuk menambah data pada sebuah database,
dimana pada database db_medsos, insert digunakan untuk memasukan data pada
tabel-tabel database db_medsos.

Gambar 4. 21 Insert Data ke dalam tb_grup.


56

Gambar 4.21 merupakan screenshot dari query untuk menambahkan data


pada kolom id_group, nama_group, dengan values (1, kelompok1, terbuka),
(2, kelompok2, tertutup), (3, kelompok anti sosial, tertutup), (4, grup
apa kaden, terbuka), (5, kumpulan nak analog, terbuka), (6, ML best
moba, tertutup).

Gambar 4. 22 Insert Data ke dalam tb_user.

Gambar 4.22 merupakan screenshot dari query untuk menambahkan data


pada kolom id_user, username, password, email, nama_user, tgl_lahir,
gender, foto_profil dengan values (1, gusade01, gusade09, www, gusade,
laki-laki, jalan tengah, gusadetaruna04@gmail.com, 081234805156,
1998-08-02), (2, angga1, angga1, http, angga, laki-laki, jalan kiri,
angga@gmail.com, 081234567891, 2018-03-13), (3, dwik1, dwik1, https,
dwik, laki-laki, jalan kanan, dwik@gmail.com, 0812346277192, 2018-
03-02), (4, sintia1, sintia1, www, sintia, perempuan, jalan belakang,

sintia@gmail.com, 0831299210291, 2018-03-01), (5, nila1, nila1, http,


nilla, laki-laki, jalan depan, nila@gmail.com, 0833921992191, 2018-
03-15), (6, hamim1, hamim1, https, hamim, laki-laki, jalanjalan,

hamim@gmail.com, 0844391992191).

Gambar 4. 23 Insert Data ke dalam tb_post_grup.

Gambar 4.23 merupakan screenshot dari query untuk menambahkan data


pada tb_post_grup (1,1,1,‘ini postingan grup pertama’, ’2018-03-13’),
(2,4,2,‘halo semuaaa!!!!!’, ’2018-03-06’), (3,4,2,‘hallo lagi
57

semua!!!!!’, ’2018-03-07’), (4,5,5,‘selamat datang bos!’, ’2018-03-

20’)

Gambar 4. 24 Insert Data ke dalam tb_member.

Gambar 4.24 merupakan screenshot hasil execute dari query untuk


menambahkan data, dan pada gambar telah terlihat hasil data yang telah
ditambahkan, yaitu pada tb_member (1,1,1), (2,1,3), (3,1,2), (4,2,2), (5,2,4),
(6,3,5), (7,3,6), (8,3,1), (9,5,1), (10,5,2), (11,5,5), (12,4,4), (13,4,6),
(14,6,4), (15,6,3).

Gambar 4. 25 Insert Data ke dalam tb_media.

Gambar 4.25 merupakan screenshot hasil execute dari query untuk


menambahkan data, dan pada gambar telah terlihat hasil data yang telah
ditambahkan, yaitu pada tb_media
(1,1,'gambar','www.sosmed.com/gambarnaga'),
(3,2,'video','www.sosmed.com/videolucu'),
(4,3,'gambar','www.sosmed.com/gambaran'),
(5,4,'video','www.sosmed.com/videokeren'),
58

(6,5,'gambar','www.sosmed.com/gambarkuda'),
(7,6,'video','www.sosmed.com/videolawas');

Gambar 4. 26 Insert Data ke dalam tb_comment.

Gambar 4.26 merupakan screenshot hasil execute dari query untuk


menambahkan data, dan pada gambar telah terlihat hasil data yang telah
ditambahkan, yaitu pada tb_media
(1,1,'gambar','www.sosmed.com/gambarnaga'),
(3,2,'video','www.sosmed.com/videolucu'),
(4,3,'gambar','www.sosmed.com/gambaran'),
(5,4,'video','www.sosmed.com/videokeren'),
(6,5,'gambar','www.sosmed.com/gambarkuda'),
(7,6,'video','www.sosmed.com/videolawas');

4.1.2.2. Update
Update merupakan sebuah sintaks yang digunakan untuk mengubah atau
memperbaharui data yang telah dimasukan (insert), dimana salah satu contoh
memperbaharui data dalam salah satu tabel dari database db_medsos dapat dilihat
pada Gambar 4.26.

Gambar 4. 27 Update Tabel tb_grup.


59

Gambar 4.27 merupakan screenshot dari query untuk memperbarui data


nama_grup. Data yang sebelumnya memiliki nama kelompok1 menjadi Grup
Update.

Gambar 4. 28 Update Tabel tb_post_grup.

Gambar 4.28 merupakan screenshot dari query untuk membuat data


postingan. Data postingan telah diubah menjadi judul_baru. Penggunaan update
tb_user dapat dilihat pada Gambar 4.29.

Gambar 4. 29 Update Tabel tb_user.

Gambar 4.29 merupakan screenshot dari query untuk memperbarui data


nama_user dan jenis_kelamin. Data yang sebelumnya memiliki nama_user
Arisna dengan jenis kelamin Laki-laki telah diubah menjadi nama_user Lady
dengan jenis kelamin Perempuan.

4.1.2.3. Select
Select merupakan sebuah sintaks yang digunakan untuk menampilkan data
dalam tabel, adapun contoh penerapan sintaks select yang menampilkan semua data
pada salah satu tabel dari database db_medsos yang dimana dapat dilihat pada
Gambar 4.30.
60

Gambar 4. 30 Select Tabel tb_user.

Gambar 4.30 merupakan screenshot dari query select untuk menampilkan


data id_grup, nama_grup, dan jenis_grup pada tabel tb_user dalam database
db_medsos.

Gambar 4. 31 Select Tabel tb_user.

Gambar 4.31 merupakan screenshot dari query select untuk menampilkan


data pada tabel tb_user berupa id_user, username, pass, foto_profil, nama_user,
jenis_kelamin, alamat, email, no_telpon dan tanggal_lahir berdasarkan
jenis_kelamin perempuan. Pada kasus ini, sintaks select yang digunakan adalah
untuk menampilkan data dengan jeniskelamin=perempuan.

Gambar 4. 32 Select Tabel tb_user.

Gambar 4.32 merupakan screenshot dari query select untuk menampilkan


data pada tabel tb_user berupa nama user, email dan jenis kelamin. Pada kasus
ini, sintaks select yang digunakan adalah untuk menampilkan data dengan
nama_user, email dan jenis_kelamin.
61

4.1.2.4. Delete
Perintah delete merupakan merupakan salah satu perintah DML yang
terdapat pada MySQL. Perintah ini berguna untuk menghapus data yang ada pada
tabel database, dimana contoh menghapus data dalam salah satu tabel dapat dilihat
pada Gambar 4.33.

Gambar 4. 33 Delete Tabel tb_post_grup.

Gambar 4.33 merupakan perintah yang digunakan untuk menghapus data


dalam suatu kolom di tabel. Berdasarkan Gambaar 4.21 untuk menghapus data dari
tb_post_grup dengan id_post_grup = “2”.

Gambar 4. 34 Delete Tabel tb_post_grup.

Gambar 4.34 merupakan perintah yang digunakan untuk menghapus data


dalam suatu kolom di tabel. Berdasarkan Gambar 4.33 untuk menghapus data dari
tb_post_grup dengan id_post_grup= “1”.

Gambar 4. 35 Delete Tabel tb_user.

Gambar 4.35 merupakan perintah yang digunakan untuk menghapus data


dalam suatu kolom di tabel. Berdasarkan Gambar 4.34 untuk menghapus data dari
tb_media dengan id_media = “1”.
62

4.1.3. Report
Report merupakan implementasi dari rancangan PDM yang telah dibuat
kedalam program database serta semua fitur-fitur yang telah dirancang pada soal
tugas Praktikum Basis Data Modul 2.
4.1.3.1. Report Pertama
Report pertama merupakan report yang menampilkan news feed setiap
user baik untuk postingannya sendiri maupun postingan temannya. Query report
pertama dapat dilihat pada Kode Program 4.1.

SELECT u1.`nama_user` AS UserSendiri,


n1.`postingan`
FROM tb_pertemanan
INNER JOIN tb_user u1 ON tb_pertemanan.`id_user1` = u1.`id_user`
INNER JOIN tb_post n1 ON tb_pertemanan.`id_user1` = n1.`id_user`
INNER JOIN tb_user u2 ON tb_pertemanan.`id_user2` = u2.`id_user`
WHERE tb_pertemanan.`status_pertemanan`= "berteman" AND
u1.`id_user`='1'

UNION
SELECT "Teman User","Postingan Teman"
UNION

SELECT u2.`nama_user`,
n2.`postingan`
FROM tb_pertemanan
INNER JOIN tb_user u1 ON tb_pertemanan.`id_user1` = u1.`id_user`
INNER JOIN tb_user u2 ON tb_pertemanan.`id_user2` = u2.`id_user`
INNER JOIN tb_post n2 ON tb_pertemanan.`id_user2` = n2.`id_user`
WHERE tb_pertemanan.`status_pertemanan`= "berteman" AND
u1.`id_user`='1'
Kode Program 4. 1 Query Report Pertama.
Kode Program 4.1 merupakan query dari report pertama yang
menampilkan news feed setiap user, baik postingannya sendiri maupun postingan
dari temannya. Adapun hasil eksekusi query report ini dapat dilihat pada Gambar
4.36 sebagai berikut.

Gambar 4. 36 Result Query Pertama.


63

Gambar 4.36 merupakan hasil dari query report pertama yang


menampilkan news feed setiap user yang memuat id_post, isi_post,
tgl_post dan nama_user, baik pada postingan sendiri maupun postingan dari
temannya (user lain).

4.1.3.2. Report Kedua


Report kedua merupakan report yang menampilkan daftar user yang
menyukai dan mengkomentari postingan news feed tertentu. Query report kedua
dapat dilihat pada Kode Program 4.2.

SELECT tb_post.postingan,tb_comment.komentar, tb_user.nama_user AS


YangKomen FROM tb_post
INNER JOIN tb_comment ON tb_post.id_post = tb_comment.id_post
INNER JOIN tb_user ON tb_user.id_user = tb_comment.id_user
UNION
SELECT "Liked Post","","Likers"
UNION
SELECT tb_post.postingan,"",tb_user.nama_user FROM tb_post
INNER JOIN tb_like ON tb_post.id_post = tb_like.id_post
INNER JOIN tb_user ON tb_user.id_user = tb_like.id_user
Kode Program 4. 2 Query Report Kedua.
Kode Program 4.2 merupakan query dari report kedua yang menampilkan
daftar user yang menyukai dan mengkomentari postingan news feed tertentu.
Adapun hasil eksekusi query report ini dapat dilihat pada Gambar 4.37.

Gambar 4. 37 Result Query Kedua.

Gambar 4.37 merupakan hasil dari query report kedua yang menampilkan
daftar user yang menyukai dan mengkomentari postingan/news feed tertentu
dengan muatan kolom berisikan uploader, judul_post, responder,
like/komentar, isi_komentar.
64

4.1.3.3. Report Ketiga


Report ketiga merupakan report yang menampilkan daftar aktifitas dalam
group. Query report ketiga dapat dilihat pada Kode Program 4.3.

SELECT tb_post_grup.id_post_grup, tb_grup.`nama_grup`,


tb_post_grup.postingan,tb_post_grup.waktu_post,
tb_user.nama_user AS "Yang posting"
FROM tb_post_grup
INNER JOIN tb_member ON tb_member.id_member =
tb_post_grup.id_member
INNER JOIN tb_user ON tb_user.id_user = tb_member.id_user
INNER JOIN tb_grup ON tb_grup.`id_grup`=tb_post_grup.`id_grup`
Kode Program 4. 3 Query Report Ketiga.
Kode Program 4.3 merupakan query dari report ketiga yang menampilkan
daftar aktivitas setiap user di dalam sebuah grup. Adapun hasil eksekusi query
report ini dapat dilihat pada Gambar 4.38.

Gambar 4. 38 Result Query Ketiga.

Gambar 4.38 merupakan hasil dari query report ketiga yang menampilkan
daftar aktivitas setiap user di dalam sebuah grup dengan muatan kolom berisi
id_group,nama_group, nama_grup, postingan, tgl_post_group, dan Yang
Posting.

4.1.3.4. Report Keempat


Report keempat merupakan report yang menampilkan galeri / daftar
konten-konten yang telah diupload untuk news feed. Query report keempat dapat
dilihat pada Kode Program 4.4.

SELECT tb_post.`id_post`,
tb_user.`nama_user` AS YangPosting,
COUNT(id_media) AS gambar
FROM tb_media
INNER JOIN tb_post ON tb_media.`id_post` = tb_post.`id_post`
INNER JOIN tb_user ON tb_post.`id_user` = tb_user.`id_user`
WHERE tb_media.`jenis_media`='gambar'
GROUP BY (tb_post.`id_post`)
65

UNION
SELECT "id_post","YangPosting","Video"
UNION

SELECT tb_post.`id_post`,
tb_user.`nama_user`,
COUNT(id_media)
FROM tb_media
INNER JOIN tb_post ON tb_media.`id_post` = tb_post.`id_post`
INNER JOIN tb_user ON tb_post.`id_user` = tb_user.`id_user`
WHERE tb_media.`jenis_media`='video'
GROUP BY (tb_post.`id_post`)
Kode Program 4. 4 Query Report Keempat.
Kode Program 4.4 merupakan query dari report keempat yang
menampilkan daftar konten – konten yang telah diupload untuk news feed. Adapun
hasil eksekusi query report ini dapat dilihat pada Gambar 4.39.

Gambar 4. 39 Result Query Keempat.

Gambar 4.39 Merupakan hasil dari query report keempat yang


menampilkan menampilkan daftar konten – konten yang telah diupload untuk news
feed dengan muatan kolom berisi id_post, uploader, tanggal dan
postingan.

4.1.3.5. Report Kelima


Report kelima merupakan report yang menampilkan daftar teman untuk
masing-masing akun/user. Query report kelima dapat dilihat pada Kode Program
4.5.

SELECT a.`id_user`,a.nama_user,b.`id_user`,b.nama_user AS
"teman"
FROM tb_pertemanan
INNER JOIN tb_user a ON tb_pertemanan.`id_user1` = a.`id_user`
INNER JOIN tb_user b ON tb_pertemanan.`id_user2` = b.`id_user`
WHERE tb_pertemanan.`status_pertemanan`="berteman" AND
a.`id_user`='1'
66

Kode Program 4. 5 Query Report Kelima.


Kode Program 4.5 merupakan query dari report kelima. Query Kode
Program 4.5 menampilkan daftar teman dari masing–masing user. Hasil eksekusi
query report ini dapat dilihat pada Gambar 4.40.

Gambar 4. 40 Result Query Kelima


Gambar 4.40 merupakan hasil dari query report kelima yang menampilkan
daftar teman dari masing-masing user dengan muatan kolom berisi nama_user dan
teman.

4.2. Database Sekolah Menengah Atas


Database Sekolah Menengah Atas merupakan database yang bertujuan
untuk menampung sekaligus mendata semua jadwal, kelas, siswa, wali, maupun
guru yang di kelola dalam bentuk database dengan tujuan mempermudah pekerjaan
pada staff maupun

4.2.1. Data Definition Language


DDL adalah singkatan dari Data Definition Language yaitu kumpulan
perintah pada SQL untuk menggambarkan desain dari database secara menyeluruh,
selain itu DDL (Data Definition Language) juga digunakan untuk membuat,
merubah maupun menghapus struktur atau definisi tipe data dari obyek yang ada
pada database. DDL (Data Definition Language) merupakan kumpulan perintah
SQL yang digunakan untuk membuat (create), mengubah (alter) dan menghapus
(drop) struktur dan definisi metadata dari objek-objek database. Objek-objek
database yang dimaksud pada SQL adalah database, table, view, index, procedure
(Stored Procedure), function, dan trigger.
4.2.1.1. Create
Create merupakan sintaks yang digunakan untuk membuat database
maupun objek-objek yang menjadi bagian dari database tersebut
67

Gambar 4. 41 Create Database db_sekolah_menengah_atas


Gambar 4.41 merupakan screenshot query untuk pembuatan database
db_sekolah_menengah_atas. Selain untuk membuat database, sintaks create juga

digunakan untuk membuat objek–objek yang menjadi bagian dari database


db_sekolah_menengah_atas yang salah satunya adalah tabel.

Gambar 4. 42 Create Table tb_wali_siswa


Gambar 4.42 merupakan screenshot dari query untuk membuat tabel
tb_wali_siswa di dalam database db_sekolah_menengah_atas berisi
id_wali_siswa sebagai primary key yang bertipe data int dengan panjang 11,
nama_wali_siswa yang bertipe data varchar dengan panjang 50, alamat bertipe
data varchar dengan panjang 50, jenis_kelamin yang bertipe data enum yang
berisi pilihan laki-laki dan perempuan.

Gambar 4. 43 Create Table tb_siswa


Gambar 4.43 merupakan screenshot query untuk membuat tabel tb_siswa
di dalam database db_sekolah_menengah_atas dimana tabel tb_siswa memuat
id_siswa sebagai primary key yang bertipe data int dengan panjang 11,
nama_siswa bertipe data varchar dengan panjang 50, jenis_kelamin bertipe data

enum dengan pilihan laki-laki dan perempuan, alamat beripe data varchar dengan
pajang 50.
68

Gambar 4. 44 Create Table tb_periode


Gambar 4.44 merupakan screenshot query untuk membuat tabel
tb_periode di dalam database db_sekolah_menengah_atas dimana tabel
tb_periode memuat id_periode sebagai primary key yang bertipe data int
dengan panjang 11, smt bertipe data enum dengan pilihan Ganjil dan Genap,
tahun_ajaran bertipe data int dengan panjang 11.

Gambar 4. 45 Create Table tb_mapel


Gambar 4.45 merupakan screenshot query untuk membuat tabel tb_mapel
di dalam database db_sekolah_menengah_atas dimana tabel tb_mapel memuat
id_mapel sebagai primary key yang bertipe data int dengan panjang 11,
nama_mapel bertipe data varchar dengan panjang 25.

Gambar 4. 46 Create Table tb_jam


Gambar 4.46 merupakan screenshot query untuk membuat tabel tb_jam
di dalam database db_sekolah_menengah_atas dimana tabel tb_jam memuat
id_jam sebagai primary key yang bertipe data int dengan panjang 11, mulai
yang bertipe data time, berakhir yang bertipe data time.
69

Gambar 4. 47 Create Table tb_detail_jadwal


Gambar 4.47 merupakan screenshot dari query untuk membuat tabel
tb_detail_jadwal di dalam database berisi id_detail_jadwal sebagai
primary key yang bertipe data int dengan panjang 11, id_jadwal yang bertipe
data int dengan panjang 11,id_kelas yang bertipe data int dengan panjang 11,
dan id_kelas yang bertipe data int dengan panjang 11.

Gambar 4. 48 Create Table tb_detail_kelas


Gambar 4.48 merupakan screenshot dari query untuk membuat tabel
tb_detail_kelas di dalam database db_sekolah_menengah_atas berisi
id_detai_kelas sebagai primary key yang bertipe data int dengan panjang 11,
id_kelas yang bertipe data int dengan panjang 11, dan id_siswa bertipe data int

dengan panjang 11.

Gambar 4. 49 Create Table tb_jurusan


Gambar 4.49 merupakan screenshot dari query untuk membuat tabel
tb_jurusan di dalam database db_sekolah_menengah_atas berisi id_jurusan
70

sebagai primary key yang bertipe data int dengan panjang 11, dan nama_jurusan
bertipe data varchar dengan panjang 20.

Gambar 4. 50 Create Table tb_detail_nilai


Gambar 4.50 merupakan screenshot dari query untuk membuat tabel
tb_detail_nilai di dalam database db_sekolah_menengah_atas berisi
id_detail_nilai sebagai primary key yang bertipe data int dengan panjang 11,

id_nilai bertipe data int dengan panjang 11, jenis_mapel yang bertipe data int
dengan panjang 11, dan nilai yang bertipe data tinyint dengan panjang 4.

Gambar 4. 51 Create Table tb_detail_wali_siswa


Gambar 4.51 merupakan screenshot dari query untuk membuat tabel
tb_detail_wali_siswa di dalam database db_sekolah_menengah_atas berisi
id_detai_wali_siswa sebagai primary key yang bertipe data int dengan
panjang 11, id_siswa yang bertipe data int dengan panjang 11, dan
id_wali_siswa yang bertipe data int dengan panjang 11.
71

Gambar 4. 52 Create Table tb_guru


Gambar 4.52 merupakan screenshot dari query untuk membuat tabel
tb_guru di dalam database db_sekola_menengah_atas berisi id_guru sebagai
primary key yang bertipe data int dengan panjang 11, nama_guru yang bertipe
data varchar dengan panjang 50, jenis_kelamin dengan tipe data enum dengan
pilihan laki-laki dan perempuan, alamat bertipe data varchar dengan panjang 50,
id_mapel sebagai foreign key yang bertipe data int dengan panjang 11.

Gambar 4. 53 Create Table tb_jadwal


Gambar 4.53 merupakan screenshot dari query untuk membuat tabel
tb_jadwal di dalam database db_sekolah_menengah_atas berisi id_jadwal
sebagai primary key yang bertipe data int dengan panjang 11, id_hari sebagai
foreign key yang bertipe data int dengan panjang 11, hari bertipe data varchar
dengan panjang 15.
72

Gambar 4. 54 Create Table tb_kelas


Gambar 4.54 merupakan screenshot dari query untuk membuat tabel
tb_kelas di dalam database db_sekolah_menengah_atas berisi id_kelas

sebagai primary key yang bertipe data int dengan panjang 11, nama_kelas
bertipe data varchar dengan panjang 2, id_jurusan yang bertipe data int dengan
panjang 11, id_periode yang bertipe data int dengan panjang 11.

Gambar 4. 55 Create Table tb_nilai


Gambar 4.55 merupakan screenshot dari query untuk membuat tabel
tb_nilai di dalam database db_sekolah_menengah_atas berisi id_nilai

sebagai primary key yang bertipe data int dengan panjang 11, id_periode
bertipe data int dengan panjang 11, dan id_periode yang bertipe data int
dengan panjang 11.
73

Gambar 4. 56 Create Table tb_team_teaching


Gambar 4.56 merupakan screenshot dari query untuk membuat tabel
tb_team_teaching di dalam database db_sekolah_menengah_atas berisi
id_team_teaching sebagai primary key yang bertipe data int dengan panjang
11, id_guru bertipe data int dengan panjang 11, dan id_detail_jadwal yang
bertipe data int dengan panjang 11.

Gambar 4. 57 Create Table tb_wali_kelas


Gambar 4.57 merupakan screenshot dari query untuk membuat tabel
tb_wali_kelas di dalam database db_sekolah_menengah_atas berisi
id_wali_kelas sebagai primary key yang bertipe data int dengan panjang 11,
id_guru bertipe data int dengan panjang 11, dan id_kelas yang bertipe data
int dengan panjang 11.

4.2.1.2. Alter
Perintah alter merupakan salah satu perintah DDL yang terdapat pada
MySQL. Perintah ini berguna untuk mengubah struktur yang terdapat pada tabel.
Setelah pembuatan tabel-tabel dan database, jika ada beberapa hal yang terlewatkan
74

atau ada beberapa hal yang ingin di ubah, dapat menggunakan sintaks alter.
Penerapan sintakss alter dapat dilihat pada Gambar 4.58.

Gambar 4. 58 Alter Add Tabel tb_user


Gambar 4.58 merupakan screenshot dari query untuk menambah isi dari
tabel tb_siswa di dalam database db_sekolah_menengah_atas dimana tabel
tb_siswa menambah data yaitu data email yang bertipe data varchar dengan
panjang 50.

Gambar 4.59 Alter Change Tabel tb_user


Gambar 4.59 merupakan screenshot dari query untuk menambah isi dari
tabel tb_siswa di dalam database db_sekolah_menengah_atas dimana tabel
tb_siswa mengubah data yaitu data email yang bertipe data varchar dengan
panjang 50 diubah menjadi e-mail dengan tipe data tetap yaitu varchar dengan
panjang 50.
75

Gambar 4.60 Alter rename Tabel tb_siswa


Gambar 4.60 merupakan screenshot dari query untuk me-rename isi dari
tabel tb_siswa di dalam database db_sekolah_menengah_atas dimana tabel
tb_murid menjadi tb_murid.

Gambar 4.61 Alter Drop Tabel tb_murid


Gambar 4.61 merupakan screenshot dari query untuk me-rename isi dari
tabel tb_user di dalam database db_sekolah_menengah_atas dimana tabel
tb_murid drop column alamat.
76

4.2.1.3. Drop
Perintah merupakan salah satu perintah DDL yang terdapat pada MySQL.
Sintaks dapat digunakan jika ingin menghapus tabel maupun database yang telah
dibuat. Penerapan sintaks drop pada database dapat dilihat pada Gambar 4.62.

Gambar 4. 62 Drop Database db_sekolah_menengah_atas


Gambar 4.62 merupakan screenshot dari query untuk menghapus database
db_ sekolah_menengah_atas.

Gambar 4. 63 Drop Tabel tb_team_teaching


Gambar 4.63 merupakan screenshot dari query untuk menghapus table
tb_team_teaching pada database db_ sekolah_menengah_atas.

4.2.2. Data Manipulation Language


DML (Data Manipulation Language) merupakan bahasa basis data yang
digunakan untuk melakukan modifikasi dan pengambilan data pada suatu basis
data. Sintaks-sintaks yang digunakan untuk memasukan, meng-update, serta
menghapus data-data siswa dari database db_sosialmedia adalah sebagai berikut.
4.2.2.1. Insert
Insert merupakan sintaks untuk menambah data pada sebuah database,
dimana pada database db_sekolah_menengah_atas, insert digunakan untuk
memasukan data pada tabel-tabel database db_sekolah_menengah_atas.
77
78
79

Gambar 4. 64 Insert Data ke dalam tb_detail_jawaban


Gambar 4.64 merupakan screenshot dari query untuk menambahkan data
pada kolom id_detail_jadwal, id_jadwal dan id_kelas, dengan values
sebanyak 100 data.

Gambar 4. 65 Insert Data ke dalam tb_detail_kelas


Gambar 4.65 merupakan screenshot dari query untuk menambahkan data
pada kolom id_detail_kelas, id_kelas dan id_siswa, dengan values
sebanyak 10 data.
80
81
82
83
84

Gambar 4. 66 Insert Data ke dalam tb_detail_nilai


Gambar 4.66 merupakan screenshot dari query untuk menambahkan data
pada kolom id_detail_nilai, id_nilai, id_mapel, nilai dengan values
sebanyak 200 data.
85

Gambar 4. 67 Insert Data ke dalam tb_detail_wali_siswa


Gambar 4.67 merupakan screenshot dari query untuk menambahkan data
pada kolom id_detail_wali_siswa, id_siswa, id_wali_siswa dengan
values (1,1,1),(2,2,2),(3,3,3),(4,4,4),(5,5,1),(6,6,2),(7,7,3),(8,8,4),(9,9,1),(10,10,2).
86

Gambar 4. 68 Insert Data ke dalam tb_jadwal


Gambar 4.68 merupakan screenshot dari query untuk menambahkan data
pada kolom id_jadwal, id_jam, hari dengan values
(1,1,'senin'),(2,1,'selasa'),(3,1,'rabu'),(4,1,'kamis'),(5,1,'jumat'),(6,2,'senin'),(7,2,'sel
asa'),(8,2,'rabu'),(9,2,'kamis'),(10,2,'jumat'),(11,3,'senin'),(12,3,'selasa'),(13,3,'rabu'
),(14,3,'kamis'),(15,3,'jumat'),(16,4,'senin'),(17,4,'selasa'),(18,4,'rabu'),(19,4,'kamis'
),(20,4,'jumat'),(21,5,'senin'),(22,5,'selas'),(23,5,'rabu'),(24,5,'kamis'),(25,5,'jumat'),
(26,6,'senin'),(27,6,'selasa'),(28,6,'rabu'),(29,6,'kamis'),(30,6,'jumat'),(31,7,'senin'),(
32,7,'selasa'),(33,7,'rabu'),(34,7,'kamis'),(35,8,'senin'),(36,8,'selasa'),(37,8,'rabu'),(3
8,8,'kamis'),(39,9,'senin'),(40,9,'selasa'),(41,9,'rabu'),(42,9,'kamis'),(43,10,'senin'),(
44,10,'selasa'),(45,10,'rabu'),(46,10,'kamis'),(47,11,'senin'),(48,11,'selasa'),(49,11,'r
abu'),(50,11,'kamis').
87

Gambar 4. 69 Insert Data ke dalam tb_jam


Gambar 4.69 merupakan screenshot dari query untuk menambahkan data
pada kolom id_jam, mulai, berakhir dengan values
(1,1,'senin'),(2,1,'selasa'),(3,1,'rabu'),(4,1,'kamis'),(5,1,'jumat'),(6,2,'senin'),(7,2,'sel
asa'),(8,2,'rabu'),(9,2,'kamis'),(10,2,'jumat'),(11,3,'senin'),(12,3,'selasa'),(13,3,'rabu'
),(14,3,'kamis'),(15,3,'jumat'),(16,4,'senin'),(17,4,'selasa'),(18,4,'rabu'),(19,4,'kamis'
),(20,4,'jumat'),(21,5,'senin'),(22,5,'selas'),(23,5,'rabu'),(24,5,'kamis'),(25,5,'jumat'),
(26,6,'senin'),(27,6,'selasa'),(28,6,'rabu'),(29,6,'kamis'),(30,6,'jumat'),(31,7,'senin'),(
32,7,'selasa'),(33,7,'rabu'),(34,7,'kamis'),(35,8,'senin'),(36,8,'selasa'),(37,8,'rabu'),(3
8,8,'kamis'),(39,9,'senin'),(40,9,'selasa'),(41,9,'rabu'),(42,9,'kamis'),(43,10,'senin'),(
44,10,'selasa'),(45,10,'rabu'),(46,10,'kamis'),(47,11,'senin'),(48,11,'selasa'),(49,11,'r
abu'),(50,11,'kamis').

Gambar 4. 70 Insert Data ke dalam tb_jurusan


Gambar 4.26 merupakan screenshot dari query untuk menambahkan data
pada kolom id_jurusan, nama_jurusan dengan values (1,'IPA'),(2,'IPS').

Gambar 4. 71 Insert Data ke dalam tb_kelas


88

Gambar 4. 72 Insert Data ke dalam tb_mapel


Gambar 4.72 merupakan screenshot dari query untuk menambahkan data
pada kolom id_mapel,nama_mapel dengan values (1,'budi
pekerti'),(2,'agama'),(3,'kimia'),(4,'matminat'),(5,'bahasainggris'),(6,'prakarya'),(7,'
matwajib'),(8,'bahasaindonesia'),(9,'olahraga'),(10,'biologi'),(11,'pkn'),(12,'fisika'),(
13,'bahasa bali'),(14,'sejara'),(15,'seminar'),(16,'ekstra'),(17,'geografi'),(18,'sejarah
minat'),(19,'sosiologi'),(20,'ekonomi'),(21,NULL).

Gambar 4. 73 Insert Data ke dalam tb_nilai


Gambar 4.73 merupakan screenshot dari query untuk menambahkan data
pada kolom id_nilai,nama_siswa, id_periode dengan values
(1,1,1),(2,2,1),(3,3,1),(4,4,1),(5,5,1),(6,6,1),(7,7,1),(8,8,1),(9,9,1),(10,10,1).
89

Gambar 4. 74 Insert Data ke dalam tb_periode


Gambar 4.74 merupakan screenshot dari query untuk menambahkan data
pada kolom id_periode, smt, tahun_ajaran dengan values
(1,'Ganjil',2018),(2,'Genap',2018),(3,'Genap',2017),(4,'Ganjil',2017).

Gambar 4. 75 Insert Data ke dalam tb_siswa


Gambar 4.75 merupakan screenshot dari query untuk menambahkan data
pada kolom id_siswa, nama_siswa , jenis_kelamin, alamat dengan values
(1,'Nila Arta','Laki-laki','jimbaran'),(2,'sintia','Perempuan','tabanan'),(3,'angga
kusuma','Laki-laki','panjer'),(4,'hamim','Lakilaki','denpasa'),(5,'dwiprajanata','Laki-
laki','bangli'),(6,'dwi','Lakilaki','gianya'),(7,'gusade','Lakilaki','buleleng'),(8,'budim
an','Lakilaki','jakarta'),(9,'dandi','Perempuan','ambon'),(10,'adi','Lakilaki','tabanan')
.
90
91
92

Gambar 4. 76 Insert Data ke dalam tb_team_teaching


Gambar 4.76 merupakan screenshot dari query untuk menambahkan data
pada kolom id_team_teaching,id_guru, id_detail_jadwal dengan values
sebanyak 100 data.

Gambar 4. 77 Insert Data ke dalam tb_wali_kelas


Gambar 4.77 merupakan screenshot dari query untuk menambahkan data
pada kolom id_wali_kelas,id_guru, id_kelas dengan values (1,1,1),(2,1,2).
93

Gambar 4. 78 Insert Data ke dalam tb_wali_siswa


Gambar 4.78 merupakan screenshot dari query untuk menambahkan data
pada kolom id_wali_siswa,nama_wali_siswa, alamat, jenis kelamin
dengan values (1,'gusade','jimbara','Laki-laki'),(2,'sintia','badung','Laki-
laki'),(3,'dwik','singaraja','Laki-laki'),(4,'prajanata','rangasem','Perempuan');

4.2.2.2. Update
Update merupakan sebuah sintaks yang digunakan untuk mengubah atau
memperbaharui data yang telah dimasukan (insert), dimana salah satu contoh
memperbaharui data dalam salah satu tabel dari database
db_sekolah_menengah_atas dapat dilihat pada Gambar 4.79.

Gambar 4. 79 Update Tabel tb_siswa


Gambar 4.79 merupakan screenshot dari query untuk memperbarui data
nama_siswa pada tabel tb_siswa. Data yang sebelumnya memiliki nama nila
arta menjadi gokong.
94

Gambar 4. 80 Update Tabel tb_guru


Gambar 4.80 merupakan screenshot dari query untuk memperbarui data
nama_user dan jenis_kelamin. Data yang sebelumnya memiliki nama_user
Sunia dengan jenis kelamin Laki-laki telah diubah menjadi nama_user Ayu
dengan jenis kelamin Perempuan.

Gambar 4. 81 Update Tabel tb_jam


Gambar 4.81 merupakan screenshot dari query untuk memperbarui data
mulai dan berakhir. Data yang sebelumnya memiliki mulai 07:00:00 dan
95

berakhir 07:45:00 telah diubah menjadi mulai 06:30:00 dengan berakhir


07:40:00.

4.2.2.3. Select
Select merupakan sebuah sintaks yang digunakan untuk menampilkan data
dalam tabel, adapun contoh penerapan sintaks select yang menampilkan semua data
pada salah satu tabel dari database db_medsos yang dimana dapat dilihat pada
Gambar 4.82.

Gambar 4. 82 Select Tabel tb_siswa


Gambar 4.82 merupakan screenshot dari query select untuk menampilkan
data id_siswa, nama_siswa, jenis_kelamin, alamat pada tabel tb_siswa dalam
database db_sekolah_menengah_atas.

Gambar 4. 83 Select Tabel tb_siswa


Gambar 4.83 merupakan screenshot dari query select untuk menampilkan
data pada tabel tb_siswa berupa id_siswa, nama_siswa, jenis_kelamin, alamat
pada tabel tb_siswa dalam database db_sekolah_menengah_atas. Pada kasus
ini, sintaks select yang digunakan adalah untuk menampilkan data dengan
id_siswa = 1.
96

Gambar 4. 84 Select Tabel tb_siswa


Gambar 4.84 merupakan screenshot dari query select untuk menampilkan
data pada tabel tb_siswa berupa id_siswa, nama_siswa, jenis_kelamin, alamat
pada tabel tb_siswa dalam database db_sekolah_menengah_atas. Pada kasus
ini, sintaks select yang digunakan adalah untuk menampilkan data dengan
jenis_kelamin = perempuan.

4.2.2.4. Delete
Perintah delete merupakan merupakan salah satu perintah DML yang
terdapat pada MySQL. Perintah ini berguna untuk menghapus data yang ada pada
tabel database, dimana contoh menghapus data dalam salah satu tabel dapat dilihat
pada Gambar 4.85.

Gambar 4. 85 Delete column pada Tabel tb_detail_nilai


Gambar 4.85 merupakan perintah yang digunakan untuk menghapus data
dalam suatu kolom di tabel. Berdasarkan Gambaar 4.85 untuk menghapus data dari
tb_detail_nilai dengan id_detail_nilai = 1.
97

Gambar 4. 86 Delete column pada Tabel tb_team_teaching


Gambar 4.86 merupakan perintah yang digunakan untuk menghapus data
dalam suatu kolom di tabel. Berdasarkan Gambar 4.86 untuk menghapus data dari
tb_team_teaching dengan id_team_teaching = 1.

Gambar 4. 87 Delete column pada Tabel tb_detail_kelas


Gambar 4.87 merupakan perintah yang digunakan untuk menghapus data
dalam suatu kolom di tabel. Berdasarkan Gambar 4.87 untuk menghapus data dari
tb_detail_kelas dengan id_detail_kelas = 2.

4.2.3. Report
Report merupakan implementasi dari rancangan PDM yang telah dibuat
kedalam program database serta semua fitur-fitur yang telah dirancang pada soal
tugas Praktikum Basis Data Modul 2.
4.2.3.1. Report Pertama
Report pertama merupakan report yang menampilkan jadwal satu
semester pada database db_sekolah_menengah_atas.

SELECT "Kelas :" AS "Jadwal Pelajaran", CONCAT_WS(" ",


`tb_kelas`.`nama_kelas`, `tb_jurusan`.`nama_jurusan`) AS
"","","" FROM tb_kelas
INNER JOIN tb_jurusan ON
tb_kelas.`id_jurusan`=tb_jurusan.id_jurusan
WHERE tb_kelas.id_kelas=1
UNION
SELECT tb_jadwal.hari,
98

tb_jam.`mulai`,
tb_jam.`berakhir`,
tb_mapel.nama_mapel AS "Mata Pelajaran"
FROM tb_jadwal
INNER JOIN tb_detail_jadwal ON
tb_detail_jadwal.`id_jadwal`=tb_jadwal.id_jadwal
INNER JOIN tb_kelas ON tb_kelas.id_kelas =
tb_detail_jadwal.id_kelas
INNER JOIN tb_jam ON tb_jadwal.`id_jam`=`tb_jam`.`id_jam`
INNER JOIN tb_team_teaching ON tb_detail_jadwal.id_detail_jadwal
= tb_team_teaching.id_detail_jadwal
INNER JOIN tb_guru ON tb_team_teaching.id_guru = tb_guru.id_guru
INNER JOIN tb_mapel ON tb_guru.id_mapel = tb_mapel.id_mapel
INNER JOIN tb_jurusan ON
tb_kelas.`id_jurusan`=tb_jurusan.id_jurusan
WHERE tb_kelas.id_kelas = 1
Kode Program 4. 6 Query Report Pertama
Kode Program 4.6 merupakan query dari report pertama yang
menampilkan jadwal satu semester pada database db_sekolah_menengah_atas.

Gambar 4. 88 Result Query Pertama


Gambar 4.88 merupakan hasil dari query report kedua yang menampilkan
jadwal satu semester yang memuat hari, masuk, berakhir, nama_mapel.
4.2.3.2. Report Kedua
Report kedua merupakan report yang menampilkan daftar pelajaran
dalam satu minggu yang di dapat dalam satu minggu pada kelas tertentu.

SELECT
CONCAT_WS(" ", `tb_kelas`.`nama_kelas`,
`tb_jurusan`.`nama_jurusan`) AS "Kelas",
tb_jadwal.hari,
99

tb_mapel.nama_mapel AS "Mata Pelajaran"


FROM tb_kelas
INNER JOIN tb_detail_jadwal ON tb_kelas.id_kelas =
tb_detail_jadwal.id_kelas
INNER JOIN tb_jadwal ON
tb_detail_jadwal.`id_jadwal`=tb_jadwal.id_jadwal
INNER JOIN tb_team_teaching ON tb_detail_jadwal.id_detail_jadwal
= tb_team_teaching.id_detail_jadwal
INNER JOIN tb_guru ON tb_team_teaching.id_guru = tb_guru.id_guru
INNER JOIN tb_mapel ON tb_guru.id_mapel = tb_mapel.id_mapel
INNER JOIN tb_jurusan ON
tb_kelas.`id_jurusan`=tb_jurusan.id_jurusan
WHERE tb_kelas.`id_kelas` = 1
GROUP BY (hari) DESC;
Kode Program 4. 7 Query Report Kedua
Kode Program 4.7 merupakan query dari report kedua yang menampilkan
daftar user yang menyukai dan mengkomentari postingan news feed tertentu.
Adapun hasil eksekusi query report ini dapat dilihat pada Gambar 4.37.

Gambar 4. 89 Result Query Kedua


Gambar 4.89 merupakan hasil dari query report kedua yang menampilkan
daftar jadwal dalam satu semester, kelas, hari dan mata pelajaran yang di tampilkan
dalam rentang waktu satu minggu.

4.2.3.3. Report Ketiga


Report ketiga merupakan report yang menampilkan daftar aktifitas dalam
group. Query report ketiga dapat dilihat pada Kode Program 4.3.

SELECT "Kelas :" AS "Daftar nilai",


CONCAT_WS(" ", `tb_kelas`.`nama_kelas`,
`tb_jurusan`.`nama_jurusan`) AS ""
FROM tb_kelas
INNER JOIN tb_jurusan ON
tb_kelas.`id_jurusan`=tb_jurusan.id_jurusan
WHERE tb_kelas.id_kelas=1
UNION
SELECT "Mata pelajaran :",tb_mapel.nama_mapel FROM tb_mapel
WHERE id_mapel=1
UNION
100

SELECT "Nama Siswa","Nilai"


UNION
SELECT tb_siswa.nama_siswa,
tb_detail_nilai.nilai
FROM tb_nilai
INNER JOIN tb_detail_nilai ON tb_nilai.id_nilai =
tb_detail_nilai.id_nilai
INNER JOIN tb_mapel ON tb_detail_nilai.id_mapel =
tb_mapel.id_mapel
INNER JOIN tb_siswa ON tb_nilai.id_siswa = tb_siswa.id_siswa
INNER JOIN tb_detail_kelas ON tb_siswa.id_siswa =
tb_detail_kelas.id_siswa
INNER JOIN tb_kelas ON tb_detail_kelas.id_kelas =
tb_kelas.id_kelas
GROUP BY tb_siswa.`id_siswa`;
Kode Program 4. 8 Query Report Ketiga
Kode Program 4.8 merupakan query dari report ketiga yang menampilkan
daftar nilai pada suatu mata pelajaran pada satu kelas pada database
db_sekolah_menengah_atas.

Gambar 4. 90 Result Query Ketiga


Gambar 4.90 merupakan hasil dari query report ketiga yang menampilkan
daftar nilai siswa, pada kelas ip IPA, dan mata pelajaran budi pekerti.

4.2.3.4. Report Keempat


Report keempat merupakan report yang menampilkan galeri / daftar
konten-konten yang telah di-upload untuk news feed. Query report keempat dapat
dilihat pada Kode Program 4.4.

SELECT "Nama :" AS "Raport", tb_siswa.nama_siswa AS "" FROM


tb_siswa WHERE tb_siswa.id_siswa=1
UNION
101

SELECT "Wali :",tb_wali_siswa.nama_wali_siswa FROM


tb_detail_wali_siswa
INNER JOIN tb_wali_siswa ON tb_detail_wali_siswa.id_wali_siswa =
tb_wali_siswa.id_wali_siswa
WHERE tb_detail_wali_siswa.id_detail_wali_siswa=1
UNION
SELECT "Kelas :",CONCAT_WS(" ", `tb_kelas`.`nama_kelas`,
`tb_jurusan`.`nama_jurusan`) FROM tb_detail_kelas
INNER JOIN tb_kelas ON tb_detail_kelas.id_kelas =
tb_kelas.id_kelas
INNER JOIN tb_jurusan ON
tb_kelas.`id_jurusan`=tb_jurusan.id_jurusan
WHERE tb_detail_kelas.id_siswa=1
UNION
SELECT "Wali Kelas:", tb_guru.nama_guru FROM tb_detail_kelas
INNER JOIN tb_kelas ON tb_detail_kelas.id_kelas =
tb_kelas.id_kelas
INNER JOIN tb_wali_kelas ON tb_kelas.id_kelas =
tb_wali_kelas.id_kelas
INNER JOIN tb_guru ON tb_wali_kelas.id_guru = tb_guru.id_guru
WHERE tb_wali_kelas.id_wali_kelas=1
UNION
SELECT "Semester :", "Ganjil"
UNION
SELECT "Tahun Ajaran :", "2017"
UNION
SELECT "Hasil", ""
UNION
SELECT "Mata Pelajaran", "Nilai"
UNION
SELECT tb_mapel.nama_mapel,
tb_detail_nilai.nilai
FROM tb_nilai
INNER JOIN tb_detail_nilai ON tb_nilai.id_nilai =
tb_detail_nilai.id_nilai
INNER JOIN tb_mapel ON tb_detail_nilai.id_mapel =
tb_mapel.id_mapel
INNER JOIN tb_siswa ON tb_nilai.id_siswa = tb_siswa.id_siswa
INNER JOIN tb_detail_wali_siswa ON tb_siswa.id_siswa =
tb_detail_wali_siswa.id_siswa
INNER JOIN tb_periode ON tb_nilai.id_periode =
tb_periode.id_periode
WHERE tb_nilai.id_siswa=1 AND tb_periode.smt="Ganjil" AND
tb_periode.`th_ajaran`="2018"
Kode Program 4. 9 Query Report Keempat
Kode Program 4.9 merupakan query dari report keempat yang
menampilkan nilai raport dari salah satu mahasiswa, dan menampilkan nilai dari
setiap mata pelajaran.
102

Gambar 4. 91 Result Query Keempat


Gambar 4.91 Merupakan hasil dari query report keempat yang
menampilkan menampilkan raport dari siswa bernama Nila Arta, dengan wali
gusade, kelas ip IPA, wali kelas Sunia, semester Ganjil, Tahun Ajaran 2017.
103

BAB V
PENUTUP

Bab ini berisikan tentang kesimpulan dari keseluruhan modul-modul atau


dari laporan akhir Praktikum Basis Data, serta kritik dan saran yang di dapat dari
asisten dosen Praktikum Basis Data
5.1. Simpulan
Berdasarkan pembahasan diatas, maka di dapat beberapa kesimpulan
seperti berikut ini.
1. Perancangan database yang baik diperlukan pemahaman yang mendalam
tentang metode-metode perancangan database salah satunya yaitu dengan
melakukan normalisasi. Normalisasi adalah proses pengelompokan atribut
data yang membentuk entitas sederhana, non redundan, fleksibel, dan
mudah beradaptasi, sehingga dapat dipastikan bahwa database yang dibuat
berkualitas baik.
2. Proses manipulasi objek pada database seperti pembuatan tabel, merubah,
menghapus tabel diperlukan pemahaman tentang DDL (Data Definition
Language) DDL merupakan kepanjangan dari Data Definition Language,
DDL merupakan perintah-perintah yang biasa digunakan administrator
database untuk mendefinisikan skema dan sub skema database yang
digunakan untuk kepentingan penciptaan database, table hingga
penghapusan database atau table. Dengan DDL pengguna dapat membuat
tabel (create table) baru, indeks, mengubah table, menentukan struktur
penyimpanan table, dan lainnya. Sintak-sintak yang merupakan DDL
(Data Definition Language) adalah create, alter, dan drop.
3. DML (Data Manipulation Language) adalah kumpulan perintah-perintah
SQL yang berhubungan dengan pengolah data di dalam tabel dan tidak
terkait dengan perubahan struktu dan definisi tipe data dari objek database.
DML (Data Manipulation Language) memiliki beberapa perintah dasar,
yaitu insert, update, delete dan select. Penggunaan sintak select terdapat
beberapa perintah gabungan yang menggunakan perintah fungsi agregat

103
104

4. untuk menerima koleksi nilai dan mengembalikan nilai tunggal sebagai


hasilnya. Fungsi agregat antara lain sum, count, average, max dan min.
5. DML (Data Manipulation Languge) lanjutan adalah pengembangan
perintah dari sintak select dalam fungsi DML (Data Manipulation
Languge) sebelumnya. Perintah-perintah DML (Data Manipulation
Languge) dapat digunakan untuk menggabungkan (join) beberapa tabel
sehingga membentuk relasi-relasi yang menggunakan sintak join.
Pengimplementasian DML (Data Manipulation Languge) lanjutan telah
diterapkan dalam report yang telah diberikan pada rancangan database
Sosial Media dan database Sekolah Menengah Atas.
5.2. Saran
Saran yang didapat berdasarkan kesimpulan diatas adalah sebagai berikut.
1. Pengetahuan lebih mendalam tentang metode-metode dalam perancangan
database, pemahaman tentang cara penggunaan aplikasi pembuatan system
database, seperti MYSQL, sehingga dalam pembuatan suatu system
database dapat dilakukan dengan lebih simple, dan cepat.
2. Tipe data yang digunakan dalam merancangan suatu database harus
diperhatikan agar database tidak mengalami overload dan dapat
dijalankan dengan lancar tanpa mengalami hambatan.
3. Hal yang perlu dihindari dan diperhatikan dalam pembuat database yaitu
deklarasi variable yang dapat memiliki arti lebih dari satu ini berguna
untuk menghindari arti ganda.
DAFTAR PUSTAKA

Jubile, E 2017, Otodidak MySQL untuk Pemula, Elex Media Komputindo, Jakarta
Dwiky, A 2016, Perintah DDL (Data Definition Language) Pada Mysql, dilihat 20
Mei 2018, <https://www.it-jurnal.com/perintah-ddl-data-definition-
language-pada-mysql/> (Disarikan dari berbagai sumber)

LAMPIRAN

105
106

Anda mungkin juga menyukai