Anda di halaman 1dari 58

LAPORAN DATABASE

Laporan untuk Memenuhi Tugas Besar Mata Kuliah Basis Data Lanjutan

Oleh

UNIVERSITAS MUHAMMDIYAH SORONG


FAKULTAS TEKNIK
TEKNIK INFORMATIKA
A. LATAR BELAKANG
Sistem informasi berbasis komputer saat ini telah menjadi suatu hal yang
primer bagi kebutuhan pemenuhan kebutuhan informasi. Banyak bidang yang
telah memanfaatkan sistem informasi berbasis komputer sebgai sarana
mempermudah pekerjaan. Mulai dari bisnis sampai dengan pendidikan telah
menggunakan komputer sebagai alat bantu dalam mempermudah pekerjaan.
Perkembangan Ilmu Pengetahuan dan TEknologi pada saat ini memicu
banyak kalangan untuk mencari alternative pemecahan masalah di bidang sistem
informasi. Penggunaan komputer sebgai alat bantu pekerjaan di bidang teknologi
sistem informasi semakin banyak berkembang di segala bidang.komputer
memiliki banyak kelebihan dan bisa diatur sesuai dengan keinginan
user/penggunanya.
Dalam melakukan pengolahan data untuk siswa-siswi/alumni masih
belum terstruktur dan manual, sehingga tidak semua data siswa disimpan dengan
sempurna, data-data alumni sulit untuk ditemukan atau bahkan hilang, karena
minimnya kemanan data dari sistem yang manual. Tentunya hal tersebut membuat
kegiatan-kegiatan disekolah yang berkaitan dengan alumni menjadi tidak efisien
dikarenakan data yang tidak lengkap, bayangkan bila ada aplikasi database alumni
tentunya semua kegiatan yang berkaitan dengan alumni menjadi lebih mudah, dan
bisa menghasilkan laporan yang valid tentang data alumni karena data dari
masing-masig alumni lengkap dan tersimpan pada database yang telah dirancang.
Berdasarkan uraian latar belakang diatas kami bermaksud menyelesaikan masalah
diatas sebagai bahan dasar untuk memenuhi tugas akhir kuliah semester 2 dengan
judul: “PERANCANGAN DATABASE ALUMNI SEKOLAH SMK TUNAS
BANGSA”
Database ini berisikan:
1. Tabel siswa yang berisikan data dari NIS, Nama, JK, TTL, Agama,
Alamat, Kode_kelas.
2. Tabel Alumni yang berisikan data dari No_Ijazah, NIS, Angkatan,
id_pekerjaan, Kota_Tinggal, id_j_p.
3. Tabel Rentang_Gaji yang berisikan data dari gol_rentang_gaji,
Besar_Gaji.
4. Tabel J_Pekerjaan yang berisikan data dari id_pekerjaan, jenis_pekerjaan,
gol_rentang_gaji, Nama_perusahaan.
5. Tabel Jenjang_Pendidikan yang berisikan data dari id_Pekerjaan, NIS,
Pendidikan_terakhir, Tahun_Lulus, id_institusi.
6. Tabel Kota_Tinggal yang berisikan data dari Nama_Kota, Nama_Prov,
Negara.
7. Tabel Perusahaan yang berisikan Nama_Perusahaan, Alamat, No_telp.
8. Tabel Institusi_pendidikan yang berisikan data dari id_institusi, Alamat,
No_telp, Jurusan.
9. Tabel Kelas yang berisikan data dari Kode_Kelas, Nama_Kelas,
Jumlah_Siswa, Kode_Jurusan.
10. Tabel Jurusan yang berisikan data dari Kode_Jurusan, Nama_Jurusan.

B. TUJUAN
Tujuan dari perancangan database alumni sekolah SMK Tunas Bangsa
adalah sebagai berikut :
1. Untuk memenuhi tugas akhir matakuliah praktikum basis data.
2. Memudahkan mendapatkan informasi mengenai data alumni sekolah
3. Memahami proses perancangan dan pembuatan database
4. Membantu para guru agar mudah dalam menghubungi para alumni yang telah
keluar.

C. LANDASAN TEORI
Database atau basis data adalah kumpulan data yang disimpan secara
sistematis di dalam komputer dan dapat diolah atau dimanipulasi menggunakan
perangkat lunak (program aplikasi) untuk menghasilkan informasi. Pendefinisian
basis data meliputi spesifikasi berupa tipe data, struktur, dan juga batasan-batasan
data yang akan disimpan. Basis data merupakan aspek yang sangat penting dalam
sistem informasi dimana basis data merupakan gudang penyimpanan data yang
akan diolah lebih lanjut. Basis data menjadi penting karena dapat menghidari
duplikasi data, hubungan antar data yang tidak jelas, organisasi data, dan juga
update yang rumit.
Proses
memasukkan dan
mengambil data ke
dan dari media
penyimpanan data
memerlukan
perangkat lunak yang
disebut dengan sistem
manajemen basis data
(database
management system |
DBMS). DBMS
merupakan sistem perangkat lunak yang memungkinkan user untuk memelihara,
mengontrol, dan mengakses data secara praktis dan efisien. Dengan kata lain
semua akses ke basis data akan ditangani oleh DBMS. Ada beberapa fungsi yang
harus ditangani DBMS yaitu mengolah pendefinisian data, dapat menangani
permintaan pemakai untuk mengakses data, memeriksa sekuriti dan integriti data
yang didefinisikan oleh DBA (Database Administrator), menangani kegagalan
dalam pengaksesan data yang disebabkan oleh kerusakan sistem maupun disk, dan
menangani unjuk kerja semua fungsi secara efisien.
Tujuan utama dari DBMS adalah untuk memberikan tinjauan abstrak data
kepada user (pengguna). Jadi sistem menyembunyikan informasi tentang
bagaimana data disimpan, dipelihara, dan tetap dapat diambil (akses) secara
efisien. Pertimbangan efisien di sini adalah bagaimana merancang struktur data
yang kompleks tetapi masih tetap bisa digunakan oleh pengguna awam tanpa
mengetahui kompleksitas strukturnya.

Pembagian database menurut jenisnya:

Basis data flat-file. Basis data flat-file ideal untuk data berukuran kecil dan
dapat dirubah dengan mudah. Pada dasarnya, mereka tersusun dari sekumpulan
string dalam satu atau lebih file yang dapat diurai untuk mendapatkan informasi
yang disimpan. Basis data flat-file baik digunakan untuk menyimpan daftar atau
data yang sederhana dan dalam jumlah kecil. Basis data flat-file akan menjadi
sangat rumit apabila digunakan untuk menyimpan data dengan struktur kompleks
walaupun dimungkinkan pula untuk menyimpan data semacam itu. Salah satu
masalah menggunakan basis data jenis ini adalah rentan pada korupsi data karena
tidak adanya penguncian yang melekat ketika data digunakan atau dimodifikasi.

Basis data relasional. Basis data ini mempunyai struktur yang lebih logis
terkait cara penyimpanan. Kata "relasional" berasal dari kenyataan bahwa tabel-
tabel yang berada di basis data dapat dihubungkan satu dengan lainnya. Basis data
relasional menggunakan sekumpulan tabel dua dimensi yang masing-masing tabel
tersusun atas baris (tupel) dan kolom (atribut). Untuk membuat hubungan antara
dua atau lebih tabel, digunakan key (atribut kunci) yaitu primary key di salah
satu tabel dan foreign key di tabel yang lain. Saat ini, basis data relasional
menjadi pilihan karena keunggulannya. Beberapa kelemahan yang mungkin
dirasakan untuk basis data jenis ini adalah implementasi yang lebih sulit untuk
data dalam jumlah besar dengan tingkat kompleksitasnya yang tinggi dan proses
pencarian informasi yang lebih lambat karena perlu menghubungkan tabel-tabel
terlebih dahulu apabila datanya tersebar di beberapa tabel.
MySQL

MySQL adalah sistem manajemen database SQL yang bersifat Open Source
dan paling populer saat ini.Sistem Database MySQL mendukung beberapa fitur
seperti multithreaded, multi-user, dan SQL database managemen sistem
(DBMS).Database ini dibuat untuk keperluan sistem database yang cepat, handal
dan mudah digunakan.
Ulf Micheal Widenius adalah penemu awal versi pertama MySQL yang
kemudian pengembangan selanjutnya dilakukan oleh perusahaan MySQL AB.
MySQL AB yang merupakan sebuah perusahaan komersial yang didirikan oleh
para pengembang MySQL.MySQL sudah digunakan lebih dari 11 millar instalasi
saat ini.

MySQL dibuah oleh TcX dan telah dipercaya mengelola system dengan 40
buah database berisi 10.000 tabel dan 500 di antaranya memiliki 7 juta baris.

MySQL AB merupakan perusahaan komersial Swedia yang mensponsori dan


yang memiliki MySQL.Pendiri MySQL AB adalah dua orang Swedia yang
bernama David Axmark, Allan Larsson dan satu orang Finlandia bernama
Michael “Monty”. Setiap pengguna MySQL dapat menggunakannya secara bebas
yang didistribusikan gratis dibawah lisensi GPL(GeneralPublic License) namun
tidak boleh menjadikan produk turunan yang bersifat komersial.

Pada saat ini MySQL merupakan database server yang sangat terkenal di dunia,
semua itu tak lain karena bahasa dasar yang digunakan untuk mengakses database
yaitu SQL. SQL (Structured Query Language) pertama kali diterapkan pada
sebuah proyek riset pada laboratorium riset San Jose, IBM yang bernama system
R. Kemudian SQL juga dikembangan oleh Oracle, Informix dan Sybase.Dengan
menggunakan SQL, proses pengaksesan database lebih user-friendly dibandingan
dengan yang lain, misalnya dBase atau Clipper karena mereka masih
menggunakan perintah-perintah pemrograman murni.

SQL dapat digunakan secara berdiri sendiri maupun di lekatkan pada bahasa
pemograman seperti C, dan Delphi.

1. Elemen SQL

Elemen dari SQL yang paling dasar antara lain pernyataan, nama, tipe data,
ekspresi, konstanta dan fungsi bawaan.

 Pernyataan

Perintah dari SQL yang digunakan untuk meminta sebuah tindakan kepada
DBMS.

Pernyataan dasar SQL antara lain :

1. ALTER      : Merubah struktur tabel


2. COMMIT  : Mengakhiri eksekusi transaksi

3. CREATE   : Membuat tabel, indeks


4. DELETE   : Menghapus baris pada sebuah tabel

5. DROP        : Menghapus tabel, indeks

6. GRANT     : Menugaskan hak terhadap basis data kepada user

7. INSERT    : Menambah baris pada tabel

8. REVOKE  : Membatalkan hak kepada basis data

9. ROLLBACK  : Mengembalikan pada keadaan semula apabila transaksi


gagal dilaksanakan

10. SELECT    : Memilih baris dan kolom pada sebuah tabel

11. UPDATE   : Mengubah value pada baris sebuah tabel

 Nama

Nama digunakan sebagai identitas, yaitu identitas bagi objek pada


DBMS.Misal : tabel, kolom dan pengguna.

 Tipe data

Tipe data yang ada dalam MYSQL :

1. Tipe data numerik antara lain :

1. TINYINT         : Nilai integer yang sangat kecil


2. SMALLINT     : Nilai integer yang kecil

3. MEDIUMINT  : Nilai integer yang sedang

4. INT                   : Nilai integer dengan nilai standar

5. BEGINT           : Nilai integer dengan nilai besar

6. FLOAT             :Bilangan decimal dengan single-precission

7. DOUBLE         :Bilangan decimal dengan double-precission

8. DECIMAL(M,D)   : Bilangan float yang dinyatakan sebagai string. M :


jumlah digit yang disimpan, D : jumlah angka dibelakang koma

2. Tipe data String antara lain :

1. CHAR               : Karakter yang memiliki panjang tetap yaitu sebanyak n


2. VARCHAR      : Karakter yang memiliki panjang tidak tetap yaitu
maksimum n

3. TINYBLOB     : BLOB dengan ukuran sangat kecil

4. BLOB               : BLOB yang memiliki ukuran kecil

5. MEDIUMBLOB    : BLOB yang memiliki ukuran sedang

6. LONGBLOB    : BLOB yang memiliki ukuran besar

7. TINYTEXT      : teks dengan ukuran sangat kecil

8. TEXT                : teks yang memiliki ukuran kecil

9. MEDIUMTEXT     : teks yang memiliki ukuran sedang

10. LONGTEXT     : teks yang memiliki ukuran besar

11. ENUM              : kolom diisi dengan satu member enumerasi

12. SET                   : Kolom dapat diisi dengan beberapa nilai anggota


himpunan

3. Tipe data tunggal dan jam :

1. DATE        : date memiliki format tahun-bulan-tanggal


2. TIME         : time memiliki format jam-menit-detik

3. DATETIME           : gabungan dari format date dan time

 Ekspresi

Ekspresi digunakan untuk menghasilkan/menghitung nilai.

Misalnya : jumlah=harga-diskon

Ekspresi aritmatika antara lain :

1. +  : tambah
2. –  : kurang

3. /  : bagi

4. *  : kali

 Fungsi bawaan
Fungsi adalah subprogram yang dapat menghasilkan suatu nilai apabila fungsi
tersebut dipanggil.Fungsi Agregat adalah fungsi yang digunakan untuk melakukan
summary, statistik yang dilakukan pada suatu tabel/query.

1. AVG(ekspresi)  : digunakan untuk mencari nilai rata-rata dalam kolom


dari tabel.
2. COUNT(x)       : digunakan untuk menghitung jumlah baris dari sebuah
kolom dari tabel

3. MAX(ekspresi) : digunakan untuk mencari nilai yang paling besar dari


suatu kolom dari tabel

4. MIN(ekspresi)   : digunakan untuk mencari nilai yang paling kecil dari


suatu kolom dari tabel

5. SUM(ekspresi)  : digunakan untuk mengitung jumlah keseluruhan dari


suatu kolom dari tabel

2. Kelompok Penyataan SQL

Pernyataan SQL dapat dikelompokan menjadi 3 kelompok, yaitu : DDL, DML


dan DCL.

1. Pernyataan SQL kelompok DDL (Data Defination Language)

DDL berfungsi untuk mendefinisikan atribut basis data, table, atribut(kolom),


batasan-batasan terhadap suatu atribut, serta hubungan antar tabel. Perintah yang
digunakan biasanya : CREATE, ALTER, dan DROP

1. Membuat Database

Syntax yang digunakan : CREATE DATABASE namadatabase;

2. Menghapus Database

Syntax yang digunakan : DROP DATABASE namadatabase;

3. Membuat Tabel

Syntax yang digunakan : CREATE TABLE namatabel;

4. Menghapus Database

Syntax yang digunakan : DROP DATABASE namadatabase;


5. Menghapus Tabel

Syntax yang digunakan : DROP TABEL namatabel;

6. Mendefinisikan null/not null

Syntax yang digunakan : CREATE TABLE namatabel

( Field1 TipeData1 NOT NULL,

Field2 TipeData2

);

7. Mendefinisikan Nilai Default

Syntax yang digunakan : CREATE TABLE namatabel

( Field1 TipeData1,

Field2 TipeData2 DEFAULT nilai

);

8. Mendefinisikan Primary Key pada Tabel

Dapat dilakukan dengan 3 Syntax :

1)      CREATE TABLE namatabel

( Field1 TipeData1 NOT NULL PRIMARY KEY,

Field2 TipeData2

);

2)      CREATE TABLE namatabel

( Field1 TipeData1,

Field2 TipeData2,

PRIMARY KEY(Field1)

);
3)      ALTER TABEL namatabel ADD CONSTRAINT namaconstraint
PRIMARY KEY (NAMAKOLOM)

9. Menghapus Primary Key pada Tabel

Syntax yang digunakan ada 2 :

1)      ALTER TABLE namatabel DROP CONSTRAINT


NAMACONSTRAINT;

2)      ALTER TABLE NAMATABEL DROP PRIMARY KEY;

10. Menambah Kolom Baru pada Tabel

Syntax yang digunakan : ALTER TABEL NAMATABEL ADD newfield


tipe;

11. Mengubah Tipe Data atau Lebar Kolom pada Tabel

Syntax yang digunakan : ALTER TABEL namatabel MODIFY COLUMN


field tipe;

12. Mengubah Nama Kolom

Syntax yang digunakan : ALTER TABEL namatabel CHANGE


COLUMN namakolomlama namakolombaru tipe;

13. Menghapus Kolom pada Tabel

Syntax yang digunakan : ALTER TABEL namatabel DROP COLUMN


namakolom;

14. Mendefinisikan Foreign Key pada Tabel

Dapat dilakukan dengan 2 Syntax :

1)      CREATE TABLE namatabel

( Field1 TipeData1,

Field2 TipeData2,

FOREIGN KEY (Field2) REFERENCES namatabelinduk


(namakolominduk) ON UPDATE CASCADE ON DELETE NO
ACTION)

2)      ALTER TABEL namatabel ADD CONSTRAINT namaconstraint


FOREIGN KEY (namakolom) REFERENCES namatabelinduk
(namakolominduk) ON UPDATE CASCADE ON DELETE NO
ACTION;

15. Menghapus Foreign Key

Syntak yang digunakan : ALTER TABEL namatabel DROP FOREIGN


KEY namaconstraint;

2. DML (Data Manipulation Language)

DML berfungsi untuk memanipuladi data yang ada di dalam basis data, contohnya
untuk pengambilan data, penyisipan data, pengubahan data dan penghapusan data.

Perintah yang digunakan biasanya adalah : INSERT, DELETE, UPDATE, dan


SELECT.

1. INSERT

menambah baris pada tabel. Syntax yang paling sering digunakan :


INSERT INTO namatabel VALUES (nilai1, nilai2, nilai-n);

2. DELETE

Menghapus baris pada tabel.Syntax : DELETE FROM namatabel [where


kondisi];

3. UPDATE

Mengubah isi beberapa kolom pada tabel.Syntax : UPDATE namatabel


SET kolom1=nilai1, kolom2=nilai2 [where kondisi];

4. SELECT

Menampilkan isi dari suatu tabel yang bisa dihubungkan dengan tabel
yang lainnya;
Kelebihan MySQL 
Berikut ini beberapa kelebihan MySQL sebagai database server antara lain :
 Source MySQL dapat diperoleh dengan mudah dan gratis.
 Sintaksnya lebih mudah dipahami dan tidak rumit.

 Pengaksesan database dapat dilakukan dengan mudah.

 MySQL merupakan program yang multithreaded, sehingga dapat dipasang


pada server yang memiliki multiCPU.

 Didukung programprogram umum seperti C, C++, Java, Perl, PHP,


Python, dsb.

 Bekerja pada berbagai platform. (tersedia berbagai versi untuk berbagai


sistem operasi).

 Memiliki jenis kolom yang cukup banyak sehingga memudahkan


konfigurasi sistem database.

 Memiliki sistem sekuriti yang cukup baik dengan verifikasi host.

 Mendukung ODBC untuk sistem operasi Windows.

 Mendukung record yang memiliki kolom dengan panjang tetap atau


panjang bervariasi.

MySQL dan PHP merupakan sistem yang saling terintegrasi.Maksudnya


adalah pembuatan database dengan menggunakan sintak PHP dapat di buat.
Sedangkan input yang di masukkan melalui aplikasi web yang menggunakan
script serverside seperti PHP dapat langsung dimasukkan ke database MySQL
yang ada di server dan tentunya web tersebut berada di sebuah web server.

1. MySQL
MySQL (dieja “My Ess Que Ell”) merupakan perangkat lunak basis data
yang dikembangkan oleh perusahaan bernama MySQL AB. Sebagai sebuah
produk, ada beberapa poin penting mengenai MySQL, yaitu:
 MySQL merupakan suatu Dataase Management System (DBMS)
 MySQL adalah suatu Relational Database Management System (RDBMS)
 MySQL merupakan sebuah produk yang didistribusikan secara open
source.
 MySQL dapat berjalan baik hampir semua platfrom sistem operasi.
2. Server dan Client MySQL
Arsitektur DBMS MySQL dapat diklarifikasikan ke dalam dua jenis, yaitu
server dan client. Secara garis besar, client digunakan untuk melakukan request
informasi, sedangkan server bertindak merespon permintaan dari client. Dengan
demikian, lingkungan yang nantinya akan digunakan pada praktikum ini adalah
client.
3. Objek Basis Data
Di MySQL, basisdata direpresentasikan sebagai suatu direktori, dimana di
dalamnya terdapat himpunan file-file tabel yag terdefinisi. Pembuatan basis data
dilakukan menggunakan pernyataan CREATE DATABASE dan diikuti dengan
nama basis data yang akan dibuat.
Bentuk sintaks pembuatan basis data:
CREATE DATABASE [IF NOT EXISTS] nama_database;
Oleh karena basis data merupakan suatu schema, maka penghapusannya
dilakukan menggunakan perintah DDL DROP DATABASE
Bentuk formal penghapusan basis data:
DROP DATABASE [IF EXISTS] nama_database;
4. Objek Tabel
MySQL endukung penuh standart ANSI/ISO SQL. Dengan demikian,
perintah pembuatan tabel di MySQL juga sama seperti DBMS lainnya. Bentuk
sintaks pembuatan tabel diperihatkan sebagai berikut:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] nama_tabel
[(create_definisi,...)]
[table_options] [select_statement]
Untuk menghapus operasi-operasi modifikasi, baik modifikasi tabel maupun
field, dapat dilakukan dengan memanfaatkan perintah ALTER>
5. Akses dan Manipulasi Data
Operasi-operasi dan manipulasi data-data mencangkup pengambilan atau
seleksi, penambahan, pengubahan, dan penghapusan di MySQL juga didasarkan
pada standart SQL. Dengan demikian, adanya standardisasi ini memungkinkan
keseragaman operasi di lintas DBMS
Relationship
1. Relationship
Relationship adalah suatu hubungan antara beberapa entitas. Konsep ini sangat
penting sekali di dalam basis data, di mana memungkinkan entitas-entitas
untuk saling berhubungansatu sama lain.
Di dalam sebuah relationship, primary key memiliki peran penting untuk
mengaitkan entitas. Selain itu, primary key juga digunakan untuk
mendefinisikanbatasan keterhubungan.
Jenis-jenis relasi entitas :
a. Satu ke satu (one to one)
Setiap data pada entitas A berhubungan dengan maksimal satu data pada
entitas B, begitu pula sebaliknya.
b.  Satu ke banyak (one to many) atau banyak ke satu (many to one)
Setiap data pada entitas A bisa berhubungan dengan banyak data pada entitas
B, tetapi data pada entitas B berhubungan maksimal hanya dengan sebuah data
di A.
c.   Banyak ke banyak (many to many)
Setiap data pada entitas A bisa berhubungan dengan banyak data pada entitas
B, demikian pula sebaliknya.
d. ERD
Merupakan suatu model untuk menjelaskan hubungan antar data dalam
basisdata berdasarkan obyek obyek dasar data yang mempunyai hubungan
antar relasi. ERD untuk memodelkan struktur data dan hubungan antar data,
untuk menggambarkannya digunakan beberapa notasi dan simbol.
2. Normalisasi
Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-
atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang
non-redundant, stabil, dan fleksible. 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.
3. Join
Join merupakan salah satu konstruksi dasar dari SQL dan basis data. Join
dapat didefinisikan sebagai kombinasi record dari dua atau lebih tabel di dalam
basis data relasional dan menghasilkan sebuah tabel (temporary) baru—yang
disebut sebagai joined table. Join dapat diklasifikasikan ke dalam dua jenis, yaitu
inner join dan outer join.
a. Inner Join
Inner join pada dasarnya adalah menemukan persimpangan (intersection)
antara dua buah tabel.
Sintaks inner join diperlihatkansebagai berikut:
SELECT A1, A2, ..., An
FROM r1 INNER JOIN r2
ON r1.join_key = r2.join_key
Inner join juga dapat direpresentasikan dalam bentuk implisit sebagai berikut:
SELECT A1, A2, ..., An
FROM r1, r2
WHERE r1.key = r2.key
Misalkan terdapat tabel A dan B, maka hasil inner join dapat diperlihatkan—
sebagai bidang terarsir—dalam diagram Venn seperti Gambar1.
Gambar 1. Inner Join
b. Outer Join
Outer join dibagi ke dalam tiga jenis, yaitu left outer join, right outer join,
dan full outer join.
Left Outer Join
Left outer join (atau left join) mengembalikan semua nilai dari tabel kiri
ditambah dengan nilai dari tabel kanan yang sesuai (atau NULL jika tidak ada
nilai yang sesuai).
Sintaks left outer join diperlihatkan sebagai berikut:
SELECT A1, A2, ..., An
FROM r1
LEFT OUTER JOIN r2
ON r1.join_key = r2.join_key
Left outer join antara tabel A dan B dapat diilustrasikan dalam diagram
Venn seperti Gambar 2.

Gambar 2. Left OuterJoin

Right Outer Join


Right outer join (atau right join) pada dasarnya sama seperti left join, namun
dalam bentuk terbalik—kanan dan kiri.
Sintaks right outer join diperlihatkansebagai berikut:
SELECT A1, A2, ..., An
FROM r1
RIGHT OUTER JOIN r2
ON r1.join_key = r2.join_key
Right outer join antara tabel A dan B dapat diilustrasikan dalam diagram
Venn seperti Gambar 3.
Gambar 3. Right OuterJoin

Full Outer Join


Full outer join (atau full join) pada hakekatnya merupakan kombinasi dari
left dan right join.
Sintaks full outer join diperlihatkansebagai berikut:
SELECT A1, A2, ..., An
FROM r1
FULL OUTER JOIN r2 ON r1.join_key = r2.join_key
Bentuk visual dari full outer join dapat diperlihatkan menggunakan diagram
Venn seperti Gambar 4.

Gambar 4. Full OuterJoin

Selain empat jenis join yang utama di atas, masih ada beberapa variasi join
lainnya, seperti CROSS JOIN (cartesian product), NATURAL JOIN,dan
sebagainya.
Perlu juga diperhatikan, join bisa diimplementasikan dalam bentuk
bersarang (nested join). Jadi, di dalam sebuah operasi join bisa terdapat operasi
join lainnya.

Subquerry

Subquery adalah perintah SELECT yang berada di dalam perintah SQL lain.
Subquery sangat berguna ketika kita ingin menampilkan data dengan kondisi yang
bergantungpada data di dalam table itu sendiri.
Kegunaan-kegunaan  Subquery dalam memanipulasi data:

 Meng-copy data dari satu tabel ke tabel lain


 Menerima data dari inline view
 Mengambil data dari tabel lain untuk kemudian di update ke tabel yang dituju
 Menghapus baris dari satu tabel berdasarkan baris dari tabel lain.

Contoh:
Menampilkan data karyawan yang bekerja satu departemen dengan Biri.
SELECT last_name, titleFROM employee
WHERE dept_id =
( SELECT dept_id
FROM employee
WHERE UPPER(last_name) = ‘BIRI’ );

Operator EXIST dan NOT EXIST


Kata kunci EXIST dan NOT EXIST dirancang hanya untuk digunakan di
subquery. Kata kunci-kata kunci ini menghasilkan nilai TRUE atau FALSE
EXIST akan mengirim nilai TRUE jika dan hanya jika terdapat sedikitnya satu
baris di table hasil yang dikirim oleh subquery. EXIST mengirim nilai FALSE
jika subquery mengirm table kosong NOT EXIST kebalian dan EXIST.
Karena EXIST dan NOT EXIST hanya memeriksa keberadaan baris-baris di table
hasil subquery.
Operator Any(Some)
Operator Any (some) hampir sama penggunaannya seperti Exists. Tetapi operator
relasi yang digunakan biasanya selain = (sama dengan). hal tersebut disebabkan
apabila operator relasi = yang digunakan, maka sebetulnya fungsi operator Any
(some) sama seperti operator IN, sehingga kondisi seperti itu tidak dianjurkan
karena lebih mudah pemahamannya apabila menggunakan operator IN.
Contoh :
Akan menampilkan daftar nama pegawai dan gaji yang gajinya tidak paling
sedikit : select nama, gaji from pegawai where gaji > any (select gaji from
pegawai);
Operator All
Operator all digunakan untuk melakukan pembandingan dengan sub query.
Kondisi dengan all menghasilkan nilai benar jika pembandingan menghasilkan
benar untuk setiap nilai dalam sub query.
Multiple Rows Subquery
Multiple Row Subquery adalah subquery yang menghasilkan lebih dari satu baris
data. Untuk multiple row subquery ini yang digunakan adalah operator
pembanding IN, ANY atau ALL
Kesalahan dalam Subquery
Kesalahan umum dalam subquery adalah lebih dari satu baris data dihasilkan
untuk single row subquery.
Contoh:
Subquery ini menghasilkan lebih dari satu baris data dan menggunakan single row
operator. Kita dapat membetulkan kesalahan ini dengan mengubah = menjadi IN.
SELECT last_name, first_name, title
FROM employee
WHERE dept_id = ( SELECT id
FROM department
WHERE name = ‘Finance’
OR region_id = 2 );

Subquerydapat diklasifikasikan ke dalam tiga jenis : scalar, multiple-row, dan


multiple-column.
a. Scalar Subquery
Subquery baris tunggal (scalar) hanya mengembalikan hasil satu baris data.
Bentuk subqueryini diperlihatkan seperti Gambar 1.

Gambar 1 Scalar subquery


Subquery baris tunggal dapat menggunakan operator baris tunggal =, >, >=, <, <=,
atau <>.

b. Multiple-Row Subquery
Subquery baris ganda (multiple-row) mengembalikan lebih dari satu baris data.
Bentuk subqueryini diperlihatkan sepertiGambar 2.

Gambar 2 Multiple-rowsubquery
Subquery baris ganda dapat menggunakan operator komparasi IN, ANY / SOME,
atau ALL.

c. Multiple-Column Subquery
Subquery kolom ganda (multiple-column) mengembalikan lebih dari satu baris
dan satu kolom data. Bentuk subquery ini diperlihatkan sepertiGambar 3.
Gambar 3 Multiple-columnsubquery

Subquery dapat diimplementasikan di dalam klausa WHERE, HAVING, atau


FROM.

Stored Procedure
Pengertian  Stored Procedure
Stored Procedure adalah sebuah kelompok kode SQL yang di simpan di
katalog database dan dapat di panggil kemudian oleh program, trigger atau bahkan
stored procedure.Sebuah Stored Procedure yang memanggil diri nya sendiri di
sebut rekursif stored procedure.

Stored Procedure ditulis dalam bentuk sebuah script.Dalam SQL Server


storeprocedure memiliki kemampuan antara lain :
a. Menerima parameter input dan mengembalikan beberapa nilai parameter
output dari procedure yang dipanggil.
b. Mengandung statement pemrograman yang melakukan operasi terhadap
database termasuk memanggil store procedure lain.
c. Memberikan status yang mengindikasikan keberhasilan atau
kegagalaneksekusi store procedure
Keuntungan penggunaan Stored Procedure
1) Meningkatkan performance aplikasi. Sebuah Stored Procedure di simpan dan
di compile di katalog database yang mana dapat di eksekusi lebih cepat di
bandingkan SQL yang tidak di compile  dari kode aplikasi.
2) Mengurangi traffic antara aplikasi dan database server.
Aplikasi hanya mengirim nama stored procedure untuk mengeksekusi SQL.
3) Dapat di gunakan kembali dan transparent ke aplikasi yang ingin
menggunakan nya.

4) Aman.
Penggunaan Stored Procedure dapat di akses hak nya oleh aplikasi oleh
Database Administrator

Kerugian penggunaan Stored Procedure


1) Dapat mengakibatkan Database server membutuhkan memory dan prosessor
lebih tinggi.
2) Stored procedure hanya berisi SQL deklaratif, sehingga sangat sulit untuk
menulis sebuah procedure dengan kompleksitas logika, seperti bahasa
pemrograman yang di gunakan untuk memprogram aplikasi.

3) Stored procedure tidak dapat di debug di hampir RDBMS, termasuk


MySQL.

4) Membutuhkan keahlian khusus untuk menulis dan me maintain stored


procedure yang tidak setiap developer memiliki, sehingga dapat membuat
ribet

Trigger

Sebuah trigger merupakan kode prosedural yang akan secara otomatis


dieksekusi akibat dipicu oleh seuah event / kejadian pada suatu Tabel. Trigger
dapat mencegah akses terhadap data yang spesifik, melakukan logging atau
melakukan audit perubahan data. Trigger digunakan untuk pemrosesan kondisi
statemen DML (Data Manipulation Language) seperti INSERT, DELETE dan
UPDATE, Namun trigger tidak dapat digunakan dalam statemen SELECT.

Terdapat tiga kejadian (event) umum yang dapat menyebabkan trigger


dipicu :
– INSERT, berarti trigger dijalankan ketika terdapat sejumlah data baru yang
diinput
– UPDATE, berarti trigger dijalankan ketika terdapat data / record yang diubah
– DELETE, berarti trigger dijalankan ketika terdapat data / record yang dihapus

Tipe dari trigger adalah :

 Application trigger : diaktifkan pada saat terjadi event yang berhubungan


dengan sebuah aplikasi
 Database trigger : diaktifkan pada saat terjadi event yang berhubungan
dengan data (seperti operasi DML) atau event yang berhubungan dengan
sistem (semisal logon atau shutdown) yang terjadi pada sebuah skema atau
database.

Trigger perlu dibuat pada saat :

 Membentuk sebuah aksi tertentu terhadap suatu event


 Memusatkan operasi global

Trigger tidak perlu dibuat, jika :

 Fungsionalitas yang diperlukan suatu ada pada Oracle server


 Duplikat atau sama dengan fungsi trigger yang lain.

Sintak penulisan dari database trigger, berisi komponen berikut :

1. Trigger timing :

a. Untuk tabel : BEFORE, AFTER

b. Untuk view : INSTEAD OF

2. Trigger event : INSERT, UPDATE atau DELETE

3. Nama tabel : yaitu nama tabel atau view yang berhubungan dengan trigger

4. Tipe trigger : Baris atau Pernyataan (statement)

5. klausa WHEN : untuk kondisi pembatasan

6. trigger body : bagian prosedur yang dituliskan pada trigger

Trigger timing adalah waktu kapan trigger diaktifkan. Ada tiga macam trigger
timing, yaitu :

 BEFORE : trigger dijalankan sebelum DML event pada tabel


 AFTER : trigger dijalankan setelah DML event pada tabel

 INSTEAD OF : trigger dijalankan pada sebuah view.

Trigger event ada 3 kemungkinan : INSERT, UPDATE atau DELETE.

Pada saat trigger event UPDATE, kita dapat memasukkan daftar kolom
untuk mengidentifikasi kolom mana yang berubah untuk mengaktifkan sebuah
trigger (contoh : UPDATE OF salary ... ). Jika tidak ditentukan, maka
perubahannya akan berlaku untuk semua kolom pada semua baris.

Tipe trigger ada 2 macam, yaitu :

 Statement : trigger dijalankan sekali saja pada saat terjadi sebuah event.
Statement trigger juga dijalankan sekali, meskipun tidak ada satupun baris
yang dipengaruhi oleh event yang terjadi.
 Row : trigger dijalankan pada setiap baris yang dipengaruhi oleh terjadinya
sebuah event. Row trigger tidak dijalankan jika event dari trigger tidak
berpengaruh pada satu baris pun.

Trigger body mendefinisikan tindakan yang perlu dikerjakan pada saat terjadinya
event yang mengakibatkan sebuah trigger menjadi aktif. Manfaat dari penggunaan
trigger :

1. Trigger merupakan salah satu mekanisme untuk menjalankan aturan bisnis


dan menjaga integritas data dalam sebuah basis data. Mekanisme yang
lainnya adalah penggunaan CONSTRAINT
2. Trigger dapat mengevaluasi status dari sebuah tabel sebelum dan sesudah
terjadi perubahan data dan melakukan aksinya sesuai perbedaan yang terjadi

3. Trigger dapat melakukan perubahan cascade melalui melalui relasi tabel pada
database, akan tetapi perubahan ini akan lebih efisien jika dieksekusi
menggunakan referential integrity constraints.

4. Trigger dapat melakukan pencegahan akses atas data yang kompleks


dibanding dengan menggunakan CHECK CONSTRAINT

5. Tidak seperti pada Check Constraint, Trigger dapat mereferensikan kolom /


field dalam tabel yang berbeda.

Trigger MySQL
MySQL mendukung fitur trigger termasuk juga stored procedure dan view sejak
versi 5.0.2 sebagaimana objek-objek lainnya, trigger diciptakan menggunakan
pernyataan CREATE.
Syntaks pendefinisian trigger diperlihatkan sebagai berikut:

MySQL tidak mengizinkan multiple trigger dengan waktu aksi dan event sama
per tabel. Misalkan di tabel A sudah didefinisikan trigger AFTER INSERT, maka
kita tidak boleh mendefinisikan trigger AFTER INSERT lagi, namun AFTER
EDIT, AFTER DELETE, atau BEFORE (INSERT, EDIT, dan DELETE) bisa
diterima.

VIEW

1. View
View dapat didefinisikan sebagai tabel maya (virtual) atau logikal yang terdiri
dari himpunan hasil query. Tidak seperti umumnya tabel didalam basis data
relasional, view bukanlah bagian dari skema fisik. View bersifat dinamis; ia
mengandung data dari tabel yang direpresentasikannya. Dengan demikian,
ketika tabel yang menjadi sumber datanya berubah, data di view juga akan
berubah.
Merujuk pada dokumentasi MySQL, sintaks pendefinisian view diperlihatkan
sebagai berikut:

2. Updatable View
View dapat bersifat read-only atau updatable. Kondisi ini sangat dipengaruhi
oleh pendefinisian view itu sendiri. Bagaimanapun, untuk menciptakan
updatable view, pernyataan SELECT yang didefinisikan di view harus
mengikuti aturan-aturan berikut:
 Pernyataan SELECT tidak boleh merujuk ke lebih dari satu tabel.
 Pernyataan SELECT tidak boleh menggunakan klausa GROUP BY atau
HAVING.
 Pernyataan SELECT harus tidak menggunakan DISTINCT
 Pernyataan SELECT harus tidak merujuk ke view lain yang tidak
updatable
 Pernyataan SELECT tidak boleh mengandung ekspresi apapun, misalnya
fungsi atau agregat.
Pada hakekatnya, jika sistem database mampu menentukan pemetaan balik
dari skema view ke skema tabel dasar, maka view memungkinkan untuk di
update. Dalam kondisi ini, operasi-operasi INSERT, UPDATE, dan DELETE
dapat diterapkan pada view.

Keuntungan VIEW

1. Membatasi akses data


2. Menyediakan data yang independen
3. Menampilkan view yang berbeda-beda dengan data yang sama
4. View Memudahkan query yang kompleks
5. View membantu membatasi akses terhadap user yang spesifik.
6. View dapat menjadi sebuah lapisan keamanan.
7. View memungkinkan kolom hasil perhitungan

Kekurangan VIEW
1. Performance : Queri terhadap view dapat menjadi lambat terutama
jika view tersebut dibuat menggunakan view yang lain
2. Table Dependencies : Jika tabel berubah maka otomatis kita juga
harus mengubah viewnya.
View adalah perintah query yang disimpan pada database dengan suatu
nama tertentu, sehingga bisa digunakan setiap saat untuk melihat data tanpa
menuliskan ulang query tersebut. Views merupakan suatu tampilan tabel virtual.
Views dapat digunakan untuk mempermudah kita dalam pembuatan laporan atau
tampilan database yang diinginkan dengan cepat.

Membuat dan Mendefinisikan Views


Kita dapat membuat view dengan perintah CREATE VIEW.
Berikut adalah syntax lengkapnya :

 Kita menggunakan opsi OR REPLACE jika kita ingin mengganti view


dengan nama yang sama dengan perintah tersebut.
 Jika tidak maka perintah CREATE VIEW akan menghasilkan error jika nama
view yang ingin dibuat sudah ada sebelumnya.
Keterangan :
 View_name = nama view
 Column_list = daftar kolom dari hasil query select..pada badan view. Jumlah
kolom pada daftar nama kolom ini harus sama dengan hasil dari query select.
 Select_statement = query SQL select yang akan dilakukan

D. DESAIN DATABASE
Dalam perancangan database alumni sekolah ini terdapat 10 buah tabel
yaitu tabel alumni, siswa, kelas, jurusan, kota_tinggal, jenis_pekerjaan,
rentang_gaji, perusahaan, jenjang_pendidikan dan institusi_pendidikan.

Dalam tabel alumni terdapat 4 buah field yaitu No_Ijazah, NIS, Angkatan,
dan Kota_Tinggal yang dijadikan sebagai Primary Key adah No_Ijazah. Struktur
table alumni adalah gambar berikut ini:
Gambar 1 Struktur tabel alumni

Dalam table siswa terdapat 7 buah field yaitu NIS, Nama, TTL, JK,
Agama, Alamat, dan Kode_Kelas. Pada table ini yang dijadikan sebagai Primary
Key adalah NIS. Struktur table siswa seperti gambar berikut ini:

Gambar 2 Struktur tabel siswa


Dalam table kelas yang terdapat 4 buah field yaitu kode_kelas,
nama_kelas, jumlah_siswa, dan kode_jurusan. Pada table ini yang dijadikan
sebagai Primary Key adalah kode_kelas. Struktur dari table kelas diperlihatkan
seperti gambar berikut:

Gambar 3 Struktur tabel kelas

Dalam table jurusan yang terdapat 3 buah field yaitu kode_jurusan,


nama_jurusan, dan nama_kajur. Pada table ini yang dijadikan sebagai Primary
Key adalah kode_jurusan. Struktur dari table jurusan diperlihatkan seperti gambar
berikut:
Gambar 4 Struktur tabel jurusan

Dalam table jenjang_pendidikan yang terdapat 3 buah field yaitu


No_Ijazah, id_institusi, dan Angkatan. Pada table ini yang dijadikan sebagai
Primary Key adalah No_Ijazah. Struktur dari table jenjang_pendidikan
diperlihatkan seperti gambar berikut:

Gambar 5 Struktur tabel jenjang_pendidikan

Dalam table institusi_pendidikan yang terdapat 5 buah field yaitu


id_institusi, nama_institusi, alamat, no_telp dan jurusan. Pada table ini yang
dijadikan sebagai Primary Key adalah id_institusi. Struktur dari table kelas
diperlihatkan seperti gambar berikut:

Gambar 6 Struktur tabel institusi_pendidikan

Dalam table kota_tinggal yang terdapat 3 buah field yaitu nama_kota,


nama_provinsi, dan negara. Pada table ini yang dijadikan sebagai Primary Key
adalah nama_kota. Struktur dari table kota_tinggal diperlihatkan seperti gambar
berikut:
Gambar 7 Struktur tabel kota_tinggal
Dalam table Jenis_Pekerjaan yang terdapat 4 buah field yaitu No_Ijazah,
Jenis_Pekerjaan, Gol_Rentang_Gaji, dan perusahaan_lembaga. Pada table ini
yang dijadikan sebagai Primary Key adalah No_Ijazah. Struktur dari table
Jenis_Pekerjaan diperlihatkan seperti gambar berikut:

Gambar 8 Struktur tabel Jenis_Pekerjaan

Dalam table Rentang_Gaji yang terdapat 2 buah field yaitu


Gol_Rentang_Gaji, dan Besar_Gaji. Pada table ini yang dijadikan sebagai
Primary Key adalah Gol_Rentang_Gaji. Struktur dari table Rentang_Gaji
diperlihatkan seperti gambar berikut:

Gambar 9 Struktur tabel Rentang_Gaji

Dalam table perusahaanataulembaga yang terdapat 3 buah field yaitu


perusahaan_lembaga, alamat, dan no_telp. Pada table ini yang dijadikan sebagai
Primary Key adalah nama_perusahaan. Struktur dari table
perusahaanatauleembaga diperlihatkan seperti gambar berikut:
Gambar 10 Struktur tabel perusahaanataulembaga

Sehingga struktur dari database “ta” diperlihatkan seperti gambar di bawah


ini:

Struktur database ta
Relasi dari kesepuluh tabel pada database “ta” yaitu tabel alumni,
institusi_pendidikan, jenis_pekerjaan, jenjang_pendidikan, jurusan, kelas,
kota_tinggal, perusahaan, rentang_gaji, dan table siswa. Diperlihatkan seperti
gambar dibawah ini:
Gambar Relasi tabel pada database “ta”
Dari diagram relationship tersebut, dapat diketahui bahwa setiap tabel
saling memiliki relasi dengan tabel yang lain. Cara merelasikannya dengan
menghubungkan field yang merupakan Primary key dengan field dari tabel lain
yang bukan Primary Key.
Primary key ditunjukkan dengan kunci berwarna kuning. Nilai dari
Primary Key adalah unique, artinya nilai dari primary key tersebut tidak ada yang
sama.

RELASI TABEL
a. 0NF

b. 1NF

Data :

No_Ijazah NIS Siswa Angkatan Kota_Tinggal Kegiatan


DN-05 8044 Moh 2010 Surabaya Kuliah
MK Aldidin
7968261 Pramudya
DN-05 8125 Iqlima 2015 Banjarmasin Kerja
MK Hajar
7968342 Sugma L.
DN-05 8066 Ruslan 2010 Sumenep Kuliah
MK Felani
7968283
DN-05 8066 Ruslan 2010 Sumenep Kerja
MK Felani
7968283
DN-05 8050 Septian 2015 Jombang Kerja
MK Adi
7968267 Pratama
DN-05 8136 Vera 2015 Tuban Kerja
MK Fidiyanti
7968353
DN-05 8047 Putrinda 2014 Padang Kerja
MK Inayatul M
7968264
DN-05 8111 Tiara Ayu 2012 Kediri Kuliah
MK Lestari
7968328
DN-05 8111 Tiara Ayu 2012 Kediri Kerja
MK Lestari
7968328
DN-05 8115 Tri Yoga 2013 Lamongan Kerja
MK Bayu B.
7968332
DN-05 8101 Ibno Hajar 2011 Medan Kuliah
MK
7968318
DN-05 8079 Herfian 2012 Magelang Kuliah
MK Eka P.
7968296

Kemudian di normalisasikan kembali agar tidak terjadi duplikat data :

c. 2NF
d. 3NF
ERD
E. IMPLEMENTASI DATABASE
MEMBUAT DATABASE
Sebelum memulai membuat tabel terlebih dahulu membuat database untuk
menyimpan tabel-tabelnya. Berikut ini syntax beserta hasilnya :

22
Kemudian menggunakan database yang sudah dibuat sebelumnya :

Membuat tabel alumni :


Berikut langkah-langkahnya :

Source code :

Printscreen :

Membuat tabel siswa :


Berikut langkah-langkahnya :

Source code :

Prinscreen :

Membuat tabel kelas :


Berikut langkah-langkahnya :
Source code :

Printscreen :

Membuat tabel jurusan :


Berikut langkah-langkahnya :
Source code :

Printscreen :

Membuat tabel jenjang_pendidikan :


Berikut langkah-langkahnya :

Source code :

Printscreen :

Membuat tabel institusi_pendidikan :


Berikut langkah-langkahnya :
Source code :

Printscreen :

Membuat tabel kota_tinggal :


Berikut langkah-langkahnya :

Source code :
Printscreen :

Membuat tabel jenis_pekerjaan :


Berikut langkah-langkahnya :

Source code :

Printscreen :
Membuat tabel rentang gaji :
Berikut langkah-langkahnya :

Source code :

Printscreen :

Membuat tabel perusahaan :


Berikut langkah-langkahnya :
Source code :

Printscreen :

STUDY KASUS
1. FUNGSI AGREGATE
a. Berdasarkan tabel jenjang_pendidikan. Tampilkan jumlaht ahun lulus yang
tahun lulusnya 2014.
Berikut ini query-nya :

Hasil :
Penjelasan :
Perintah sql ini digunakan untuk menampilkan tahun lulus dan jumlah
tahun lulus dari tabel jenjang_pendidikan ketika tahun lulusnya adalah
2014.
b. Berdasarkan tabel kelas tampilkan kode jurusan dan rata-rata dari jumlah
siswa. Namun, dengan syarat kode jurusan bukan 101 dan 105.
Berikut ini query-nya :

Hasil :

Penjelasan:
Perintah sql ini digunakan untuk menampilkan kode_jurusan dan rata-rata
dari jumlah_siswa dari tabel kelas. Kemudian syaratnya adalah
kode_jurusan bukan 101 dan 105

2. JOIN
a. Ambil nama dari tabel siswa dan no_ijazah dari tabel alumni
menggunakan inner join.
Berikut Query-nya :

Hasil :

Penjelasan :
pernyataan sql diatas digunakan untuk menampilkan nama dan no ijazah
dengan cara menggabungkan dua tabel yaitu tabel siswa dan tabel alumni.
b. Kelompokkan data siswa berdasarkan jenis kelaminnya, kemudian hitung
banyaknya. Selesaikan dengan menggunakan left outer join.
Berikut Query-nya :

Hasil :

Penjelasan :
pernyataan sql diatas digunakan untuk mengelompokkan dan menghitung
jumlah siswa berdasar jenis kelaminnya. Dengan menggabungkan dua
tabel yaitu tabel alumni dan tabel siswa.
c. Dapatkan no ijazah alumni yang jenis pekerjaannya ‘PNS’. Selesaikan
dengan menggunakan right outer join.
Berikut Query-nya :

Hasil :

Penjelasan :
pernyataan sql diatas digunakan untuk menampilkan no ijazah alumni
yang bekerja sebagai 'PNS'.dengan menggunakan pendekatan right outer
join dengan menggabungkan dua tabel yaitu tabel alumni dan tabel jenis
pekerjaan.
d. Gabungkan tabel jenjang pendidikan dan institusi pendidikan dengan
menggunakan cross join.
Berikut Query-nya :

Hasil :

Penjelasan :
pernyataan sql diatas digunakan untuk menggabungakan dua tabel yaitu
tabel jenjang pendidikan dan tabel institusi pendidikan dengan
menggunakan cross join.tabel jenjang pendidikan dan tabel institusi
pendidikan merupakan dua himpunan maka cros join nya sama seperti
pada hasil output diatas.
e. Tampilkan gabungan data alumni serta jenjang_pendidikan dengan
menggunakan metode Full Outer Join.
Berikut Query-nya :

Hasil :
Penjelasan :
pernyataan sql diatas menggunakan full join. dengan menggabungkan dua
tabel yaitu tabel alumni dan tabel jenjang pendidikan yaitu yang pertama
menampilkan null pada tabel jenjang pendidikan. dan yang kedua
menampilkan null pada pada tabel alumni.
3. SUBQUERY
a. Dapatkan nama, jenis kelamin dan alamat siswa yang tahun angkatannya
2011.
Berikut Query-nya :

Hasil :

Penjelasan :
Sub-Query di atas menggunakan Scalar Sub-Query atau Sub-Query baris
tunggal yang hanya dapat mengembalikan hasil satu baris data. Subquery
baris tunggal dapat menggunakan operator baris tunggal =, >,>=, <, <=,
atau <>, dan pada sub-query diatas saya menggunakan operator "=".
b. Dapatkan data siswa dimana jumlah siswa pada kelasnya lebih dari atau
sama dengan 30 siswa.
Berikut Query-nya :
Hasil :

Penjelasan :
Sub-Query di atas menggunakan Multiple-Column Sub-Query atau Sub-
Query kolom ganda yang dapat mengembalikan lebih dari satu baris dan
satu kolom data. Subquery kolom ganda dapat menggunakan operator
komparasi IN, ANY /SOME, atau ALL, dan pada sub-query di atas saya
menggunakan operator "IN".
4. VIEW
a. Definisikan view untuk mendapatkan alumni angkatan yang bukan
angkatan 2015.
Berikut Query-nya :

Hasil :
Penjelasan :
Perintah sql ini digunakan untuk menampilkan seluruh data pada table
alumni dengan persyaratan Angakatan tidak sama dengan 2015 dan
dimasukkan pada view. View mengandung data dari tabel yang
direpresentasikannya yaitu table alumni.
b. Definisikan view bersarang untuk mendapatkan jenis pekerjaan yang
golongan rentang gajinya lebih dari 1, dan kemudian diurutkan
berdasarkan golongan rentang gaji.
Berikut Query-nya :

Hasil :

Penjelasan :
Perintah sql ini implementasi dari view bersarang. Awalnya membuat view
jp yang mempresentasikan data dari table jenis_pekerjaan. Kemudian
membuat view yang kedua yaitu view bayar1 dengan mempresentasikan
view jp. Pada view jp diberi persyaratan Gol_Rentang_Gaji bukan 1.
Kemudian diurutkan berdasarkan Gol_Rentang_Gaji. Kemudian
keluarannya merupakan table jenis_pekerjaan dengan menghilangkan
Gol_rentang_gaji selain 1 dan kemudain diurutkan.
5. TRIGGER
a. Buat tabel log_alumni dengan field operasi dan waktudengan
mendefinisikan trigger di tabel alumni untuk merekam operasi INSERT,
UPDATE, dan DELETE. Berikut Query-nya :

Diterapkan source code di prompt :


Hasil :

Penjelasan :
Pembuatan tabel log_alumni diatas digunakan untuk mendefinisikan
trigger dengan field operasi dan waktu. Ada 3 operasi dalam trigger ini
yaitu INSERT, UPDATE, dan DELETE. Waktu operasi dan jenis
operasinya akan tersimpan sebagai bukti transaksi di tabel log_alumni.
Disini fungsi tambahan yang digunakan adalah NOW( ) untuk
menampilkan waktu eksekusi.
b. Buat pernyataan trigger yang mendefinisikan untuk menambah jumlah
siswa sesuai dengan penambahan yang dilakukan!
Berikut langkah-langkahnya :

Hasil :
Penjelasan :
Pernyataan diatas digunakan untuk mendefinisikan trigger dengan operasi
INSERT untuk menambahkan data siswa dan dengan begitu secara
otomatis jumlah siswa yang ada pada tabel kelas akan bertambah jumlah
siswanya.
6. STORED PROCEDURE
a. Pemanggilan atau menampilkan data strored procedure yang memiliki
parameter, data alumni yang, melanjutkan kejenjang_pendidikan pada
"tahun_lulus" 2015 ?
Berikut Query-nya :
Hasil :

Penjelasan :
Perintah SQL pada stored procedure di atas menggunakan parameter IN
dengan dua argument, data diambil dari tabel jenjang_pendidikan dimana
penampilan tahun lulus pada tahun 2015.
b. Tampilkan data strored procedure yang memiliki parameter OUT, data
alumni yang bekerja pada Golongan 2
Berikut Query-nya :

Hasil :
Penjelasan :
Perintah SQL pada stored procedure di atas menggunakan parameter OUT
analog dengan passing-by-reference. Pada parameter OUT ini pada tabel
gol_rentang_gaji, menampilkan data jumlah golongan gaji yang berada
pada golongan 2 dari jenis_pekerjaan nya.
7. TRANSACTION
a. Tambahkan data pada tabel jurusan dengan menggunakan insert pada
metode transaction kemudian data tersebut di ROLLBACK.
Berikut langkah-langkahnya :

Hasil :
Penjelasan :
Pernyataan diatas digunakan untuk mendefinisikan proses transaksi
dengan menggunakan operasi INSERT. Kemudian setelah di INSERT
datanya, maka data pada tabel jurusan akan bertambah dan akan dip roses
ROLLBACK, dimana ROLLBACK berfungsi menggugurkan semua
perintah yang dilakukan sebelumnya. Maka data tersebut akan kembali ke
tampilan awal seperti sebelumnya.
b. Tampilkan nama, jenis kelamin, tempat tanggal lahir, kode kelas, kode
jurusan dan nama kajur pada siswa yang nama kajurnya ‘Sulastri’!
gunakan metode stored procedure dan transaction!
Berikut langkah-langkahnya :

Hasil :
Penjelasan :
Pernyataan diatas digunakan untuk mendefinisikan proses transaksi
dengan menggunakan metode stored procedure. Dalam stored procedure
ini terdapat deklarasi parameter. Jadi, saat melakukan pemanggilan
procedure tersebut harus disertai dengan parameter karena parameter
tesebut merupakan acuan menjalankan proses stored perusahaan.

F. KESIMPULAN
1. Dalam pembuatan tugas akhir ini kelompok kami dapat
mengimplementasikan materi matakuliah basis data yang dipelajari dan
digunakan untuk membantu alumni sekolah SMK Tunas Bangsa dan
sebagai informasi sekolah SMK Tunas Bangsa.
2. Setelah membuat Tugas Akhir basis data bermanfaat agar mengetahui data
alumni sekolah SMK Tunas Bangsa yang digunakan menghubungi alumni
yang lainnya.
3. basis data adalah kumpulan data yang disimpan secara sistematis di dalam
komputer dan dapat diolah atau dimanipulasi menggunakan perangkat
lunak (program aplikasi) untuk menghasilkan informasi adapun pada tugas
kami yaitu alumni sekolah.
4. ada 3 kelompok pada sql, yaitu : DDL, DML dan DCL. DDL digunakan
mendefinisikan atribut basis data, table, atribut(kolom), batasan-batasan
terhadap suatu atribut, serta hubungan antar tabel. Kemudian DML
digunakan untuk memanipuladi data yang ada di dalam basis data.
Kemudian DCL adalah untuk melakukan pengontrolan data dan server
data base
5. Relationship adalah suatu hubungan antara beberapa entitas. Gambaran
relationship digambarkan pada ERD untuk memodelkan struktur data dan
hubungan antar data, untuk menggambarkannya digunakan beberapa
notasi dan symbol. Kemudian 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.
6. Join dapat didefinisikan sebagai kombinasi record dari dua atau lebih tabel
di dalam basis data relasional dan menghasilkan sebuah tabel (temporary)
baru—yang disebut sebagai joined table.
7. Subquery adalah perintah SELECT yang berada di dalam perintah SQL
lain. Ada Kata kunci EXIST dan NOT EXIST dirancang hanya untuk
digunakan di subquery. Kata kunci-kata kunci ini menghasilkan nilai
TRUE atau FALSE.
8. Stored Procedure adalah sebuah kelompok kode SQL yang di simpan di
katalog database dan dapat di panggil kemudian oleh program, trigger atau
bahkan stored procedure.
9. trigger merupakan kode prosedural yang akan secara otomatis dieksekusi
akibat dipicu oleh seuah event / kejadian pada suatu Tabel.
10. View dapat didefinisikan sebagai tabel maya (virtual) atau logikal yang
terdiri dari himpunan hasil query.

Daftar Pustaka

Ramadhani, Achmad Ilham, dkk. 2015. Desain Database Skripsi Mahasiswa.


Universitas Negeri Malang : Malang.

Tim Asisten Dosen, 2016. Modul 5 Subquery dan View. Basis Data. Universitas
Negeri Malang : Malang

Tim Asisten Dosen, 2016. Modul 8 Transaction. Basis Data. Universitas Negeri
Malang : Malang

Tim Asisten Dosen. 2016. Modul 3 Fungsi Agregate. Basis Data. Universitas
Negeri Malang : Malang.

Tim Asisten Dosen. 2016. Modul 4 Join dan Union. Basis Data. Universitas
Negeri Malang : Malang.
Tim Asisten Dosen. 2016. Modul 6 Trigger. Basis Data. Universitas Negeri
Malang : Malang.

Tim Asisten Dosen. 2016. Modul 7 Stored Procedure. Basis Data. Universitas
Negeri Malang : Malang.

Widodo, Abdul, dkk. 2015. Perancangan Database Alumni Sekolah SMA.


Universitas Negeri Malang : Malang.

Anda mungkin juga menyukai