LAPORAN RESMI DM.doc
-
Upload
zaimrossy-siee-zecorp-art -
Category
Documents
-
view
154 -
download
2
Transcript of LAPORAN RESMI DM.doc
BAB I
PENDAHULUAN
1.1 Latar Belakang
Data mining adalah serangkaian proses untuk memanggil nilai tambah
berupa informasi yang selama ini tidak diketahui secara manual dari suatu
basisdata. Informasi yang dihasilkan diperolah dengan cara mengekstraksi dan
mengenali pola yang penting atau menarik dari data yang terdapat dalam
basisdata.
Datamining terutama digunakan untuk mencari pengetahuan yang terdapat
dalama basis data yang besar sehingga sering disebut Knowledge Discovery in
Database (KDD). Pencarian pengeteahuan ini menggunakan berbagai teknik-
teknik pembelajaran komputer (Machine Learning) untuk menganalisis dan
mengekstrasinya. Proses pencarian bersifat iteratif dan interaktif untuk
menemukan pola atau model yang sahih, baru bermanfaat dan dimengerti.
Data mining tidak hanya digunakan untuk menangani persoalan
menumpuknya data/informasi dan bagaimana menggudangkannya tanpa harus
kehilangan informasi yang penting (Warehousing). Data mining juga diperlukan
untuk menyelesaikan permasalahan atau menjawab kebutuhan fisik itu sendiri.
1.2 Tujuan Praktikum
Tujuan dilaksanakannya praktikum Data Mining dan Warehousing adalah
sebagai berikut :
1. Memahami konsep penggunaan PL/SQL Oracle
2. Mengerti esensi penggunaan percabangan (pemilihan/kondisional) dalam
PL/SQL
3. Mengerti esensi penggunaan pengulangan (looping/iterasi) dan sekuensial
dalam PL/SQL
4. Mampu mengimplementasikan CURSOR dalam pemrograman di Oracle
5. Mampu memahami cara kerja EXCEPTION, Predefined Exception, User
Define Exception, Unhandled Exception, RAISE_APPLICATION_ERROR,
EXCEPTION INIT PRAGMA dan EXCEPTION dalam PL/SQL di Oracle
6. Mampu menguasai dan menerapkan Multi Block dalam PL/SQL
7. Mengetahui dan memahami procedure dan function pada PL/SQL
8. Mampu mengimplementasikan trigger dalam Oracle
9. Mampu mengimplementasikan index, view dan sequence dalam Oracle
10. Mengetahui dan memahami reporting dalam Oracle
11. Mampu mengimplementasikan simple report dalam Oracle
12. Mampu membuat user pada Oracle
13. Mampu memonitor user
14. Mampu melakukan manipulasi pada user
15. Mampu mengerti tentang roles dan menggunakannya
16. Mampu membuat dan memodifikasi roles
17. Mampu melakukan controlling dan removing pada roles.
1.3 Manfaat Praktikum
Dengan ilmu dan pengetahuan yang diperoleh melaui praktikum yang
dilaksanakan, mahasiswa dapat lebih mengembangkan kemampuan dalam
mengelola basis data dalam implementasinya untuk mengembangkan suatu
pengolahan data Warehousing yang efektif dan efisien.
BAB II
TINJAUAN PUSTAKA
2.1 Pengertian Database
Ketersediaan data dan informasi yang dimiliki oleh suatu institusi akan
sangat membantu proses pengambilan kebijakan yang menyangkut kepentingan
bersama. Pengambilan kebijakan yang didukung oleh data akan berpengaruh besar
terhadap pola implementasi di lapangan. Sebaliknya keputusan yang diambil
secara spekulasi biasanya akan berujung kepada kegagalan.
Data perlu disimpan dalam basis data untuk keperluan penyediaan
informasi lebih lanjut. Data di dalam basis data perlu diorganisasikan sedemikian
rupa, agar informasi yang dihasilkan berkualitas. Database merupakan
sekumpulan informasi yang disusun sedemikian rupa untuk dapat diakses oleh
sebuah software tertentu. Database tersusun atas bagian yang disebut field dan
record yang tersimpan dalam sebuah file. Sebuah field merupakan kesatuan
terkecil dari informasi dalam sebuah database. Sekumpulan field yang saling
berkaitan akan membentuk record.
Tujuan utama dari sistem database adalah menyediakan pemakai melalui
suatu pandangan abstrak mengenai data, dengan menyembunyikan detail dari
bagaimana data disimpan dan dimanipulasikan. Oleh karena itu, titik awal untuk
perancangan sebuah database haruslah abstrak dan deskripsi umum dari
kebutuhan-kebutuhan informasi suatu organisasi harus digambarkan di dalam
database.
Ada tiga kelompok pemakai dalam tingkatan abstraksi saat memandang
suatu database, yang bisa juga disebut dengan level arsitektur basis data yaitu :
1. Level Fisik (Physical level)
Level ini merupakan level abstraksi paling rendah karena menggambarkan
bagaimana data disimpan dalam kondisi sebenarnya yang pada umumnya
tidak terlihat oleh oleh pengguna atau programmer aplikasinya.
2. Level Konseptual (Conceptual level)
Level ini menggambarkan data apa yang disimpan dalam database dan
hubungan relasi yang terjadi antara data dari keseluruhan database. Pemakai
tidak memperdulikan kerumitan dalam struktur level fisik lagi, penggambaran
cukup dengan memakai kotak, garis,dan hubungan secukupnya.
mengambarkan data apa saja yang sebenarnya (secara fungsional) disimpan
didalam basis data beserta relasi-relasinya didalam basis data, dimana
administrator basis data (DBA) membangun dan mengolah basis data,
contohnya: penguna akan mengetahui bahwa data penjualan disimpan didalam
tabel barang, produksi, keuangan, marketing.
3. Level Pandangan Pemakai (View level)
Level ini merupakan level abstraksi data tertinggi yang menggambarkan hanya
sebagian saja yang dilihat dan dipakai dari keseluruhan database, hal ini
disebabkan beberapa pemakai database tidak membutuhkan semua isi
database.
2.2 Macam-macam Sistem Database
Berikut ini adalah macam-macam sistem database :
1. DBMS (Database Management System)
2. RDBMS (Relational DataBase Management System)
3. OODBMS (Objec Oriented DataBase Management System)
4. ORDBMS (Objec Oriented DataBase Management System)
2.3 DBMS (Database Management System)
DBMS adalah sebuah perangkat lunak yang digunakan untuk memanage
atau mengorganisir akses ke database, serta memiliki kemampuan untuk
membuat, memelihara, menyimpan, memanipulasi database dengan tujuan agar
mendapatkan kenyamanan dalam memperoleh informasi dalam database tanpa
mengurangi faktor keamanan dan keefesiensinya. Software yang tergolong
kedalam DBMS antara lain, Microsoft SQL, MySQL, Oracle, MS. Access, dan
lain-lain.
Fungsi DBMS adalah sebagai berikut :
1. Mengelola dan memelihara data
2. Memindahkan data ke dan dari file data fisik yang dibutuhkan
3. Mengelola akses data yang bersamaan oleh beberapa pengguna
4. Mengawasi pembaharuan data dan mencegah konflik perubahan data
5. Mengelola transaksi sehingga perubahan data terjadi secara lengkap atau
tidak terjadi perubahan jika transaksi batal atau gagal
6. Mendukung bahasa query
7. Pengawasan back up database dan pemulihan dari kesalahan
8. Mekanisme keamanan.
2.4 Pengertian SQL
SQL ( Structured Query Language ) merupakan bahasa query yang
digunakan untuk mengakses database relasional. SQL adalah bahasa database
standard dan hampir semua sistem database memahaminya. SQL terdiri dari
berbagai jenis statement dan semuanya didesain agar memungkinkan untuk dapat
secara interaktif berhubungan dengan database.
Bahasa SQL terdiri atas beberapa bagian antara lain adalah sebagai berikut :
1. DDL ( Data Definition Language )
Merupakan perintah yang digunakan untuk membuat dan memodifikasi
objek database. Pernyataan DDL terdiri atas :
a. CREATE digunakan untuk membuat objek database
b. ALTER digunakan untuk mengubah atau memodifikasi struktur objek database
c. DROP digunakan untuk menghapus struktur database
2. DML ( Data Manipulation Language )
Merupakan perintah yang berfungsi untuk memanipulasi data yang ada
didalam database, misalnya untuk pengambilan, penyisipan, pengubahan, dan
penghapusan data. Pernyataan DML trediri atas :
a. SELECT digunakan untuk memilih data
b. INSERT digunakan untuk menambah data
c. DELETE digunakan untuk menghapus data
d. UPDATE digunakan untuk mengubah data
3. DCL ( Data Control Language )
Merupakan perintah yang digunakan untuk mengendalikan pengaksesan
data. Pernyataan DCL meliputi :
a. GRANT digunakan untuk memberikan kendali pada pengaksesan data
b. REVOKE digunakan untuk mencabut kemampuan pengaksesan data
c. LOCK TABEL digunakan untuk mengunci tabel
2.5 Pengertian Oracle
Oracle Corporation merupakan perusahaan yang bergerak dibidang
penyediaan tool-tool pembangun aplikasi, produk-produk siap pakai dan
pelayanan untuk mendukung keperluan penanganan masalah-masalah yang
berkaitan dengan teknologi informasi. Aplikasi-aplikasi Oracle dapat dijalankan
pada berbagai platform dan sistem operasi, dari komputer personal sampai
komputer dengan multi processor.
Oracle menyediakan aplikasi RDBMS yang disebut dengan Oracle Server.
Fasilitas-fasilitas yang ada di dalamnya memungkinkan untuk menyimpan dan
mengatur informasi dengan segala keuntungan dari struktur relasional, ditambah
dengan PL/SQL, suatu engine yang mendukung dengan kemampuan untuk
menyimpan dan mengeksekusi objek-objek basis data, seperti procedure dan
trigger. Oracle Server ini menyediakan pilihan bagi pengguna untuk menampilkan
data berdasarkan teknik optimasi. Di dalamnya juga mengandung fasilitas untuk
keamanan data yang dapat mengontrol bagaimana suatu basis data diakses dan
digunakan. Fasilitas-fasilitas lainnya adalah bahwa Oracle Server memiliki
kemampuan untuk menjaga konsistensi dan proteksi data melalui mekanisme
locking, dan two-phase commit process untuk aplikasi basis data tedistribusi
melalui jaringan komputer.
Aplikasi-aplikasi Oracle dapat dijalankan pada satu komputer sebagai
Oracle Server. Sebagai alternatif, dapat menjalankan aplikasi-aplikasi Oracle
tersebut pada komputer lokal untuk pengguna dan komputer lainnya untuk Oracle
Server (client-server architecture). Pada lingkungan client-server ini, jangkauan
luas dari sumberdaya komputer dapat digunakan. Sebagai contoh, aplikasi
berbasis form pada sistem pelayanan penerbangan dapat dijalankan pada
komputer personal, pada saat yang bersamaan data-data penerbangan yang
diperlukan oleh aplikasi tersebut ditangani oleh Oracle Server pada komputer
pusat.
Tabel 2.1. Macam-macam tipe data pada Oracle
No. Tipe Data Penjabaran Contoh
1 CHAR(n) Tipe data alphanumeric yang mampu
menampung sampai 2000 bytes (4 kb)
CHAR(15)
2 VARCHAR2(n) Sama seperti char tipedata ini dapat digunakan
untuk alphanumeric dan dapat menampung
sampai 4000 bytes (4 kb).
VARCHAR(50)
3 NUMBER(n,p) Tipe data ini hanya dapat digunakan untuk
menyimpan angka, dan kita tidak perlu
mendefinisikan panjang variable (kecuali
untuk bilangan decimal)
NUMBER(7,2)
4 DATE Tipe data ini digunakan untuk menyimpan data
berupa tanggal. Namun untuk
menggunakannya kita harus mengubahnya
dulu ke karakter dengan fungsi to_char
13-OCT-94
5 TIMESTAMP Tipe data ini juga digunakan untuk
menyimpan data dalam bentuk tanggal. Hanya
bedanya dengan date, tipe ini tidak perlu
diubah karakter jika ingin digunakan. Tipe ini
juga akan menyimpan tanggal dan waktu.
-
6 CLOB Tipe ini memperbolehkan untuk menyimpan
data alphanumeric yang berukura sangat besar
( sekitar 4gb)-
7 BLOB Sama dengan Clob tipe ini juga dapat
digunakan untuk menyimpan data dengan
jumlah sangat besar, bedanya tipe ini juga
dapat digunakan untuk menyimpan file audio
-
2.6 PL/SQL pada Oracle
PL/SQL (Procedural Language/Structured Query Language) merupakan
sebuah penggabungan antara bahasa pemrograman prosedural (PL) dan SQL
syntax.
PL/SQL adalah fasilitas yang disediakan Oracle sehingga pengguna dapat
memanfaatkan konsep pemrograman. Dalam PL/SQL dapat digunakan perintah
untuk memanipulasi data yang ada dalam database Oracle. PL/SQL membentuk
pemrograman terstruktur dalam memproses data. Beberapa kelebihan PL/SQL
dalam database Oracle :
1. PL/SQL dapat digunakan di server sehingga client hanya dapat mengakses
didalam server
2. Penggunaan PL/SQL mudah dimengerti oleh setiap pengguna
3. PL/SQL dapat didesain khusus untuk database Oracle dalam menggunakan
program aplikasi.
2.6.1 Macam-macam Tipe Data pada PL/SQL
Selain tipe data yang ada pada oracle SQL, PL/SQL menyediakan
beberapa tambahan tipe data yang dapat dideklarasikan sebagai berikut :
Tabel 2.2. Macam-macam tipe data pada PL/SQL
Tipe Data Penjabaran
CHAR(n) Data karakter dengan panjang tetap. Nilai n maksimum adalah 32767.
Nilai n minimum dan juga nilai default adalah 1.
VARCHAR2(n) Sama seperti char tipedata ini dapat digunakan untuk alphanumeric dan
dapat menampung sampai 4000 bytes (4 kb).
NUMBER [(p[,s])] Tipe data numeric dengan P angka penting dan sejumlah S angka
penting dibelakang koma. Nilai P adalah integer dengan nilkai
maksimal 38 dan nilai S berada pada rentang -84 sampai dengan 127.
Nilai S negative berarti pembulatan sampai dengan 105 terdekat.
FLOAT Turunan dari NUMBER. Prsisi sampai dengan 38 digit.
DOUBLE PRECISION Sama dengan FLOAT.
DATE Data tanggal waktu. Nilai yang valid adalah antara 1 Januari 4712 SM
sampai dengan 31 Desember 9999
REAL Turunan dari NUMBER. Presisi sampai dengan 18 digit.
DEC [(p[,s])] Sama dengan NUMBER [(p[,s])]
DECIMAL [(p[,s])] Sama dengan NUMBER [(p[,s])].
INTEGER [(n)] Sama dengan NUMBER [(n,0)]
INT [(n)] Sama dengan NUMBER [(n,0)]
SMALLINT Sama dengan NUMBER [(n,0)]
BINARY_INTEGER Tipe variable yang digunakan menyimpan mulai dari 0 s/d
2.147.483.647
NATURAL Bagian dari binary integer, mampu menyimpan mulai dari 0 s/d
2.147.483.647. tipe data ini tidak boleh bernilai NULL.
POSITIVE Tipe variable yang digunakan menyimpan mulai dari 0 s/d
2.147.483.647
POSITIVEN Bagian dari binary integer, mampu menyimpan mulai dari 0 s/d
2.147.483.647. tipe data ini tidak boleh bernilai NULL
SIGNTYPE Tipe data bilangan yang bernilai -1, 0 atau 1
PLS_INTEGER Bilangan integer dengan rentang nilai -21473647 sampai -21473647
VARCHAR(n) Sama dengan VARCHAR2
STRING Sama dengan VARCHAR2
CHARACTER2(n) Sama dengan CHAR2
LONG Data karakter dengan panjang tidak tetap. Nilai n maksimum sama
dengan 32760 byte
NCHAR Data karakter dengan panjang tidak tetap. Nilai n maksimum sama
dengan 32760 byte. Maksimum bergantung pada default national
character set yang dipakai. Nilai default adalah 1.
2.6.2 Operator pada PL/SQL
Operator-operator SQL statement juga berlaku pada PL/SQL. Berikut ini
adalah macam-macam operator pada PL/SQL.
Tabel 2.3. Macam-macam operator pada PL/SQL
Operator Operasi**, NOT Pemangkatan dan negasi logika
+, - Tanda positif dan negatif
*, / Perkalian dan pembagian
+, -, || Penjumlahan., pengurangan dan konkatinasi
=, <, >, <=, >=, <>, !=, IS NULL, LIKE, BETWEEN, IN
Perbandingan
AND Konjungsi
OR inklusi
2.6.3 Mencetak keluaran pada PL/SQL
Untuk mencetak sebuah nilai pada layar SQL*Plus dapat digunakan
procedure PUT, PUT_LINE dan NEW_LINE yang terdapat dalam package
DBMS_OUTPUT. Package ini merupakan salah satu package yang telah built in
pada Oracle.
Procedure PUT dan PUT_LINE membutuhkan sebuah argumen berupa
NUMBER, VARCHAR2 ataupun DATE. Kedua procedure tersebut akan
menyimpan argumen tersebut ke dalam buffer dan akan ditampilkan di layar bila
procedure tersebut dijalankan.
Procedure NEW_LINE tidak membutuhkan argumen apapun. Procedure
ini berfungsi untuk menyimpan karakter new line ke dalam buffer.
Namun sebelum procedure tersebut dijalankan, harus dijalankan perintah
“SET SERVEROUTPUT ON” untuk mengaktifkan pencetakan ke layar dengan
menggunakan procedure yang ada pada package DBMS_OUTPUT.
SET SERVEROUTPUT <ON|OFF> [SIZE n] [FOR[MAT] <WRA[PPED] | WOR[D_WAPPED] | TRU[NCATED]]
Pilihan SIZE n bertujuan untuk menentukan jumlah byte maksimum yang
dapat ditampung oleh buffer. Nilai n ini tidak boleh kurang dari 2000 dan tidak
boleh lebih dari 1.000.000. Nilai default-nya 2000. pilihan format bertujuan untuk
menentukan format keluaran. WRAPPED akan melanjutkan bagian yang tidak
mencukupi dari suatu baris ke baris yang baru. Pilihan TRUNCATE akan
memotong bagian yang melampaui ukuran satu baris tepat pada karakter yang
berada setelah batas maksimum baris. Ukuran satu baris, yakni jumlah karakter
maksimum dalam satu baris, ditentukan oleh sistem variabel LINESIZE.
2.6.4 Struktur blok PL/SQL
Struktur PL/SQL mirip dengan struktur bahasa pascal atau delphi yang
menggunakan struktur blok, sehingga akan mempermudah pengertian dalam
pemrograman dengan PL/SQL. Struktur Blok berisi perintah SQL dengan kondisi
yang berbeda. Perintah PL/SQL dapat menangani kesalahan saat dijalankan.
Setiap pengetikan dengan menggunakan PL/SQL dalam SQL*Plus selalu diakhiri
dengan tanda /(slash). Sintaks penggunaan PL/SQL adalah sebagai berikut :
[DECLARE ...] DECLARATION SECTIONBEGIN ... EXECUTABLE SECTION[EXCEPTION ...] EXCEPTION SECTIONEND;
Struktur diatas dapat dijelaskan sebagai berikut :
1. Bagian judul (header)
Bagian ini hanya digunakan jika PL/SQL diberikan nama, misalnya untuk
prosedur atau fungsi. Bagian ini berisi nama blok,daftar parameter, dan
pengembalian hasil (return) jika blok adalah fungsi.
2. Bagian deklarasi (declaration)
Bagian ini untuk membuat deklarasi mengenai semua variabel dan
konstanta yang direferensikan dalam pernyataan PL/SQL. Bagian deklarasi ini
dimulai dengan perintah DECLARE. Jika tidak ada variabel atau konstanta yang
ingin dideklarasikan bagian ini boleh dihilangkan, bersifat optional.
3. Bagian eksekusi (execution)
Bagian ini memuat pernyataan-pernyataan PL/SQL yang akan ditulis.
Bagian eksekusi ini harus dimulai dengan perintah BEGIN.
4. Bagian perkecualian (exception)
Bagian ini memuat cara menangani kesalahan-kesalahan (error) pada
waktu eksekusi program PL/SQL, bersifat optional. Jika program tidak memuat
cara menangani kesalahan, bagian ini boleh dihilangkan.Setiap pernyataan
PL/SQL harus diakhiri dengan tanda titik koma(;) dan semua program PL/SQL
harus diakhiri dengan perintah END.
BAB III
PENGENALAN PL/SQL DAN TIPE DATA
Karena pada SQL tidak mendukung pemrograman secara prosedural,
maka dikembangkanlah PL/SQL. PL merupakan kependekan dari Procedural
Language. PL/SQL mengkombinasikan kekuatan dan kefleksibilitasan SQL
dengan pemrograman prosedural.
8.1 Pernyataan Kondisi FOR–LOOP
Struktur perulangan FOR-LOOP digunakan untk menghasilkan perulangan
sejumlah sekali tanpa penggunaan kondisi apapun.
Struktur ini menyebabkan aksi diulangi sejumlah beberapa kali (tertentu).
SQL : SET SERVEROUTPUT ON;
DECLARE
I NUMBER;
BEGIN
FOR I IN 1..6 LOOP
DBMS_OUTPUT.PUT_LINE (TO_CHAR(I*2-1));
END LOOP;
END;
/
Penjabaran: Atur serveroutput dalam keadaan aktif.
Deklarasikan variabel I dengan tipe data Number.
Untuk nilai variabel I dalam 1 sampai 6 baris lakukan perulangan serta cetak
hasilnya pada layar dan ubah dalam bentuk CHAR
:
variabel I dikalikan 2 dikurangi 1.
Hasil percobaan :
Gambar 3.1. Tampilan pernyataan kondisi FOR – LOOP pada cmd3.2 Pernyataan Kondisi WHILE–LOOP
Perintah WHILE-LOOP akan terus melakukan iterasi (memproses baris
perintah secara berulang) selama kondisi bernilai benar.
SQL : SET SERVEROUTPUT ON
DECLARE
I NUMBER;
BEGIN
FOR I IN 1..6 LOOP
DBMS_OUTPUT.PUT(TO_CHAR(I*2-1));
END LOOP;
DBMS_OUTPUT.NEW_LINE;
END;
/
Penjabaran : Atur serveroutput dalam keadaan aktif.
Deklarasikan variabel I dengan tipe data Number.
Untuk nilai variabel I dalam 1 sampai 6 baris lakukan perulangan serta cetak
hasilnya pada layar dan ubah dalam bentuk CHAR : variabel I
dikalikan 2 dikurangi 1.
Cetak hasilnya dalam satu baris.
Hasil percobaan :
Gambar 3.2. Tampilan pernyataan kondisi WHILE - LOOP pada cmd
BAB IV
CURSOR
Blok PL/SQL tidak memungkinkan untuk menangani query keluaran lebih
dari satu baris (record) karena variabel penampung harus mempunyai sebuah
nilai. Karena itu, diperlukan sebuah Cursor untuk menampung semua kondisi
dari keluaran sebuah query. Cursor merupakan suatu variabel yang digunakan
untuk menampung hasil query yang terdiri atas lebih dari satu row atau record.
Cursor dapat diilustrasikan sebagai penampung sekaligus pointer atas hasil
eksekusi query. Pada dasarnya perintah “SELECT” pada PL/SQL merupakan
sebuah cursor. Terdapat dua macam cursor, yaitu Cursor eksplisit dan Cursor
implisit.
4.1 Membuat Database Baru
4.1.1 Membuat user baru
Berikut ini adalah langkah-langkah untuk membuat user baru di Oracle :
1. Klik START – pilih RUN – ketik CMD – OK
2. Ketik sqlplus, untuk username ketik : sys as sysdba dan untuk password
ketik : irwan
3. Setelah berhasil login dengan username dan password diatas, kemudian
buat user baru. Caranya sebagai berikut:
SQL : CREATE USER “1412080302” IDENTIFIED BY IRWAN;
Penjabaran : Buat user “1412080302” yang diidentifikasi dengan password
‘irwan’
4. Langkah selanjutnya adalah memberikan hak akses kepada user yang baru
dibuat agar dapat login dan membuat tabel. Caranya sebagai berikut:
SQL : GRANT CONNECT, RESOURCE TO “1412080302”;
Penjabaran : Ijinkan hak akses koneksi, resource pada user “1412080302”
5. Setelah user baru selesai dibuat dan diberikan hak akses kepada user
tersebut, ketikkan:
SQL : DISCONNECT;
Penjabaran : Putuskan koneksi
Hal ini dilakukan agar dapat keluar dari user sistem dan dapat login
menggunakan user baru saja dibuat (1412080302).
Hasil percobaan :
Gambar 4.1. Tampilan langkah-langkah membuat user baru di Oracle
4.1.2 Login menggunakan user yang telah dibuat
Lewat web browser dengan alamat: http://batman-9425ecb0:5560/isqlplus,
lakukan login pada user baru yang telah dibuat pada langkah sebelumnya,
username : 14120080302 dan password : irwan
Hasil percobaan :
Gambar 4.2. Tampilan login iSQL*Plus dengan user “1412080302” pada web browser
Jika login sukses maka akan muncul halaman seperti berikut:
Gambar 4.3. Tampilan halaman iSQL*Plus dengan user “1412080302” pada web browser
4.1.3 Membuat tabel
Tabel bisa diartikan sebagai penampung data yang telah dimasukkan
kedalam database.
4.1.3.1 Membuat tabel supplier
SQL : CREATE TABLE SUPPLIER (ID_SUPPLIER VARCHAR2 (10), NAMA
VARCHAR2 (50), NO_TELP VARCHAR2 (15), ALAMAT VARCHAR2
(50));
Penjabaran : Buat tabel dengan nama supplier, dengan kolom id_supplier yang
bertipe data varchar2 dan panjang karakter 10, kolom nama yang
bertipe data varchar2 dan panjang karakter 50, kolom no_telp yang
bertipe data varchar2 dan panjang karakter 15, kolom alamat yang
bertipe data varchar2 dan panjang karakter 50.
Hasil percobaan :
Gambar 4.4. Tampilan pembuatan tabel supplier
Setelah selesai membuat tabel, untuk memeriksa keberadaan tabel tersebut
digunakan query sebagai berikut:
SQL : SELECT * FROM user_catalog;
Penjabaran : Ambil seluruh data dari tabel user_catalog.
Hasil percobaan :
Gambar 4.5. Tampilan keberadaan tabel supplier di tabel user_catalog
Untuk melihat deskripsi mengenai struktur tabel yang sudah dibuat,
dugunakan query berikut ini:
SQL : DESC SUPPLIER;
Penjabaran : Tampilkan struktur tabel supplier.
Hasil percobaan :
Gambar 4.6. Tampilan struktur tabel supplier
Memasukkan data kedalam database merupakan sebuah tujuan utama
pembuatan tabel, maka untuk memasukkan data-data tersebut dilakukan query
berikut ini:
SQL : INSERT INTO supplier VALUES('SP-001', 'PT.Sidogiri',
'022-8768509', 'Jl. Ruwet Gg. Buntet No. 34 Bandung');
Penjabaran : Tambahkan data kedalam tabel supplier dengan nilai 'SP-001',
'PT.Sidogiri', '022-8768509', 'Jl. Ruwet Gg. Buntet No. 34 Bandung'.
Hasil percobaan :
Gambar 4.7. Tampilan penambahan data pada tabel supplier
Setelah proses penambahan data selesai, untuk mengecek isi tabel lakukan
perintah sebagai berikut:
SQL : SELECT * FROM supplier;
Penjabaran : Ambil seluruh data dari tabel supplier.
Hasil percobaan :
Gambar 4.8. Tampilan semua data dari tabel supplier
4.1.3.2 Membuat tabel buku
SQL : CREATE TABLE BUKU ( ID_BUKU VARCHAR2(10), ID_JENIS
VARCHAR2(5), ID_SUPPLIER VARCHAR2(10), JUDUL
VARCHAR2(100), PENGARANG VARCHAR2(60), HARGA
NUMBER(7,2), STOCK NUMBER (3));
Penjabaran : Buat tabel buku dengan kolom id_buku yang bertipe data varchar2
dan panjang karakter 10, id_jenis yang bertipe data varchar2 dan
panjang karakter 5, id_supplier yang bertipe data varchar2 dan
panjang karakter 10, judul yang bertipe data varchar2 dan panjang
karakter 100, pengarang yang bertipe data varchar2 dan panjang
karakter 60, harga yang bertipe data number dan panjang karakter
7,2, stock yang bertipe data number dan panjang karakter 3.
Hasil percobaan :
Gambar 4.9. Tampilan pembuatan tabel buku
Setelah selesai membuat tabel, untuk memeriksa keberadaan tabel tersebut
digunakan query sebagai berikut:
SQL : SELECT * FROM user_catalog;
Penjabaran : Ambil seluruh data dari tabel user_catalog.
Hasil percobaan :
Gambar 4.10. Tampilan keberadaan tabel buku di tabel user_catalog
Untuk melihat deskripsi mengenai struktur tabel yang sudah dibuat,
dugunakan query berikut ini:
SQL : DESC buku;
Penjabaran : Tampilkan struktur tabel buku.
Hasil percobaan :
Gambar 4.11. Tampilan struktur tabel buku
Memasukkan data kedalam database merupakan sebuah tujuan utama
pembuatan tabel, maka untuk memasukkan data-data tersebut dilakukan query
berikut ini:
SQL : INSERT INTO buku VALUES('BK-001', 'IT', 'SP-002', '10
Langkah Belajar Logika dan Algoritma Menggunakan
Bahasa C++', 'Ema Utami', 27375, 10);
Penjabaran : Tambahkan data kedalam tabel buku dengan nilai 'BK-001', 'IT', 'SP-
002', '10 Langkah Belajar Logika dan Algoritma Menggunakan
Bahasa C++', 'Ema Utami', 27375, 10.
Hasil percobaan :
Gambar 4.12. Tampilan penambahan data pada tabel buku
Setelah proses penambahan data selesai, untuk mengecek isi tabel lakukan
perintah sebagai berikut:
SQL : SELECT * FROM buku;
Penjabaran : Ambil seluruh data dari tabel buku.
Hasil percobaan :
Gambar 4.13. Tampilan semua data pada tabel buku
4.1.4 Export user
Setelah membuat dan manambahkan data pada tabel supplier dan tabel
buku, kita harus melakukan export user. Hal ini dilakukan agar data user yang
barusan dibuat dapat digunakan pada praktikum selanjutnya. Berikut ini adalah
langkah-langkah untuk export user :
1. Klik START – pilih RUN – ketik CMD – OK
2. Ketik perintah “EXP” kemudian tekan enter
3. Masukkan username: 1412080302 dan password : irwan
4. Muncul perintah “Enter array fetch buffer size”, maka ketikkanlah nilai
default yang sudah ada yaitu 4096 kemudian enter. Memasukkan ukuran
buffer fetch array
5. Perintah “Export file” merupakan perintah untuk memberi nama file
penampung data hasil eksport. Maka isikan saja, contoh : d:\irwan.dmp
kemudian tekan enter
6. Berikutnya akan muncul pertanyaan,”(2)U<sers>, or (3)T<ables>”, ini
berarti apakah kita ingin mengeksport data user ataukah tabel, ketikkan U,
kemudian tekan enter
7. Kemudian muncul pertanyaan “Export grants <yes/no>”, ini artinya untuk
mengeksport hak akses yang dimiliki user tersebut, ketikkan Y dan tekan
enter
8. Kemudian muncul pertanyaan “Export table data <yes/no>”, ini artinya untuk
eksport semua data tabel, ketik Y dan tekan enter
9. Lalu muncul pertanyaan yang terakhir yaitu “Compres extents <yes/no>”,
ketik Y dan tekan enter
10. Tunggu hingga proses selesai. Bila proses eksport tidak ada pesan error, dan
muncul keterangan “Export terminated successfully without warnings”, ini
berarti proses eksport telah sukses dilaksanakan.
Hasil percobaan :
Gambar 4.14. Tampilan langkah-langkah export user
11. Periksa pada d:\irwan.dmp apakah file hasil eksport tadi ada, jika ada maka
artinya telah berhasil disimpan.
Hasil percobaan :
Gambar 4.15. Tampilan keberadaan file irwan.dmp di drive D
4.2 Membuat Cursor Implisit dan Eksplisit
4.2.1 Cursor implisit
Cursor implisit merupakan perintah SELECT statement dengan klausa
INTO yang terdapat didalm blok PL/SQL dan harus menghasilkan satu baris
record.
SQL : SET SERVEROUTPUT ON;
DECLARE
v_idbuku buku.id_buku%TYPE:='&id_buku';
v_idjenis buku.id_jenis%TYPE;
v_idsupplier buku.id_supplier%TYPE;
v_namasupplier supplier.nama%TYPE;
v_judul buku.judul%TYPE;
v_pengarang buku.pengarang%TYPE;
v_harga buku.harga%TYPE;
v_stok buku.stock%TYPE;
BEGIN
SELECT b.id_buku, b.id_jenis, b.id_supplier, s.nama,
b.judul, b.pengarang, b.harga, b.stock INTO
v_idbuku, v_idjenis, v_idsupplier, v_namasupplier,
v_judul, v_pengarang, v_harga, v_stok FROM buku b,
supplier s WHERE b.id_buku = v_idbuku AND
b.id_supplier = s.id_supplier;
DBMS_OUTPUT.PUT_LINE('Kode buku = '||v_idbuku);
DBMS_OUTPUT.PUT_LINE('Kode jenis= '|| v_idjenis);
DBMS_OUTPUT.PUT_LINE('Kode supplier = '||
v_idsupplier);
DBMS_OUTPUT.PUT_LINE('Nama supplier= '||
v_namasupplier);
DBMS_OUTPUT.PUT_LINE('Judul buku = '|| v_judul);
DBMS_OUTPUT.PUT_LINE('Pengarang = '|| v_pengarang);
DBMS_OUTPUT.PUT_LINE('Harga = Rp. ' || v_harga);
DBMS_OUTPUT.PUT_LINE('Stok = ' || v_stok);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Tidak ada buku dengan kode = '
||v_idbuku);
WHEN TOO_MANY_ROWS THEN
DBMS_OUTPUT.PUT_LINE('Data buku yang ditemukan lebih
dari 1 baris');
END;
/
Penjabaran : Atur serveroutput dalam keadaan aktif. Deklarasikan variabel
v_idbuku, v_idjenis, v_idsupplier, v_judul, v_pengarang, v_harga,
v_stok dengan tipe datanya sama dengan tipe data kolom id_buku,
id_jenis, id_supplier, judul, pengarang, harga, stock pada tabel buku,
variabel v_namasupplier dengan tipe datanya sama dengan tipe data
kolom nama pada tabel supplier. Jalankan ambil data kolom id_buku
pada tabel b, kategori pada tabel b, id_supplier pada tabel b, nama
pada tabel s, judul pada tabel b, pengarang pada tabel b, harga pada
tabel b, stock pada tabel b kedalam variabel v_idbuku, v_idjenis,
v_idsupplier, v_namasupplier, v_judul, v_pengarang, v_harga,
v_stok dari tabel buku yang dialiaskan dengan nama b, supplier yang
dialiaskan dengan nama s, dimana nilai kolom id_buku pada tabel b
sama dengan nilai variabel v_idbuku dan nilai kolom id_supplier
pada tabel b sama dengan nilai kolom id_supplier pada tabel s. Cetak
pada layar ‘Kode buku’ sama dengan nilai variabel v_idbuku, ‘Kode
jenis’ sama dengan nilai variabel v_idjenis, ‘Kode supplier’ sama
dengan nilai variabel v_idsupplier, ‘Nama supplier’ sama dengan
nilai variabel v_namasupplier, ‘Judul buku’ sama dengan nilai
variabel v_judul, ‘Pengarang’ sama dengan nilai variabel
v_pengarang, ‘Harga’ sama dengan nilai variabel v_harga, ‘Stok’
sama dengan nilai variabel v_stok. Tampilkan kesalahan atau
peringatan ketika tidak ada data yang ditemukan kemudian cetak
pada layar ‘Tidak ada buku dengan kode’ nilai variabel v_idbuku
yang diinputkan, ketika terlalu banyak baris yang ditemukan
kemudian cetak pada layar ‘Data buku yang ditemukan lebih dari 1
baris.
Hasil percobaan :
Gambar 4.16. Tampilan hasil cursor Implisit
Setelah di klik “Execute”, akan muncul tampilan dibawah ini. Hal ini
dimaksudkan agar kita memasukkan nilai id_buku agar bisa ditampung divariabel
v_idbuku. Lalu klik “Continue” setelah memasukkan nilainya.
Gambar 4.17. Tampilan Input Required untuk memasukkan nilai id_buku
4.2.2 Cursor Eksplisit
Tidak seperti cursor implisit, cursor eksplisit harus dideklarasikan terlebih
dahulu sebelum digunakan.
SQL : SET SERVEROUTPUT ON
DECLARE
v_idbuku buku.id_buku%TYPE:='&id_buku';
v_idjenis buku.id_jenis%TYPE;
v_idsupplier buku.id_supplier%TYPE;
v_namasupplier supplier.nama%TYPE;
v_judul buku.judul%TYPE;
v_pengarang buku.pengarang%TYPE;
v_harga buku.harga%TYPE;
v_stok buku.stock%TYPE;
CURSOR cur_irwan IS
SELECT buku.id_buku, buku.judul, buku.id_supplier,
supplier.nama, buku.id_jenis, buku.pengarang,
buku.harga, buku.stock FROM buku, supplier WHERE
buku.id_buku = v_idbuku AND supplier.id_supplier =
buku.id_supplier;
BEGIN
OPEN cur_irwan;
FETCH cur_irwan INTO v_idbuku, v_judul,
v_idsupplier,v_namasupplier, v_idjenis, v_pengarang,
v_harga, v_stok;
WHILE cur_irwan%found LOOP
DBMS_OUTPUT.PUT_LINE('Kode Buku : ' || v_idbuku);
DBMS_OUTPUT.PUT_LINE('Judul Buku : ' || v_judul);
DBMS_OUTPUT.PUT_LINE('Kode Supplier : ' ||
v_idsupplier);
DBMS_OUTPUT.PUT_LINE('Nama Suplier:'|| v_suplier);
DBMS_OUTPUT.PUT_LINE('Jenis Buku :'|| v_idjenis);
DBMS_OUTPUT.PUT_LINE(Pengarang :' || v_pengarang);
DBMS_OUTPUT.PUT_LINE('Harga Buku : ' || v_harga);
DBMS_OUTPUT.PUT_LINE('Stok Buku : ' || v_stok);
FETCH cur_irwan INTO v_idbuku, v_judul,
v_idsupplier,v_namasupplier,v_idjenis,v_pengarang,
v_harga, v_stok ;
END LOOP;
CLOSE cur_irwan;
END;
/
Penjabaran : Atur serveroutput dalam keadaan aktif. Deklarasikan variabel
v_idbuku, v_idjenis, v_idsupplier, v_judul, v_pengarang, v_harga,
v_stok dengan tipe datanya sama dengan tipe data kolom id_buku,
id_jenis, id_supplier, judul, pengarang, harga, stock pada tabel
buku, variabel v_namasupplier dengan tipe datanya sama dengan
tipe data kolom nama pada tabel supplier. Buat cursor dengan nama
cur_irwan dengan query ambil data kolom id_buku pada tabel
buku, id_jenis pada tabel buku, id_supplier pada tabel buku, nama
pada tabel supplier, judul pada tabel buku, pengarang pada tabel
buku, harga pada tabel buku, stock pada tabel buku dari tabel buku,
supplier dimana nilai kolom id_buku pada tabel buku adalah nilai
variabel v_idbuku yang telah diinputkan dan nilai kolom
id_supplier pada tabel buku sama dengan nilai kolom id_supplier
pada tabel supplier. Jalankan, buka cursor cur_irwan, ambil nilai
cur_irwan masukkan kedalam variabel v_idbuku, v_idjenis,
v_idsupplier, v_namasupplier, v_judul, v_pengarang, v_harga,
v_stok. Ketika cur_irwan ditemukan data ulangi, Cetak pada layar
‘Kode buku’ sama dengan nilai variabel v_idbuku, ‘Kode jenis’
sama dengan nilai variabel v_idjenis, ‘Kode supplier’ sama dengan
nilai variabel v_idsupplier, ‘Nama supplier’ sama dengan nilai
variabel v_namasupplier, ‘Judul buku’ sama dengan nilai variabel
v_judul, ‘Pengarang’ sama dengan nilai variabel v_pengarang,
‘Harga’ sama dengan nilai variabel v_harga, ‘Stok’ sama dengan
nilai variabel v_stok. ambil nilai cur_irwan masukkan kedalam
variabel v_idbuku, v_idjenis, v_idsupplier, v_namasupplier,
v_judul, v_pengarang, v_harga, v_stok. Hentikan perulangan.
Tutup cursor cur_irwan.
Hasil percobaan :
Gambar 4.18. Tampilan hasil cursor eksplisit
4.3 Memperbaiki Blok PL/SQL yang Error
SQL : SET SERVEROUTPUT ON
DECLARE
v_idsupplier supplier.id_supplier%TYPE;
v_nama supplier.nama%TYPE;
v_no_telepon supplier.no_telp%TYPE;
v_alamat supplier.alamat%TYPE;
BEGIN
SELECT id_supplier, nama, no_telp, alamat INTO
v_idsupplier, v_nama, v_no_telepon, v_alamat FROM
supplier WHERE id_supplier = 'SP-002';
IF SQL%NOTFOUND THEN
DBMS_OUTPUT.PUT_LINE('Nama Pemesan TidakDitemukan');
ELSE
DBMS_OUTPUT.PUT_LINE('Daftar Nama Pemesan yang Total
Banquetnya <= 500000 :');
DBMS_OUTPUT.PUT_LINE(v_idsupplier ||' = '|| v_nama);
END IF;
END;
/
Penjabaran : Atur serveroutput dalam keadaan aktif. Deklarasikan variabel
v_idsupplier, v_nama, v_no_telepon, v_alamat yang tipe datanya
sama dengan tipe data kolom id_supplier, nama, no_telp, alamat
pada tabel supplier. Jalankan, ambil data kolom id_supplier, nama,
no_telp, alamat kedalam variabel v_idsupplier, v_nama,
v_no_telepon, v_alamat dari tabel supplier dimana nilai kolom
id_supplier sama dengan ‘SP-002’. Jika query tidak menghasilkan
data maka cetak pada layar ‘Nama Pemesan Tidak Ditemukan’. Jika
kondisi lainnya maka cetak pada layar ‘Daftar Nama Pemesan yang
Total Banquetnya <=500000 :’. Cetak pada layar variabel
v_idsupplier ‘=’ variabel v_nama.
Hasil percobaan :
Gambar 4.19. Tampilan hasil cursor pada web browser
BAB V
ERROR HANDLING
Setiap kesalahan (error) atau peringatan (warning) yang muncul karena
suatu perintah disebut dengan exception. Bagian exception ini ditujukan untuk
menangani exception handler, sedangkan mekanisme penaanganan exception itu
disebut dengan exception handling.
5.1 Import User
Berikut ini adalah langkah-langkah melakukan import user :
1. Membuka START-RUN-CMD
2. Ketik perintah “imp 1412080302/irwan@orcl” kemudian tekan enter
3. Muncul pertanyaan lokasi file import “Import file : ” maka ketikkan lokasi
file dmp, misal : “d:\irwan.dmp”
4. Muncul “Enter insert buffer size minimum is 8192)?”, isikan angka default
yang dianjurkan yaitu “30720”, kemudian tekan enter
5. Muncul “List contents of import file only?” maka ketikkan “n” kemudian
enter
6. Muncul “Ignore create error due to object existence?”, ketikkan “y”
kemudian enter
7. Muncul “Import Grants?”, ketikkan “y” lalu enter
8. Muncul “Import table data?”, maka ketikkan “y” lalu enter
9. Lalu muncul “Import entire export file?” maka ketikkan “y” lalu enter
10. Apabila tidak ada pesan error,maka proses import telah sukses dilaksanakan.
Kemudian periksa apakah di database oracle kita sudah terdapat file hasil
import tadi.
Hasil percobaan :
Gambar 5.1. Tampilan langkah-langkah import user
5.2 Penambahan Exception
5.2.1 Membuat tabel stats
SQL : CREATE TABLE stats (symbol CHAR (10), ratio NUMBER
(6));
Penjabaran : Buat tabel stats dengan kolom symbol yang bertipe data char dan panjang
data 10, kolom ratio yang bertipe data number dan panjang data 6
Hasil percobaan :
Gambar 5.2. Tampilan pembuatan tabel stats
5.2.2 Menambahkan exception pada blok PL/SQL
SQL : SET SERVEROUTPUT ON
DECLARE
pe_ratio NUMBER(6);
CURSOR irwan IS SELECT harga FROM buku WHERE
id_jenis='IT';
n NUMBER;
BEGIN OPEN irwan;
FETCH irwan INTO pe_ratio;
WHILE irwan%found LOOP INSERT INTO stats (symbol,
ratio) VALUES ('XYZ', pe_ratio);
COMMIT;
FETCH irwan INTO pe_ratio;
END LOOP;
n := irwan%rowcount;
CLOSE irwan;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE (' tidak ada data');
END;
Penjabaran : Atur serveroutput dalam keadaan aktif. Deklarasikan variabel
pe_ratio dengan tipe data number dan panjang karakter 6, cursor
dengan nama irwan dengan query ambil data kolom harga dari tabel
buku dimana nilai kolom id_jenis sama dengan IT, variabel n dengan
tipe data number. Jalankan, buka cursor irwan. Ambil nilai cursor
irwan masukkan kedalam variabel pe_ratio. Ketika cursor irwan
ditemukan data ulangi tambahkan data ke tabel stats (kolom symbol,
ratio) dengan nilai (‘XYZ’, variabel e_ratio). Jalankan, Ambil nilai cursor
irwan masukkan kedalam variabel pe_ratio. Selesai perulangan.
Variabel n bernilai sama dengan jumlah baris yang ditemukan pada
cursor irwan. Tutup cursor irwan. Tampilkan kesalahan atau
peringatan ketika tidak ada data yang ditemukan kemudian cetak
pada layar ‘Tidak ada data’.
Hasil percobaan :
Gambar 5.3. Tampilan penambahan exception pada blok PL/SQL
5.2.3 Melihat hasil Exception pada blok PL/SQL
SQL : SELECT * FROM stats;
Penjabaran : Ambil semua data dari tabel stats
Hasil percobaan :
Gambar 5.4. Tampilan semua data pada tabel stats
5.3 Unhandled Exception
Merupakan exception yang menampilkan keterangan kesalahan dan
kesalahan yang tidak ditangani.
SQL : SET SERVEROUTPUT ON
DECLARE
v_id buku.id_buku%TYPE;
v_stok buku.stock%TYPE;
BEGIN
SELECT id_buku, stock INTO v_id, v_stok FROM buku
WHERE stock=’0’;
DBMS_OUTPUT.PUT_LINE (‘Buku yang stoknya nol adalah
buku dengan kode : ‘ || v_id);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE(‘Tidak ditemukan buku yang
stoknya = 0’);
END;
/
Penjabaran : Atur serveroutput dalam keadaan aktif. Deklarasikan variabel
v_idbuku, v_stok dengan tipe datanya sama dengan tipe data kolom
id_buku, stock pada tabel buku. Jalankan, ambil data kolom
id_buku, stock masukkan kedalam variabel v_id, v_stok dari tabel
buku dimana kolom stock sama dengan 0. Cetak pada layar ‘Buku
yang stoknya nol adalah buku dengan kode sama dengan nilai
variabel v_id’. Tampilkan kesalahan atau peringatan ketika tidak
ada data yang ditemukan kemudian cetak pada layar ‘Tidak ada
buku yang stoknya = 0’.
Hasil percobaan :
Gambar 5.5. Tampilan unhandled exception ketika tidak ada stok yang nol
Dalam percobaan tersebut tidak ditemukan stok buku yang nol, maka
memasukkan data buku baru dengan jumlah stok 0.
SQL : INSERT INTO VALUES (‘BK-013’,’IT’,’SP-002’,’Membuat
Game Itu Mudah’,’Irwan’,40000,0);
Penjabaran : Sisipkan baris baru kedalam tabel buku dengan nilai ‘BK-
013’,’IT’,’SP-002’,’Membuat Game itu Mudah’,’Irwan’,40000,0.
Hasil percobaan :
Gambar 5.6. Tampilan penambahan data baru pada tabel buku
Kemudian untuk melihat penambahan data bisa digunakan query sebagai
berikut:
SQL : SELECT * FROM BUKU;
Penjabaran : Ambil seluruh data dari tabel buku.
Hasil percobaan :
Gambar 5.7. Tampilan semua data tabel buku
Setelah penambahan data dengan nilai stok 0, lalu jalankan lagi perintah
SQL unhandled exception.
Hasil percobaan :
Gambar 5.8. Tampilan unhandled exception ketika ada stok yang nol
BAB VI
STORED PROGRAM
Stored program merupakan sekumpulan blok PL/SQL yang tersimpan
didalam skema database sehingga sewaktu-waktu user dapat mengeksekusi blok
tersebut. Ada dua jenis stored program, yaitu procedure dan function. Procedure
sendiri dibagi menjadi dua macam, yaitu nested procedure dan non nested
procedure. Seperti procedure, function juga dibagi dua macam, nested function
dan non nested function.
6.1 Membuat Function Bilangan Desimal Menjadi Biner
Desimal merupakan bilangan bulat atau pecahan, contoh : bilangan 10.
Sedangkan biner adalah bilangan yang terdiri dari angka 1 dan 0. Berikut ini
adalah langkah-langkah untuk membuat function bilangan desimal menjadi biner :
1. Login pada iSQL*PLUS dengan user yang telah dibuat. Username :
1412080302 dan password : irwan
Hasil percobaan:
Gambar 6.1. Tampilan halaman login iSQL*Plus
2. Setelah sukses login, ketiklah blok PL/SQL seperti dibawah ini, kemudian klik
execute
SQL : CREATE OR REPLACE FUNCTION desimal_biner (kode IN
NUMBER) RETURN VARCHAR2 IS
v_in NUMBER;
v_next NUMBER;
v_hasil VARCHAR2(1000);
BEGIN
v_in := kode;
WHILE v_in > 0 LOOP
v_next := MOD(v_in, 2);
v_hasil := TO_CHAR (v_next) || v_hasil;
v_in := FLOOR (v_in / 2);
END LOOP;
RETURN v_hasil;
END;
/
Penjabaran : Buat atau ganti fungsi dengan nama desimal_biner dengan
variabel kode yang bertipe data number, nilai kembaliannya
bertipe data varchar2 adalah variable v_in dan v_next yang
bertipe data number, variable v_hasil yang bertipe data varchar2
dan panjang karakter 1000.
Mulai program dengan nilai awal variabel v_in adalah kode
ketika nilai variabel v_in lebih besar daripada nol, lakukan
perulangan nilai variabel v_next adalah nilai sisa hasil bagi
(modulus) variabel v_in dan 2, nilai variable v_hasil adalah
ubah ke bentuk karakter variable v_next digabungkan dengan
variable v_hasil. Nilai variable v_in adalah nilai (FLOOR)
variable v_in dibagi 2. Akhiri perulangan. Kembalikan nilai
variable v_hasil. Akhiri program.
Hasil percobaan :
Gambar 6.2. Tampilan pembuatan function decimal_biner
3. Setelah function sukses dibuat, untuk menguji function itu jalankan query SQL
seperti dibawah ini:
SQL : SELECT desimal_biner (10) from dual;
Penjabaran : Ambil data nilai biner dari angka 10 pada function
decimal_biner dari tabel dual.
Hasil percobaan :
Gambar 6.3. Tampilan nilai biner dari angka 10
BAB VII
TRIGGER
Trigger merupakan blok PL/SQL yang memiliki fungsi hampir sama
dengan procedure maupun function, hanya saja, jika procedure atau function
dijalankan secara eksplisit lewat pemanggilan procedure atau function tersebut,
sedangkan untuk trigger, dijalankan secara eksplisit melelui perintah INSERT,
DELETE atau UPDATE.
7.1 Trigger Update
SQL : CREATE OR REPLACE TRIGGER update_id_jenis_irwan
BEFORE INSERT OR UPDATE OF ID_JENIS ON JENIS
FOR EACH ROW
BEGIN
UPDATE BUKU
SET ID_JENIS = NVL(:NEW.ID_JENIS,0) where
ID_JENIS = :old.ID_JENIS ;
END;
/
Penjabaran : Buat atau ganti trigger dengan nama update_id_jenis_irwan
sebelum memasukkan atau merubah data pada kolom id_jenis pada
tabel jenis untuk setiap barisnya. Lakukan eksekusi ubah pada tabel
buku atur id_jenis sama dengan inputan (id_jenis baru) pada
id_jenis yang lama.
Hasil Percobaan :
Gambar 7.1. Tampilan pembuatan TRIGGER update_id_jenis_irwan
Sebelum membandingkannya dengan nilai yang baru, lihat terlebih dahulu
tabel jenis dan tabel buku untuk membandingkannya.
SQL : SELECT * FROM JENIS ;
Penjabaran : Ambil semua data dari tabel jenis
Hasil Percobaan :
Gambar 7.2. Tampilan data pada tabel jenis
SQL : SELECT * FROM BUKU ;
Penjabaran : Ambil semua data dari tabel buku
Hasil Percobaan :
Gambar 7.3. Tampilan data pada tabel buku
Kemudian ubah nilai kolom id_jenis untuk melihat hasilnya. Berikut ini
querynya :
SQL : UPDATE JENIS SET ID_JENIS = 'IRW' WHERE ID_JENIS =
'UM';
Penjabaran : Rubah tabel jenis atur pada kolom id_jenis menjadi ‘IRW’ dimana
id_jenis sama dengan ’UM’
Hasil percobaan :
Gambar 7.4. Tampilan query untuk merubah data pada table jenis
SQL : SELECT * FROM JENIS ;
Penjabaran : Ambil semua data dari tabel jenis;
Hasil percobaan :
Gambar 7.5. Tampilan data pada tabel jenis yang telah diubah
Perubahan bisa dilihat juga pada tabel buku, caranya lakukan query dibawah
ini :
SQL : SELECT * FROM BUKU;
Penjabaran : Ambil semua data dari table buku;
Hasil percobaan :
Gambar 7.6. Tampilan data kolom id_jenis pada tabel buku yang telah diubah
7.2 Trigger Kontrol Stok
SQL : CREATE OR REPLACE TRIGGER STOK_BUKU_IRWAN
BEFORE INSERT OR UPDATE OF STOCK ON BUKU
FOR EACH ROW
BEGIN
IF NOT (:NEW.STOCK <= 100)
THEN
RAISE_APPLICATION_ERROR (-20202, 'MAAF, JUMLAH STOK
YANG ANDA MASUKKAN LEBIH DARI 100. STOK MAKSIMAL HARUS
100..!!');
END IF ;
END;
/
Penjabaran : Buat atau ganti trigger stok_buku_irwan sebelum menambahkan
atau merubah kolom stok pada tabel buku untuk setiap barisnya.
Kemudian jalankan jika stok baru tidak diinputkan kurang atau
sama dengan 100 maka tampilkan pesan error dengan menampilkan
peringatan ‘maaf, jumlah stok yang anda masukkan lebih dari 100.
stok maksimal harus 100..!!’. Program selesai.
Hasil percobaan :
Gambar 7.7. Tampilan pembuatan TRIGGER stok_buku_irwan
Setelah sukses, lakukan query berikut ini:
SQL : INSERT INTO BUKU VALUES('BK-012','TIK','SP-001',
'Membuat Game Itu Mudah',’Irwan','45000','104');
Penjabaran : Tambahkan data kedalam tabel buku dengan nilai (‘BK-012’, ’TIK’,
‘SP 001’, ‘Membuat game itu mudah’, ‘Irwan’, ‘45000’, ‘104’)
Hasil percobaan :
Gambar 7.8. Tampilan penambahan data buku yang error
Query diatas error karena jumlah stok yang diinputkan lebih dari 100, untuk
melihat hasil yang sukses lakukan query dibawah ini:
SQL : INSERT INTO BUKU VALUES('BK-012','TIK','SP-001',
'Membuat Game Itu Mudah',’Irwan','45000','94');
Penjabaran : Tambahkan data kedalam tabel buku dengan nilai (‘BK-012’,
’TIK’, ‘SP 001’, ‘Membuat game itu mudah’, ‘Irwan’, ‘45000’,
‘94’)
Gambar 7.9. Tampilan penambahan data buku yang benar
Untuk melihat hasilnya, lakukan query seperti biasanya.
SQL : SELECT * FROM BUKU;
Penjabaran : Ambil semua data dari tabel buku
Hasil percobaan :
Gambar 7.10. Tampilan data baru pada tabel buku
BAB VIII
INDEX, VIEW DAN SEQUENCE
Index adalah object schema yang berisi catatan dari nilai-nilai yang
muncul pada satu kolom atau kombinasi kolom di index dari sebuah tabel. Index
dibuat untuk mempercepat pengaksesan data pada suatu tabel.
View adalah sebuah virtual tabel yang dibangun dari satu atau beberapa
tabel yang sudah ada, baik berdasarkan kondisi tertentu ataupun tidak. Secara fisik
view tidak menyimpan record seperti pada tabel, tetapi ia menyimpan data berupa
pointer yang menunjukkan ke record yang bersangkutan di dalam tabel.
Sequence merupakan objek database yang digunakan untuk
membangkitkan serangkaian nilai serial yang unik agar dapat dimanfaatkan untuk
primary key dalam sebuah tabel.
8.1 INDEX
8.1.1 Pembuatan INDEX
Disini kita akan membuat tiga buah index, yaitu: index dari tabel supplier,
index dari tabel buku, dan index dari table jenis. Yang pertama adalah membuat
index dari tabel supplier, berikut querynya:
SQL : CREATE INDEX idx_irwan_supplier
ON SUPPLIER (id_supplier,nama);
Penjabaran : Buat index dengan nama idx_irwan_supplier pada tabel supplier,
kolom id_supplier dan nama
Hasil percobaan :
Gambar 8.1. Tampilan pembuatan index pada tabel supplier
Setelah index dari tabel supplier dibuat, yang kedua adalah index dari tabel
buku.
SQL : CREATE INDEX idx_irwan_buku
ON BUKU(id_buku,judul,pengarang);
Penjabaran : Buat index dengan nama idx_irwan_buku pada tabel buku, kolom
id_buku, judul dan pengarang.
Hasil percobaan :
Gambar 8.2. Tampilan pembuatan index pada tabel buku
Dan yang terakhir adalah index dari tabel jenis.
SQL : CREATE INDEX idx_irwan_jenis ON jenis (id_jenis,
kategori);
Penjabaran : Buat index dengan nama idx_irwan_jenis pada tabel jenis, kolom
id_jenis dan kategori
Hasil percobaan :
Gambar 8.3. Tampilan pembuatan index pada tabel jenis
8.1.2 Memeriksa keberadaan INDEX
Untuk mambuat memeriksa keberadaan index, sebaiknya login terlebih
dahulu sebagai SYSDBA dengan username : 1412080302 as SYSDBA dan
password : irwan.
Hasil percobaan :
Gambar 8.4. Tampilan login dengan username 1412080302 as sysdba pada cmd
Karena semua index yang telah dibuat berada di tabel dba_indexes, maka
berikut ini query untuk memeriksa keberadaan index yang telah kita buat di tabel
dba_indexes tersebut.
SQL : SELECT index_name, index_type, status FROM dba_indexes
WHERE owner=’1412080302’;
Penjabaran : Ambil data kolom index_name, index_type, status dari tabel
dba_indexes dimana pemilik database-nya adalah ‘1412080302’.
Hasil percobaan :
Gambar 8.5. Tampilan keberadaan index milik user 1412080302
8.2 VIEW
8.2.1 Pembuatan VIEW
Sebelum kita membuat VIEW, sebaiknya login terlebih dahulu sebagai
SYSDBA dengan username : 1412080302 as SYSDBA dan password : irwan.
Hasil percobaan :
Gambar 8.6. Tampilan login dengan username 1412080302 as sysdba pada cmd
Setelah sukses login, ketiklah query dibawah ini:
SQL: CREATE VIEW “1412080302”.buje ( id_buku, id_jenis,
judul, kategori) AS SELECT b.id_buku, b.id_jenis,
b.judul, j.KATEGORI FROM “1412080302”.BUKU b,
“1412080302”.JENIS j WHERE b.id_jenis=j.id_jenis;
Penjabaran: Buat view user “1412080302” dengan nama buje dengan kolom
id_buku, id_jenis, judul, kategori sebagai ambil data kolom
id_buku pada tabel b, id_jenis pada tabel b, judul pada tabel b,
kategori pada tabel j dari user “1412080302” tabel buku alias b,
user “1412080302” tabel jenis alias j dimana nilai kolom id_jenis
pada tabel b sama dengan nilai kolom id_jenis pada tabel j.
Hasil percobaan :
Gambar 8.7. Tampilan pembuatan view buje
8.2.2 Memeriksa keberadaan VIEW
SQL : SELECT * FROM user_catalog;
Penjabaran : Ambil seluruh data dari tabel user_catalog
Hasil percobaan :
Gambar 8.8. Tampilan keberadaan view buje
Sedangkan untuk melihat isi dari view buje itu sendiri, ketikkan query
berikut ini.
SQL : SELECT * FROM buje;
Penjabaran : Ambil seluruh data dari view buje
Hasil percobaan :
Gambar 8.9. Tampilan isi data view buje
8.3 SEQUENCE
8.3.1 Pembuatan SEQUENCE
Berikut ini adalah query untuk membuat sequence dari table buku:
SQL : CREATE SEQUENCE seq_buku_idbuku INCREMENT BY 1 START
WITH 013 MAXVALUE 999;
Penjabaran : Buat sequence seq_buku_idbuku dengan nilai penambahan 1 yang
dimulai pada angka ‘013’ dan nilai tertinggi adalah 999.
Hasil percobaan :
Gambar 8.10. Tampilan pembuatan SEQUENCE seq_buku_idbuku
Selain kita membuat sequence dari tabel buku, kita juga akan membuat
sequence dari tabel supplier.
SQL : CREATE SEQUENCE seq_supplier_idsupplier INCREMENT BY 1
START WITH 005 MAXVALUE 999;
Penjabaran : Buat sequence seq_supplier_idsupplier dengan nilai penambahan 1
yang dimulai pada angka 005 dan nilai tertinggi adalah 999.
Hasil percobaan :
Gambar 8.11. Tampilan pembuatan SEQUENCE seq_supplier_idsupplier
8.3.2 Memeriksa dan mengambil informasi SEQUENCE
SQL : SELECT * FROM user_catalog;
Penjabaran : Ambil seluruh data dari tabel user_catalog
Hasil percobaan :
Gambar 8.12. Tampilan keberadaan SEQUENCE
8.3.3 INSERT data tabel menggunakan SEQUENCE
SQL : INSERT INTO buku VALUES (seq_buku_idbuku.NEXTVAL,
‘IT’, ‘SP-004’, ‘Sistem Pakar, ‘Irwan Purdianto’,
20000, 18);
Penjabaran : Tambahkan data kedalam tabel buku dengan nilai, nilai berikutnya
pada sequence buku_idbuku, ‘IT’, ‘SP-004’, ‘Sistem Pakar’, ’Irwan
Purdianto’, 20000, 18
Hasil percobaan :
Gambar 8.13. Tampilan penambahan data buku dengan menggunakan SEQUENCE
Untuk melihat hasilnya, lakukan query berikut:
SQL : SELECT * FROM buku;
Penjabaran : Ambil semua data dari tabel buku.
Hasil percobaan :
Gambar 8.14. Tampilan semua data pada tabel buku
Sedangkan untuk menambahkan data untuk supplier, lakukan query:
SQL : INSERT INTO
supplier VALUES (seq_supplier_idsupplier.NEXTVAL, ’PT.
Lackers, ‘0356-611928’, ’Jl. Raya Montong-parengan’);
Penjabaran : Tambahkan data kedalam tabel supplier dengan nilai, nilai
berikutnya pada sequence seq_supplier_idsupplier, ‘PT. Lackers’,
‘0356-611928’, ‘Jl. Raya Montong-parengan’.
Hasil percobaan :
Gambar 8.15. Tampilan penambahan data supplier dengan menggunakan SEQUENCE
Untuk melihat hasilnya, lakukan query berikut :
SQL : SELECT * FROM supplier;
Penjabaran : Ambil seluruh data dari tabel supplier.
Hasil percobaan :
Gambar 8.16. Tampilan semua data pada tabel supplier
BAB IX
SIMPLE REPORT
Simple Report pada dasarny dibuat karena adanya keinginan untuk
menyimpan hasil PL/SQL dalam bentuk file (softcopy) kemudian dapat di cetak
di atas kertas (hardcopy). Selain dalam format, .txt, .doc, report juga bisa
disimpan dalam bentuk HTML. Sangat mudah untuk mengubah script dari mode
karakter ke html, karena seluruh tag SQL*Plus dapat dikonversi ke tag HTML
tanpa mengubah kode.
9.1 Menyimpan dan Mencetak Report
Langkah-langkah membuat report pada Oracle :
1. Ketik syntax seperti dibawah ini pada notepad.
SET PAGESIZE 300
SET LINESIZE 500
SET HEADSEP ON
SET RECSEP OFF
SET FEEDBACK OFF
CLEAR BREAK;
CLEAR COMPUTES;
CLEAR COLUMNS;
BREAK ON id_jenis SKIP 1
COLUMN today NOPRINT NEW_VALUE v_today
COLUMN id_buku FORMAT A10 WORD_WRAPPED
COLUMN judul FORMAT A65 WORD_WRAPPED
COLUMN id_jenis FORMAT A10 WORD_WRAPPED HEADING "JENIS
BUKU"
COLUMN nama FORMAT A30 WORD_WRAPPED HEADING "NAMA
SUPPLIER"
COLUMN alamat FORMAT A40 WORD_WRAPPED HEADING
"ALAMAT SUPPLIER"
COLUMN harga FORMAT 99G999G999D99
COLUMN stock FORMAT 99
REPHEADER "-- Awal Laporan --"
REPFOOTER "-- Akhir Laporan --"
TTITLE LEFT "DAFTAR BUKU" SKIP
"===========================" SKIP 2 LEFT "Pengguna : "
SQL.USER SKIP LEFT "Halaman : " FORMAT 99 SQL.PNO SKIP
LEFT "Tanggal : " FORMAT A20 v_today SKIP LEFT
"===========================" BTITLE LEFT
"________________" SKIP 2
SET DEFINE ON
ACCEPT file_name PROMPT "File penampung hasil report :
"
SPOOL &file_name
SET TERMOUT OFF
SELECT TO_CHAR (SYSDATE, 'DD-MON-YYYY') today,
buku.id_buku, buku.judul, jenis.kategori,
buku.pengarang, supplier.nama, supplier.alamat,
buku.harga, buku.stock FROM buku, supplier, jenis WHERE
buku.id_supplier = supplier.id_supplier AND
buku.id_jenis = jenis.id_jenis;
SPOOL OFF
SET FEEDBACK ON
SET RECSEP WRAPPED
SET TERMOUT ON
2. Kemudian simpan pada direktori C dengan ekstensi *.sql. Misalnya :
irwan.sql
Gambar 9.1. Tampilan letak file irwan.sql
3. Seperti percobaan-percobaan sebelumnya, yaitu membuka START-RUN-
CMD. Ketik sqlplus, login dengan username : 1412080302 as sysdba dan
password : irwan.
Hasil percobaan :
Gambar 9.2. Tampilan login dengan username 1412080302
4. Ketik perintah sebagai berikut :
SQL : @C:\irwan.sql
Penjabaran : Jalankan file irwan.sql pada direktori C
Kemudian ketik lokasi hasil report : C :\irwan.txt
Hasil percobaan :
Gambar 9.3. Tampilan penampungan file irwan.sql ke irwan.txt
5. Buka direktori C:\ untuk memastikan file hasil report telah tersimpan.
Gambar 9.4. Tampilan lokasi file irwan.txt
6. Kemudian buka file tersebut untuk melihat hasil report-nya.
Gambar 9.5. Tampilan report irwan.txt pada notepad
9.2 Membuat Report Output HTML
Langkah-langkah membuat report dengan output HTML pada Oracle :
1. Ketik syntax seperti dibawah ini pada notepad.
SET MARKUP HTML ON SPOOL ON
SET PAGESIZE 300
SET LINESIZE 500
SET HEADSEP ON
SET RECSEP OFF
SET FEEDBACK OFF
CLEAR BREAK;
CLEAR COMPUTES;
CLEAR COLUMNS;
BREAK ON id_jenis SKIP 1
COLUMN today NOPRINT NEW_VALUE v_today
COLUMN id_buku FORMAT A10 WORD_WRAPPED
COLUMN judul FORMAT A65 WORD_WRAPPED
COLUMN id_jenis FORMAT A10 WORD_WRAPPED HEADING
"JENIS BUKU"
COLUMN nama FORMAT A30 WORD_WRAPPED HEADING "NAMA
SUPPLIER"
COLUMN alamat FORMAT A40 WORD_WRAPPED HEADING
"ALAMAT SUPPLIER"
COLUMN harga FORMAT 99G999G999D99
COLUMN stock FORMAT 99
REPHEADER "-- Awal Laporan --"
REPFOOTER "-- Akhir Laporan --"
TTITLE LEFT "DAFTAR BUKU" SKIP
"===========================" SKIP 2 LEFT "Pengguna : "
SQL.USER SKIP LEFT "Halaman : " FORMAT 99 SQL.PNO SKIP
LEFT "Tanggal : " FORMAT A20 v_today SKIP LEFT
"==========================" BTITLE LEFT
"________________" SKIP 2
SET DEFINE ON
ACCEPT file_name PROMPT "File penampung hasil report :
"
SPOOL &file_name
SET TERMOUT OFF
SELECT TO_CHAR (SYSDATE, 'DD-MON-YYYY') today,
buku.id_buku, buku.judul, jenis.kategori,
buku.pengarang, supplier.nama, supplier.alamat,
buku.harga, buku.stock FROM buku, supplier, jenis WHERE
buku.id_supplier = supplier.id_supplier AND
buku.id_jenis = jenis.id_jenis;
SPOOL OFF
SET FEEDBACK ON
SET RECSEP WRAPPED
SET TERMOUT ON
SET MARKUP HTML ON SPOOL OFF;
2. Kemudian simpan pada direktori C dengan ekstensi *.sql. Misalnya :
irwan_html.sql.
Hasil percobaan:
Gambar 9.6. Tampialn letak file irwan_html.sql
3. Seperti percobaan-percobaan sebelumnya, yaitu membuka START-RUN-
CMD. Ketik sqlplus, login dengan username : 1412080302 dan password :
irwan.
Hasil percobaan:
Gambar 9.7. Tampilan login dengan username 1412080302
4. Ketik perintah sebagai berikut :
SQL : @C:\irwan_html.sql
Penjabaran : Jalankan file irwan_html.sql pada direktori C
Kemudian ketik lokasi hasil report : C :\irwan_html.html
Hasil percobaan :
Gambar 9.8. Tampilan penampungan file irwan_html.sql ke irwan_html.html
5. Buka direktori C :\ untuk memastikan file hasil report telah tersimpan.
Hasil percobaan :
Gambar 9.9. Tampilan letak file irwan_html.html
6. Kemudian buka file tersebut untuk melihat hasil report yang telah dibuat.
Hasil percobaan :
Gambar 9.10. Tampilan report irwan_html.html pada web browser
BAB X
USER, PRIVILEGE DAN ROLE
Secara umum operasi-operasi untuk pemakai adalah tiga operasi klasik
yaitu CREATE, ALTER, dan DROP. Tiga operasi klasik ini berlaku bagi objek-
objek hampir semua tipe dalam database (bahkan ke objek bertipe database itu
sendiri).
Salah satu model keamanan dalam penggunaan DBMS kita adalah adanya
privilege (hak). Model keamanan ini biasa diapakai di OS(operating system)
maupun server lainnya.
Role adalah sekumpulan named set of privilege. Operasi-operasi yang
terdapat pada role adalah CREATE, ALTER, dan DROP, satu operasi SET untuk
pengaktifan ditambah dengan dua operasi GRANT dan REVOKE (seperti untuk
privilege). Role dibuat untuk mempermudah pengelolaan privilege.
10.1 Object Level-Privilege SELECT untuk pengunjung (Guest)
Langkah – langkah membuat user pengunjung :
1. Membuka START RUN CMD.
2. Ketik sqlplus, login dengan username : sys as sysdba dan password : irwan
Gambar 10.1. Tampilan login sebagai sys as sysdba
3. Buatlah user dengan nama irwan_pengunjung
SQL : CREATE USER irwan_pengunjung IDENTIFIED BY irwan;
Penjabaran : Buat user irwan_pengunjung dengan password irwan
Hasil percobaan :
Gambar 10.2. Tampilan membuat user irwan_pengunjung
4. Lalu berikan hak akses pada user baru dibuat agar dapat login dan membuat
tabel
SQL : GRANT CONNECT TO irwan_pengunjung;
Penjabaran : Ijinkan hak akses koneksi pada user irwan_pengunjung
Hasil percobaan:
Gambar 10.3. Tampilan pemberian hak akses ke user irwan_pengunjung
5. Berikan hak akses pada user baru yang telah dibuat untuk melihat tabel buku
yang dimiliki user 1412080302
SQL : GRANT SELECT ON “1412080302”.BUKU TO
irwan_pengunjung;
Penjabaran : Ijinkan hak akses koneksi pada user irwan_pengunjung
Hasil percobaan :
Gambar 10.4. Tampilan pemberian privilege untuk melihat data tabel buku
6. Kemudian login pada iSQL*PLUS dengan username : irwan_pengunjung dan
password : irwan.
Hasil percobaan :
Gambar 10.5. Tampilan login user irwan_pengunjung
7. Lakukan perintah SELECT pada tabel buku.
SQL : SELECT * FROM “1412080302”.buku;
Penjabaran : Ambil seluruh data dari tabel buku pada schema 1412080302
Hasil percobaan :
Gambar 10.6. Tampilan data buku yang dimiliki user 1412080302
8. Lakukan perintah SELECT pada tabel jenis. Terjadi kesalahan, karena user
irwan_pengunjung tidak diberikan privilege untuk tabel jenis.
SQL : SELECT * FROM “1412080302”.jenis;
Penjabaran : Ambil seluruh data dari tabel jenis pada schema 1412080302
Hasil percobaan :
Gambar 10.7. Tampilan error saat mengakses tabel jenis
9. Berikan hak akses pada user baru yang telah dibuat untuk melihat tabel jenis
milik user “1412080302”
SQL : GRANT SELECT ON “1412080302”.jenis TO
irwan_pengunjung;
Penjabaran : Ijinkan hak akses koneksi ke tabel jenis milik user 1412080302
pada user irwan_pengunjung
Hasil percobaan :
Gambar 10.8. Tampilan pemberian privilege pada user irwan_pengunjung
10. Lakukan perintah SELECT pada tabel jenis
SQL : SELECT * FROM “1412080302”.jenis;
Penjabaran : Ambil seluruh data dari tabel jenis pada schema 1412080302.
Hasil percobaan :
Gambar 10.9. Tampilan data pada tabel jenis
11. Untuk menampilkan tabel supplier pada user irwan_pengunjung caranya
sama dengan langkah 9 dan 10.
10.2 Privilege User Administrasi Logistik
Langkah – langkah membuat user administrasi logistik :
1. Seperti percobaan-percobaan sebelumnya, yaitu membuka START
RUN CMD.
2. Ketik sqlplus, login dengan username : sys as sysdba dan password :
praktikum
Hasil percobaan :
Gambar 10.10. Tampilan login sebagai sys as sysdba
3. Kemudian buatlah user dengan nama admin_logistik.
SQL : CREATE USER irwan_logistik IDENTIFIED BY irwan;
Penjabaran : Buat user irwan_logistik dengan password irwan
Hasil percobaan :
Gambar 10.11. Tampilan membuat user irwan_logistik
4. Berikan hak akses agar dapat login pada user yang telah dibuat.
SQL : GRANT CONNECT TO irwan_logistik;
Penjabaran : Ijinkan hak akses koneksi pada user irwan_logistik.
Hasil percobaan :
Gambar 10.12. Tampilan pemberian hak akses ke user irwan_logistik
BAB XI
PENUTUP
11.1 Kesimpulan
Dengan melakukan praktikum-praktikum tersebut dapat Memahami
konsep penggunaan PL/SQL Oracle, mengetahui dan mengerti CURSOR, mampu
menerapkan EXCEPTION dalam PL/SQL di Oracle, mengetahui dan memahami
procedure, mengetahui dan memahami function, mampu mengimplementasikan
procedure dan function dalam pemrograman di Oracle.
Mampu mengimplementasikan trigger dalam Oracle, mengerti manfaat
dan batasan penggunaan index, view dan sequence, mampu mengimplementasikan
simple report dalam Oracle, mampu membuat user pada Oracle, mampu
mengenal obyek dan system privilege, Mampu memberikan privilege pada user,
mampu mengerti tentang roles dan menggunakannya, mampu melakukan
controlling dan removing pada roles.
11.2 Saran
Dengan adanya tulisan ini saya berharap dapat membantu bagi para
mahasiswa atau yang membutuhkan sedikit penjelasan mengenai PL/SQL,
pembuatan procedure, function, membuat report dan trigger pada Oracle.
Selain hal diatas, saya juga ingin menyampaikan untuk Bapak/Ibu Dosen
pengajar maupun pembimbing praktikum Data Mining dan Warehousing ini.
Sebaiknya sebelum melakukan praktikum para mahasiswa diberikan pengarahan
singkat tentang modul yang akan dikerjakan dalam praktikum tersebut, sehingga
para mahasiswa tahu tentang apa yang akan dikerjakan dalam praktikum tersebut.
Saya sadar bahwa laporan ini masih jauh dari kata sempurna masih
membutuhkan kritik dan saran yang membangun dari para pembaca. Demi
kemajuan laporan ini sehingga saya dapat memperbaiki laporan berikutnya.
DAFTAR PUSTAKA
Aris, Kurnia.2009.Belajar Database II.http//www.databaselanjutan.com//main.
Nugroho, Adityo. 2009. Modul Praktikum Basis Data Lanjut. Tuban : Unirow.
Adistya, Rama. 2011. Modul Praktikum Data Mining dan Warehousing. Tuban:
Unirow.
LAMPIRAN