Anda di halaman 1dari 23

MODUL BASIS DATA II

Semester Ganjil 2016/2017

DISUSUN OLEH SHERLY CHRISTINA, S.KOM., M.KOM

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNIK UNIVERSITAS

PALANGKARAYA 2016
TATA TERTIB DAN TATA LAKSANA PRAKTIKUM

TATA TERTIB

1. Praktikan WAJIB mengikuti semua modul praktikum.


2. Praktikan hanya boleh tidak mengikuti praktikum 1 (Satu) kali DENGAN ATAU
TANPA SURAT IZIN dari jumlah pertemuan praktikum.
3. Praktikan yang berhalangan mengikuti praktikum, diwajibkan melaporkan ke dosen
praktikum untuk menentukan jadwal praktikum sebagai pengganti jadwal yang
berhalangan.
4. Praktikan yang lebih dari 1 (satu) kali tidak mengikuti praktikum, tidak diperbolehkan
untuk mengikuti praktikum untuk modul-modul praktikum selanjutnya dan NILAI
AKHIR PRAKTIKUM adalah NOL.
5. Praktikan diberikan toleransi waktu keterlambatan selama 15 menit dan tidak ada
penambahan waktu praktikum.
6. Tidak diperbolehkan saling bekerja sama.
7. Dilarang menggunakan kaos oblong dan sendal selama praktikum. Bagi yang
melanggar poin ini, tidak diperbolehkan mengikuti ujian.

TATA LAKSANA :

1. Sebelum praktikum di mulai, setiap praktikum wajib mengumpulkan LAPORAN


HASIL PRAKTIKUM modul sebelumnya.
2. Jika praktikan tidak melaksanakan Tata Laksana poin 1, maka tidak diperbolehkan
mengikuti praktikum.
3. Setiap modul praktikum, akan dilakukan Pre-Test.
4. Format laporan meliputi :

Laporan Hasil Praktikum :


Halaman Depan
BAB I. Tujuan dan Landasan Teori
BAB II. Langkah Kerja
BAB III. Pembahasan
BAB IV. Kesimpulan
BAB V. Daftar Pustaka
BAB VI. Lampiran (Disertai laporan rencana praktikum modul sebelumnya)
5. Format Penulisan
Spasi : 1,5
Font : Times New Roman
Font Size : 12
Margins : Top 3, Left 4, Right 3, Bottom 3
Kertas : A4

6. Penilaian Laporan Hasil Praktikum


BAB I. Tujuan dan Landasan Teori Nilai 20
BAB II. Langkah Kerja Nilai 10
BAB III. Pembahasan Nilai 40
BAB IV. Kesimpulan Nilai 15
BAB V. Daftar Pustaka Nilai 5
BAB VI. Lampiran Nilai 10

Total 100

7. Praktikan yang mengabaikan format penulisan poin 5, akan dikurang 5 setiap


kesalahan.

8. Penilaian Akhir Praktikum


Pre-Test : 15 %
Praktikum : 30 %
Laporan Praktikum : 20 %
Responsi : 35 %

Total 100 %

9. Penilaian Akhir Mata Kuliah Basis Data 2 :


Tugas : 20 %
UTS : 30 % 50 %
Praktikum : 50 %
UAS : 50 %

Nilai Akhir 100 %


Modul I

Stored Procedure dan Function

Tujuan

Mahasiswa memahami manfaat Stored Procedure dan mampu


membuat Stored Procedure.
Mahasiswa memahami manfaat Functions dan mampu membuat Functions.

Pembahasan

Prosedur pada dasarnya adalah sebuah program yang ditulis dalam bahasa Transact-
SQL yang disimpan dalam basis data. Prosedur dibentuk dari perintah, variabel, serta alur
logik yang terdapat pada SQL. Pada modul ini akan digunakan basis data Personalia yaitu
contoh basis data suatu perusahanaan yang mengelola data karyawan dan departemen tempat
karyawan ditempatkan untuk bekerja. Berikut adalah langkah-langkah pembuatan prosedur
pada sebuah tabel Karyawan dari basis data Personalia.

1. Pada folder Stored Procs klik kanan, pilih Create Store Procedure.
2. Masukkan nama procedure Hapus Karyawan pada kotak dialog Create
Procedure
kemudian klik Create.

tempat
menuliskan
parameter

tempat
menuliskan isi
procedure

3. Ketik isi prosedur diantara blok Begin dan End.


4. Kemudian klik .

5. Berikut adalah query untuk memanggil prosedure HapusKaryawan


CALL HapusKaryawan('123456');

Seperti halnya Store Procedure, Function juga merupakan program yang ditulis
dalam bahasa Transact-SQL dan disimpan dalam basis data, tetapi Function dapat
memberikan nilai balik (Return Value). Berikut adalah langkah-langkah untuk membuat
Function pada tabel Karyawan dari basis data Personalia.

1. Pada folder Functions klik kanan, pilih Create Function.


6. Masukkan nama fungsi TampilkanNama pada kotak dialog Create
Function
kemudian klik Create.

2. Isi fungsi diantara blok Begin dan End.


3. Kemudian Klik
4. Berikut adalah query untuk memanggil Function TampilkanNama.

SELECT TampilkanNama('12345');

Tugas Praktikum

1. Buat database sebuah Restoran dengan tabel-tabel berikut!

Menu Meja DetailPesan Pembayaran


NamaMenu NoMeja NoFaktur NoFaktur
JenisMenu Kapasitas NoPesan Tanggal
Harga NamaMenu NoMeja
Banyak JumlahPemesanan
Biaya Total
Diskon
TotalPembayaran

Perhatikan ketentuan-ketentuan berikut :


a. Menu :
NamaMenu adalah Primary Key
JenisMenu berisi data (makanan atau minuman)
b. Meja:
NoMeja adalah Primary Key
Kapasitas adalah field yang mencatat jumlah pengunjung yang
dapat ditampung pada meja tersebut.
c. DetailPesan: Tabel yang mencatat item-item pemesanan.
NoFaktur adalah Foreign Key dari tabel Pembayaran
NoPesan adalah Primary Key dari tabel DetailPesan
NamaMenu adalah Foreign Key dari tabel Menu
Field Banyak mencatat jumlah menu yang dipesan
Biaya mencatat mencatat jumlah biaya = Banyak x Harga
a. Pembayaran
NoFaktur adalah Primary Key
NoMeja adalah Foreign Key dari tabel Meja
JumlahPemesanan adalah total banyaknya item pemesanan
Total adalah biaya yang harus dibayarkan pengunjung sebelum
diskon.
Diskon adalah field yang menyimpan data diskon.
TotalPembayaran adalah total biaya yang harus dibayarkan
setelah dipotong diskon.
Tentukan tipe data yang ideal bagi tiap field dan perhatikan relasi antar tabel.
Isi data pada tiap-tiap tabel minimal 3 record.
1. Buat Stored Procedure untuk Insert data tabel Menu, Meja, Pembayaran dan
DetailPesan.
2. Buat Stored Procedure untuk Delete data tabel Menu Meja, Pembayaran dan
DetailPesan.
3. Buat Stored Procedure untuk Update data tabel Menu Meja, Pembayaran dan
DetailPesan.
4. Buat Fungsi untuk menampilkan Laporan Total Pemasukan Harian pada Tanggal tertentu.
Laporan terdiri atas Data Tanggal, No Faktur, No Meja dan Total Pembayaran.

Catatan: Simpanlah tugas-tugas yang telah dikerjakan dengan baik, karena tugas setiap
modul pada praktikum ini saling terkait.
MODUL II
MENGGUNAKAN FUNGSI-FUNGSI AGREGASI DAN FUNGSI- FUNGSI STRING

Tujuan

Mahasiswa dapat menggunakan fungsi-fungsi agregasi dan fungsi-fungsi string dalam Stored
Procedure dan Function
Pembahasan

Aritmatik

Penghitungan aritmatika dapat dilakukan dengan mengggunakan */+- seperti umumnya.


Selain itu penghitungan aritmatika juga dilengkapi oleh fungsi-fungsi agregasi. Berikut adalah
beberapa fungsi agregasi.

AVG
Fungsi untuk mencari rata-rata.

MAX
Fungsi untuk mencari maksimum.

MIN
Fungsi untuk mencari minimum

COUNT
Fungsi untuk menghitung record dengan kualifikasi tertentu.

Contoh penggunaan fungsi agregasi seperti berikut ini. Pada prosedur HitungKaryawan
digunakan fungsi Count untuk menghitung jumlah karyawan yang berkerja di suatu departemen.
Prosedur HitungKaryawan akan menghitung jumlah karyawan yang berkerja pada departemen yang
kode departemennya adalah 1.

String pada SQL

Berikut adalah fungsi-fungsi yang digunakan untuk mengolah data bertipe String.

Substring
Fungsi Substring mengembalikan sebagian baik karakter atau string biner, atau string. Fungsi
Substring terdiri atas tiga parameter:

1. Sebuah karakter atau string biner, nama kolom, atau string-ekspresi bernilai yang
mencakup nama kolom.
2. Posisi di mana substring harus dimulai.
3. Panjang (dalam jumlah karakter, atau dalam jumlah byte untuk biner) dari string yang
akan dikembalikan.
Replace
Fungsi Replace digunakan untuk mengganti teks (satu atau kumpulan karakter) tertentu.
Concat
Fungsi Concat digunakan untuk menggabungkan satu atau lebih teks yang diberikan.

Trim
Fungsi Trim untuk menghilangkan atau menghapus spasi dari bagian kiri dan kanan suatu
string.

Contoh penggunaan fungsi string seperti berikut ini. Pada fungsi NIPBaru akan digunakan beberapa
fungsi string untuk membuat nip baru karyawan, yang terdiri atas gabungan dari Nip lama dengan
tiga karakter pertama dari nama karyawan.

Fungsi NIPBaru akan membuat Nip Baru bagi karyawan yang nip lamanya adalah 12345, dengan cara
menggabungkan nip lama karyawan dengan 3 karakter pertama dari nama karyawan tersebut
Tugas

Kerjakan tugas-tugas berikut, dengan menggunakan database Restoran seperti pada Modul I.

1. Buat Procedure untuk menampilkan NamaMenu yang paling banyak dipesan.


2. Buat Procedure untuk menampilkan NoMeja yang paling sering ditempati oleh pengunjung.
3. Buat Fungsi bernama BuatNoFaktur untuk membuat NoFaktur pada tabel Pembayaran,
dengan format: thn (2 digit) + bln (2 digit) + tgl (2 digit) + - + No Urut2 digit. Misalnya
untuk pembayaran pertama pada tanggal 10 Oktober 2015 maka No Faktur adalah 151010-
01.
4. Buat Prosedur bernama HitungTotal untuk menghitung Total bagi tabel Pembayaran (Total =
(DetailPesan.Harga x DetailPesan.Banyak))
5. Buat Fungsi untuk menghitung pendapatan restoran dalam sehari.
MODUL III

MANAJEMEN TRANSAKSI

Tujuan

Mahasiswa memahami manfaat Manajemen Transaksi.


Mahasiswa dapat membuat Manajemen Transaksi.

Pembahasan

Sistem basis data harus menjamin ACID (Atomicity, Consistency, Isolation and
Durability) pada setiap transaksi. Sebuah transaksi mungkin membutuhkan beberapa query,
yang membaca atau menulis informasi dalam basis data. Ketika hal ini terjadi, harus
dipastikan tidak ada query yang terlewat yang akan digunakan pada basis data. Terdapat dua
pilihan transaksi yang bisa dilakukan, yaitu commit transaction atau rollback transaction.
Namun sebelumnya harus didahului dengan perintah begin transaction atau start transaction.
Berikut adalah contoh implementasi manajemen transaksi pada prosedur
HitungKaryawan.
Tugas

1. Lengkapi prosedur HitungTotal dan prosedur HitungTotalPembayaran dari modul ke- 2


dengan manajemen transaksi.
2. Buat Prosedur HitungDiskon untuk menghitung pemberian Diskon sebesar 5% dari suatu
transaksi pembayaran, bila nilai Total>=Rp200.000,-. Lengkapi dengan manajemen transaksi.
3. Buat Prosedur bernama HitungTotalPembayaran untuk menghitung Total Pembayaran yang
harus dibayarkan oleh Pengunjung Restoran (TotalPembayaran = Total-Diskon). Lengkapi
dengan manajemen transaksi.
4. Buat Prosedur untuk menampilkan menu yang paling sering dipesan dan harganya paling
mahal diantara semua menu. Lengkapi dengan manajemen transaksi.
MODUL IV

TRIGGER

Tujuan

Mahasiswa mampu memahami trigger serta penggunaannya untuk optimasi


sebuah
database.

Pembahasan

Trigger adalah sekumpulan perintah SQL yang secara otomatis dijalankan apabila ada
perintah INSERT, UPDATE, atau DELETE yang dijalankan di dalam tabel. Aplikasi yang
dapat dilakukan oleh trigger di antaranya adalah:

Membuat isi dari kolom yang diambil dari kolom yang lain.
Membuat mekanisme validasi yang mencakup query pada banyak tabel.
Membuat log untuk mendaftarkan penggunaan tabel.
Meng-update tabel-tabel lain apabila ada penambahan atau perubahan lain di dalam tabel
yang sedang aktif.

Langkah-langkah untuk membuat trigger ditunjukkan pada gambar di bawah ini. Klik kanan
pada nama table, pilih Create Trigger.
Kemudian isi nama Trigger pada kotak dialog Create Trigger.

Berikut adalah contoh trigger bernama HapusData. Pengaktifan trigger akan


tergantung pada event yang dipilih (BEFORE/AFTER INSERT/UPDATE/DELETE). Trigger
ini akan dijalankan ketika sebuah record pada tabel departemen dihapus. Trigger ini akan
secara otomatis menghapus semua data karyawan yang bekerja pada departemen yang telah
terhapus datanya.

Tugas

1. Buat trigger bernama BatalPesan untuk menghapus secara otomatis data pada tabel
tabel DetailPesan saat record data pada tabel Pembayaran telah dihapus.
2. Buat trigger bernama EditJumlahPemesanan untuk mengedit data pada field
JumlahPemesanan di tabel Pembayaran setelah ada perubahan banyaknya item
pemesanan dari tabel DetailPemesanan.
3. Buat trigger bernama EditNoMeja untuk mengedit data No Meja pada tabel
Pembayaran setelah ada perubahan data No Meja pada tabel Meja.
Modul V
Penggunaan Function dan Stored Procedure pada Web Sederhana

Tujuan
Mahasiswa dapat menggunakan Function dan Stored Procedure pada aplikasi Web
sederhana.

Pembahasan
Pada Modul ke-5 diberikan contoh penggunaan procedure pada sebuah aplikasi web
sederhana. Tabel yang digunakan pada contoh ini adalah tabel Departemen dari database
Personalia.

Prosedur yang digunakan adalah prosedur DeleteDep dan InsertDep. Prosedur


DeleteDep adalah prosedur untuk menghapus data dari tabel departemen.
Sedangkan prosedur InsertDep digunakan untuk menambah data ke dalam tabel Departemen.

Kemudian berikut ini adalah kode program dalam bahasa php untuk melakukan
tambah dan hapus data pada tabel departemen.

fungsi.php
<?php
global $koneksi;

function connect()
{
$host="localhost";
$username = "root";
$password="";
$database="personalia";

$koneksi = mysql_connect($host,$username,$password); if(!


$koneksi)
{
die('koneksi gagal:'.mysql_error());
}
else
{
mysql_select_db($database,$koneksi);
}
}

function query($sql)
{
$result=mysql_query($sql);
return $result;
}
function deleteDep($kodedep)
{
$result = mysql_query("call DeleteDep('$kodedep')");
return $result;
}

function insertDep($kodedep,$namadep,$manajerdep)
{
$result = mysql_query("call InsertDep('$kodedep','$namadep','$manajerdep')");
return $result;
}

function updateDep($kodedep,$namadep,$manajerdep)
{
$result =mysql_query("call UpdateDep('$kodedep','$namadep','$manajerdep')");
return $result;
}
?>

departemen.php
<?php
include("./fungsi.php");
$action="";
$kode_dep="";
$nama_dep="";
$manajer="";

if (isset($_GET['action']))
{
$action = $_GET['action'];
$kode_dep= $_GET['kode_dep'];
$nama_dep= $_GET['nama_dep'];
$manajer= $_GET['manajer'];
}
connect();
$result = query("Select * From departemen");
?>

<html>
<head>
<title>Departemen</title>
</head>
<body>
<form method='post' action='insert.php'>
<table>
<tr>
<td>Kode Departemen</td>
<td><input type='text' name='kode_dep' value=<?php print $kode ?>> </input>
</td>
</tr>
<tr>
<td>Nama Departemen </td>
<td><input type='text' name='nama_dep' value=<?php print $nama ?>></input>
</td>
</tr>
<tr>
<td>Manajer Departemen</td>
<td><input type='text' name='manajer' value=<?php print $manajer ?>></input>
</td>
</tr>
<tr>
<td></td>
<td align='right'><input type='submit' value='Save'></input>
<input type='hidden' value='<?php print $action ?>'
name='action'></input>
</td>
</tr>
</table
>
</form
>
<br>
<br>
<table border=1>
<tr>
<th>Kode Departemen </th>
<th>Nama Departemen </th>
<th>Manajer Departemen </th>
<th>Delete</th>
</tr>
<?php
$action="";
While($row=mysql_fetch_object($resu
lt)){ print
("<tr>
<td>$row->kode_dep</td>
<td>$row->nama_dep</td>
<td>$row->manajer</td>
<td><a href = 'delete.php?kode_dep=$row->kode_dep'>Delete</a></td>
</tr>"
);
}
?>
</table>
</body>
</html>
insert.php
<?php

if($_POST['action']=="")
{
$kode_dep = $_POST['kode_dep'];
$nama_dep = $_POST['nama_dep'];
$manajer = $_POST['manajer'];

include("./fungsi.php");
connect();
insertDep($kode_dep,$nama_dep,$manajer);
header('Location:departemen.php');
}
?>

delete.php
<?php
if(isset($_GET['kode_dep']))
{
$kode_dep = $_GET['kode_dep'];
include("./fungsi.php");
connect();
deleteDep($kode_dep);
header('Location:departemen.php');
}
?>
Tugas
Buat aplikasi web sederhana untuk menginputkan data Menu, Meja, Detail Pemesanan dan
Pembayaran gunakan stored procedure yang telah dikerjakan pada modul sebelumnya untuk
melakukan proses input data.

Anda mungkin juga menyukai