Modul Praktikum Baisdata
Modul Praktikum Baisdata
Oleh:
Slamet Kacung, S.Kom.
Laboratorium Komputer
Prodi Teknik Informatika
Universitas Dr. Soetomo
2012
KATA PENGANTAR
PENTUNJUK UMUM :
1. Peserta praktikum wajib hadir 10 (sepuluh) menit sebelum praktikum dimulai.
2. Peserta diharapkan sudah membaca modul sebelum mengikuti praktikum.
PETUNJUK TEKNIS :
1. Login ke sistem operasi gunakan user=mhs, password=unitomo.
2. Koneksi server database
Klik tombol berikut untuk akses database server.
Koneksi
server
Note :
Pembuatan Database hanya
sekali pada saat pertemuan
pertama.
Tugas Pendahuluan :
a. Sebutkan dan jelaskan tipe data yang digunakan dalam DBMS PostgreSQL!
b. Apa perbedaan antara DDL (Data Defition Language) dan DML (Data Manipulation
Language)?
Kebutuhan Alat:
a. PC yang ter install software PostgreSQL
b. Server Database
A. MATERI
Database adalah sebuah object yang kompleks untuk menyimpan informasi yang
terstruksur, yang diorganisir dan disimpan dalam suatu cara yang mengijinkan pemakainya
dapat mengambil informasi dengan cepat dan efisien.
1. DBMS menyediakan fasilitas untuk mendefinisikan struktur dari database dengan
pernyataan SQL. Subbagian dari pernyataan SQL yang mendefinisan dan mengedit
struktur ini disebut dengan Data Definition Language (DDL). Saat ini hampir semua
DBMS menggunakan antarmuka (user interface) visual untuk mendefinisikan dan
mengedit struktur ini. Yang selanjutnya piranti ini menerjemahkan tindakan user ke
dalam pernyataan DDL yang sesuai. Sebagai contoh, PostgreSQL menyediakan tool
untuk membuat database dengan piranti visual seperti pgAdmin III, tetapi ia juga
menghasilkan pernyataan DDL yang sesuai dan menyimpannya ke dalam sebbuah file
khusus yang disebut dengan Script.
2. DBMS terdapat fasilitas untuk memanipulasi informasi yang disimpan di dalam
database dengan pernyataan SQL. Sub bagian dari pernyataan SQL yang memanipulasi
informasi ini disebut dengan Data Manipulation Language (DML). Operasi dasar untuk
memanipulasi data seperti menambah (insert) record baru, memodifikasi (update) dan
menghapus (delete) record yang sudah ada, serta mengambil (select) record.
DBMS melindungi integritas database dengan menerapkan aturan, yang dimasukkan ke
dalam perancangan database tersebut. Kita bisa menentukan tidak mengizinkan field
tertentu kosong, melarang penghapusan record yang terhubung ke record lain, merubah
isi record dan perubahannya akan berdampak pada tabel lain yang berelasi, dan
sebagainya.
B. INSTRUKSI PRAKTIKUM
Instruksi 1 : Membuat Database
1. Jalankan PostgreSQLpgAdmin III
2. Click SQL Query, hingga tampak seperti gambar berikut :
SQL Query
3. Click Execute Query, lihat pada pgAdmin III, Treeview dibawah Database akan
muncul nama database akademik yang baru anda buat.
Table MataKuliah
No Nama Tipe Data Panjang
1 KodeMK varchar 6
2 NamaMK varchar 40
3 SKS integer
Table KRS
No Nama Tipe Data Panjang
1 NIM varchar 10
2 KodeMK varchar 6
3 NilaiUTS Float4
4 NilaiUAS Float4
Catatan : Nama field bergaris bawah berarti primary key
2. Modifikasi table jurusan tambahkan satu field (KodeFakultas , varchar(2), sebagai foreign
key dari tabel Fakultas).
D. EVALUASI
1. Analisa hasil percobaan yang anda lakukan
2. Kerjakan tugas diatas, dan analisa hasil tampilannya
3. Berikan kesimpulan dari praktikum ini
PERTEMUAN II
Restricting dan Sorting Data
Tujuan :
a. Mahaiswa dapat menampilkan data yang tersimpan dalam tabel dengan
memberikan restriksi kolom maupun baris.
b. Mahasiswa dapat mengurutkan data berdasarkan kriteria tertentu.
Tugas Pendahuluan :
a. Apa perbedaan antara klausa Where, Where Between, dan Where Like?
b. Apa fungsi dari perintah Order By?, dan berikan contoh!
c. Apa perbedaan dari fungsi ASC|DESC pada klausa order by? Jelaskan jawabanmu!
Kebutuhan Alat:
a. PC yang ter install software PostgreSQL
b. Server Database
A. MATERI
Restricting dan Sorting Data
Dalam suatu organisasi, informasi adalah hal yang terpenting dimana dengan informasi
suatu organisasi dapat memperhitungkan masa depan atau merancang strategi ke depan.
Informasi terdiri dari beberapa data dan data tersebut tersususn dalam suatu tabel.
Jika data pada tabel tidak terlalu banyak mungkin tidak ada masalah, tetapi jika data pada
tabel sangat banyak maka harus meningkatkan ketelitian dalam menampilkan data.
Sebagai contohnya jika ingin menampilkan beberapa data tidak perlu menampilakan
keseluruhan data.
Restricting data adalah penyederhanaan data seperti Where, Where between, where like,
dan lain-lain. Jika data tersebut tidak ditampilkan secara restricting maka query yang
dijalankan akan menampilakan keseluruhan tabel dan akan mempersulit dalam pencarian
data. Sedangkan sorting adalah pengurutan data dari yang besar ke yang kecil atau
sebaliknya dari yang kecil ke yang besar.
Restricting Kolom
Untuk menampilkan data yang terdapat pada setiap kolom dalam tabel digunakan
tanda bintang ( * ) sesudah SELECT dan sebelum FROM.
Sintaks: SELECT * FROM nama_tabel;
Contoh: Select * from "Products";
Untuk membuat restriksi kolom atau membatasi kolom yang tampil dapat
dilakukan dengan menuliskan nama kolom yang ingin ditampilkan.
Sintaks: SELECT nama_kolom1, nama_kolom2, ... FROM nama_tabel;
Contoh: select "ProductName", "UnitPrice" from "Products";
Restricting Baris
Untuk membuat restriksi baris atau membatasi jumlah baris yang tampil dapat
dilakukan dengan menambahkan WHERE sesudah nama tabel, diikuti dengan
kondisi yang diinginkan.
Sintaks: SELECT * FROM nama_tabel WHERE kondisi;
select * from "Products" where "UnitPrice" between 20 and 30;
Sorting
Data yang ditampilkan diurutkan berdasarkan kolom yang memiliki index atau
memiliki constraint primary key. Urutan baris data dapat diubah berdasarkan
kriteria yang diinginkan dengan menggunakan order by.
Sintaks: SELECT * FROM nama_tabel ORDER BY nama_kolom ASC|DESC;
Contoh: select * from "Products" order by "ProductName"
select * from "Products" order by "ProductName" desc
B. INSTRUKSI PRAKTIKUM
Instruksi 1 : Ristricting Kolom
1. Menampilkan nama dan alamat mahasiswa
SELECT nama, alamat FROM mahasiswa
2. Menampilkan matakuliah dan jumlah sks
SELECT namamk as matakuliah, sks FROM matakuliah
2. Gunakan klausa LIKE untuk menampilkan data mahasiswa dengan kriteria yang
diinginkan
SELECT nim, nama FROM mahasiswa WHERE nim LIKE ‘2012%’
Instruksi 3 : Sorting
1. Gunakan klausa ORDER BY untuk mengurutkan data mahasiswa
SELECT * FROM mahasiswa
ORDER BY kodejur, nim
2. Gunakan klausa ORDER BY untuk mengurutkan data mahasiswa dari besar kecil
DESC
SELECT * FROM mahasiswa
ORDER BY nim DESC
C. TUGAS
1. Tampilkan nama beserta alamat lengkap dari setiap mahasiswa!
2. Carilah data mahasiswa yang alamatnya kosong
3. Carilah data mahasiswa yang lahir mulai tanggal 01/01/1980 sampai tanggal 31/12/1990
4. Carilah data mahasiswa yang lahir di kota malang
5. Carilah data matakuliah yang semester 3 sampai 5
6. Carilah semua data mahasiswa selain jurusan Informatika dan Sipil
D. EVALUASI
1. Analisa hasil percobaan yang anda lakukan
2. Kerjakan tugas diatas, dan analisa hasil tampilannya
3. Berikan kesimpulan dari praktikum ini
PERTEMUAN III
Fungsi dan Mengolah Group
Tujuan :
a. Mahaiswa dapat menggunakan fungsi untuk mengolah tipe data character dan
date/time dalam select.
b. Mahasiswa dapat mengolah group dengan fungsi aggregate.
Tugas Pendahuluan :
a. Apa perbedaan (fungsi) antara klausa WHERE dengan HAVING
Kebutuhan Alat:
a. PC yang ter install software PostgreSQL
b. Server Database
A. MATERI
1. Fungsi String
Fungsi yang digunakan untuk mengolah data dengan tipe string (character,
character varying, text). Fungsi string dapat digunakan untuk mengolah data
tipe non string dengan cara melakukan konversi ke string terlebih dahulu.
Fungsi Nilai Deskripsi Contoh Hasil
Balik
String || Text Menggabungkan select 'Basis ' ||
string string 'Data' as "Contoh"
2. Fungsi Date/Time
Fungsi yang digunakan untuk mengolah data bertipe date atau time.
Fungsi Nilai Deskripsi Contoh Hasil
Balik
Current_date Date Menghasilkan select
tanggal hari current_date
ini
Current_time Time Menghasilkan select
waktu saat current_time
ini
3. Fungsi Agregate
Fungsi yang digunakan untuk menghasilkan hasil tunggal dari sekumpulan
data (aggregate). Fungsi aggregate membutuhkan argumen atau inputan berupa
nama kolom atau kolom hasil olahan fungsi lain.
Fungsi Deskripsi Contoh Hasil
Avg Menghasilkan nilai select avg("UnitPrice") as
average atau "Harga Rata-rata"
rata-rata dari from "Products"
suatu ekspresi
numeric
Count(*) Menghasilkan select count(*) from
jumlah baris dari "Employees"
suatu ekspresi
SUM, AVG, COUNT, MAX, dan MIN ignore null values; COUNT(*) tidak.
B. INSTRUKSI PRAKTIKUM
Instruksi 1 : Mengubah nilai suatu kolom atau baris menjadi huruf besar
1. Gunakan klausa UPPER, untuk menampilkan mahasiswa dengan huruf besar
SELECT UPPER(nama) FROM mahasiswa
2. Gunakan klausa LOWER, untuk menampilkan mahasiswa dengan huruf kecil
SELECT LOWER(nama) FROM mahasiswa
3. Gunakan klausa INITCAP, untuk menampilkan mahasiswa dengan huruf pertama
besar
SELECT INITCAP(nama) FROM mahasiswa
Instruksi 2 : Mengubah String menjadi tanggal
1. Gunakan fungsi text_datetime untuk mengubah suatu string menjadi tanggal
dan jam(datetime).
SELECT text_datetime(’31-12-2000’)
text_datetime
-----------------------------
Sun 31 Dec 00:00:00 2000 JAVT
(1 row)
2. Menampilkan nama jurusan yang jumlah mahasiswa per angkatan lebih dari 10
SELECT NamaJurusan, substr(NIM,1,4) as Angkatan,
Count(NIM) as JumlahMHS from MAHASISWA, JURUSAN
WHERE MAHASISWA.KodeJur = JURUSAN.KodeJurusan
Group By NamaJurusan, substr(NIM,1,4)
HAVING Count(NIM) > 10
D. EVALUASI
1. Analisa hasil percobaan yang anda lakukan
2. Kerjakan tugas diatas, dan analisa hasil tampilannya
3. Berikan kesimpulan dari praktikum ini
PERTEMUAN IV
Menampilkan Data dari Beberapa Tabel
Tujuan :
a. Mahaiswa mampu menampilkan data dari beberapa tabel yang berelasi.
Tugas Pendahuluan :
a. Ada berapa klausa (model) untuk menghubungkan tabel satu dengan tabel yang lain?
Sebutkan!
b. Apa perbedaan antara klausa inner join, left join, right join, dan full join?
Kebutuhan Alat:
a. PC yang ter install software PostgreSQL
b. Server Database
A. MATERI
Menhubungkan Tabel dengan Join
Jika pada latihan sebelumnya kita ingin menampilkan query yang melibatkan banyak tabel
kita menggunakan klausa WHERE, tetapi klausa WHERE hanyalah untuk mengekspresikan
batasan yang melibatkan satu atau beberapa tabel. Metode yang tepat untuk
menghubungkan tabel adalah dengan operasi JOIN. Mengapa harus dengan JOIN? Coba
kita perhatikan query berikut :
Select nim, nama, namajurusan from mahasiswa, jurusan
WHERE mahasiswa.kodejur=jurusan.kodejurusan
Untuk memahami query diatas, sebelumnya tambahkan satu baris pada tabel mahasiswa
dan kosongi kodejur-nya, dan tambahkan satu baris pada tabel jurusan yang kodejurusan-
nya tidak digunakan pada tabel mahasiswa. Query tersebut tidak akan dapat menampilkan
mahasiswa yang kodejur-nya NULL, karena nilai NULL tidak akan pernah ketemu pada
tabel jurusan.
Operasi JOIN diklasifikasikan menjadi beberapa, seperti : INNER JOIN, LEFT JOIN,
RIGHT JOIN, dan FULL JOIN.
Subquery
Subquery adalah sebuah query biasa yang cursor hasilnya digunakan sebagai bagian dari
query yang lain.
B. INSTRUKSI PRAKTIKUM
Instruksi 1 : Menghubungkan dengan INNER JOIN
select nim, nama, namajurusan
from mahasiswa INNER JOIN jurusan
ON mahasiswa.kodejur= jurusan.kodejurusan
C. TUGAS
1. Carilah matakuliah yang belum diprogram oleh mahasiswa.
2. Lakukan penghapusan pada semua baris di tabel Matakuliah yang matakuliahnya tidak
diprogram mahasiswa.
D. EVALUASI
1. Analisa hasil percobaan yang anda lakukan
2. Kerjakan tugas diatas, dan analisa hasil tampilannya
3. Berikan kesimpulan dari praktikum ini
PERTEMUAN V
Function
Tujuan :
a. Mahasiswa dapat membuat, memodifikasi, dan menghapus data dengan function
berbasis SQL dan PL/PGSql.
b. Mahasiswa mampu mengimplementasikan business rule pada stored function
c. Mahasiswa mampu menyederhanakan pekerjaan dengan menggunakan function
berbasis SQL dan PL/PGSql.
Tugas Pendahuluan :
a. NA
Kebutuhan Alat:
a. PC yang ter install software PostgreSQL
b. Server Database
A. MATERI
Function merupakan salah satu object yang ada di PostgreSQL Server sama seperti table,
view dan object-object lainnya. Function adalah sebuah rutin yang ditulis dengan bahasa
PLPG-SQL yang dapat memanipulasi baris-baris database. Semua pernyataan SQL
digunakan untuk memanipulasi baris, tetapi SQL tidak memiliki pernyataan alur kendali
seperti IF, CASE, serta fungsi-fungsi untuk memanipulasi string dan sebagainya. Dengan
Function secara otomatis kita akan menyederhanakan pekerjaan, karena kita tidak perlu
menulis berulang-ulang untuk query yang sama dengan parameter yang berbeda sebab
kita hanya tinggal mamanggil nama Function beserta parameternya. Function dapat
mengurangi network traffic dan beban kerja client hal ini dapat terjadi karena Function
disimpan, dikompilasi dan dijalankan di server sehingga client tidak perlu memindahkan
semua data dari server, client hanya mengirimkan nama Function beserta parameternya
server hanya mengirim hasil dari Function tersebut.
Syntax
CREATE [ OR REPLACE ] FUNCTION name ( [ argtype [, ...] ] )
RETURNS rettype
{ LANGUAGE langname
| IMMUTABLE | STABLE | VOLATILE
| CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
| [EXTERNAL] SECURITY INVOKER | [EXTERNAL] SECURITY DEFINER
| AS 'definition'
| AS 'obj_file', 'link_symbol'
} ...
[ WITH ( attribute [, ...] ) ]
name
Nama Function yang baru. Fungsi Nama harus unik di dalam database.
rettype
Adalah kepanjangan dari return type yang merupakan tipe data hasil output dari fungsi tersebut
misalnya varchar, integer maupun record.
langname
Adalah kepanjangan dari Language name yang berarti nama bahasa yang akan digunakan dalam
pembuatan funsgsi tersebut misalnya SQL, PLPG-SQL, C dan lain lain .
B. INSTRUKSI PRAKTIKUM
Instruksi 1 : Buatlah function untuk menjumlahkan tiga angka berikut ini :
Function berbasis sql
CREATE FUNCTION tambah(INT, INT, INT) RETURNS INT AS
'SELECT $1 + $2 + $3'
LANGUAGE 'sql';
D. EVALUASI
1. Analisa hasil percobaan yang anda lakukan
2. Kerjakan tugas diatas, dan analisa hasil tampilannya
3. Berikan kesimpulan dari praktikum ini
PERTEMUAN VI
TRIGGER
Tujuan :
a. Membuat, memodifikasi, dan menghapus data dengan trigger untuk mempermudah
dalam pengolahan data.
b. Mahasiswa mampu mengimplementasikan business rule pada trigger
c. Mahasiswa mampu menyederhanakan pekerjaan dengan menggunakan trigger
Tugas Pendahuluan :
a. NA
Kebutuhan Alat:
a. PC yang ter install software PostgreSQL
b. Server Database
A. MATERI
Trigger merupakan object khusus pada postgresql yang memanggil fungsi khusus ber-
return value trigger. Trigger akan menjalankan fungsi trigger secara otomatis bila terjadi
kejadian (event) tertentu. Kejadian seperti menambah (insert), menghapus (delete) atau
merubah (update) record. Dengan kata lain, kita bisa mendefinisikan trigger pada sebuah
table yang akan dijalankan secara otomatis oleh postgreSQL bila baris (record) pada Tabel
tersebut kita tambah, hapus atau kita update. Trigger biasanya juga digunakan untuk
mendefinisikan business rules, misalnya kita ingin setiap ada pembelian stock di gudang
akan bertambah, bila ada penjualan stock akan berkurang dengan jalan pada table
pembelian kita definisikan trigger untuk mengupdate (menambah) table stock dan pada
table penjualan kita definisikan trigger untuk mengurangi stock.
Syntax
CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] }
ON table [ FOR [ EACH ] { ROW | STATEMENT } ]
EXECUTE PROCEDURE funcname ( arguments )
name
Nama dari trigger, harus unik dalam satu database, tidak boleh sama meskipun pada table
yang berbeda
before / after
Triger akan dijalankan setelah proses atau sebelum proses yang dilakukan.
event
Triger tersebut akan dijalankan setelah pada saat kejadian insert, update, delete.
table
Nama tabel yang akan dijalankan triger.
funcname
Nama fungsi yang kan dipanggil pada triger, ingat fungsi ini sudah harus dibuat pada saat
dipanggil di triger.
Arguments
Adapun variable yang terjadi pada saat triger dijalankan adalah sebagai sebagai berikut :
NEW
Adalah record baru yang dihasilkan pada saat penambahan atau perubahan record.
OLD
Adalah record lama yang dihasilkan pada saat penghapusan atau perubahan record.
TG_OP
Mempunyai tipe data text yang bernilai INSERT, UPDATE atau DELETE sesuai
dengan operasi yang terjadi.
B. INSTRUKSI PRAKTIKUM
Instruksi 1 : Buatlah tabel dengan perintah query dengan struktur sebagai berikut :
CREATE TABLE emp
(
empname text,
salary integer,
last_date timestamp without time zone,
last_user text
)
Instruksi 2 : Buatlah Trigger untuk menjalankan sebelum proses insert atau update pada
tabel emp
CREATE TRIGGER emp_ins_upd
BEFORE INSERT OR UPDATE
ON emp
FOR EACH ROW
EXECUTE PROCEDURE emp_ins_upd();
Instruksi 3 : Buatlah Trigger function untuk merubah empname pada tabel emp menjadi
huruf besar
CREATE OR REPLACE FUNCTION emp_ins_upd()
RETURNS trigger AS
$BODY$
begin
new.empname := UPPER(new.empname);
return new;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
C. TUGAS
1. Buatlah trigger untuk merubah nama mahasiswa besar pada huruf pertama pada tabel
mahasiswa pada saat proses sebelum insert.
2. Buat Trigger untuk mengupdate NIM Mahasiswa jika kodejur pada Mahasiswa dirubah,
sehingga selalu sama antara NIM dengan kode jurusannya.
D. EVALUASI
1. Analisa hasil percobaan yang anda lakukan
2. Kerjakan tugas diatas, dan analisa hasil tampilannya
3. Berikan kesimpulan dari praktikum ini
PERTEMUAN VII
Backup dan restore
Tujuan :
a. Mahasiswa membuat file Backup dan Restore database.
Tugas Pendahuluan :
a. Apa fungsi dari back-up
b. Sebutkan beberapa tool yang digunakan untuk melakukan back-up database
Kebutuhan Alat:
a. PC yang ter install software PostgreSQL
b. Server Database
A. MATERI
Dari sekian banyak database server yang beredar dipasaran PostgreSQL termasuk salah
satu yang paling baik, PostgreSQL 9.1 memiliki fitur yang luar biasa. Namun secanggih-
canggihnya teknologi yang ditawarkan sebaiknya kita tidak mempercayakan begitu saja.
Apalagi ketika kita bicara soal data. Kita wajib mem-back-up data secara berkala.
Ya, backup adalah mantra ampuh untuk menjaga agar tidak kehilangan data (yang terlalu
besar). Banyak cara yang dilakukan untuk melakukan backup bisa secara graphic maupun
secara command-line.
B. INSTRUKSI PRAKTIKUM
Instruksi 1: Buat file backup
1. Pilih database yang mau di backup
2. Pilih direktori untuk menyimpan file backup, kemudian pilih format custome dan
Kemudian klick tombol backup untuk proses backup database
D. EVALUASI
1. Analisa hasil percobaan yang anda lakukan
2. Kerjakan tugas diatas, dan analisa hasil tampilannya
3. Berikan kesimpulan dari praktikum ini