Anda di halaman 1dari 23

MODUL BASIS DATA II

Semester Ganjil 2015/2016

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

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS PALANGKARAYA
2015

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
Font
Font Size
Margins
Kertas

: 1,5
: Times New Roman
: 12
: Top 3, Left 4, Right 3, Bottom 3
: A4

6. Penilaian Laporan Hasil Praktikum


BAB I. Tujuan dan Landasan Teori
BAB II. Langkah Kerja
BAB III. Pembahasan
BAB IV. Kesimpulan
BAB V. Daftar Pustaka
BAB VI. Lampiran
Total

Nilai 20
Nilai 10
Nilai 40
Nilai 15
Nilai 5
Nilai 10
100

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


kesalahan.
8. Penilaian Akhir Praktikum
Pre-Test
Praktikum
Laporan Praktikum
Responsi
Total

: 15 %
: 30 %
: 20 %
: 35 %
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 TransactSQL 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

NamaMenu

NoMeja

Banyak

JumlahPemesanan

Biaya

Total

Harga

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

d. 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 Urut 2 digit . Misalnya
untuk pembayaran pertama pada tanggal 10 Oktober 2015 maka No Faktur adalah 15101001.
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

HitungKaryawan.

contoh

implementasi

manajemen

transaksi

pada

prosedur

Tugas

1. Lengkapi prosedur HitungTotal dan prosedur HitungTotalPembayaran dari modul ke2 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 DetailPesan saat record data pada tabel Pembayaran telah dihapus.
2. Buat trigger bernama EditJumlahPemesanan untuk mengedit data pada
JumlahPemesanan di tabel Pembayaran setelah ada perubahan banyaknya
pemesanan dari tabel DetailPemesanan.
3. Buat trigger bernama EditNoMeja untuk mengedit data No Meja pada
Pembayaran setelah ada perubahan data No Meja pada tabel Meja.

tabel
field
item
tabel

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($result)){
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