Tuesday 31 March 2015

Laporan Resmi Praktikum Data Mining "BAB IV - CURSOR

BAB IV
CURSOR

Cursor adalah suatu variable dalam blok PL/SQL yang tidak mengijinkan seorang programer membuat query yang menghasilkan lebih dari satu baris untuk ditampung di dalam nya. Cursor ada 2 macam yaitu : 

a. Cursor Eksplisit : Cursor yang harus dideklarasikan terlebih dahulu sebelum digunakan, sedangkan 

b. Cursor Implisit : Cursor yang tidak perlu dideklarasikan dulu pada declare section. contoh cursor implisit diasosiasikan dengan perintah SELECT, INSERT, DELETE, dan UPDATE.

4.1.       Membuat User baru dengan nama NPM  dan membuat tabel-tabel pada ERD yang ada pada modul praktikum lengkap dengan tipe data dan panjang data

1.             Menghubungkan ke system
SQL :
conn sys as sysdba;

Penjabaran :
Menghubungkan ke system.

Hasil Percobaan :
Gambar 4.1 Tampilan Menghubungkan ke System

2.             Membuat user baru dengan nama dan NPM
SQL :
CREATE USER “suwaji270” IDENTIFIED By suwaji;

Penjabaran :
Membuat user dengan nama “suwaji0270” yang diidentifikasi oleh suwaji.

Hasil Percobaan :
Gambar 4.2 Membuat User Baru Dengan Nama Suwaji270

3.             Menghubungkan Ke User Suwaji270
SQL :
GRANT CONNECT, RESOURCE TO “suwaji270”;

Penjabaran :
Memberi hak akses pada suwaji270.

Hasil Percobaan :
Gambar 4.3 Tampilan Memberi Hak Akses Pada Suwaji0270

4.             Membuat Tabel Supplier pada user suwaji270
SQL :
CREATE TABLE supplier_suwaji0270(
id_supp VARCHAR2(10),
nama VARCHAR2(100),
no_telp VARCHAR2(15),
alamat VARCHAR2(200),
CONSTRAINT id_supp_pk PRIMARY KEY(id_supp));

Penjabaran :
Membuat tabel supplier_suwaji0270, id supplier bertipe data varchar2(10), nama bertipe data varchar2(100), no_telp bertipe data varchar2(15), alamat bertipe data varchar2(200), constraint tabel supplier kolom id_supplier menjadi  primary key.

Hasil Percobaan :
Gambar 4.4 Membuat Tabel Supplier_suwaji0270

5.             Mendeskripsi Tabel Supplier_suwaji0270
SQL :
DESC supplier_suwaji0270;

Penjabaran :
Mendeskripsi tabel supplier_suwaji0270.

Hasil Percobaan :
Gambar 4.5 Menampilkan Tabel Supplier_0270

6.             Memasukkan Data Pada Tabel Supplier_suwaji0270
SQL :
INSERT INTO supplier_suwaji0270
VALUES
('SP-001','PT.Sidogiri','022-8768509','JL.Ruwet Gg.Buntet No.34 Bandung');

INSERT INTO supplier_suwaji0270
VALUES
('SP-002','PT.Moroseneng','021-8695465','JL.Badak jawa No.6 Jakarta');

INSERT INTO supplier_suwaji0270
VALUES
('SP-003','PT.suka-suka','031-4568698','JL.Darmo No.7 Surabaya');

INSERT INTO supplier_suwaji0270 VALUES
('SP-004','PT.Sukabaca','022-9797966','JL.Sukabirus No.9 Bandung');

Penjabaran :
Memasukkan data pada tabel supplier_suwaji0270 'SP-001','PT.Sidogiri','022-8768509','Jl. Ruwet Gg. Buntet No. 34 Bandung'

Memasukkan data pada tabel supplier_suwaji0270 'SP-002','PT.Moroseneng','021-8695465','Jl. Badak Jawa No. 6 Jakarta'

Memasukkan data pada tabel supplier_suwaji0270 '003','PT.Suka-suka','031-4568698','Jl. Darmo No. 7 Surabaya'

Memasukkan data pada tabel supplier_suwaji0270 'SP-004','PT.Sukabaca','022-9797966','Jl. Sukabirus No. 9 Bandung'

Hasil Percobaan :
Gambar 4.6 Memasukkan Data Pada Tabel  Supplier_suwaji0270

7.             Membuat Tabel Buku pada user suwaji270
SQL :
CREATE TABLE buku_suwaji0270(
id_buku varchar2(10),
id_jenis varchar2(15),
id_supp varchar2(10),
judul varchar2(200),
pengarang varchar2(100),
harga varchar2(25),
stock number(5,2),
CONSTRAINT id_buku_pk PRIMARY KEY(id_buku),
CONSTRAINT id_supp_fk FOREIGN KEY(id_supp)
REFERENCES supplier_suwaji0270(id_supp));

Penjabaran :
Membuat tabel buku_suwaji0270, id_buku bertipe data varchar2(10), id_jenis bertipe data varchar2(5),  id_supplier bertipe data varchar2(10), judul data varchar2(200), pengarang bertipe data varchar2(100), hargabertipe data varchar2(15), stock bertipe data number(5,2), constraint tabel buku kolom id_buku menjadi primary key, constraint tabel supplier kolom id_supplier menjadi foreign key dan mereferensi tabel supplier kolom id_supplier.

Hasil Percobaan :
Gambar 4.7 Membuat Tabel Buku_suwaji0270

8.             Memasukkan Data Pada Tabel Buku_suwaji0270
SQL :
insert into buku_suwaji0270 values(
'BK-001','IT','SP-001','10 Langkah Mempelajari Lotus Notes 4.5','Jane Calabria','Rp. 9.180','34');

insert into buku_suwaji0270 values(
'BK-002','BH','SP-004','Kamus Bahasa Inggris','Jubilee Enterprise','Rp. 15.980','65');

insert into buku_suwaji0270 values(
'BK-003','IT','SP-001','101 Tip & Trik Adobe Photoshop CS','Gregorius Agung','Rp. 16.830','26');

insert into buku_suwaji0270 values(
'BK-004','BI','SP-001','101 Tip & Trik Belajar Anatomi Manusia','Gregoriusm Agung','Rp. 19.380','84');

insert into buku_suwaji0270 values(
'BK-005','IT','SP-002','101 Tip & Trik Ms. Access Project 2003 & Sql Server 2000','Hengky Alexander M.','Rp. 16.830','36');

insert into buku_suwaji0270 values(
'BK-006','MN','SP-002','Konsep-Konsep Marketing','Anwar Khaidir','Rp. 12.580','26');

insert into buku_suwaji0270 values(
'BK-007','AG','SP-004','Renungan Jumat Abdurrahma','Arroisi','Rp. 31.280','6');

insert into buku_suwaji0270 values(
'BK-008','UM','SP-003','11 Langkah Menjadi Sahabat','Ana V. Dwiyani','Rp. 19.380','2');

insert into buku_suwaji0270 values(
'BK-009','IT','SP-002','12 Kreasi Logo Dengan Adobe Illustrator CS2','Jubilee Enterprise','Rp. 27.880','88');

insert into buku_suwaji0270 values(
'BK-010','UM','SP-004','13 Cara Praktis Memetik Sukses','R. Herry Prasetyo','Rp. 16.830','25');

Penjabaran :
Memasukkan data pada tabel buku_suwaji0270 'BK-001','IT','SP-001','10 Langkah Mempelajari Lotus Notes 4.5','Jane Calabria','Rp. 9.180','34'

Memasukkan data pada tabel buku_suwaji0270 'BK-002','BH','SP-004','Kamus Bahasa Inggris','Jubilee Enterprise','Rp. 15.980','65'

Memasukkan data pada tabel buku_suwaji0270 'BK-003','IT','SP-001','101 Tip & Trik Adobe Photoshop CS','Gregorius Agung','Rp. 16.830','26'

Memasukkan data pada tabel buku_suwaji0270 'BK-004','BI','SP-001','101 Tip & Trik Belajar Anatomi Manusia','Gregoriusm Agung','Rp. 19.380','84'

Memasukkan data pada tabel buku_suwaji0270 'BK-005','IT','SP-002','101 Tip & Trik Ms. Access Project 2003 & Sql Server 2000','Hengky Alexander M.','Rp. 16.830','36'

Memasukkan data pada tabel buku_suwaji0270 'BK-006','MN','SP-002','Konsep-Konsep Marketing','Anwar Khaidir','Rp. 12.580','26'

Memasukkan data pada tabel buku_suwaji0270 'BK-007','AG','SP-004','Renungan Jumat Abdurrahma','Arroisi','Rp. 31.280','6'

Memasukkan data pada tabel buku_suwaji0270 'BK-008','UM','SP-003','11 Langkah Menjadi Sahabat','Ana V. Dwiyani','Rp. 19.380','2'

Memasukkan data pada tabel buku_suwaji0270 'BK-009','IT','SP-002','12 Kreasi Logo Dengan Adobe Illustrator CS2','Jubilee Enterprise','Rp. 27.880','88'

Memasukkan data pada tabel buku_suwaji0270 'BK-010','UM','SP-004','13 Cara Praktis Memetik Sukses','R. Herry Prasetyo','Rp. 16.830','25'

Hasil Percobaan :
Gambar 4.8 Memasukkan Data Pada Tabel Buku_suwaji0270

9.             Mendeskripsikan Tabel Buku_suwaji0270
SQL :
DESC buku_suwaji0270;

Penjabaran :
Mendeskripsikan tabel buku_suwaji0270.

Hasil Percobaan :
Gambar 4.9 Mendeskripsikan Tabel Buku_suwaji0270

10.         Menampilkan Data Pada Tabel Supplier_suwaji0270
SQL :
Select * from supplier_suwaji0270;

Penjabaran :
Menampilkan data pada tabel supplier_suwaji0270.

Hasil Percobaan :
Gambar 4.10 Menampilakn Data Pada Tabel Supplier_suwaji0270

11.         Menampilkan Data Pada Tabel Buku_suwaji0270
SQL :
SELECT * FROM buku_suwaji0270;

Penjabaran :
Menampilkan data pada tabel buku_suwaji0270.

Hasil Percobaan :
Gambar 4.11 Menampilkan Data Pada Tabel Buku_suwaji0270

12.         Menampilkan Tabel Pada User Suwaji270
SQL :
SELECT * FROM user_catalog;

Penjabaran :
Menampilkan tabel pada user suwaji270.

Hasil Percobaan :
Gambar 4.11 Menampilkan Data Pada Tabel Buku_suwaji0270

13.         Mengeksport data pada user suwaji270
SQL :
exp suwaji270/suwaji full=y file=d:\suwaji270.dmp;

Penjabaran :
Mengeksport data yang ada pada user suwaji270 secara keseluruhan ke drive D dengan nama suwaji270.dmp.

Hasil Percobaan :
Gambar 4.13 Mengekspor Data Pada User Suwaji270

4.2.       Membuat Cursor Implisit Dan Eksplisit Yang Menampilkan Data Buku Beserta Supplier.
1.             Membuat Cursor Implisit Menampilkan Data Buku
SQL :
DECLARE 
v_nama  buku_suwaji0270.judul%type; 
v_id   buku_suwaji0270.id_buku%type; 
CURSOR cur1 IS SELECT id_buku,judul FROM buku_suwaji0270 where id_buku='BK-001'; 
BEGIN 
OPEN cur1; 
FETCH cur1 INTO v_id, v_nama;
WHILE cur1%FOUND LOOP 
DBMS_OUTPUT.PUT_LINE(v_nama);
DBMS_OUTPUT.PUT_LINE(v_id);
FETCH cur1 INTO v_nama, v_id;
END LOOP; 
CLOSE CUR1;
END;
/

Penjabaran :
Mendeklarasikan id_jenis nama buku yang diambil dari id_buku adalah judul dari buku dimana buku bernomer BK-001, dimulai dengan membuka cursor 1 yang terdapat v_id, v_nama dimana cursor 1 ditemukan perulangan DBMS output.put_line pada kolom nama, kolom id. Cursor 1 terdapat nama dan id dan perulangan selesai, cursor 1 tutup, selesai.

Hasil Percobaan :
Gambar 4.14 Membuat Cursor Implisit Menampilkan Data Buku

2.             Membuat Cursor Eksplisit Menampilkan Data Buku
SQL :
DECLARE
vid_buku buku_suwaji0270.id_buku%TYPE; 
vnama buku_suwaji0270.judul%TYPE; 
CURSOR c1 IS 
SELECT id_buku, judul FROM buku_suwaji0270; 
x number; 
BEGIN 
DBMS_OUTPUT.PUT_LINE('Data Buku'); 
DBMS_OUTPUT.PUT_LINE('No id_buku nama');
OPEN c1; 
FETCH c1 INTO vid_buku,vnama;
WHILE c1%FOUND LOOP 
DBMS_OUTPUT.PUT_LINE(c1%rowcount||','||vid_buku||''||
vnama);
FETCH c1 INTO vid_buku,vnama;
END LOOP; 
x := c1%ROWCOUNT; 
DBMS_OUTPUT.PUT_LINE('Jumlah data =' ||x); 
CLOSE c1; 
EXCEPTION 
WHEN NO_DATA_FOUND THEN 
DBMS_OUTPUT.PUT_LINE('Tidak ada data buku'); 
END;

Penjabaran :
Mendeklarasikan id_buku, nama_buku, judul_buku pada cursor 1 adalah diambil id_buku, judul dari buku yang bertipe data number, dimulai DBMS_OUTPUT.PUT_LINE pada  kolom data buku dan no_id buku. Buka cursor 1yang memenipulasi variabel id buku dan variabel nama dimana cursor 1 ditemukan perulangan pada kolom id buku dan nama buku, perulangan selesai. Cursor1 pada kolom jumlah data ditutup, pengecualian ketika tidak ditemukan data maka dbms akan muncul kolom”tidak ada data buku”, selesai.

Hasil Percobaan :
Gambar 4.15 Membuat Cursor Eksplisit Menampilkan Data Buku

3.             Membuat Cursor Implisit Menampilkan Data Supplier
SQL :
DECLARE 
v_nama  supplier_suwaji0270.alamat%type; 
v_id   supplier_suwaji0270.id_supp%type; 
CURSOR cur1 IS SELECT id_supp,alamat FROM supplier_suwaji0270 where id_supp='SP-001'; 
BEGIN 
OPEN cur1; 
FETCH cur1 INTO v_id, v_nama;
WHILE cur1%FOUND LOOP 
DBMS_OUTPUT.PUT_LINE(v_nama);
DBMS_OUTPUT.PUT_LINE(v_id);
FETCH cur1 INTO v_nama, v_id;
END LOOP; 
CLOSE CUR1;
END;
/

Penjabaran :
Mendeklarasikan id  supplier yang diambil dari id_supp adalah alamat dari supplier dimana supplier bernomor SP-001, dimulai dengan membuka cursor 1 yang terdapat v_id, v_nama dimana cursor 1 ditemukan perulangan DBMS output.put_line pada kolom nama, kolom id. Cursor 1 terdapat nama dan id dan perulangan selesai, cursor 1 tutup, selesai.

Hasil Percobaan :
Gambar 4.16 Membuat Cursor Implisit Menampilkan Data Supplier

4.             Membuat Cursor Eksplisit Menampilkan Data Supplier
SQL :
DECLARE
vid_buku buku_suwaji0270.id_buku%TYPE; 
vnama buku_suwaji0270.judul%TYPE; 
CURSOR c1 IS 
SELECT id_buku, judul FROM buku_suwaji0270; 
x number; 
BEGIN 
DBMS_OUTPUT.PUT_LINE('Data Buku'); 
DBMS_OUTPUT.PUT_LINE('No id_buku nama');
OPEN c1; 
FETCH c1 INTO vid_buku,vnama;
WHILE c1%FOUND LOOP 
DBMS_OUTPUT.PUT_LINE(c1%rowcount||','||vid_buku||''||
vnama);
FETCH c1 INTO vid_buku,vnama;
END LOOP; 
x := c1%ROWCOUNT; 
DBMS_OUTPUT.PUT_LINE('Jumlah data =' ||x); 
CLOSE c1; 
EXCEPTION 
WHEN NO_DATA_FOUND THEN 
DBMS_OUTPUT.PUT_LINE('Tidak ada data buku'); 
END;
/

Penjabaran :
Mendeklarasikan id_supp, alamat pada cursor 1 adalah diambil  id_supp  dari supplier yang bertipe data number, dimulai DBMS_OUTPUT.PUT_LINE pada  kolom data supplier dan no_id supp. Buka cursor 1yang memenipulasi variabel id buku dan variabel nama dimana cursor 1 ditemukan perulangan pada kolom id supplier dan alamat supplier, perulangan selesai. Cursor1 pada kolom jumlah data ditutup, pengecualian ketika tidak ditemukan data maka dbms akan muncul kolom ”tidak ada data buku”, selesai.

Hasil Percobaan :
Gambar 4.17 Membuat Cursor Eksplisit Menampilkan Data Supplier

4.3         Menjalankan Blok PL/SQL pada SQL PLUS
SQL :
DECLARE
v_idsuplier  supplier_suwaji0270.id_supp%TYPE; 
v_nama    supplier_suwaji0270.nama%TYPE; 
v_no_telepon  supplier_suwaji0270.no_telp%TYPE; 
v_alamat    supplier_suwaji0270.alamat%TYPE;
x number;   
BEGIN 
SELECT id_supp,nama,no_telp,alamat INTO v_idsuplier,v_nama,v_no_telepon,v_alamat FROM supplier_suwaji0270 ORDER BY id_supp; 
x :=SQL%ROWCOUNT;
IF SQL%NOTFOUND THEN 
DBMS_OUTPUT.PUT_LINE('Nama Pemesan Tidak Ditemukan');  
ELSE
DBMS_OUTPUT.PUT_LINE('Daftar Nama Pemesan yang Total Banquetnya <= 500000 :'); 
DBMS_OUTPUT.PUT_LINE('ID SUPLIER  NAMA NO TELP ALAMAT'); 
DBMS_OUTPUT.PUT_LINE(v_idsuplier ||'  '|| v_nama ||'  '|| v_no_telepon||'  '|| v_alamat ); 
END IF;
exception when too_many_rows then
DBMS_OUTPUT.PUT_LINE('Terlalu Banyak Data'); 
END; 
/

Penjabaran :
Mendeklarasikan id_supplier, nama, no_telp, alamat yang dimulai ambil id_supplier, nama, no_telp, alamat kedalam variabel id_supplier, variabel nama, variabel no_telp, variabel alamat dari tabel supplier yang diminta oleh id-supplier, jika SQL tidak ditemukan pada kolom ‘nama pemesan tidak ditemukan’ yang lain pada kolom yang diisi ‘daftar nama pemean yanng total banquetnya <=500.000’ adalah muncul kolom NPM, selesai.

Hasil Percobaan :
Gambar 4.17 Menjalankan PL/SQL Pada SQL Plus


Untuk file bisa anda download disini :

===>>>>> Download

Demikian yang dapat saya bagikan pada kesempatan kali ini, tunggu informasi serta tutorial berikutnya. Terima Kasih dan Semoga Bermanfaat...
By : Adjie_ss

0 komentar:

Post a Comment