Anda di halaman 1dari 48

LAPORAN AKHIR

BASIS DATA

DOSEN PENGAMPU: WINA WITANTI,S.T.,M.T

“BASIS DATA STASIUN TELEVISI”

Disusun Oleh:

Rafli Firdaus 3411181033

Dicky Fajar S 3411181055

Putri Salsabila R 3411181182

Ahnaf Ananta 3411181139

Kahfi Komara 3411181051

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN INFORMATIKA

UNIVERSITAS JENDERAL ACHMAD YANI

2019
KATA PENGANTAR

Puji syukur alhamdulillah kami panjatkan ke hadirat Tuhan Yang Maha Esa, karena
telah melimpahkan rahmat-Nya berupa kesempatan dan pengetahuan sehingga
makalah ini bisa selesai pada waktunya.

Terima kasih juga kami ucapkan kepada teman-teman yang telah berkontribusi
dengan memberikan ide-idenya sehingga makalah ini bisa disusun dengan baik dan
rapi.

Kami berharap semoga makalah ini bisa menambah pengetahuan para pembaca.
Namun terlepas dari itu, kami memahami bahwa makalah ini masih jauh dari kata
sempurna, sehingga kami sangat mengharapkan kritik serta saran yang bersifat
membangun demi terciptanya makalah selanjutnya yang lebih baik lagi.

i
DAFTAR ISI

KATA PENGANTAR ............................................................................................. i


DAFTAR ISI ........................................................................................................... ii
DAFTAR GAMBAR ............................................................................................. iv
BAB I ...................................................................................................................... 1
PENDAHULUAN ............................................................................................... 1
1.1. Latar Belakang Masalah ....................................................................... 1
1.2. Tujuan Penelitian .................................................................................. 1
1.3. Batasan Masalah ................................................................................... 1
1.4. Jadwal ................................................................................................... 1
BAB II ..................................................................................................................... 3
TEORI PENDUKUNG ....................................................................................... 3
2.1. Teori Relasional Basis Data .................................................................. 3
2.1.1 Aljabar Relasional ......................................................................... 6
2.1.2 Kalkulus Relasional ....................................................................... 9
2.2. Teori Integritas Data .......................................................................... 11
2.2.1 Aturan Integritas Data ................................................................. 11
2.2.1.1. Entity Integritas....................................................................... 11
2.2.1.2. Domain Integritas ................................................................... 11
2.2.1.3. Refferential Integritas ............................................................. 12
2.2.1.4. User Defined Integritas ........................................................... 12
2.3. Teori DBMS (Database Management System) .................................. 12
2.3.1 Manfaat Penggunaan DBMS ....................................................... 12
2.3.2 Bahasa Basis Data ....................................................................... 13
2.4.1. Bentuk Tidak Normal .................................................................. 14
2.4.2. Normal Pertama (1 NF) ............................................................... 14
2.4.3. Normal kedua (2 NF) .................................................................. 15
2.4.4. Normal Ketiga (3 NF) ................................................................. 16
2.5. Aplikasi Pendukung ............................................................................ 17
2.5.1. MySQL ........................................................................................ 17

ii
2.5.2. Oracle .......................................................................................... 18
2.5.3. Microsoft SQL Server ................................................................. 18
2.5.4. Firebird ........................................................................................ 18
BAB III ................................................................................................................. 19
ANALISIS DAN PERANCANGAN ................................................................ 19
3.1. ERD dan Tabel Perancangan .............................................................. 19
3.2. Kamus data Basis Data ....................................................................... 19
BAB IV ................................................................................................................. 22
IMPLEMENTASI BASIS DATA ..................................................................... 22
4.1. Membuat Database Stasiun TV .......................................................... 22
4.2. Membuat Kolom atau Tabel ............................................................... 23
4.2.1. Tabel Pelanggan .......................................................................... 23
4.2.1. Tabel Pembayaran ....................................................................... 24
4.2.1. Tabel Pegawai ............................................................................. 24
4.2.1. Tabel Pendaftaran ........................................................................ 25
4.2.1. Tabel Paket .................................................................................. 25
4.2.1. Tabel Channel .............................................................................. 26
4.3. Source Code ........................................................................................ 26
4.4. Antarmuka (Interface)......................................................................... 40
BAB V................................................................................................................... 42
PENUTUP ......................................................................................................... 42
Kesimpulan .................................................................................................... 42
Saran .............................................................................................................. 42
DAFTAR PUSTAKA ........................................................................................... 43

iii
DAFTAR GAMBAR

Gambar 1 Notasi Entitas & Atribut ......................................................................... 4


Gambar 2 Bentuk Tidak Normal ........................................................................... 14
Gambar 3 Bentuk Normal ke 1 ............................................................................. 15
Gambar 4 Bentuk Normal ke 2 ............................................................................. 16
Gambar 5 Bentuk Normal Ke 3 ............................................................................ 17
Gambar 6 Rancangan ERD ................................................................................... 19
Gambar 7 Skema Relasi ........................................................................................ 19
Gambar 8 Tabel Pelanggan ................................................................................... 20
Gambar 9 Tabel Transaksi .................................................................................... 20
Gambar 10 Tabel Pembayaran .............................................................................. 20
Gambar 11 Tabel Pegawai .................................................................................... 21
Gambar 12 Tabel Pendaftaran ............................................................................... 21
Gambar 13 Tabel Paket ......................................................................................... 21
Gambar 14 Tabel Channel .................................................................................... 21

iv
BAB I

PENDAHULUAN

1.1. Latar Belakang Masalah

Televisi merupakan salah satu alat elektronik yang menjadi kebutuhan primer
bagi manusia. Televisi adalah media yang interaktif dan atraktif dibandingkan
dengan media lainnya, sehingga televisi cenderung lebih sering dikonsumsi
oleh masyarakat. Televisi pada dasarnya adalah sistem elektronik yang
menampilkan informasi berupa suara dan gambar yang bergerak. Sistem
elektronik tersebut mengubah cahaya dan gelombang suara tersebut
menggunakan pemancar frekuensi radio.

Hasil riset tahun 2012 yang dilakukan oleh Nielsen terhadap media yang paling
banyak digunakan oleh masyarakat menyebutkan televisi masih posisi teratas
paling banyak digunakan, menyusul kemudian Internet, Radio, Koran, dan
selanjutnya majalah. Sebagai media yang tayangannya paling banyak di
konsumsi oleh banyak warga dari berbagai usia, jenis kelamin, wilayah, dan
berbagai macam suku bangsa di Indonesia televisi berpotensi mempengaruhi
pengetahuan dan keputusan penontonnya.

1.2. Tujuan Penelitian

Tujuan dari penelitian ini adalah untuk membangun sebuah system informasi
stasiun tv yang sesuai dengan yang di gunakan dan di harapkan oleh stasiun tv
swasta.

1.3. Batasan Masalah

1.4. Jadwal

20 November 2019 : Melakukan survei ke stasiun tv NET tv

23 November 2019 : Melakukan survei ke statisun tv MQTV

26 November 2019 : Melakukan lampiran pengajuan wawancara ke stasiun tv


MQTV

1
04 Desember 2019 : Berdiskusi dengan Bu Wina selaku dosen basis data untuk
mengganti tema toserba tetapi tidak mendapat ijin dan membuat keputusan
mengabil studi kasus stasiun tv.

2
BAB II

TEORI PENDUKUNG

2.1. Teori Relasional Basis Data

Database relasional merupakan jenis Database Management System (DBMS) yang


terbaru, yang memberikan gambaran atau bagam skema yang menjelaskan tentang
hubungan antar tabel bisa dilakuan di dalam sebuah database. Model database ini
digagas oleh seorang pakar database bernama EF codd.Jenis database relasional ini
merupakan jenis database yang paling sederhana disamping jenis database
pendahulunya yaitu database Hierarki (Hierarchical Database Model), dan database
Jaringan (Network Database Model).

Jenis database relasional menggunakan strukrur database 2D (dimensi). Perlu


diketahui bahwa kedua model pendahulu relasional database yaitu database hirarki
dan database jaringan untuk saat ini sudah tidak banyak digunakan, hal ini karena
adanya berbagai kelemahan dan fungsionalitas yang ada dari kedua jenis database
tersebut yang sudah memenuhi spesifikasj atau kebutuhan aplikasi modern saat ini,
yang menuntut sistem database yang lebih kompleks dan terstruktur untuk
memenuhi berbagai kebutuhan komputasi skala besar saat ini, baik dalam skala
personal maupun Enterprise.

Jenis-jenis Database Relasional

Secara umum ada 3 jenis database relasional yaitu:

1. One to One (1 to 1)
Relasi database model ini terjadi apalabila sebuah data terdapat pada 2 buah tabel,
dan hanya diperbolehkan satu data saja pada masing masing tabel (unique record),
sama halnya seperti primary key, record yang ada pada model ini tidak boleh ada
yang sama.

2. One to Many (1 to n)

3
Relasi database model ini membolehkan data yang sama pada tabel kedua, tapi
hanya membolehkan data yang bersifat unique (unik) pada tabel pertama. Jadi pada
model tabel kedua boleh memiliki beberapa data yang sama.

3. Many to many (n to m)
Berbeda dengan kedua model diatas, relasi database model ini membolehkan
beberapa data yang sama baik pada tabel pertama maupun tabel kedua. Dengan
demikian tidak ada unique record di kedua tabel tersebut.

Beberapa istilah data yang umumnya ditemui:

Gambar 1 Notasi Entitas & Atribut

4
1. Entitas

Entitas merupakan mengenai basis data yaitu suatu obyek yang dapat
dibedakan dari lainnya yang dapat diwujudkan dalam basis data. Pengertian
lainnya menurut Brady dan Loonam (2010), entitas adalah objek yang
menarik di bidang organisasi yang dimodelkan.
Contoh : Mahasiswa, Kartu Anggota Perpustakaan (KAP), dan Buku.

2. Hubungan (relasi/relationship)

Suatu hubungan adalah hubungan antara dua jenis entitas dan


direpresentasikan sebagai garis lurus yang menghubungkan dua entitas.
Contoh : Mahasiswa mendaftar sebagai anggota perpustakaan (KAP),
relasinya adalah mendaftar.

3. Atribut

Atribut memberikan informasi lebih rinci tentang jenis entitas. Atribut


memiliki struktur internal berupa tipe data. Jenis-jenis atribut .

4. Atribut Key

adalah satu atau gabungan dari beberapa atribut yang dapat membedakan
semua baris data ( Row/Record ) dalam tabel secara unik. Dikatakan unik
jika pada atribut yang dijadikan key tidak boleh ada baris data dengan nilai
sama.
Contoh : Nomor pokok mahasiswa (NPM), NIM dan nomor pokok lainnya

 Atribut simple = Atribut yang bernilai atomic, tidak dapat dipecah/ dipilah
lagi
Contoh : Alamat, penerbit, tahun terbit, judul buku.

5
 Atribut Multivalue = Nilai dari suatu attribute yang mempunyai lebih dari
satu (multivalue) nilai dari atrribute yang bersangkutan.
Contoh : dari sebuah buku, yaitu terdapat beberapa pengarang.

 Atribut Composite = Atribut composite adalah suatu atribut yang terdiri


dari beberapa atribut yang lebih kecil yang mempunyai arti tertentu yang
masih bisah dipecah lagi atau mempunyai sub attribute.
Contoh : dari entitas nama yaitu nama depan, nama tengah, dan nama
belakang

 Atribut Derivatif = Atribut yang tidak harus disimpan dalam database Ex.
Total. atau atribut yang dihasilkan dari atribut lain atau dari suatu
relationship. Atribut ini dilambangkan dengan bentuk oval yang bergaris
putus-putus

2.1.1 Aljabar Relasional

Aljabar relasional adalah sebuah bahasa query prosedural yang


terdiri dari sekumpulan operasi dimana masukkannya adalah satu
atau dua relasi dan keluarannya adalah sebuah relasi baru sebagai
hasil dari operasi tersebut. Lebih bersifat operasional, sangat
berguna untuk merepresentasikan eksekusi perencanaan.

Operasi aljabar terdiri dari himpunan operator level tinggi yang


dioperasikan pada suatu relasi. Setiap operator menggunakan satu
atau dua relasi sebagai input dan menghasilkan relasi baru sebagai
output

Operasi Dalam Aljabar Relasional

n Operasi-operasi dasar dalam aljabar relasional adalah :

o operasi selection (σ)

o operasi projection (π)

6
o operasi cartesian (x)

o operasi union (U)

o opersi set – difference (-)

o operasi rename (ρ)

n Operasi turunan dalam aljabar relasional adalah :

o Operasi set –interface

o Operasi natural join

o Operasi theta join

o Operasi devision

Operasi-operasi select, project dan rename disebut operasi unary,


karena operasi-operasi tersebut hanya memerlukan satu relasi. Tiga
operasi lainnya memerlukan sepasang relasi, disebut operasi binary.

Ø operasi selection (σ)

Operasi select berfungsi untuk menyeleksi tuple-tuple yang


memenuhi predikat yang diberikan dari sebuah tabel relasi. Operasi
select menyeleksi tuple-tuple yang memenuhi predikat yang
diberikan. Digunakan symbol sigma (σ) untuk menunjukkan operasi
select. Predikat muncul sebagai subcript dari σ. Argumen relasi
diberikan dalam kurung yang mengikuti σ.

Contoh penggunaan operasi select :

σ nama_cabang= cabang5(ms_cabang)

Ø operasi projection (π)

Operasi project berfungsi untuk memilih nilai atribut-atribut tertentu


saja dari sebuah tabel relasi. Operasi project disimbolkan dengan

7
symbol phi (π). Nama-nama atribut yang diinginkan tampil ditulis
sebagai subcript π.

Contoh penggunaan operasi project :

Π kode_kota,kode_propinsi(ms_kota)

Ø operasi cartesian (x)

Operasi cartesian product berfungsi untuk mengkombinasikan


informasi yang ada dalam 2 tabel relasi atau lebih dan menghasilkan
sebuah tabel relasi yang baru.

Contoh operasi cartesian

Πx (σ c ᴧ k ᴧ p ( Ms_ cabang x Ms_kota x Ms_propinsi)) ⟹ tabel


relasi baru

Ø operasi union (∪)

A ∪ B adalah relasi dengan heading (atribut) yang sama untuk setiap


A dan B, dimana terdiri dari himpunan semua tuples yang terdapat
pada A atau B atau kedua-duanya. Operasi union berfungsi untuk
mendapatkan gabungan nilai atribut dari sebuah tabel relasi dengan
nilai atribut dari tabel relasi lainnya.

Contoh penggunaan operasi union :

Π Nama_cabang(ms_cabang) ∪ Π Nama_cabang(MS_cabanga)

Ø opersi set – difference (-)

Operasi set difference berfungsi untuk mendapatkan nilai yang ada


dalam sebuah tabel relasi, tapi tidak ada dalam tabel relasi lainnya.
A MINUS B adalah relasi dengan heading (atribut) yang sama untuk
setiap A dan B, dimana terdiri dari himpunan semua tuples yang
terdapat pada A, tetapi tidak terdapat pada B.

Contoh operasi set-difference :

8
Π Nama_cabang(ms_cabang) –Nama_cabang(ms_cabanga)

Ø operasi rename (ρ)

Dalam operasi himpunan Cross – Product, bisa menimbulkan


terjadinya Konflik Penamaan, karena Cross – Product bisa
menghasilkan suatu relasi dari 2 relasi dengan skema yang sama,
sehingga skema hasil akan muncul field dengan nama yang sama.
Operator Renaming (r) digunakan untuk menghindari terjadinya
Konflik Penamaan tersebut.

2.1.2 Kalkulus Relasional

Dalam kalkulus relasional tidak ada penjabaran bagaimana


mengevaluasi querinya, hanya menspesifikkan apa yang harus
ditampilakan bukan bagaimana menampilkan. Memungkinkan user
menggambarkan apa yang mereka inginkan, tidak pada pada
bagaimana cara melakukan komputasi terhadap apa yang mereka
inginkan tersebut. (tidak bersifat operasional, tapi bersifat
deklaratif). Memahami aljabar dan kalkulus relasional adalah kunci
memahami SQL.

Ciri-ciri relasi kalkulus:

First order calculus menggunakan simbol-simbol predikat dan


simbol-simbol fungsi. Untuk kaitannya dengan basis data: simbol
fungsi tidak diperlukan dan predikat diinterprestasikan sebagai
relasi.Formula pada first order calculus dapat dibedakan ke dalam
dua kelas:

 Open formula (free variable)

Didefinisikan sebagai himpunan tuples elemen dari kondisi


secara keseluruhan, yang dapat menghasilkan formula “TRUE”.

9
 Closed formula atau sentences yang memiliki variable
terbatas

Karena kalkulus dipergunakan sebagai bahasa query dan basis


data bertujuan untuk instant maupun relasi lainnya, maka closed
formulas tidak diperhatikan.

Kalkulus relasional terbagi menjadi 2:

1. Kalkulus relasional berdasarkan tupel

Dalam kalkulus relasional tupel digunakan variabel dari tupelnya


.variabel dari suatu tupel adalah daerah yang terdefinisi sebagai
nama dari suatu relasi.

Contoh : manampilkan nama_propinsi pada kode_propinsi ‘pp2’

{t|t Є ms_propinsi ᴧ t(kode_propinsi)=‘pp2’}

Dalam SQL

SELECT nama_propinsi

FROM ms_propinsi

WHERE kode_propinsi = 'pp2‘

2.Kalkulus relasional berdasarkan domain

Simbol yang muncul pada formula terdiri dari : konstan (elemen-


elemen domain D), variabel (elemen-elemen dari himpunan
berhingga V yang dihubungkan dengan domain D), nama relasi
(tabel) dan atribut (berdasarkan skema basis data), operator
perbandingan (=, ≠, >, >=, <, <=), penghubung logika (Λ ( dan /
konjugsi), (V atau/disjungsi), ⌐ (not/negasi), ada/beberapa( ), dan
semua ( )).

Contoh Kalkulus domain;

10
Mencari data mengenai nama_cabang pada tabel ms_cabang.

{<kk,nk,kp>|<kk,nk,kp> Є ms_cabang }

Dalam SQL:

SELECT nama_cabang

FROM ms_cabang

2.2. Teori Integritas Data

Integritas data adalah menjamin konsistensi data terhadap semua konstrain


yang diberlakukan terhadap data tersebut, sehingga memberikan jaminan
keabsahan data itu sendiri.Tujuannya adalah menjaga data agar data yang
tidak valid tidak masuk ke database. Menjaga konsistensi data pada relasi
keterkaitan antar tabel.

2.2.1 Aturan Integritas Data

2.2.1.1. Entity Integritas

Entity integritas mendefenisikan sebuah baris sebagai


sebuah entitas yang unik untuk suatu tabel. Entity integritas
memaksa integritas dari colum atau primary key dari suatu
tabel (melalui index, unique, constrains, primarykey) tidak
boleh null.

2.2.1.2. Domain Integritas

Domain Integritas merupakan validasi dari masukan untuk


sebuah kolom. Anda dapat memaksa domain integritas
dengan membatasi tipe (melalui data types), format (melalui
check constraints dan rules), atau range nilai-nilai yang
mungkin (melalui Foreign Key Constraints, Check
Constraints, Default Definitions dan rules).

11
2.2.1.3. Refferential Integritas

Refferential integritas memastiakn bahwa seluruh nilai dari


foreign key cocok dengan nilai primary key yang
dihubungkan.

2.2.1.4. User Defined Integritas

User difined integritas mengizinkan kita untuk menentukan


spesific business rules sendiri yang tidak sama pada
kategori integrity yang lain.

2.3. Teori DBMS (Database Management System)

DBMS adalah suatu sistem atau software yang dirancang khusus untuk
mengelola suatu database dan menjalankan operasi terhadap data yang
diminta oleh banyak pengguna.

Tujuan utama penggunaan DBMS dalam jaringan komputer adalah untuk


menghindari kekacauan dalam hal pengolahan data yang jumlahnya besar.
DBMS merupakan perantara bagi pengguna dan database (baca: pengertian
database), dan agar dapat berinteraksi dengan DBMS maka pengguna harus
memakai bahasa database yang sudah ditentukan.

2.3.1 Manfaat Penggunaan DBMS

 Dapat mengendalikan pengulangan data


 Memberikan data yang konsisten
 Kemampuan mendapatkan informasi yang lebih banyak dan
jumlah data yang sama
 Pengguna dapat memakai data secara bersama-sama
 Memperbaiki integritas data
 Menjaga keamanan

12
 Membantu penetapan standarisasi
 Perbandingan skala ekonomi
 Dapat menyeimbangkan konflik kebutuhan
 Mempercepat akses dan respon data
 Mempercepat produktifitas
 Meningkatkan pemeliharaan data melalui data independen
 Meningkatkan konkurensi
 Meningkatkan layanan backup dan recovery

2.3.2 Bahasa Basis Data

Bahasa Basis Data (Database Language) merupakan bahasa yang


digunakan oleh user atau pemakai untuk berkomunikasi/berinteraksi
dengan DBMS (Database Management System) yang bersangkutan.

2.4. Normalisasi

Normalisasi (normalize) merupakan salah satu cara pendekatan atau teknik


yang digunakan dalam membangun desain logic database relation dengan
menerapakan sejumlah aturan dan kriteria standard.Tujuan dari normalisasi
adalah untuk menghasilakan struktur tabel yang normal atau baik. Teknik
normalisasi adalah upaya agar desain logik tabel-tabel berada dalam bentuk
normal(normal form) yang dapat didefinisikan dengan menggunakan
ketergantungan fungsi (functional dependency).Aturan-aturan normalisasi
dinyatakan dalam istilah bentuk normal.Bentuk normal adalah suatu aturan
yang dikenakan pada relasi-relasi atau tabel-tabel dalam database dan harus
dipenuhi oleh relasi atau tabel tersebut pada level-level normalisasi.Suatu
relasi dikatakan dalam bentuk normal tertentu jika memenuhi kondisi
tertentu juga. Beberapa bentuk normalisasi diantaranya adalah bentuk tidak
normal (unnormalize), bentuk normal pertama (1NF), bentuk normal kedua
(2NF), normal ketiga (3NF), dan seterusnya.

13
2.4.1. Bentuk Tidak Normal

Bentuk tidak normal (unnormalized) merupakan kumpulan data


yang direkam tidak ada keharusan dengan mengikuti suatu format
tertentu. Pada bentuk tidak normal terdapat repeating group
(Pengulangan Group), sehingga pada kondisi ini data menjadi
permasalahan dalam melakukan manipulasi data (insert, update, dan
delete) atau biasa disebut anomaly.

Contoh:

Gambar 2 Bentuk Tidak Normal

2.4.2. Normal Pertama (1 NF)

Dalam relational database tidak diperkenankan adanya repeating


group karena dapat berdampak terjadinya anomali. Oleh karena itu
tahap unnormal akan menghasilkan bentuk normal tahap pertama (1
NF) yang dapat di definisikan sebagai berikut: Normal pertama (1
NF), suatu relasi atau tabel memenuhi normal pertama jika dan
hanya jika setiap setiap atribut dari relasi tersebut hanya memiliki
nilai tunggal dalam satu baris (record). Tiap field hanya satu
pengertian, bukan merupakan kumpulan kata yang mempunyai arti
ganda dan tidak ada set atribut yang berulang-ulang atau atribut
bernilai ganda. Pada data tabel sebelumnya data belum normal
sehingga harus diubah kedalam bentuk normal pertama dengan cara

14
membuat baris berisi kolom jumlah yang sama dan setiap kolom
hanya mengandung satu nilai.

Berikut perubahannya:

Gambar 3 Bentuk Normal ke 1

Bentuk normalisasi pertama (1 NF) ini mempunyai ciri yaitu setiap


data dibentuk file datar atau rata (flat file), data dibentuk dalam satu
record demi satu record dan nilai-nilai dari field-field berupa nilai
yang tidak dapat dibagi-bagi lagi.

2.4.3. Normal kedua (2 NF)

Dalam perancangan database relational tidak diperkenankan adalah


partial functional dependency kepada primary key, karena dapat
berdampak terjadinya anomali. Oleh karena itu tahap normalisasi
pertama akan menghasilkan bentuk normal kedua (2 NF) yang dapat
didefinisikan sebagai berikut:

Normalisasi kedua (2 NF), suatu relasi memenuhi relasi kedua jika


dan hanya jika relasi tersebut memenuhi normal pertama dan setiap
atribut yang bukan kunci (non key) bergantung secara fungsional
terhadap kunci utama (Primary key).

Berikut perubahannya:

15
Gambar 4 Bentuk Normal ke 2

Bentuk normal kedua ini mempunyai syarat yaitu bentuk data yang

telah memenuhi kriteria bentuk normal pertama. Atribut bukan

kunci haruslah bergantung secara fungsional pada kunci utama

(primary key), sehingga untuk membentuk normal kedua haruslah

sudah ditentukan kunci-kunci field.

2.4.4. Normal Ketiga (3 NF)

Dalam perancangan database relational tidak diperkenankan adanya

transitive dependency karena dapat berdampak terjadinya

anomali.Oleh karena itu harus dilakukan normalisasi tahap ketiga (3

NF) yang dapat didefinisikan sebagai berikut:

Normalisasi ketiga (3 NF), suatu relasi memenuhi normal ketiga jika

dan hanya jika relasi tersebut memenuhi normal kedua dan setiap

atribut bukan kunci (non key) tidak mempunyai transitive functional

dependency kepada kunci utama (primary key).

16
Berikut perubahannya:

Gambar 5 Bentuk Normal Ke 3

Bentuk normal ketiga (3 NF) ini relasi haruslah dalam bentuk

normal kedua dan semua atribut bukan kunci utama tidak punya

hubungan transitif. Artinya setiap atribut bukan kunci harus

bergantung hanya pada primary key secara keseluruhan, dan bentuk

normalisasi ketiga sudah didapat tabel yang optimal.

2.5. Aplikasi Pendukung

2.5.1. MySQL

Perangkat lunak DBMS yang pertama adalah MySQL yang banyak


digunakan karena memang tersedia secara gratis. Sehingga aplikasi
ini cocok digunakan untuk bisnis-bisnis yang sedang berkembang.

Meskipun tidak berbayar, namun tingkat keamanannya cukup baik


dengan kecepatan akses data yang selalu stabil. Akan tetapi
perangkat ini kurang kompatibel dengan bahasa pemograman

17
Foxpro, Visual Basic (VB) dan Delphi serta kurang mampu
menangani data yang jumlahnya terlalu besar.

2.5.2. Oracle

Jika Anda menginginkan perangkat lunak DBMS yang bagus dan


berbayar bisa memilih software Oracle. Perangkat ini memiliki
beragam fitur yang dapat memenuhi tuntutan fleksibilitas
perusahaan besar. Bahkan perangkat ini juga memiliki pemrosesan
transaksi dengan peforma yang sangat tinggi.

2.5.3. Microsoft SQL Server

Selain Oracle, perangkat lunak DBMS ini juga cocok diaplikasikan


pada sistem jaringan komputer perusahaan-perusahaan besar karena
memiliki kemampuan mengelola data yang besar.

Microsoft SQL Server memiliki sistem pengamanan data yang baik


dan memiliki fitur back up, recovery dan rollback data. Namun
sayangnya perangkat ini hanya bisa berjalan pada OS Windows saja.

2.5.4. Firebird

Perangkat lunak DBMS lainnya adalah Firebird sebagai sistem


manajemen basis data yang relasional. Firebird menawarkan fitur
yang sesuai dengan standar SQl-2003 dan ANSI SQL-99 serta dapat
bekerja pada OS Windows dan Linux.

18
BAB III

ANALISIS DAN PERANCANGAN

3.1. ERD dan Tabel Perancangan

Berikut adalah Entitas Relationship Diagram (ERD) dari studi kasus Stasiun
TV yang ditujukan pada gambar di bawah ini:

Gambar 6 Rancangan ERD

Gambar 7 Skema Relasi

3.2. Kamus data Basis Data

19
Berikut merupakan kamus data yang diperlukan untuk perancangan basis
data dari studi kasus Stasiun TV:
 Kamus data dari tabel Pelanggan:

Gambar 8 Tabel Pelanggan

 Kamus data dari tabel Transaksi :

Gambar 9 Tabel Transaksi

 Kamus data dari tabel Pembayaran :

Gambar 10 Tabel Pembayaran

 Kamus data dari tabel Pegawai :

20
Gambar 11 Tabel Pegawai

 Kamus data dari tabel Pendaftaran :

Gambar 12 Tabel Pendaftaran

 Kamus data dari tabel Paket :

Gambar 13 Tabel Paket

 Kamus data dari tabel Channel:

Gambar 14 Tabel Channel

21
BAB IV

IMPLEMENTASI BASIS DATA

4.1. Membuat Database Stasiun TV

Untuk membuat sebuah database dibutuhkan server yang dapat melakukan


pengembangan database, server tersebut sudah tersedia dalam sebuah
aplikasi yang bernama xampp.

Xampp berguna sebagai server yang dapat berdiri sendiri (localhost), yang
terdiri atas program Apache HTTP Server, MySQL, database, dan
penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan
Pearl.

Agar dapat membuat suatu database maka pertama – tama jalankan server
dari Apache dan MySQL.Lalu masuk ke http://localhost/phpmyadmin/.

22
Setelah itu klik database dan isikan nama database yang akan digunakan
lalu klik Create.

Untuk menampilkan Databases yang telah dibuat buka command prompt


dan Change Destination ke direktori dari XAMPP sesuai dengan tempat
ketika pengguna memasang.

Untuk menampikan Databases yang telah selesai dibuat maka ketik perintah
SHOW DATABASES.

4.2. Membuat Kolom atau Tabel

4.2.1. Tabel Pelanggan

23
CREATE TABLE Pelanggan(
Id_Pelanggan char(5) PRIMARY KEY,
Nama_Pel varchar(30),
Ktp char(16),
Alamat varchar(30),
No_Telp varchar(12),
Email varchar(30)
);

4.2.1. Tabel Pembayaran

CREATE TABLE Pembayaran(


Id_Pembayaran char(5) PRIMARY KEY,
Tgl_Pembayaran date,
Jumlah_Pembayaran int
);

4.2.1. Tabel Pegawai

CREATE TABLE Pegawai(


Id_Peg char(5) PRIMARY KEY,
Nama_Peg varchar(30),

24
Alamat varchar(30),
No_Telp varchar(12)
);

4.2.1. Tabel Pendaftaran

CREATE TABLE Pendaftaran(


Id_Pendaftaran char(5) PRIMARY KEY,
Id_Pelanggan char(5),
Id_Paket char(5),
Id_Peg char(5),
Tgl_Pendaftaran date,
FOREIGN KEY (Id_Pelanggan) REFERENCES Pelanggan(Id_Pelanggan),
FOREIGN KEY (Id_Paket) REFERENCES Paket(Id_Paket),
FOREIGN KEY (Id_Peg) REFERENCES Pegawai(Id_Peg)
);

4.2.1. Tabel Paket

CREATE TABLE Paket(


Id_Paket char(5) PRIMARY KEY,
Nama_Paket varchar(20),

25
Harga int
);

4.2.1. Tabel Channel

CREATE TABLE Channel(


Id_Channel char(5),
Id_Paket char(5),
Nama_Channel varchar(20),
FOREIGN KEY (Id_Paket) REFERENCES Paket(Id_Paket)
);

4.3. Source Code

4.3.1. Form Login

<?php

session_start();

if(isset($_SESSION['LOGIN'])){

header("Location: home.php");
exit();
}

26
require_once("config.php");

if(isset($_POST['SUBMIT'])){

$userId = trim($_POST['USERNAME']);
$userPass = trim($_POST['PASSWORD']);

if($userId == "" || $userPass == ""){

header("Location: error.php?e=1");
exit();
}

$sql = mysql_query("SELECT * FROM tb_admin WHERE


Username = '$userId' AND Password = '$userPass'",$koneksi);
if(mysql_num_rows($sql) != 0){

$_SESSION['LOGIN'] = 1;
session_start();

header("Location: home.php");
exit();

}else{

header("Location: error.php?e=2");
exit();
}

?>
<!DOCTYPE html>
<html>
<head>
<title>Form Login</title>

27
<link rel="stylesheet" type="text/css"
href="style.css">
</head>
<body>

<h1>Form Login <br/> </h1>

<div class="kotak_login">
<p class="tulisan_login">Silahkan login</p>

<form id="form1" name="form1" method="post">


<label>Username</label>
<input type="text" name="USERNAME"
class="form_login" placeholder="Username">

<label>Password</label>
<input type="password" name="PASSWORD"
class="form_login" placeholder="Password">

<input type="submit" name="SUBMIT"


class="tombol_login" value="LOGIN">

<br/>
<br/>
</form>

</div>

</body>
</html>
Source Code diatas merupakan sebuah form untuk login yang menggunakan
session.

4.3.2. Form Halaman Utama

<?php

28
session_start();

if(!isset($_SESSION['LOGIN'])){

header("Location: index.php");
exit();
}

if(isset($_GET['aksi'])){

$aksi = $_GET['aksi'];

if($aksi == "logout"){

if(isset($_SESSION['LOGIN'])){

unset($_SESSION['LOGIN']);
session_unset();
session_destroy();
$_SESSION = array();
}

header("Location: index.php");
exit();
}
}
?>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,
initial-scale=1.0" />
<title>Home</title>
<!-- BOOTSTRAP STYLES-->

29
<link href="assets/css/bootstrap.css" rel="stylesheet" />
<!-- FONTAWESOME STYLES-->
<link href="assets/css/font-awesome.css" rel="stylesheet"
/>
<!-- CUSTOM STYLES-->
<link href="assets/css/custom.css" rel="stylesheet" />
<!-- GOOGLE FONTS-->
<link
href='http://fonts.googleapis.com/css?family=Open+Sans'
rel='stylesheet' type='text/css' />
</head>
<body>
<div id="wrapper">
<nav class="navbar navbar-default navbar-cls-top "
role="navigation" style="margin-bottom: 0">
<div class="navbar-header">
<button type="button" class="navbar-toggle"
data-toggle="collapse" data-target=".sidebar-collapse">
<span class="sr-only">Toggle
navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand">Admin</a>
</div>
<div style="color: white;padding: 15px 50px 5px 50px;float:
right;font-size: 16px;">&nbsp;<a href="home.php?aksi=logout"
class="btn btn-danger square-btn-adjust">Logout</a> </div>
</nav>
<!-- /. NAV TOP -->
<nav class="navbar-default navbar-side"
role="navigation">
<div class="sidebar-collapse">
<ul class="nav" id="main-menu">
<li class="text-center">
</li>

30
<li>
<a href="?page=Admin"><i class="fa
fa-dashboard fa-3x"></i> Data Admin</a>

</li>

<li>
<a href="?page=Pelanggan"><i
class="fa fa-dashboard fa-3x"></i> Data Pelanggan</a>

</li>

<li>
<a href="?page=Channel"><i class="fa
fa-dashboard fa-3x"></i> Daftar Channel</a>

</li>
<li>
<a href="?page=Paket"><i class="fa
fa-dashboard fa-3x"></i> Daftar Paket</a>

</li>
</ul>

</div>

</nav>
<!-- /. NAV SIDE -->
<div id="page-wrapper" >
<div id="page-inner">
<div class="row">
<div class="col-md-12">

<?php

31
$page =
@$_GET['page'];
$action =
@$_GET['action'];

if($page ==
"Admin"){

if($action
== ""){

include "page/Admin.php";

}
}elseif($page ==
"Pelanggan"){

if($action
== ""){

include "page/Pelanggan.php";

}
}elseif($page ==
"Channel"){

if($action
== ""){

include "page/Channel.php";

}
}elseif($page ==
"Paket"){

32
if($action
== ""){

include "page/Paket.php";

}
}

?>

</div>
</div>
<!-- /. ROW -->
<hr />

</div>
<!-- /. PAGE INNER -->
</div>
<!-- /. PAGE WRAPPER -->
</div>
<!-- /. WRAPPER -->
<!-- SCRIPTS -AT THE BOTOM TO REDUCE THE LOAD TIME-->
<!-- JQUERY SCRIPTS -->
<script src="assets/js/jquery-1.10.2.js"></script>
<!-- BOOTSTRAP SCRIPTS -->
<script src="assets/js/bootstrap.min.js"></script>
<!-- METISMENU SCRIPTS -->
<script src="assets/js/jquery.metisMenu.js"></script>
<!-- CUSTOM SCRIPTS -->
<script src="assets/js/custom.js"></script>

</body>
</html>

33
Source Code diatas merupakan sebuah form halaman utama, di dalam form
halaman utama tersebut terdapat menu home, pegawai, pengguna,
pelanggan, dan transaksi.

4.3.3. Halaman Admin

<div class="row">
<div class="col-md-12">
<!-- Advanced Tables -->
<div class="panel panel-default">
<div class="panel-heading">
Data Admin
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-striped table-
bordered table-hover" id="dataTables-example">
<thead>
<tr>
<th>Nama</th>
<th>E-
Mail</th>

<th>Alamat</th>
<th>No
HP</th>
<th
style="text-align:center">Aksi</th>
</tr>
</thead>
<tbody>
<?php

$query = "SELECT *
from tb_admin";

34
$koneksi=mysqli_connect("localhost","root","","dbtv")
or die ("Gagal Koneksi Database");
$data =
mysqli_query($koneksi,$query) or die ("Gagal query:".$query);
?>
<?php
while($v=mysqli_fetch_array($data)):;?>
<tr>
<td><?php echo
$v["Nama"];?></td>
<td><?php echo
$v["Email"];?></td>
<td><?php echo
$v["Alamat"];?></td>
<td><?php echo
$v["No_Hp"];?></td>
<td><a
href="Aksi_Hapus_Admin.php?Username=<?php echo
$v["Username"];?>">Hapus</a> </td>
</tr>
<?php endwhile;?>
</tbody>
</div>
</div>
</div>
</div>
</div>
Source Code diatas merupakan source code halaman admin, pada souce
code tersebut terdapat nama, email, alamat dan nomor hp yang harus di
inputkan oleh user.

4.3.4. Halaman Channel

<div class="row">
<div class="col-md-12">
<!-- Advanced Tables -->

35
<div class="panel panel-default">
<div class="panel-heading">
Daftar Channel
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-striped table-
bordered table-hover" id="dataTables-example">
<thead>
<tr>
<th style="text-
align:center;">Id_Channel</th>
<th style="text-
align:center;">Nama Channel</th>
<th
style="text-align:center;">Aksi</th>
</tr>
</thead>
<tbody>
<?php

$query = "SELECT *
from tb_channel NATURAL JOIN tb_paket";

$koneksi=mysqli_connect("localhost","root","","dbtv")
or die ("Gagal Koneksi Database");
$data =
mysqli_query($koneksi,$query) or die ("Gagal query:".$query);
?>
<?php
while($v=mysqli_fetch_array($data)):;?>
<tr>
<td><?php echo
$v["Id_Channel"];?></td>
<td><?php echo
$v["Nama_Channel"];?></td>

36
<td><a
href="Aksi_Hapus_Channel.php?Id_Channel=<?php echo
$v["Id_Channel"];?>">Hapus</a> </td>
</tr>
<?php endwhile;?>
</tbody>
</div>
</div>
</div>
</div>
</div>
Source Code diatas merupakan source code halaman channel, di dalam souce code
tersebut terdapat daftar channel, id channel dan nama channel yang harus di
inputkan oleh user.

4.3.5 Halaman Pelanggan

<div class="row">
<div class="col-md-12">
<!-- Advanced Tables -->
<div class="panel panel-default">
<div class="panel-heading">
Data Pelanggan
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-striped table-
bordered table-hover" id="dataTables-example">
<thead>
<tr>
<th>Id_Pel</th>
<th>Nama</th>
<th>Alamat</th>
<th>No HP</th>
<th>Paket</th>
<th style="text-
align:center;">Aksi</th>

37
</tr>
</thead>
<tbody>
<?php

$query = "SELECT * from


tb_pel NATURAL JOIN tb_paket";

$koneksi=mysqli_connect("localhost","root","","dbtv") or
die ("Gagal Koneksi Database");
$data =
mysqli_query($koneksi,$query) or die ("Gagal query:".$query);
?>
<?php
while($v=mysqli_fetch_array($data)):;?>
<tr>
<td><?php echo
$v["Id_Pel"];?></td>
<td><?php echo
$v["Nama_Pel"];?></td>
<td><?php echo
$v["Alamat"];?></td>
<td><?php echo
$v["No_Hp"];?></td>
<td><?php echo
$v["Nama_Pkt"];?></td>
<td><a
href="Aksi_Hapus_Pelanggan.php?Id_Pel=<?php echo
$v["Id_Pel"];?>" class="btn btn-info">Hapus</a> </td>
</tr>
<?php endwhile;?>
</tbody>
</div>
</div>
</div>
</div>

38
</div>
Source Code diatas merupakan source code halaman pelanggan, di dalam souce
code tersebut terdapat id pelanggan , nama pelanggan, alamat, nomor hp, dan nama
pkt yang harus di inputkan oleh user.

4.3.6 Halaman Paket

<div class="row">
<div class="col-md-12">
<!-- Advanced Tables -->
<div class="panel panel-default">
<div class="panel-heading">
Daftar Paket
</div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-striped table-
bordered table-hover" id="dataTables-example">
<thead>
<tr>
<th style="text-
align:center;">Nama Paket</th>
<th style="text-
align:center;">Nama Channel</th>
<th style="text-
align:center;">Aksi</th>
</tr>
</thead>
<tbody>
<?php

$query = "SELECT * from


tb_paket NATURAL JOIN tb_channel";

$koneksi=mysqli_connect("localhost","root","","dbtv") or
die ("Gagal Koneksi Database");

39
$data =
mysqli_query($koneksi,$query) or die ("Gagal query:".$query);
?>
<?php
while($v=mysqli_fetch_array($data)):;?>
<tr>
<td><?php echo
$v["Nama_Pkt"];?></td>
<td><?php echo
$v["Nama_Channel"];?></td>
<td><a
href="Aksi_Hapus_Paket?Id_Pkt=<?php echo
$v["Id_Pkt"];?>">Hapus</a></td>
</tr>
<?php endwhile;?>
</tbody>
</div>
</div>
</div>
</div>
</div>

Source Code diatas merupakan source code halaman paket, di dalam souce code
tersebut terdapat nama paket dan nama channel yang harus di inputkan oleh user.

4.4. Antarmuka (Interface)

Tampilan Login

40
Tampilan Utama

41
BAB V

PENUTUP

Kesimpulan

Perkembangan teknologi yang sudah berkembang sangat cepat di akhir


tahun ini.Teknologi yang berhubungan dengan pembuatan database pun
sudah semakin canggih, semakin cepat dan semakin mudah.

Dengan perkembangan teknologi yang sudah berkembang dengan pesat


tersebut di harapkan bias kita gunakan dengan sebaik mungkin. Untuk
menyimpan berbagai banyak data tanpa perlu menuliskan data tersebut di
kertas

Saran

Untuk program yang kami buat masih sangat kaku dan fleksibel dan belum
biasa menampilkan query-query yang sulit seperti query where.

Oleh Karena itu program kami ini untuk kedepannya bias kami perbaiki
sehingga tingkat kemudahan penggunaan menjadi lebih mudah dan tingkat
flesibilitas menjadi lebih tinggi.

42
DAFTAR PUSTAKA

https://dosenit.com/kuliah-it/database/database-relasional

https://rizarulham.wordpress.com/2009/10/16/aljabar-relasional-bahasa-pada-
model-data-relasional/

https://catatankuliahaam73.wordpress.com/2017/03/06/pengertian-integritas-data-
2/

https://www.maxmanroe.com/vid/teknologi/komputer/pengertian-dbms.html

43

Anda mungkin juga menyukai