iklan

Basis Data



BAB I
PENDAHULUAN

1.1  Latar Belakang
Pada dasarnya database adalah merupakan suatu kebutuhan yang penting dalam kehidupan baik di lingkungan pendidikan, di bidang bisnis, ataupun di dalam pemerintahan, maka dari situlah kita mengambil pembahasan tentang database dengan spesifikasi pembahasan mengenai oracle dalam praktikum mata kuliah ” Basisdata Lanjut”  selama 8 pertemuan tersebut.
      Dari praktikum ini dijelaskan tentang spesifikasi oracle beserta dengan bagian dan fungsi-fungsinya. Oleh karena itulah, kita menyusun ”Laporan Resmi” sebagai bahan untuk memperoleh sumber yang lebih banyak lagi guna memberikan sedikit tambahan informasi mengenai oracle.

1.2  Tujuan Praktikum
      Tujuan dari praktikum mata kuliah "Basisdata Lanjut" dengan spesifikasi pembahasan pada oracle ini adalah sebagai berikut :
1. Memahami pengertian, kegunaan dari oracle.
2. Memberikan Penjabaran tentang oracle.
3. Memahami tentang kegunaan oracle.
4. Memahami Penjabaran tentang fungsi-fungsi oracle.
5. Memberikan Penjabaran tentang bagian-bagian oracle.

1.3  Manfaat Praktikum
      Manfaat yang dapat diperoleh dari praktikum tersebut adalah dapat bertambahnya pengetahuan tentang oracle, serta dapat memberikan wawasan yang lebih luas dari praktikum tersebut.






BAB II
TINJAUAN PUSTAKA

2. 1   SQL (Structured Query Language)
Structure Query Language (SQL) merupakan komponen bahasa relational database system. SQL merupakan bahasa baku (ANSI/SQL), non procedural, dan berorientasi himpunan (set-oriented language). SQL dapat digunakan baik secara interaktif atau ditempelkan (embedded) pada sebuah program aplikasi.

1.    Komponen-Komponen SQL
a.    Data Definition Language (DDL) :
Digunakan untuk mendefinisikan data dengan menggunakan perintah : create, drop, alter.
Berikut contoh penulisan query yang berhubungan dengan perintah di atas :
1.      Membuat Tabel ( create )
Sintaks :      CREATE TABLE tbname
(col 1 data type data spec,
col 2 data type data spec,
.
.
PRIMARY KEY (col1,……))

Contoh :   CREATE TABLE PERSONEL
(REGNO CHAR(10) NOT NULL,
NAME CHAR(45) NOT NULL,
ADDRESS CHAR(45),
BIRTH DATE NOT NULL WITH DEFAULT,
PRIMARY KEY (REGNO))






 


NULL

Spesifikasi NULL, NOT NULL, NOT NULL WITH DEFAULT


NULL :
Dapat diinterpretasikan sebagai nilai yang tidak diketahui atau tidak tersedianya suatu nilai. Null bukan berarti kosong (blank) atau 0 (Nol) NOT NULL :
 Pemakai atau program harus memberikan nilai-nilai pada saat memasukkan record
NOT NULL WITH DEFAULT :
Nilai default disimpan pada saat record dimasukkan tanpa nilai yang ditentukan untuk kolom ini.
Nilai default-nya :
Nol untuk tipe field NUMERIC
Blank untuk tipe field CHARACTER
CURRENT DATE untuk tipe field DATE
CURRENT TIME untuk tipe field TIME
Pada saat membuat tabel, salah satu atribut tersebut di atas dispesifikasikan pada sebuah kolom.

2.      Menghapus Tabel ( drop )
Sintaks :   DROP TABLE tbname
Contoh : DROP TABLE PERSONEL

3.      Modifikasi Tabel ( alter )
Fungsi : merubah atribut pada suatu tabel
           
Sintaks :   ALTER TABLE tbname
MODIFY (nama_kolom tipe_kolom) ADD (nama_kolom tipe_kolom [[before, nama_kolom]]) DROP (nama_kolom tipe_kolom)

Contoh : merubah Tabel TABX dengan menambah Field D.
ALTER TABLE TABX
ADD D CHAR(3)

b. Data Manipulation Language (DML) :
Digunakan untuk memanipulasi data dengan menggunakan perintah : select, insert, update, delete.
Data Manipulation Language merupakan bagian terpadu bahasa SQL. Perintah-perintahnya dapat dibuat secara interaktif atau ditempelkan pada sebuah program aplikasi. Pemakai hanya perlu menentukan 'APA' yang ia inginkan, DBMS menentukan 'BAGAIMANA' cara mendapatkannya.
1.      Menambahkan baris ( Insert )
Sintaks : INSERT INTO tbname (col1, ...) VALUES (value1, ...)

2.      Merubah baris ( Update )
Sintaks : UPDATE tbname SET field = ekspresi WHERE kondisi

3.      Menghapus baris (delete)
Sintaks : DELETE FROM tbname WHERE kondisi

4.      Menampilkan baris (select )
Sintaks : SELECT [DISTINCT] colname FROM tbname [WHERE kondisi] [GROUP BY kondisi] [HAVING kondisi] [ORDER BY kondisi]
c.  Data Control Language (DCL) :
Digunakan untuk mengontrol hak para pemakai data dengan perintah : grant, revoke.
1.      GRANT
Fungsi : digunakan untuk memberikan izin akses kepada user
Sintaks : GRANT privileges ON tbname TO user

Contoh :  GRANT SELECT ON CLUB TO PUBLIC
GRANT SELECT, INSERT, UPDATE, DELETE ON CLUB TO USER 1
2. REVOKE
Fungsi : digunakan untuk mencabut izin akses kepada user

Sintaks : REVOKE privileges ON tbname FROM user

Contoh :  REVOKE INSERT, UPDATE, DELETE ON CLUB FRO USER01 REVOKE ALL ON CLUB FROM PUBLIC
 

2. 2    Oracle

                         Oracle pertama kali dibuat sekitar tahun 1984, sejak saat itu program tersebut terus menerus mengalami penyempurnaan dan peningkatan, sampai saat ini sudah mencapai pada 10.0
Oracle memang tersedia dalam berbagai versi, namun dalam pembuatan tugas akhir yang penulis buat dengan menggunakan Oracle 9.0 pada jaringan Windows.
Program Oracle 9.0 ini digunakan sebagai Data Base Management System  (DBMS )  karena memiliki kemamampuan diantaranya yaitu :
v  Memiliki kemampuan untuk menyimpan data secara baik, dan ditunjang dengan sistem backup yang baik.
v  Program ini juga menyediakan fasilitas yang mengatur kepentingan pemakainya / user yaitu, hak akses ( privelege ) yang dikelompokkan menjadi 2 (Dua) kategori yaitu :
·         Hak Previlege System / hak untuk melakukan tindakan pada    obyek tertentu.
·         Hak Previlege Object / hak untuk melakukan tindakan  pada object skema tertentu
v  Kemampuan untuk melakukan pemulihan DataBase dari kerusakan atau keliruan yang dilakukan oleh user dengan pembuatan Full Back Up Database.
Data yang dibuat dengan menggunakan program oracle, dapat diakses dengan berbagai macam software lain dan mempunyai perintah – perintah yang lengkap. Data dapat dibuat dengan banyak kolom / sesuai yang dibutuhkan dan dapat diproses dengan banyak perintah.
Data Oracle juga dapat dibuat tabel view atau tabel turunannya dan dari Tabel view tersebut dapat dibuat program ( report ).
Berikut ini perintah – perintah SQL yang digunakan dalam program oracle serta fungsinya yaitu :
¨      SELECT            : Digunakan untuk mengambil data yang diproses.
¨      UPDATE           : Digunkan untuk mengubah isi file.
¨      DELETE             : Digunakan untuk menghapus garis / isi tabel.
¨      CREATE VIEW : Digunakan untuk membuat tabel view.
¨      DROP                 : Digunakan untuk menghapus tabel.
¨      ALTER               : Digunakan untuk mengubah struktur tabel.
¨      TRUNCATE       : Digunakan untuk menghapus semua baris pada          tabel      

Untuk memahami struktur tabel didalam database, maka kita harus mengetahui, bagaimana cara membuat tabel dan tipe data yang ada di dalam Oracle.
            a. Membuat Tabel
        Tabel adalah sekumpulan data yang mempunyai kolom dan baris. Perintah yang digunakan untuk membuat tabel adalah CREATE TABLE.
        Beberapa hal yang perlu diketahui tentang aturan di dalam struktur tabel yaitu:
Primary Key         :  Membuat kunci utama yang nilainya bersifat
   eksklusif.
                                                    Foreign Key          : Menghubungkan antara tabel dengan ketentuan
  tabel tersebut harus memiliki Primary Key.
                 Unique       :  Digunakan untuk membatasi kolom yang sifatnya unik.
                 Check         :  Digunakan untuk membatasi nilai kolom
                 Not Null     :  Kolom tidak bisa menerima nilai null.

            b. Type Data Oracle
Tipe data adalah sejenis istilah yang terdapat pada suatu data yang terdapat didalam tabel, diantaranya :
                 Number     : Tipe data yang berisi angka nol (0), negative, positif,
   bilangan  bulat dan bilangan pecahan.
                 Varchar     : Tipe data yang didefinisikan untuk karakter dengan
   panjang
   berubah-ubah dengan panjang maksimum 4000 karakter.
                 Char           : Tipe data yang didefinisikan untuk karakter dengan
   Panjang  maksimum 2000 karakter.
                 Many          : Tipe data yang didefinisikan untuk nilai nominal uang.
                 Date            : Tipe data tanggal meliputi tanggal, bulan, dan tahun.




















BAB III
PEMBUATAN TABEL, PENDEFINISIAN CONSTRAINT,
EXPORT DAN IMPORT

            Pada bab ini kami mencoba untuk membuat sebuah tabel, pendefinisian constraint, export dan import. Dimana tabel adalah sekumpulan data yang telah dibuat dengan sedemikian mungkin dan digunakan pada sebuah data base dalam pembuatan sebuah program apilkasi.

3.1   Pembuatan Tabel
3.1.1 langkah-langkah menjalankan sqlplus
1.    Klik tombol start










 









2.    Ketik Run à tulis cmd à OK










Gambar 3.2.Tampilan Run
 



 











3.    Akan muncul program command prompt
Tulis sqlplus terus di enter








Gambar 3.3.Tampilan Awal Command Prompt
 
 





4.    Tulis Username dan password yang sudah ditentukan








Gambar 3.4.Tampilan Login Pada Sqlpuls
 
 







3.1.2  Menampilkan tabel yang dimiliki oleh user
SQL  :    SELECT * FROM user_tables;
Penjabaran    :    Ambil Semua Data dari Tabel User_Tables
Hasil Percobaan :








Gambar 3.5.Menampilkan Seluruh Data Yang dimiliki User
 
 










3.1.3 Menampilkan tipe object secara distinct yang dimiliki oleh  user scott
SQL  :    SELECT DISTINCT object_type From user_objects;
Penjabaran    :    Ambil Struktur Type Objek  Dari  User_Object
Hasil Percobaan :








Gambar 3.6.Tampilan Type Object
 
 







3.1.4 Menampilkan table, view, synonyms dan sequence yang dimiliki oleh user scott
SQL  :    Select * From user_catalog;   
Penjabaran    :    Ambil Semua Data dari user catalog
Hasil Percobaan :








Gambar 3.7.Tampilan Type_Table
 
 








3.1.5  Membuat tabel dept30 pada user scott
SQL  :    Create table dept30(deptno NUMBER(2),dname VARCHAR2(14), loc    VARCHAR2(13));
Penjabaran    :    Buat Tabel  dept30  yang Berisi Kolom, deptno NUMBER(2), dname VARCHAR2(14),  dan loc VARCHAR2 (13).
Hasil Percobaan :





Gambar 3.8.Membuat Tabel dept30
 
 


3.1.6  Menambahkan kolom
SQL  :    ALTER TABLE dept30 ADD ( job VARCHAR2 )9));
Penjabaran    :    Ubah Tabel dept30 dengan Menambahkan Kolom Job VARCHAR 2(9).
Hasil Percobaan :








Gambar 3.9.Menambahkan kolom JOB
 
 







3.1.7 Memodifikasi tipe data kolom
SQL :    ALTER TABEL detp30 MODIFY (dname VARCHAR2(16));
Penjabaran  : Ubah Tabel dept30 dengan Merubah Jumlah Karakter pada Kolom Job VARCHAR 2(16).
Hasil Percobaan :






Gambar 3.10.Memodifikasi Tipe Data pada Kolom dname
 
 



3.1.9 Menghapus tabel
SQL  :    DROP TABLE dept30;
Penjabaran    :    Hapus TABEL dept30
Hasil Percobaaan :








Gambar 3.11.Menghapus Tabel
 
 




3.1.10 Merubah nama tabel
SQL  :    RENAME dept TO departement;
Penjabaran    :    Ubah Nama Tabel DEPT  Menjadi DEPARTEMENT
Hasil Percoban:








Gambar 3.12.Merubah Nama Tabel
 
 







3.1.11 Menambahkan sebuah komentar pada sebuah tabel
SQL  :    COMMENT ON TABLE EMP IS 'Informasi Pegawai';
Penjabaran    :    Tambahkan komentar  pada Table EMP IS adalahInformasi Pegawai’
Hasil Percobaan :








Gambar 3.13.Menambahkan Komentar Pada Tabel
 
 







3.2 Pendefinisian Constraint
3.2.1 Not null constraint
SQL  :    CREATE TABLE employee (empno NUMBER(4), ename VARCHAR2(10) NOT NULL, job   VARCHAR2(9), deptno NUMBER(7,2) NOT NULL);
Penjabaran    :    Buat Tabel Employee yang Berisi Kolom empno NUMBER(4), ename VARCHAR2(10),  job  VARCHAR2(9) dan deptno NUMBER(7,2)  NOT NULL.


Hasil Percoban :


 
                                                                                





Gambar 3.14.Membuat Tabel dengan Constraint NOT NULL
 
 



3.2.2 Unique constraint
SQL  :    CREATE TABLE department(deptno NUMBER(2), dname VARCHAR2(14),loc    VARCHAR2(13), Constraint dept_name_uk UNIQUE(dname));
Penjabaran    :    Buat Tabel department yang Berisi  Dari Kolom deptno NUMBER(2), dname VARCHAR2(14), loc VARCHAR2(13), dengan Constraint UNIQUE
Hasil Percobaan :








Gambar 3.15.Membuat Tabel dengan Constraint UNIQUE
 
 







3.2.3 Primary key constraint
SQL  :    CREATE TABLE department(deptno NUMBER(2),dname VARCHAR2(14),loc    VARCHAR2(13),Constraint dept_name_uk UNIQUE(dname),Constraint dept_deptno_pk PRIMARY KEY(deptno));
Penjabaran    :    Buat Tabel department Yang Terdiri Dari Kolom deptno, dname dan job dengan Kolom deptno Yang Menjadi PRIMERY KEY.


Hasil Percobaan :








Gambar 3.16.Membuat Tabel dengan Constraint PK
 
 









3.2.4 Foreign key constraint
SQL  :    CREATE TABLE employee (empno   NUMBER(4),ename VARCHAR2(10) NOT NULL, job VARCHAR2(9),deptno NUMBER(7,2) NOT NULL,CONSTRAINT emp_deptno_fk FOREIGN KEY(deptno) REFERENCES department(deptno));
Penjabaran    :    Buat table employee Yang Terdiri Dari Kolom empno, ename, job dan deptno dengan constraint FOREIGN KEY
Hasil Percoban :








Gambar 3.17.Membuat Tabel dengan Constraint FK
 
 







3.2.5 Check constraint
SQL  :    ALTER TABLE employee ADD CONSTRAINT emp_deptno_ck CHECK (deptno BETWEEN 10 AND 99)
Penjabaran    :    Tambahkan Constraint CHECK  pada table employee dengan Kondisi  pada  kolom  deptno yang nilainya antara 10 dan 99.



Hasil Percobaan :





Gambar 3.18.Menambahkan Constraint CHECK
 
 



3.2.6 Menambahkan suatu constraint
3.2.6.1 Menambahkan kolom baru
SQL  :    ALTER TABLE employee ADD ( mgr NUMBER(2));
Penjabaran    :    Tambahkan Kolom mgr Yang Type Datanya  NUMBER (2)  pada tabel employee
Hasil Percobaan :






Gambar 3.19.Menambahkan Kolom mgr
 
 





3.2.6.2 Menambahkan constraint pk
SQL  :    ALTER TABLE employee ADD CONSTRAINT empno_pk PRIMERY KEY(empno);
Penjabaran    :    Tambahkan Constraint PK pada Kolom empno Yang Berada di Tabel employee
Hasil Penjabaran :








Gambar 3.20.Menambahkan Constraint PK
 
 







3.2.6.3 Menambahkan constraint fk
SQL  :    ALTER TABLE employee ADD CONSTRAINT emp_mgr_fk FOREIGN KEY (mgr) REFERENCES employee(empno);
Penjabaran    :    Tambahkan constraint FK pada kolom mgr
Hasil Percobaan :








Gambar 3.21.Menambahkan Constraint FK

 
 







3.2.7 Menghapus constraint
SQL  :    ALTER TABLE employee DROP CONSTRAINT emp_mgr_fk;
Penjabaran    :    Hapus Constraint manager dari Table employee
Hasil Percobaan :








Gambar 3.22.Menghapus Constraint
 
 







3.2.8 Menghapus primary key
SQL  :    ALTER TABLE dept DROP PRIMERY KEY CASCADE;
Penjabaran    :    Hapus PRIMARY KEY pada kolom deptno yang ada pada table dept.
Hasil Percobaan :





Gambar 3.23.Menghapus PK
 
 
3.2.9 Menonaktifkan constraint
SQL  :    ALTER TABLE employee DISABLE CONSTRAINT empno_pk CASCADE;
Penjabaran    :    Nonaktifkan constraint empno_pk yang telah dibuat padaTabel employee
Hasil Percobaan :






Gambar 3.24.Menonaktifkan Constraint
 
 



3.2.10 Mengaktifkan constraint
SQL  :    ALTER TABLE employee ENABLE CONSTRAINT empno_pk;
Penjabaran    :    Aktifkan constraint empno_pk yang telah dinonaktifkan pada percobaan sebelumnya
Hasil Percobaan :








Gambar 3.25.Mengaktifkan Constraint
 
 








3.2.11 Menonaktifkan (disabling) constraint
SQL  :    ALTER TABLE employee disable constraint empno_pk CASCADE
Penjabaran    :    Tampilkan nama constraint, tipe constraint dan kondisi pencarian pada constraint.

Hasil Percoban :








Gambar 3.26.Mengaktifkan Constraint
 
 








3.2.12                       Menampilkan constraint
SQL : COLUMN SEARCH_CONDITION FORMAT A20
SQL : SELECT constraint_name, constraint_type, search_condition FROM user_constraints Where tabel_name=’EMPLOYEE’;
Penjalasan : Kolom pencarian kondisi dengan ukuran A20. Ambil dataconstraint_name,constraint_type,search_condition dari tabel user_constraint dimana nama  tabel=employee.
Hasil percobaan :

Gambar 3.42. Menampilkan constraint pada tabel employee




Gambar 3.27.Menampilkan Constraint
 
 







3.3 Export dan Import
3.3.1        Export
Berikut langkah-langkah mengeksport :
1.      Seperti percobaan-percobaan sebelumnya, yaitu membuka START-RUN-CMD
2.      Ketikkan Perintah “Exp username/password@tnsname(nama koneksi yang menghubungkan Client  dengan server).
3.      Muncul perintah “Enter array fetch buffer size”,maka ketikkan “4096” kemudian enter.
4.      Kemudian isikan nama file penampung data hasil export. Contoh : c:\1412070104.dmp kemudian tekan enter.
5.      Lalu muncul pertanyaan,”2.U<sers>or 3.T<tables>”, yang artinya apakah kita ingin mengeksport data user ataukah tabel,ketikkan T,kemudian tekan enter.
6.      Kemudian muncul pertanyaan “Export Table Data?”, yang berarti sekaligus mengeksport data dari tabel yang dipilih,ketikkan Y,kemudian enter.
7.      Lalu muncul pertanyaan “Compress Extents?”, Maka ketikkan Y dan tekan enter.
8.      Selanjutnya kita harus mengetikkan satu persatu tabel yang akan kita export.
9.      Untuk mengakhiri proses export,kita tidak perlu mengetikkan apapun. Hanya tekan ENTER saja.
10.  Bila proses export tidak ada pesan error,maka proses export telah sukses dilaksanakan. Periksa apakah di computer kita sudah terdapat file hasil export tadi.
Gambar 3.28.Export file
 
Hasil percobaan :
Tampilan pada toolbar :


 
Gambar 3.44. Melihat file hasil export







Gambar 3.29.Melihat file hasil export

 
 




3.3.2 Import
Langkah-langkah mengimport :
1.      Seperti percobaan-percobaan sebelumnya, yaitu membuka START-RUN-CMD
2.      Ketikkan Perintah “Imp username/password@tnsname(nama koneksi yang menghubungkan Client  dengan server).
3.      Muncul pertanyaan lokasi file import “Import file?” maka ketikkan lokasi file dmp, missal : c:\1412070104.dmp.
4.      Muncul “Enter insert buffer size *minimum is 8192)?”  kita boleh mengisikan buffer minimum, namun alangkah baiknya kita mengisikan angka default yang dianjurkan yaitu “30720”, kemudian tekan emter.
5.      Muncul “List contents of import file only?” maka ketikka “t” kemudian enter.
6.      Muncul “Ignore create error due to object existence?”, ketikkan “t” 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.  Proses import data telah selesai, apabila tidak ada pesan error maka proses import data dari file dmp ke database oracle telah berhasil dilakukan.
Hasil percobaan :










Gambar 3.29.Import file

 
 



















BAB IV
SEQUENCE, INDEX DAN SYNONYM

Sequence merupakan objek database yang digunakan untuk membuat dan meng-increment-kan sebuah counter agar dapat dimanfaatkan untuk primary key dalam sebuah tabel.
            Index adalah objek database yang mempercepat pemanggilan sebuah data. Synonym dibuat dengan tujuan menyederhanakan akses ke object, dengan cara merujuk ke table yang dimiliki oleh user lain dan  memperpendek nama object yang panjang.

4.1    Sequence
4.1.1 Membuat sequence dept30_deptno
SQL  :    CREATE SEQUENCE dept30_deptno INCREMENT BY 1 START WITH 91 MAXVALUE 100 NOCACHE NOCYCLE;   
Peenjabaran     :    Membuat sequence dep30t_deptno yang akan digunakan sebagai
Hasil Percobaan   :






Gambar 4.1.Membuat sequence dept30_deptno
 
 



4.1.2 Memeriksa keberadaan sequence
SQL  :    Select Sequence_name, min_value, increment_by, last_number From user_sequences;
Penjabaran    :    Menampilkan informasi tentang keberadaan Sequence
Hasil Percobaan :








Gambar 4.2.Memeriksa keberadaan sequence
 



 
4.1.3 Nextval, currval dan penggunaan sequence
4.1.3.1 Menambahkan baris pada sequence dep30_deptno
SQL  :    INSERT INTO dept30(deptno, dname, loc) VALUES (dept30_deptno, NEXTVAL,’MARKETING’,’SAN DIEGO’);
Penjabaran    :    Menggunakan sequence dept30_deptno untuk mengisi baris baru untuk departement ‘Marketing’ yang berlaku di ‘SAN DIEGO’
Hasil Percobaan :








Gambar 4.3.Menambahkan baris pada sequence dept30_deptno
 
 







4.1.3.2  Melihat nilai dari sequence dept_deptno
SQL  :    SELECT dept_deptno.CURVAL FROM DUAL;
Penjabaran    :   
Hasil Percobaan :








Gambar 4.4.Melihat nilai sequence
 
 








4.1.4. Modifikasi dan Pengahapusan sequence dept_deptno
4.1.4.1 Modifikasi sequence dept_deptno
SQL  :    ALTER SEQUENCE dept30_deptno INCREMENT BY 1 MAXVALUE 999999 NOCHACE NOCYCLE;
Penjabaran    :    Memodifikasi sequence dept30_deptno


Hasil Percobaan :




Gambar 4.5.Memodifikasi sequence dept30_deptno
 
 



4.1.4.2 Menghapus sequence dept_deptno
SQL  :    DROP SEQUENCE dept30_deptno
Penjabaran    :    Menghapus Sequence dept30_deptno
Hasil Percoban :








Gambar 4.6.Menghapus sequence dept30_deptno
 
 







4.2 Index
4.2.1 Membuat index pada kolom ename yang ada pada table EMP.
SQL  :    Create INDEX emp_ename_idx  ON emp(ename);
Penjabaran : Membuat index pada kolom ename pada tabel EMP
Hasil Percoban :








Gambar 4.7.Membuat index pada kolom ename
 
 








4.2.2 Memeriksaan keberadaan Index
SQL  :    column column_name format a15
SQL  :  SELECT ic.index_name.ic.column_name, ic.column_position col_pos, ix.uniqueness from user_indexs ix, user_ind_columns ic WHERE ic.indexes
Penjabaran    :    Memeriksa keberadaan index dari data dictonary
Hasil Percobaan :






Gambar 4.8.Memeriksa keberadaan index
 
 



4.2.3 Menghapus  index emp_ename_idx
SQL  :    DROP INDEX emp_ename_idx;
Penjabaran    :    Menghapus index emp_ename_idx pada tabel EMP
Hasil Percobaan :





Gambar 4.9.Menghapus index
 
 



4.3 Synonim
4.3.1 Membuat synonim
SQL  :    CREATE SYNONIM d_sum  FOR dept30_sum_vu;
Penjabaran    :    Membuat synonym harus menggunakan user scott AS SYSDBA, karena hanya user tersebut yang bisa membuat dan menghapus synonym.


Hasil Percobaan :








Gambar 4.10.Membuat synonim pada tabel dept
 
 







4.3.2. Menghapus synonim
SQL  :    DROP SYNONYM d_sum
Penjabaran    :    Menghapus synonym d_sum
Hasil Percobaan :


 




















BAB V
VIEW

            View adalah bentuk alternatif penyajian data dari satu atau lebih tabel. View dapat berisi semua atau sebagian kolom yang terdapat pada tabel dimana kolom tersebut didefinisikan. Selain itu View juga sebuah tabel virtual yang secara aktual tidak ada  dalam basis data, tetapi dihasilkan bersarkan permintaan user sesuai dengan kebutuhannya.


5.1 Membuat  VIEW
5.1.1 membuat  view empvu10
SQL  :    CREATE VIEW EMPVU10 AS SELECT empno, ename, job FROM scott.emp WHERE deptno=10;
Penjabaran    :    Buat  View EMPVU10 sebagai nama lain pada kolom empno, ename, dan job dari tabel emp yang dimana no departmentnya adalah 10
Hasil Percobaan :








Gambar 5.1.Membuat VIEW EMPVU10
 
 



5.1.2 menampilkan struktur view
SQL  :    Describe EMPVU10;
Penjabaran    :    Tampil struktur VIEW EMPVU10
Hasil Percobaan :









Gambar 5.2.Meampilkan Struktur VIEW  
 



 
5.2  Membuat View SALVU30
SQL  :    CREATE VIEW SALVU30 AS SELECT empno EMPLOYEE_NUMBER, ename NAME, Sal SALARY, From scott.emp where deptno=30;
Penjabaran    :    Buat VIEW SALVU30 untuk mangganti pada kolom empno (EMPLOYEE_NUMBER), ename (NAME), dan sal (SALARY) dari tabel emp yang dimana no departmentnya adalah 30
Hasil Percobaan :








Gambar 5.3.Membuat SALVU10
 
 








5.3 Menampilkan seluruh data SALVU30 
SQL : SELECT * FROM SALVU30;
Penjabaran : Ambil seluruh data pada SALVU30 
Hasil Percobaan :








Gambar 5.4.Menampilkan Seluruh Data SALVU30
 
 













5.4 Memodifikasi View
5.4.1 memodifikasi judul kolom empvu10
SQL  :    CREATE OR REPLACE VIEW empvu10 (employee_number, employee_name, job_title) AS SELECT empno, ename, job From scott.EMP Where deptno=10;
Penjabaran    :    Buat atau Ulang VIEW10 pada kolom, employee_number (empno), employee_name (ename), job_title( job) dari tabel emp yang no departemennya adalah 10.
Hasil Percobaan :








Gambar 5.5.Memodifikasi Judul Kolom empvu10
 
 








5.4.2 Menampilkan seluruh data EMPV10
SQL : Select * from EMPV10;
Penjabaran  : Ambil semua data dari EMPV10
Hasil Percobaan :






Gambar 5.6.Menampilkan Seluruh Data SALVU yang Baru
 
 







5.5 Membuat Complex View
5.5.1 Membuat complex view dept_sum_vu
SQL  :    CREATE VIEW dept_sum_vu (name, minsal, maxsal, avgsal) AS SELECT d.name, min (e.sal), max(e.sal), avg(sal) From scott.emp e, scott.DEPT d WHERE e. deptno=d.deptno Group BY d.dname;
Penjabaran    :    Buat View DEPT_SUM_VU yang terdiri dari kolom NAME, MINSAL, MAXSAL, dan AVGSAL sebagai data yang diambil dari tabel emp dan dept yang dimulai dari kolom dname.
Hasil Percobaan :








Gambar 5.7.Membuat Complex View  
 
 








5.5.2 Menampilkan seluruh data view dept_sum_vu
SQL  :    select * from view dept_sum_vu
Penjabaran    :   
Hasil Percobaan :





Gambar 5.8.Menampilkan seluruh data View  dept_sum_vu
 
 








5.6 Menggunakan Klausa With Check Option
5.6.1 Membuat VIEW EMP VU20
SQL  :    CREATE OR REPLACE VIEW empvu20 AS Select * From scott.EMP WHERE deptno=20 WITH CHECK OPTION CONSTRAINT empvu20 _ok;
Penjabaran    :    Buat  atau  Ulang VIEW EMP VU20 yang berisi semua data dari  tabel EMP yang dimana bekerja di departement20, yang ditentukan dengan CHECK OPTION.
Hasil Percobaan :








Gambar 5.9.Membuat atau Mengulang View SMPVU20  
 
 








5.7 Mengabaikan (tidak memperbolehkan) dilakukan Operasi DML
5.7.1 membuat view empvu10 dengan klausa dml
SQL  :    CREATE OR REPLACE VIEW empvu10 AS SELECT empno, ename, job From EMP Where deptno=10 WITH READ ONLY;
Penjabaran    :    Buat atau Mengulang VIEW EMPVU10 yang terdiri dari kolom nopegawai, namapegawai, dan pekerjaan pegawai dari tabel emp yang dimana nodepartemennya (10), dan hanya dibaca saja.
Hasil Percobaan :








Gambar 5.10.Membuat atau Mengulang View SMPVU10  
 
 







5.7.2 mengahapus view empv10
SQL  :    DROP VIEW EMPVU10;
Penjabaran    :    Hapus VIEW empvu10 dari user scott
Hasil Percobaan :








Gambar 5.11. Menghapus VIEW EMPVU10  
 
 






























BAB VI
QUSERY SELECT DAN
DML (INSERT, UPDATE, DELETE)

Qusery SELECT merupakan perintah dasar untuk menjalankan sebuah perintah dalam sebuah database, misal pada database oracle sqlplus. Sedangkan DML ( Data Manipulation Language ) adalah salah satu komponen bahasa basis data yang berfungsi sebagai berikut :
1.    Menyisipkan data baru ke dalam basis data
2.    Memodifikasi data dalam basis data
3.    Menemukan kembali data dalam basis data
4.    Menghapus data dari basis data

Jenis-jenis DML
1.    DML Prosedural :
è Bahasa yang memungkinkan pengguna user memerintahkan sistem secara cepat bagaimana memanipulasi data.
2.    DML Non-Prosedural :
è Bahasa yang memungkinkan pengguna user menyatakan data apa yang dibutuhkan dan bukan bagaimana data diperoleh. Contoh : SQL, QBE

Perintah Query Pada DML
INSERT
            Digunakan untuk mengisi suatu baris pada suatu tabel yang terdiri dari beberapa kolom yang ada, misal untuk mengisi satu persatu baris pada tabel Mahasiswa.
INSERT INTO MHS1 (NPM,NAMA_MHS,ALAMAT,TGL_LAHIR,AGAMA,KELAMIN,WALI)
VALUES ('141204000','DHANI AKHMAD','BLORA','1977-09 16','ISLAM','P','002')
DELETE
Digunakan hanya untuk menghapus pada record saja, bukan pada data kolom tertentu. Sintaks delete secara umum berbentuk sebagai berikut.
Delete form <tabel>
Where <kondisi>
Ex.
            Delete from pelanggan
Where status = ”keluar”

UPDATE
Update merupakan perintah untuk mengubah data yang sudah ada di dalam tabel. Perintah update memiliki sintaks secara umum sebagai berikut
Update <tabel>
Set <nama kolom> = <value>
Where <kondisi>
Ex.
      Update harga SET Biaya= 19000 WHERE ID_kota='BDG' AND
Kode_jenis=2 AND Berat_awal=2 AND Berat_akhir=3 AND Biaya=17000


6.1 Query Select
6.1.1 Langkah-langkah untuk login ke isqlplus
1.    Buka file C:\oracle\product\10.2.0\db_1\install\readme.txt “.
Setelah menjalankan langkah-langkah di atas maka akan muncul file txt seperti di bawah ini.








Gambar 6.1.Tampilan readme.txt
 
 












2.    Lalu copykan  http://localhost : 5560/isqlplus yang diberi tanda panag merah ke Mozilla agar bisa browser ke ISQLPLUS untuk login,








Gambar 6.2.Tampilan Login sqlplus
 
 










3.    Isi Form login yang sudah di tetapkan







Gambar 6.3.Tampilan Mengisi Login
 
 



4.    Setelah login dengan benar maka akan muncul gambar Workspace









Gambar 6.4.Tampilan Workspace
 
 



6.1.2  Menampilkan struktur tabel
SQL  :  Desc emp;
Penjabaran : Tampilkan struktur tabel emp
Hasil Percobaan :








Gambar 6.5.Struktur Tabel EMP
 
 










6.1.3 Menyimpan script
Save Scirpt à Dekstop à Beri Nama NPM à Save
Penjabaran    :    Menyimpan file NPM pada dekstop
Hasil Percobaan :










Gambar 6.6.Pilih Save Script
 





Gambar 6.7.Memilih Dekstop
 
 














6.1.4 Menampilkan seluruh data
SQL  :    Select * from emp;
Penjabaran    :    Ambil seluruh data dari  tabel emp
Hasil Percobaan :








Gambar 6.8.MenampillkanTabel emp
 
 




6.1.5 Menampilkan data kolom tertentu
SQL  :    Select ENAME, HIREDATE FROM EMP;
Penjabaran    :    Ambil Data Kolom ename, hiredate dari Tabel  EMP
Hasil Percobaan :






Gambar 6.9.Menampilkan kolom ename, hiredate  
 
 



4.1.6  Ekspresi aritmatik
SQL  :    Select ENAME, HIREDATE, SAL+250 FROM EMP
Penjabaran    :    Ambil Data Kolom ENAME, HIREDATE, SAL yang ditambah  250 dari tabel EMP

Hasil Percobaan :






Gambar 6.10.Menampilkan Kolom Gaji Yang di Tambah 250
 
 




6.1.7 Operator presedence
SQL  :  SELECT ename, Hiredate, Sal, 50*sal+250 From emp;
Penjabaran    :    Ambil Data Kolom  ename, hiredate, sal,  pada Kolom sal dikalikan 50 dan ditambahkan  250 dari tabel emp;
Hasil Percobaan :
 











6.1.8  Penggunaan tanda kurung
SQL  :  Select ename, hiredate, sal, 50*(sal+250) From emp:
Penjabaran    :    Ambil Data Kolom ename, hiredate, Gaji yang ditambahkan  250 terlebih dahulu baru dikalikan 50 dari tabel emp.

Hasil Percobaan:
 










6.1.9 Menggunakan kolom alias
SQL   :  Select ename "Nama Pegawai", HIREDATE "Tanggal Diterima" from emp;
Penjabaran    :    Ambil  Data Kolom ename  dirubah  “Nama Pegawai” dan  hiredate dirubah “Tanggal Diterima” dari tabel emp.
Hasil Percobaan :
 










6.1.10.  Operator penyambungan
SQL  :  Select ename || job AS “Nama Samaran” from emp;
Penjabaran    :    Ambil Data Kolom  ename yang digabung dengan Kolom job Sebagai Kolom “Nama Samaran” dari Tabel emp.

Hasil Percobaan :
 










6.1.11 Literal character strings
SQL  :    Select ename || ‘Bekerja Sebagai’ || job AS “Nama dan Posisi” From emp;
Penjabaran    :  Ambil Data Kolom ename yang Diberi Kalimat Pemyambung “Bekerja Sebagai” dengan Kolom job  Sebagai Kolom alias “Nama dan Posisi” dari  Tabel emp.
Hasil Percobaan :






Gambar 6.15.Merubah Nama Kolom dan di Beri Kalimat Penyambung
 
 



6.1.12 Menghindari munculnya baris duplikat
SQL  :  Select distinct job from emp;
Penjabaran    :  Ambil Data Kolom job dari  Tabel “emp”;


Hasil Percobaan :






Gambar 6.16.Menampilakan Data Kolom Tertentu
 
 



6.2 DML (INSERT, UPDATE, DELETE)
6.2.1 Menambahkan baris baru ke dalam tabel (insert)
SQL  : Insert into dept(deptno, dname, loc ) values ('50','DEVELOPMENT','DETROIT');
Penjabaran  : Tambah Baris pada Tabel DEPT (deptno, dname, loc) yang mempunyai niai ( ‘50’,’DEVELOPMENT’,’DETROIT’)
Hasil Percobaan :





Gambar 6.17.Menambahkan Baris pada Tabel
 
 



6.2.2 Insert dengan nilai null
6.2.2.1 Menambah baris pada tabel tertentu
SQL : Insert into dept(deptno, dname) Values (60,’MIS’);
Penjabaran    :  Tambah Baris pada Tabel dept (pada Kolom deptno, dname) yang mempunyai nilai (60,’MIS’).


Hasil Percobaan :






Gambar 6.18.Menambahkan Baris pada Kolom Tertentu
 
 



6.2.2.2 Menambah baris pada tabel hanya diisi nilainya
SQL  :  Insert into dept Values (70,’FINANCE’, NULL )
Penjabaran    :    Tambah Baris pada Tabel dept, yang Hanya Diisi Nilainya Saja (70,’FINANCE’, NULL)
Hasil Percobaan :







Gambar 6.19.Menambahkan Baris, Hanya diisi Nilainya
 
 


6.2.3  Insert menggunakan fungsi dan nilai terformat
6.2.3.1  Melakukan proses insert yang menyertakan fungsi sysdate ke dalam  table emp
SQL  :  INSERT INTO emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) VALUES ( 7196,’GREEN’,’SALESMAN’,7782, SYSDATE,2000, NULL, 10);
Penjabaran    :    Tambahkan data Baru pada Tabel Pegawai yang mempunya nilai (7196,’GREEN’,’SALESMAN’,7782, SYSDATE,2000, NULL, 10)
Hasil Percobaan :
 











6.2.3.2  Melakukan proses insert dengan menggunakan nilai data tanggal yang diformat.
SQL  :  INSERT INTO emp VALUES (2296,’AROMANO’,’SALESMAN,7782, TO_DATE(‘FEB 3 97’,’MON DD YY’),1300,NULL,10);
Penjabaran : Tambahkan Data Baru pada Tabel Pegawai yang mempunya nilai (2296,’AROMANO’,’SALESMAN,7782, TO_DATE(‘FEB 3 97’,’MON DD YY’),1300,NULL,10))
Hasil Percobaan :






Gambar 6.21.Menambahkan Baris Menggunakan Data Tanggal
  Terformat
 
 



6.2.4 INSERT dengan variable substitusi
SQL  :  INSERT INTO DEPT(deptno, dname, loc) VALUES ( &department_id, ‘&department_name’,’&location’); Enter value for department_id : 80 Enter value for department_name ; EDUCATION Enter value for location : ATLANTA
Penjabaran :
Hasil Percobaan :





Gambar 6.22.Manambahkan Baris dengan Variable Substitusi
 
 




6.2.5 Pembuatan script dengan kustomisasi prompt
SQL  :  ACCEPT department_id PROMPT 'Silahkan masukkan nomer department : 'ACCEPT department_name PROMPT 'Silahkan masukkan nama department : 'ACCEPT location PROMPT 'Silahkan masukkan lokasi department : '
Penjabaran    :    Simpan scrip diatas di drive C dan diberi nama nomor_npm.sql. Kemudian dijalankan pada SQL> @c:\nomor_npm.sql
Hasil Percobaan :
 








6.2.6  Mengkopi baris dari tabel lain
SQL  :    INSERT INTO managers(id,name,salary,hiredate) SELECT empno,ename,sal,hiredate FROM emp WHERE job=’MANAGER’;
Penjabaran    :    Tambah  Baris Pada Tabel Managers yang datanya Mengambil dari Tabel Pegawai yang Pekerjaannya adalah MANAGER
Hasil Percobaan :
 











6.2.7  Perubahan data dalam tabel (update)
SQL  :  UPDATE emp SET deptno=20 WHERE empno=7782;
Penjabaran    :    Rubah Tabel Pegawai pada Kolom deptno (20), yang mempunyai nopegawai 7782
Hasil Percobaan :
 









6.2.8  Update dengan multiple column subquery
SQL  :  UPDATE EMP SET (job,deptno)=(SELECT job,deptno FROM EMP WHERE empno=7499)WHERE empno=7698;
Penjabaran    :    Rubah Tabel Pegawai pada Kolom job dan nodept yang diambil dari nopegawainya 7499 menjadi 7698.
Hasil Percobaan :





Gambar 6.26.Merubah Data Tabel EMP  pada Kolom job dan deptno
 
 




6.2.9  Update berdasarkan table yang lain
SQL  :  UPDATE EMP SET deptno =(SELECT job,deptno FROM EMP WHERE empno=7788) WHERE job = ( SELECT job  FROM emp WHERE empno=7788);
Penjabaran :
Hasil Percobaan :
 











6.2.10    Kesalahan pada update
SQL  :  Update emp Set deptno=55 Where deptno=10;
Penjabaran    :    Ubah Data Pegawai yang mempunyai nodepartemen 10, dan diganti dengan nodept 55 
Hasil Percobaan :






Gambar 6.28 Merubah data yang tidak ada pada Tabel emp ( Salah )
 
 



SQL  :  Update emp Set deptno=20 Where deptno=10;
Penjabaran    :    Ubah Data Pegawai yang mempunyai nodepartemen 10, dan diganti dengan nodept 20  
Hasil Percobaan :





Gambar 6.30 Merubah data yang ada pada Tabel  emp
 
 



6.2.11  Menghapus baris dari table (delete)
6.2.11.1 Menghapus data pegawai yang mempunyai nama department = ‘development’
SQL  :  DELETE FROM dept WHERE dname=’DEVELOPMENT’;
Penjabaran    :    Hapus data dari dept yang Dimana Nama Departementnya DEVELOPMENT
Hasil Percobaan :
 








6.2.11.2 Hapus data pegawai yang tanggal mulai bekerjanya setelah tanggal 1 januari 1997
SQL  :  DELETE FROM EMP WHERE hiredate > TO_DATE(’01-01-97’,’DD-MM YY’);
Penjabaran    :    Hapus Data Pegawai yang Dimana Tanggal Masuk Kerjanya Mulai Tanggal 1 Jan 97
Hasil Percobaan :
 








6.2.11.3 Menghapus Semua Baris Yang Ada pada Table Pegawai.
SQL  :  DELETE FROM emp;
Penjabaran    :    Hapus Data pada Tabel EMP
Hasil Percobaan :



Gambar 6.33 Menghapus Seluruh data Pegawai
 
 
6.2.12 DELETE Berdasarkan Table yang Lain
SQL  :  DELETE FROM EMP WHERE deptno = (SELECT deptno FROM dept WHERE dname=’SALES’;
Penjabaran    :    Hapus dari Tabel EMP pada Kolom deptno yang Mengambil dari Tabel EMP yang dname adalah SALES
Hasil Percobaan :
 









6.2.13 Kesalahan pada DELETE
SQL  :  DELETE FROM dept WHERE deptno=10;
Penjabaran    :    Hapus data Departemen yang Nodeptnya 10
Hasil Percobaan :
 













BAB VII
ADVANCED QUERY : PEMILIHAN DAN PENGURUTAN DATA

            Pemilihan dan Pengurutan Data adalah salah satu perintah yang ada pada sqlplus dan biasanya hanya menampilkan salah satu data tertentu saja. Berikut penulisan Syntaxnya :
SELECT [ DISTINCT ] { * / column [alias], … }
FROM table
[ WHERE condition(s) ]
WHERE adalah batasan baris yang memenuhi kondisi
condition adalah susunan nama - nama kolom, ekspresi, konstanta dan operator perbandingan


7.1 String Karakter dan Tipe Data Tanggal (DATE)
SQL : SELECT * FROM EMP WHERE hiredate='02-APR-81';
Penjabaran : Ambil seluruh data EMP yang tanggal masuknya adalah 02 April 1981
Hasil Percobaan :







Gambar 7.1.Menampilkan pegawai yang masuk kerjanya 2 April 1981
 
 





7.2 Penggunaan Operator Pembandingan
SQL : SELECT ename, sal, comm FROM EMP WHERE comm>sal;
Penjabaran : Ambil Data Kolom  Nama, Gaji, Comm yang di mana Comisinya lebih besar dari Gaji


Hasil  Percobaan :







Gambar 7.2.Menampilkan Pegawai yang comisinya lebih besar dari gajinya
 
 





7.3  Penggunaan Operator BETWEEN
SQL : SELECT ename, sal, FROM EMP WHERE sal BETWEEN 1000 AND 1500;
Penjabaran : Ambil Data Kolom  Nama, Gaji, dari Tabel  emp yang di mana gajinya antara 1000 sampai 1500
Hasil Percobaan :








Gambar 7.3.Menampilkan pegawai yang gajinya antara 1000 sampi 1500
 
 





7.4 Penggunaan Operator IN
SQL : SELECT empno, ename, sal, mgr FROM EMP WHERE mgr IN (7902, 7566, 7788);
Penjabaran : Ambil Data Kolom empno, ename, sal, mgr dari Tabel EMP yang di mana managernya mempunyai no (7902, 7566, 7788 );

Hasil Percobaan :








Gambar 7.4   Menampilkan pegawai yang no managernya 7902, 7566, 7788
 
 





7.5 Penggunaan Operator LIKE
7.5.1 Menampilkan banyak karakter pada kolom
SQL : SELECT ename, hiredate FROM EMP WHERE hiredate LIKE ‘%81’;
Penjabaran : Ambil Data Kolom ename, hiredate dari Tabel emp  yang di mana Tanggal Masuk mulai Tahun 81
Hasil Percobaan :







Gambar 7.5. Menampilkan pegawai yang masuk kerjanya tahun 81
 
 






7.5.2 Menampilkan Satu Karakter pada Kolom
SQL : SELECT ename FROM EMP WHERE ename LIKE ‘_A%’;
Penjabaran : Ambil Data Kolom Nama, yang di mana Nama Pegawainya terdapat huruf A pada huruf ke2.
Hasil Percobaan :
 












7.6 Penggunaan Operator Logika (AND, OR, NOT)
7.6.1 Penggunaan operator and
SQL : SELECT empno, ename, job, sal FROM EMP WHERE sal>1000 AND JOB=’CLERK’;
Penjabaran : Ambil Data Kolom empno, ename, job, sal dari Tabel EMP  yang dimana gajinya lebih dari 1000 dan Pekerjaannya CLERK.
Hasil Percobaan :
 













7.6.2  Penggunaan operator or
SQL : SELECT empno, ename, job, sal FROM EMP WHERE sal>1000 OR JOB=’CELRK’;
Penjabaran : Ambil Data Kolom  empno, ename, job, sal dari Tabel EMP  yang dimana gajinya lebih dari 1000 atau Pekerjaannya CLERK.
Hasil  Percobaan :
 














7.6.3  Penggunaan Operator NOT
SQL : SELECT ename, job FROM EMP WHERE job NOT IN (‘CLERK’,’MANAGER’,’ANALYST’);
Penjabaran : Ambil Data Kolom  ename, job dari Tabel EMP  yang dimana  Pekerjaannya tidak termasuk (‘CLERK’,’MANAGER’,’ANALYST’)
Hasil Percobaan :
 
















7.7 Penggunaan Klausa ORDER BY untuk Pengurutan
SQL : SELECT ename, job, deptno, hiredate FROM EMP ORDER BY hiredate BY hiredate Desc;
Penjabaran : Ambil data EMP pada Kolom Napeg, Pekerjaan, Nodept, Tanggal Masuk Kerja yang  diurutkan sesuai  tanggal masuk kerja secara menurun
Hasil Percobaan :
 


























BAB VIII
ADVANCED QUERY : FUNGSI BARIS TUNGGAL DAN FUNGSI MULTI BARIS


Fungsi baris tunggal atau single row functions adalah fungsi yang dapat kita gunakan untuk setiap baris data yang beroperasi pada baris tunggal dan mengembalikan satu nilai per baris.  Ada beberapa tipe dari fungsi baris tunggal, yaitu :  karakter bilangan, tanggal, konversi.dan fungsi yang umum seperti NVL dan DECODE.

1.      Fungsi Karakter
Fungsi karakter  menerima karakter sebagai input dan dapat mengembalikan nilai karakter atau bilangan. Fungsi karakter terbagi menjadi 2 :
a.       Fungsi Konversi : LOWER, UPPER, INITCAP
Ø    LOWER
Digunakan untuk mengubah nilai karakter huruf menjadi huruf     kecil.
Ex.
SELECT LOWER(’INDRA ARMANSYAH’) “Lowercase”
FROM dual;
Lowercase
indra armansyah
Ø    UPPER
Digunakan untuk mengubah nilai karakter huruf menjadi huruf besar.
Ex
SELECT UPPER(’indra armansyah’) “Uppercase”
FROM dual;
Uppercase
INDRA ARMANSYAH
Ø INITCAP
Digunakan untuk merubah huruf pertama dari setiap kata menjadi huruf besar dan sisanya huruf kecil.
Ex.
SELECT INITCAP(’indra armansyah’) “Initcap”  FROM dual;
Initcap
Indra Armansyah
b.      Fungsi Manipulasi : CONCAT, SUBSTR, LENGTH, INSTR, LPAD
Ø CONCAT
Digunakan untuk menggabungkan column atau expression. Fungsi ini sama dengan operator penggabungan (||).
Ex.
SELECT CONCAT(’Indra’, ‘ Armansyah’) “Name”
FROM dual;
Ø    SUBSTR
Digunakan untuk mengambil n karakter dari column|expression dimulai dari karakter ke-m. Perhatikan contoh berikut ini:
SELECT SUBSTR(’Indra Armansyah’,1,5) “Substr”
FROM dual;
Substr
Indra
Ø LENGTH
Digunakan untuk menghitung panjang dari column atau expression. Perhatikan contoh berikut ini:
SELECT LENGTH(’Indra Armansyah’) “Length”
FROM dual;
Length
15
Ø      INSTR
Ø      LPAD



  1. Fungsi Bilangan
Tabel 8.1 Fungsi Bilangan

Fungsi
                Hasil
ROUND(45.926)
45.93
TRUNC(45.926)
45.92
MOD(1600,300)
100

  1. Fungsi Tanggal

Tabel 8.2 Fungsi untuk tanggal :

Fungsi
            Hasil
MONTHS_BETWEEN(’01-SEP-95’,’11-JAN-94’)
19.6774194
ADD_MONTHS(’11-JAN-94’,6)
11-JUL-94
NEXT_DAY(’01-SEP-95’,’FRIDAY’)
08-SEP-95
LAST_DAY(’01-SEP-95’)
30-SEP-95

  1. Fungsi Konversi
Fungsi ini dibagi menjadi 2:
a.       Fungsi Konversi secara Implisit
Fungsi   konversi   secara   implicit   adalah   fungsi   yang   secara   otomatis melakukan konversi tipe data. Seperti Contoh di bawah ini :
       Dari VARCHAR2 atau CHAR Ke NUMBER
       Dari VARCHAR2 atau CHAR Ke DATE
       Dari NUMBER Ke VARCHAR2
       Dari DATE Ke VARCHAR2
b.      Fungsi Konversi secara Eksplisit
Pada fungsi ini SQL menyediakan 3 (tiga) fungsi untuk mengkonversi suatu nilai dari satu tipe data ke tipe data yang lain. Perhatikan di bawah ini :
Tabel 8.3 Fungsi Konveesi Secara Ekplisit :

Fungsi
Tujuan
TO_CHAR(numer|date[,fmt])
Mengkonversi     bilangan atau tanggal ke VARCHAR2 dengan format fmt.
TO_NUMBER(char[,’fmt’])
Mengkonversi  karakater  yang  berisi  digit  ke bilangan dengan format fmt.

TO_DATE(char[,’fmt])
Mengkonversi karakter yang merepresentasikan tanggal ke  tanggal dengan format fmt, nilai default jika tidak diformat adalah DD-MON-YY.

  1. Fungsi NVL
Fungsi NVL() digunakan untuk mengkonversi nilai null baik dari suatu column maupun expression menjadi sebuah nilai baru yang kita inginkan.
Antara tipe data yang dikonversi dan tipe data hasil harus sesuai, misal :

         NVL(comm., 0)
         NVL(hiredate, ’01-JAN-97’)
         NVL(job,’No Job Yet’)

  1. Fungsi DECODE
Fungsi DECODE menyediakan fasilitas pencocokan seperti yang dikerjakan oleh CASE atau IF-THEN-ELSE.

            Fungsi Grup (group functions) beroperasi pada kumpulan baris-baris data (rows) untuk menghasilkan satu hasil per kelompok. Kelompok-kelompok ini bisa merupakan seluruh isi table atau table yang dibagi menjadi beberapa kelompok. Fungsi grup tampil pada klausa SELECT dan HAVING.
Beberapa fungsi yang berhubungan dengan fungsi group atau fungsi multibaris :
·       AVG                      : Rata - Rata Nilai Dalam Kolom
·       COUNT                 : Jumlah Baris Dan Kolom
·       MAX                      : Nilai Terbesar Dalam Kolom
·       MIN                       : Nilai Terkecil Dalam Kolom
·       STDDEV               : Untuk mencari standard deviation dari sekumpulan
·       SUM                       : Jumlah Nilai Dam Kolom
·       VARIANCE          : Untuk mencari standard deviation dari sekumpulan data







8.1 Fungsi Bilangan
SQL : SELECT ename, sal, comm, NVL(comm,0), MOD(sal, NVL(comm,0) FROM EMP;
Penjabaran : Ambil Data pada Kolom  ename, sal, comm,  NVL dari comm, 0, dan MOD dari sal, NVL,(comm,0) dari tabel EMP.
Hasil Percobaan :








Gambar 8.1.Menampilkan  ename, job, deptno dari table emp
 
 




8.2 Fungsi Manipulasi Karakter
SQL : SELECT concat(ename,job), LENGTH(ename), INSTR(ename,’A’) FROM EMP;
Penjabaran : Ambil data yang digabung padan kolom ename dan job, panjang dari ename, posisi huruf 'A' pada ename dari tabel EMP.

Hasil Percobaan :







Gambar 8.2. Menampilkan  ename, job yang digabung dan panjang nama.
 
 





8.3 Fungsi Tanggal
8.3.1
SQL  :    SELECT empno, hiredate, MONTHS_BETWEEN(SYSDATE,hiredate) TENURE,     ADD_MONTHS(hiredate,6) REVIEW, NEXT_DAY(hiredate,‘FRIDAY’), LAST_DAY(hiredate)FROM EMP WHERE MONTHS_BETWEEN(SYSDATE, hiredate)<200;
Penjabaran : Ambil data dari kolom empno, hiredate, tanggal mulai kerja dan sysdate, hiredate pada nama kolom TENURE, ditambahkan bulan bekrja sudah 6 bulan pada nama kolom REVIEW, hari berikutnya hiredate hari jum'at, hari terakhir kerja diambil dari kolom hiredate dari tabel EMP dimana bulan antara sysdate, hiredate adalah lebih kecil dari 200.
Hasil Percobaan :
 











8.3.2 Penggunaan Aritmatikan pada Fungsi Tanggal
SQL : SELECT ename,(sysdate-hiredate)/7 weeks from emp;
Penjabaran : Ambil data Pegawai pada Kolom Napeg yang masa kerjanya dihitung sesuai / Minggu  





Hasil Percobaan :






Gambar 8.4. Menampilkan nama pegawai dan jumlah hari kerja dari berapa minggu
 
 





8.4 Fungsi Konversi secara Eksplisit
SQL : SELECT ename, TO_CHAR(hiredate,’fmDdspth “of” Month YYYY fmHH:MI:SS AM’)FROM EMP;
Penjabaran : Ambil data dari kolom ename, kolom To_Char dari hiredate yang diformat ‘fmDD Month YYYY’ dari tabel EMP
Hasil Percobaan :





Gambar 8.5.Menampilkan nama dan tanggal mulai kerja yang terformat
 
                                  



8.5  Fungsi  NVL
SQL : SELECT ename, sal, comm, (sal*12)+NVL(comm,0) from emp;
Penjabaran : Ambil Data Kolom  ename, sal, comm yang Gajinya Dikalikan 12 dan Ditambah Dengan Komisi dari Tabel emp




Hasil Percobaan :
 















8.6 Fungsi  DECODE
SQL  :    SELECT job, sal, DECODE(job, ‘ANALYST’,sal*1.1,  ‘CLERK’,sal*1.15,‘MANAGER’,sal*1.2,SAL) REVISI_GAJI FROM EMP;
Penjabaran : Ambil Data Kolom Pekerjaan dan  Gaji, yang dicocokan dengan pekerjaan dan gajinya, kalau  “ANALYST” gajinya * 1.1 %, “CLERK” gajinya * 1.5%, “MANAGER” gajinya * 1,2%
Hasil Percobaan :
 













8.7 Fungsi Bersarang (Nested)
SQL : SELECT ename, NVL(TO_CHAR(mgr), ‘Tidak punya manager’) from emp where mgr 15 NULL;
Penjabaran : Ambil Data Kolom ename, NVL (To_Char dari kolom mgr yang Tidak Punya Manager dari tabel EMP dimana mgr adalah bernilai NULL
Hasil Percobaan :








Gambar 8.8. Menampilkan  pegawai yang tidak mempunyai ‘Manager’
 
 























BAB IX
ADVANCED QUERY : MENAMPILKAN DATA DARI BANYAK TABEL


            Pada bab ini kami akan menjelaskan tentang query yang fungsinya menampilkan data dari banyak tabel yaitu dengan perintah Join.
Join adalah  perintah query yang untuk mendapatkan data dari dua atau lebih table. Berikut penulisan syntaxnya.
SELECT table1.column, table2.column
FROM tabel1, tabel2
WHERE tabel1.column=table2.column;
Tipe Join di bagi menjadi 4 :
1.    Equi-join
Suatu tabel yang berelasi one to many dengan tabel lain, sehingga kolom yang menjadi PK akan menjadi FK pada tabel tersebut.
Ex. Pada tabel DEPT dan EMP

2.    Non-equijoin
Relasi antara dua table yang di mana kolom pada table pertama berkorespondensi langsung dengan kolom pada table kedua. Misal table EMP terdiri dari kolom empno, ename, sal. Dan table SALGRADE terdiri dari kolom grade, losal, hisal. Maka kolom sal pada table EMP berkorespondensi langsung dengan losal dan hisal pada table SALGRADE yang nantinya akan memberikan suatu nilai grade yang bersesuaian.

3.    Outer Join
Apabila terdapat baris yang tidak memenuhi kondisi join, dan akan ditampilkan pada hasil query,  maka digunakan outer join. Misal pada hasil query berikut, department ‘OPERATIONS’ tidak ditampilkan karena tidak memenuhi kondisi join yang disebutkan :




SQL : SELECT e.ename, e.deptno, d.name FROM EMP e, DEPT d Where e.deptno=d.deptno:
Hasilnya
ENAME    DEPTNO     DNAME
SMITH    20         RESEARCH

4.    Self Join
Apabila kita ingin mencari manager dari seorang pegawai maka table pegawai di-joinkan dengan table pegawai untuk mendapatkan nomer pegawai manager dan namanya.
SQL  :    SELECT e.ename PEGAWAI, m.ename MANAGER FROM EMP e, EMP m WHERE e.mgr=m.empno AND e.ename=’BLAKE’;
Hasilnya
PEGAWAI  MANAGER
BLAKE    KING


9.1 Cartesian Product
SQL : SELECT ename, dname FROM EMP, DEPT;
Penjabaran : Ambil Data Kolom ename, dname dari Tabel   EMP dan DEPT
Hasil Percobaan :





Gambar 9.1.Menampilkan nama pegawai dan nama department, tempat dimana pegawai tersebut bekerja

 
 






9.2 Equijoin
SQL : SELECT emp.empno, emp.ename, emp.deptno, dept.loc FROM emp, dept WHERE emp.deptno=dept.deptno
Penjabaran  : Ambil Data Kolom empno, ename, deptno, loc dari Tabel emp, dept  yang di mana Kolom deptno berada pada Tabel emp dan Tabel dept.
Hasil Percobaan :




Gambar 9.2.Menampilkan nomer pegawai, nama pegawai, nomer department, dan lokasi department

 
 



9.3 Menambahkan Kondisi Pencarian dengan Operator AND
SQL  : SELECT emp.empno, emp.ename, emp.deptno, dept.loc FROM
     EMP, DEPT WHERE EMP.deptno=dept.deptno AND INITCAP(ename)=’KING’;
Penjabaran    :    Ambil Data Kolom empno, ename, deptno, loc. yang di mana
                          Kolom deptno Berada pada Tabel emp dan Tabel dept dan INITCAP pada Kolom ename yang Mempunyai Nama KING.
Hasil Percobaan :






Gambar 9. 3.Tampilkan nomer pegawai, nama pegawai, nomer department, dan lokasi department dari pegawai yang bernama ‘King’

 
 


9.4 Non-equijoin
SQL  : SELECT e.ename, e.sal, s.grade FROM EMP e, SALGRADE s Where e.sal BETWEEN s.losal AND s.hisal
Penjabaran      :    Ambil data Kolom ename, sal, grade dari Tabel emp dan Tabel
                            Salgrade yang di mana pada Kolom sal berada diantara Kolom
                            losal dan hisal
Hasil Percobaan :






Gambar 9.4 .Tampilkan  nama  pegawai,  gaji  dan  grade  dari  gaji  pegawai tersebut (grade ada pada table SALGRADE).

 
 




9.5 Self Join
SQL : SELECT e.ename PEGAWAI, m.ename MANAGER FROM EMP e, EMP m Where e.mgr=m.empno AND e.ename=’BLAKE’;
Penjabaran    :    Ambil Data Kolom ename PEGAWAI, ename MANAGER dari Tabel emp yang di mana e adalah Kolom mgr, m Kolom empno dan Kolom ename yang Bernama BLAKE.
Hasil  Percobaan :





Gambar 9.5.Tampilkan nama manager dari pegawai yang bernama ‘BLAKE
 
 



BAB X
SUB QUERY PADA BARIS DAN KOLOM

            Subquery adalah, suatu perintah yang  digunakan untuk menampilkan  lebih dari satu baris atau kolom baik dalam satu tabel maupun lebih. Misal kita ingin membuat suatu query untuk mencari gaji pegawai yang lebih besar dari gaji yang dimiliki oleh pegawai bernama JONES’. Untuk memecahkan persoalan ini, kita membutuhkan dua query, satu query untuk  mencari gaji yang dimiliki oleh JONES dan query lain untuk mencari pegawai yang memiliki gaji lebih besar daripada gaji JONES. Inner  query  atau  subquery  akan  menghasilkan  suatu  nilai  yang  nantinya dipakai oleh outer query atau main query.
Sintak (cara penulisan) sub query :

Text Box: SELECT select_list FROM table WHERE expr operator
(SELECT select_list FROM table);

Subquery dapat ditempatkan dalam klausa SQL berikut :
1.     WHERE
2.     HAVING
3.     FROM















10.1     Sub Query pada Baris
10.1.1    Sub query
SQL  :    SELECT ename FROM EMP WHERE sal > (SELECT sal FROM EMP WHERE empno=7566);
Penjabaran    :    Ambi data Kolom ename dari Tabel EMP yang di mana pada Kolom sal lebih besar yang diambilkan  dari Tabel EMP yang di manaempno = 7566
Hasil Percobaan :







Gambar 10.1.Tampilkan nama pegawai yang memiliki gaji lebih besar daripada pegawai dengan nomer pegawai 7566
 
 





10.1.2  Single row subquery
SQL  :    SELECT ename, job FROM EMP WHERE job = (SELECT job FROM EMP where empno=7369);
Penjabaran    :    Ambil Data Kolom ename, job yang di mana Kolom job  diambilkan dari Data Pegawai pada Kolom empno = 7369
Hasil Percobaan :
 









10.1.3  Single row subquery dengan operator pembanding ( =, > )
SQL : SELECT ename, job FROM EMP WHERE job = (select job from emp where empno=7369) AND sal > (select sal from emp where empno=7876);
Penjabaran : Ambil data dari kolom ename, job dari table EMP dimana job sama dengan dan diambil job dari table EMP dimana empno=7369 dan sal lebih besar dan diambil sal dari table EMP dimana empno=7876).
Hasil Percobaan :
 










10.1.4 Penggunaan fungsi group dalam subquery
SQL : SELECT ename, job, sal FROM EMP WHERE sal = (SELECT MIN(sal)FROM EMP);
Penjabaran : Ambil Data Kolom ename, job, sal yang di mana Kolom sal yang Mempunyai Gaji Minimum dari Data Pegawai 
Hasil Percobaan :






Gambar 10.4. Menampilkan kolom ename, job, sal yang mempunyai gaji minimum
 
 



10.1.5 Penggunaan klausa having dalam subquery
SQL : SELECT deptno,MIN(sal)FROM EMP GROUP BY deptno HAVING MIN(sal) > (SELECT MIN(sal)FROM EMP WHERE deptno=20);
Penjabaran : Ambil data dari kolom deptno, sal terendah dari tabel EMP dikelompokkan berdasar deptno yang memiliki sal lebih besar daripada dan diambil sal terendah dari tabel EMP dimana deptno=20.
Hasil Percobaan :






Gambar 10.5.Menampilkan deptno, min(sal) dari tiap dept dimana deptno=20  
 
 




10.1.6 Penggunaan klausa having dalam subquery
SQL : SELECT job, AVG(sal) FROM EMP GROUP BY job HAVING AVG(sal) = (SELECT MIN(sal) FROM EMP GROUP BY job);
Penjabaran :   Ambil Data Kolom  job, yang rata-rata gajinya dikelompokkan pada Baris tertentu yang diambil gaji minimumnya pada Kolom Job
Hasil Percobaan :
 








10.1.7 Penggunaan operator in dalam multiple row subquery
SQL : SELECT ename, sal, deptno FROM EMP WHERE sal IN (SELECT MIN(sal) FROM EMP GROUP BY deptno);
Penjabaran : Ambil Data Kolom ename, sal, deptno yang di mana Kolom Gaji diambil dari Data Pegawai yang dikelompokkan pada Kolom deptno
Hasil Percobaan :







Gambar 10.7.Penggunaan Subquery dengan Operator IN
 
 




10.1.8 Penggunaan Operator ANY dalam Multiple Row Subquery
SQL : SELECT empno, ename, job FROM EMP WHERE sal < ANY (SELECT sal FROM EMP WHERE job=’CLERK’) AND job <> ‘CLERK’;
Penjabaran : Ambil data dari kolom empno, ename, job dari EMP dimana sal lebih kecil dari  banyak diambil kolom sal dari tabel EMP dimana kolom job='CLERK'  dan job <> 'CLERK'
Hasil Percobaan :







Gambar 10.8  Penggunaan Subquery dengan Operator ANY
 
 


10.1.9 Penggunaan operator all dalam multiple row subquery
SQL : SELECT empno, ename, job FROM EMP WHERE sal > ALL (SELECT AVG(sal) FROM EMP GROUP BY deptno);
Penjabaran : Ambil data dari kolom empno, ename, job dari tabel EMP dimana sal  lebih besar dari semua dan diambil rata-rata dari kolom sal dari tabel EMP dikelompokkan berdasarkan deptno.
Hasil Percobaan :
 








10.2  Sub Query Pada Kolom
10.2.1 Subquery dengan Banyak Kolom
SQL : SELECT ordid, prodid, qty FROM item WHERE (prodid, qty)IN (SELECT prodid, qty FROM item WHERE ordid=605) AND ordid <>605;
Penjabaran :
Hasil Percobaan :





Gambar 10.10  Penggunaan Subquery dengan Banyak Kolom
 
 


10.2.2
SQL : SELECT ordid, prodid, qty FROM item WHERE prodid IN (SELECT prodid FROM item WHERE ordid=605) AND qty IN (SELECT qty FROM item WHERE ordid=605) AND ordid<>605;
Penjabaran :
Hasil Percobaan :




Gambar 10.11  Penggunaan Subquery dengan Operator IN
 
 



10.2.3 Penggunaan subquery dalam klausa from
SQL :  SELECT a.ename, a.sal, a.deptno. b.salavg FROM EMP a, (SELECT deptno, AVG(sal)salavg FROM EMP GROUP BY deptno)b WHERE a.deptno=b.deptno AND a.sal>b.salavg;
Penjabaran :
Hasil Percobaan :






Gambar 10.12  Penggunaan Subquery dengan Operator IN
 
 


BAB XI
PENUTUP

A. Kesimpulan
            Setelah saya melaksanakan praktikum Basis Data Lanjut yang telah dimulai pada tanggal 13 November 2009 sampai 24 Desember 2009, saya yakin kalau hasil praktikum ini cukup puas karena dengan adanya praktikum ini saya sedikit mengatahui apa yang dimaksud data base, SQL dan Oracle, selain itu saya bisa menjalankan beberapa perintah query baik pada Isqlplus lewat cmd / Oracle Isqlplus Oracle yang sudah diterangkan pada modul praktikum yang sudah ada. Oleh karena itu dengan adanya praktikum ini sangatlah penting bagi Mahasiswa, sebab Mahasiswa bisa mengetahui sampai sejauh mana memahami materi yang sudah diajarkan sebelumnya.

B. Saran-saran
            Setelah menjalankan praktikum  ini  saya menyarankan dalam pembuatan Laporan Resmi Praktikum yang akan datang,  saya berharap kepada teman-teman TPL Angkatan 2007 Khususnya untuk kelas 2007 A lebih semangat lagi agar hasilnya bisa lebih baik dari Laporan Resmi Praktikum yang sekarang ini, sebab dalam Laporan Resmi  ini pembuatannya dihadapkan pada keterbatasan waktu yang ada dan mungkin dalam susunannya juga ada yang kurang baik sehingga Laporan Resmi ini bisa dikatakan kurang lengkap, maka dari itu waktu yang cukup banyak sangat mendukung hasil dari Laporan Resmi itu sendiri dan yang terpenting “ Janganlah sekali-kali menyepelekan waktu  yang seharusnya kita gunakan untuk mengerjakan Laporan ini, kita gunakan mengerjakan sesuatu yang tidak ada gunanya”.






DAFTAR PUSTAKA


Nugroho Adityo. 2009. Modul Praktikum Basis Data Lanjut. Tuban : Laboratorium Teknik Perangkat Lunak Unirow Tuban
















0 komentar:

Posting Komentar

SISTEM INFORMASI PEGAWAI BERBASIS WEB SMA YAYASAN WANITA KERETA API (YWKA) PALEMBANG DENGAN METODE RAPID APPLICATION DEVELOPMENT (RAD)

SISTEM INFORMASI PEGAWAI BERBASIS WEB SMA YAYASAN WANITA KERETA API (YWKA) PALEMBANG DENGAN METODE RAPID APPLICATION DEVELOPMENT (RAD) ...