Hello blogger how are you? I'm really miss you soo, because not access in very long time.
Hmmmm sudah beberapa hari ini saya bertemu dengan calon nasabah saya, yah beraneka ragam orangnya. Salah calon nasabah saya yaitu ibu yulia, ibu yulia seorang ibu rumah tangga biasa dengan 3 orang anak dan suaminya seorang pns pemadam kebakaran yang sudah bekerja sekitar 12 tahun. Ibu yulia bercerita kalau dirinya pernah tertipu oleh orang-orang yang tidak bertanggung jawab. Sudah hampir dua kali ibu yulia tertipu.
Ibu yulia mengatakan kepada saya, kalau ibu yulia bukannya tidak mau tapi masih trauma. Ibu yulia berkata ," kasian ya sama orang-orang yang bener-bener bekerja seperti ini". Lalu saya bilang " gapapa bu saya ikhlas, saya percaya rezeki udah ada yang atur" .
Fitri Novita Sari
30109376
PIS 0904

cursor IMPLISIT & EKSPLISIT


cursor implisit


select [daftar kolom]
into [daftar variabel]
from [daftar tabel]
where [syarat]
-------------------------------------
select first_name, last_name, salary
into nama_depan, nama_belakang, gaji
from employees
where first_name = ‘Susan’;


contoh


declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
email employees.email%type;
telepon employees.phone_number%type;

begin
nama_cari:='&masukan_nama';
select first_name, email, phone_number
into nama_depan, email, telepon
from employees
where first_name = nama_cari;
dbms_output.put_line(' pegawai bernama '|| nama_depan ||' emailnya adalah '|| email ||' dan no telepon adalah '|| telepon);
end;
/









declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
nama_pekerjaan jobs.job_title%type;
gaji employees.salary%type;

begin
nama_cari:='&masukan_nama';
select first_name, job_title, salary
into nama_depan, nama_pekerjaan, gaji
from employees
natural join jobs
where first_name = nama_cari;
dbms_output.put_line(' pegawai bernama '|| nama_depan ||' pekerjaan adalah '|| nama_pekerjaan||' gaji '|| gaji);
end;
/












declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
nama_pekerjaan jobs.job_title%type;
gaji employees.salary%type;

begin
nama_cari:='&masukan_nama';
select first_name, job_title, salary
into nama_depan, nama_pekerjaan, gaji
from employees
natural join jobs
where first_name = nama_cari;
dbms_output.put_line(' pegawai bernama '|| nama_depan ||' pekerjaan adalah '|| nama_pekerjaan||' gaji '|| gaji);
if(gaji>5000)then
dbms_output.put_line( nama_depan ||' gajinya gede ');
else
dbms_output.put_line( nama_depan ||' gaji kecil ');
end if;
end;
/



















declare
gaji employees.salary%type;

begin
gaji:=&masukan_gaji;
select count(salary)
into gaji
from employees
where salary=gaji;
dbms_output.put_line(' jumlah pegawai '|| gaji);
end;
/



























cursor eksplisit








Declare
cursor [nama_cursor_bebas] is
select [daftar_kolom]
from [daftar_tabel]
where [syarat];
begin
open [nama_cursor_bebas];
loop
fetch [nama_cursor_bebas] into [daftar_variabel];
exit when [nama_cursor_bebas] %notfound;
[aksi_lain]
end loop;
close [nama_cursor_bebas];
end;
/


contoh


declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
nama_belakang employees.last_name%type;
gaji employees.salary%type;
cursor a is
select first_name, last_name, salary
from employees
where first_name = nama_cari;
begin
nama_cari:='&masukan_nama';
open anu;
loop
fetch a into nama_depan, nama_belakang, gaji;
exit when anu%notfound;
dbms_output.put_line('pegawai bernama'||nama_depan||' '||nama_belakang||' gajinya adalah USD'||gaji);
end loop;
close a;
end;
/














































declare
nama_cari varchar(15);
nama_depan varchar(15);
nama_belakang varchar(15);
gaji varchar(10);
cursor x is
select first_name, last_name, salary
from employees
where first_name = nama_cari;
begin
nama_cari := '&masukkan_nama';
open x;
loop
fetch x into nama_depan, nama_belakang, gaji;
exit when x%notfound;
dbms_output.put_line('pegawai bernama '||nama_depan||' ' ||nama_belakang||' gajinya adalah USD '||gaji);
end loop;
close x;
end;
/














declare
id_karyawan employees.employee_id%type;
nama_depan employees.first_name%type;
gaji_cari employees.salary%type;
cursor a is
select employee_id, first_name, salary
from employees
where salary = gaji_cari;
begin
gaji_cari := '&masukkan_gaji';
open a;
dbms_output.put_line('---------------------------------------- '   );
dbms_output.put_line('|ID karyawan '|| '  |Nama   '||'|Gaji| '   );
dbms_output.put_line('---------------------------------------- '   );
loop
fetch a into id_karyawan, nama_depan, gaji_cari;
exit when a%notfound;
dbms_output.put_line( '|' ||   id_karyawan || '|'  ||  nama_depan  ||  ' |'   ||  gaji_cari   || '|'   );

end loop;
dbms_output.put_line('---------------------------------------- '   );
close a;
end;
/



























declare
id_karyawan employees.employee_id%type;
pekerjaan_cari jobs.job_title%type;
gaji employees.salary%type;
cursor b is
select A.employee_id, B.job_title, A.salary
from employees A join jobs B on A.job_id = B.job_id where B.job_title='&pekerjaan';
begin
open b;
dbms_output.put_line('---------------------------------------- '   );
dbms_output.put_line('|ID karyawan '|| '  |Pekerjaan   '||'|Gaji| '   );
dbms_output.put_line('---------------------------------------- '   );
loop
fetch b into id_karyawan, pekerjaan_cari, gaji;
exit when b%notfound;
dbms_output.put_line( '|' ||   id_karyawan   ||'|'||  pekerjaan_cari  ||' |'||  gaji   || '|'  );

end loop;
dbms_output.put_line('---------------------------------------- '   );
close b;
end;
/



















































declare
id_department_cari departments.department_id%type;
nama_department departments.department_name%type;
gaji_maks jobs.max_salary%type;
gaji_min jobs.min_salary%type;
cursor c is
   select departments.department_id, department_name, max(salary), min(salary) from employees
   join departments on employees.department_id=departments.department_id
   group by departments.department_id, department_name;
begin
id_department_cari := '&id_department';
open c;
dbms_output.put_line('--------------------------------------------------------------------- '  );
dbms_output.put_line('|ID Department '|| '  |Nama Department  '||'|Gaji Maks '|| '|Gaji Min|| ');
dbms_output.put_line('--------------------------------------------------------------------- '  );
loop
fetch c into id_department_cari, nama_department, gaji_maks, gaji_min;
exit when c%notfound;
dbms_output.put_line( '|' ||   id_department_cari   ||'|'||  nama_department  ||' |'||  gaji_maks   || '|'||  gaji_min   || '|'  );

end loop;
dbms_output.put_line('---------------------------------------------------------------------- ' );
close c;
end;
/
Fitri Novita Sari
30109376
PIS 0904

simple LOOP







statemen for









statemen while










statemen exit dan exit when















contoh-contoh :

declare
x number(3);

begin
x:=&input_x;

for i in reverse 1..x LOOP
     dbms_output.put_line(x);

END LOOP;

end;
/












declare
x number(2);

begin
x:=&input_x;
for i in 1..x LOOP
   if mod(i,2)=1 then
   dbms_output.put_line(i||'ganjil');
   else 
   dbms_output.put_line(' genap');
   end if;
end loop;

end;
/













declare
x number(3);

begin
x:=&input_x;

for i in 1..x LOOP
     dbms_output.put_line(x);
     x:=x-1;
END LOOP;

end;
/














declare
x number(3);

begin
x:=&input_x;

for i in reverse 1..x LOOP
     dbms_output.put_line(x);

END LOOP;

end;
/














declare
x number(3);

begin
x:=&input_x;

for i in 1..x LOOP
     dbms_output.put_line(i);

END LOOP;

end;
/













declare
x number(3);

begin
x:=&input_x;

for i in 1..x LOOP
     if mod(i,2)=1 then
     dbms_output.put_line('tes'||i);
     end if;

END LOOP;

end;
/













declare
x number(3);
y number(3);
z number(3);

begin
x:=&input_x;
y:=&input_y;
z:=0;

for i in x..y LOOP
     if mod(i,3)=0 then
     z:=z+1;
     end if;
     end loop;

     dbms_output.put_line(' ada '||z||' buah angka yang habis di bagi 3 antara ' ||x|| ' dan '||y);
      
end;
/











declare
x number(3);
y number(3);
z number(3);
i number(3);

begin
x:=&input_x;
y:=&input_y;
i:=x;
z:=0;

While i <=y LOOP
     if mod(i,3)=0 then
     z:=z+1;
     end if;
     i:=i+1;
     end loop;
     dbms_output.put_line( ' ada ' ||z||' buah angka yang habis di bagi 3 antara ' ||x|| ' dan '||y);      
end;
/











DECLARE
total NUMBER(9); 
counter NUMBER(6); 
BEGIN
total := 0;
counter := 10;
LOOP
   total := total + counter; 
   EXIT WHEN total > 50; 
   DBMS_OUTPUT.PUT_LINE(' Total: ' || total);
END LOOP;
DBMS_OUTPUT.PUT_LINE('Counter: ' || counter);
END;
/













Resume pertemuan ke2 dan ke3
input output & if

Fitri Novita Sari
30109376
(PIS09.04)

scirpting dalam SQL dibuat di dalam notepad lalu lakukan ketentuan dan langkah-langkah diantaranya :
1. setelah scrip dibuat, lalu save namafiles.sql
2. tidak lupa ganti save as type manjadi all files
3. masuk ke command prompt
4. tidak lupa masukan user name dan juga password
5. setelah itu ketik pada cmd, set serveroutput on
6. lalu ketik @' (lokasi penempatan script yang sudah di save terlebih dahulu tadi)';
    contoh:   @'E:/latihan/namafiles.sql';






7. setelah itu maka program akan jalan.

  • contoh










    declare


    begin

    dbms_output.put_line('a:=10;');
    dbms_output.put_line('f(x,y)=23x + 2y -55');

    end;
    /

    maka akan tampilan dari script tersebut seperti ini



    v  

    * menampilkan hari


    declare

    begin

    dbms_output.put_line('Sekarang hari sabtu');

    dbms_output.put_line('kemarin hari jum''at');

    end;
    /







    * menampilkan luas persegi panjang

    declare

    x number;
    y number;
    a number;
    b number;

    begin

    x:=&nilai_x;
    y:=&nilai_y;
    a:=2*x+2*y;
    b:=x*y;

    dbms_output.put_line('output:');
    dbms_output.put_line('Persegi panjang ini kelilingnya '||a||' cm');
    dbms_output.put_line('Luasnya '||b||' cm');

    end;
    /



    * menampilkan nama beserta nim



    declare
    a varchar(5);
    b number(10);

    begin
    a:='&nama';
    b:=&nim;

    dbms_output.put_line('hai, nama saya ' ||a||' dengan nim '||b||' Saya mahasiswa politeknik telkom');

    end;
    /


    menampilkan tanggal



    declare

    begin
    dbms_output.put_line (' sekarang tanggal' || sysdate);

    end;
    /

    * menampilkan nama dan umur


    declare
    a varchar(10);
    b number(2);
    c number(2);

    begin
    a:='&nama';
    b:=&umur;

    dbms_output.put_line('hai nama saya '|| a);
    c:=b+5;
    dbms_output.put_line('5 tahun lagi, umur saya '|| c||' tahun');

    end;
    /

    menampilkan hari, tanggal dan tahun


    declare

    begin
    dbms_output.put_line ('sekarang hari ' || to_char (sysdate,'day'));
    dbms_output.put_line ('tanggal ' ||  to_char (sysdate,'dd'));
    dbms_output.put_line ('bulan ' ||  to_char (sysdate,'month'));
    dbms_output.put_line ('tahun ' ||  to_char(sysdate,'yyyy'));

    end;
    /




    *  kalkulator


    declare
    a number(2);
    b number(2);
    c number(2);
    d number(2);

    begin
    a:=&nilai_x ;
    b:=&nilai_y ;
    c:=a+b;
    d:=a-b;

    dbms_output.put_line('SELAMAT DATANG DI KALKULATOR CUPU');
    dbms_output.put_line(a|| 'di tambah'|| b|| 'sama dengan' ||c);
    dbms_output.put_line(a|| '-' ||b|| 'sama dengan' ||d);

    end;
    /





















    • penggunaan if dalam scripting

    * menampilkan nama beserta jenis kelamin


    declare
    a varchar (30);
    b varchar (10);

    begin
    a:='&nama';
    b:='&jenis_kelamin';

    if (b = 'L' or b='l')then
    dbms_output.put_line ('SELAMAT DATANG AKANG  ' ||a);
    else
    dbms_output.put_line ('SELAMAT DATANG NENG  ' ||a);

    end if;

    end;
    /












    * menampilkan harga diskon



    declare
    a varchar(30);
    b number(10);
    c number(3);
    d number(15);

    begin
    a:='&nama';
    b:=&harga_buku;
    c:=&diskon;
    d:=b-(b*c/100);


    dbms_output.put_line('SELAMAT DATANG '||a ); 
    dbms_output.put_line('HARGA YANG HARUS DI BAYAR RP ' || d );
    if  (c<20) then
    dbms_output.put_line( ' ih pelit banget ' );
    else
    dbms_output.put_line('wow baik banget');
    end if;

    end;
    /

    * contoh if lainnya




    declare
    nama varchar(50);
    jenis_kelamin varchar(1);
    umur number(5);


    begin
    nama := '&nama';
    jenis_kelamin := '&jenis_kelamin';
    umur := &umur;


    if (jenis_kelamin ='p') and (umur < 20) then
    dbms_output.put_line('mba '||nama||' Belajar yang bener');


    elsif (jenis_kelamin ='p') and (umur > 60) then
    dbms_output.put_line('mba '||nama||' Inget mati');


    elsif (jenis_kelamin ='p') and (umur >= 20) and (umur <= 60) then
    dbms_output.put_line('mba '||nama||' Buruan nikah bisi expired!');


    elsif (jenis_kelamin ='l') and (umur < 25) then
    dbms_output.put_line('mas '||nama||' Belajar yang bener');


    elsif (jenis_kelamin ='l') and (umur > 60) then
    dbms_output.put_line('mas '||nama||' inget mati');


    elsif (jenis_kelamin ='l') and (umur >= 25) and (umur <= 60) then
    dbms_output.put_line('mas '||nama||' Buruan nikah bisi expired!');


    end if;


    end;
    /
































    Resume 
    Fitri Novita Sari (30109376)
    PIS 09.04





    SELECT
    SELECT digunakan untuk memilih data dari tabel database SQL. 
    SQL SELECT adalah salah satu dari perintah SQL yang paling sering digunakan.


    sintaks SELECT :
    SELECT Column1, Column2, Column3,
    FROM Table1



    SIMPLE QUERIES : SELECT..FROM..WHERE
    Format Query Data:
    SELECT    daftar_kolom
    FROM     daftar_tabel
    WHERE   syarat_dan_atau_foreign_key


    Fungsi Agregat: MIN(), MAX(), AVG(), SUM(), COUNT()
    SELECT                    daftar_kolom_non_fungsi_ag,         fungsi_ag(nama_kolom1), fungsi_ag(nama_kolom2)
    FROM                     daftar_tabel
    WHERE                  syarat_dan_atau_foreign_key
    GROUP BY              daftar_kolom_non_fungsi_ag




    • Fungsi agregat dapat digunakan sebagai pengganti daftar kolom, digunakan setelah SELECT...
    •  Jika setelah SELECT digunakan fungsi agregat bersama kolom yang lain yang bukan fungsi agregat maka HARUS menggunakan klausa GROUP BY. 



    Contoh1: Menampilkan nama dan alamat anggota yang diawali huruf A dan terdiri dari 5 huruf
    select nama_anggota, alamat_anggota
    from anggota 
    where nama_anggota like 'A____';



    Contoh2: Menampilkan nama anggota dan judul buku yang diawail huruf T dan terdiri dari MINIMAL 8 huruf
    select nama_anggota, judul_buku
    from anggota, buku, peminjaman
    where anggota.no_anggota = peminjaman.no_anggota
    and buku.id_buku = peminjaman.id_buku
    and judul_buku like 'T_______%';

    Contoh3: Menampilkan total denda yang pernah dibayar oleh Fitri  (tanpa menampilkan nama Irna)
    Select sum(denda) as totaldenda
    from peminjaman, anggota
    where anggota.no_anggota = peminjaman.no_anggota
    and nama_anggota = 'Fitri';

    Contoh4: Menampilkan jumlah buku yang pernah dipinjam oleh Irna (dengan menampilkan nama Irna)
    select nama_anggota, count(id_buku) as jmlbuku
    from peminjaman, anggota
    where anggota.no_anggota = peminjaman.no_anggota
    and nama_anggota = 'Irna'
    group by nama_anggota;

    Contoh5: Menampilkan judul buku dan tanggal peminjaman buku oleh Fitri yg tidak dikembalikan
    select judul_buku, tanggal_pinjam
    from peminjaman, anggota, buku
    where anggota.no_anggota = peminjaman.no_anggota
    and buku.id_buku = peminjaman.id_buku
    and nama_anggota = 'Fitri'
    and tanggal_kembali is null;

    Format Deklarasi Variabel:
    Nama_Var             Tipe_data;
    atau
    Nama_Var             Nama_Tabel.Nama_Kolom%Type;

    Format Pembacaan Single Row Data:
    SELECT    daftar_kolom
    INTO       daftar_variabel
    FROM     daftar_tabel
    WHERE   syarat;

    • Format di atas tidak bisa digunakan jika hasil query lebih dari 1 baris, kecuali jika dilengkapi dengan exception

    Format Penerimaan Input Dari User:
    Nama_Var := &prompt;
    atau
    Nama_Var := ‘&prompt’;

    Note: Prompt bebas namun tidak boleh menggunakan spasi dan simbol selain alfanumerik. Jika Input bertipe selain tipe data number maka &prompt harus diapit petik tunggal (‘)

    Contoh: Menerima input nama anggota dan menampilkan alamatnya

    Declare
    cari          varchar(30);
    nama          anggota.nama_anggota%type;
    alamat        anggota.alamat_anggota%type;

    begin
    cari := '&nama_yang_dicari';
    select nama_anggota, alamat_anggota
    into nama, alamat
    from anggota
    where nama_anggota = cari;
    dbms_output.put_line(nama||' tinggal di '||alamat);
    end;
    /


    INSERT
    INSERT INTO memiliki 2 bentuk utama dan hasil dari salah satu menambahkan baris baru ke dalam tabel database.

    Format Menambah Data Jika Semua Kolom Ingin Diisi:
    INSERT INTO          Nama_Tabel         VALUES (
    Data_kolom1,
    Data_kolom2,
    Data_kolom3
    );
    Format Menambah Data Jika Hanya Kolom Tertentu Yang Diisi:
    INSERT INTO          Nama_Tabel         (Nama_Kolom1, Nama_Kolom2)
    VALUES (
    Data_kolom1,
    Data_kolom2
    );

    Contoh: Menambah data pada tabel anggota (semua kolom diisi sesuai urutan kolom pada tabel)
    insert into anggota values(             
    101,                
    ‘Monica Jane Derose’,
    ‘Jl. Mangga Dua No.20’
    );


    UPDATE
    Sintaks umum SQL UPDATE terlihat seperti ini:

    UPDATE Table1
    SET Column1 = Value1, Column2 = Value2
    WHERE Some_Column = Some_Value


    Format Mengubah Data:
    UPDATE Nama_Tabel
    SET          Nama_Kolom = data_baru
    WHERE   syarat_perubahan_data;

    Contoh1: Mengubah semua alamat anggota menjadi ‘Mangga Dua’
    update anggota set alamat_anggota = ‘Mangga Dua’;

    Contoh2: Mengubah no_anggota 101 menjadi 201
    update anggota set no_anggota = 201
    where no_anggota = 101;

    Contoh3: Mengubah semua alamat anggota menjadi ‘Mangga Dua’ jika nomor anggota antara 200 dan 300
    update anggota set alamat_anggota = ‘Mangga Dua’
    where (no_anggota >= 200) and (no_anggota <= 300);


    DELETE
    Perintah SQL DELETE berguna untuk menghapus data dari database.
    Perintah SQL DELETE memiliki sintaks SQL generik berikut:

    DELETE FROM Table1
    WHERE Some_Column = Some_Value

    Format Menghapus Data:
    DELETE FROM       Nama_Tabel
    WHERE                   syarat_perubahan_data;

    Contoh1: Menghapus seluruh isi tabel anggota
    delete from anggota;