BAB IV
CURSOR
Cursor adalah suatu variable dalam
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