library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2...

88
BAB 2 LANDASAN TEORI 2.1 Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu kumpulan data yang berhubungan secara logika dan secara deskripsi dari data-data yang dirancang untuk memenuhi kebutuhan informasi dalam suatu organisasi. Basis data menawarkan keuntungan penyimpanan data dengan format yang independen dan fleksibel. Hal ini dikarenakan basis data didefinisikan secara terpisah dari program aplikasi yang menggunakan basis data dan lingkup basis data dapat dikembangkan tanpa berdampak pada program-program yang menggunakan basis data tersebut. Penggunaan basis data yang mudah dipakai tidak lepas dari peranan komponen-komponen yang terkandung di dalamnya. Adapun komponen-komponen yang membentuk basis data adalah : 6

Transcript of library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2...

Page 1: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

BAB 2

LANDASAN TEORI

2.1 Basis Data

Menurut Connolly dan Begg (2010, p65), basis data adalah suatu kumpulan

data yang berhubungan secara logika dan secara deskripsi dari data-data yang

dirancang untuk memenuhi kebutuhan informasi dalam suatu organisasi. Basis data

menawarkan keuntungan penyimpanan data dengan format yang independen dan

fleksibel. Hal ini dikarenakan basis data didefinisikan secara terpisah dari program

aplikasi yang menggunakan basis data dan lingkup basis data dapat dikembangkan

tanpa berdampak pada program-program yang menggunakan basis data tersebut.

Penggunaan basis data yang mudah dipakai tidak lepas dari peranan

komponen-komponen yang terkandung di dalamnya. Adapun komponen-komponen

yang membentuk basis data adalah :

Field merupakan satuan unit terkecil dari data untuk disimpan pada sebuah

basis data. adapun tipe-tipe field secara umum adalah :

o Primary Key (PK) merupakan sebuah field yang paling umum

digunakan untuk mengidentifikasi record tunggal pada table dimana

Primary Key (PK) memiliki value yang berbeda antara satu record

dengan record lainnya. Contohnya adalah NIM yang secara unik

memiliki value yang berbeda antara satu record dengan record

lainnya yang terdapat pada table Mahasiswa.

o Foreign Key (FK) merupakan sebuah primary key suatu table yang

digunakan dalam table lain untuk mengidentifikasi record hubungan.

Contohnya adalah pada table Pembayaran, berisi foreign key NIM 6

Page 2: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

7

untuk mengidentifikasikan record yang terdapat pada table

Mahasiswa yang dihubungkan dengan table Pembayaran.

o Descriptive field merupakan field-field non-key yang menyimpan

data-data pendukung dari sebuah table. Contohnya adalah pada table

Mahasiswa, terdapat field Nama dan field Alamat.

Record merupakan kumpulan field yang dikelola dalam format yang

ditentukan. Contohnya adalah record Mahasiswa dideskripsikan dengan

kumpulan field yang berkaitan. Misalnya record Mahasiswa (NIM, Nama,

Alamat). Field NIM digaris bawahi karena merupakan primary key.

Table merupakan kumpulan record-record yang sama. Contohnya adalah

table Mahasiswa yang memiliki kumpulan record berisi data Mahasiswa.

Konsep logika basis data secara umum menggambarkan data yang tersimpan

dalam sebuah table. Beberapa data yang tersimpan dalam sebuah table memiliki

hubungan dengan data yang terdapat pada table lainnya.

Diagram yang dipakai untuk menggambarkan konsep logika basis data

adalah Entity Relationship Diagram (ERD). Penggunaan Entity Relationship

Diagram (ERD) dimungkinkan untuk memberikan kemudahan di dalam melakukan

pemodelan data, seperti yang disampaikan oleh Connolly dan Begg (2010, p473),

Entity Relationship Diagram (ERD) digunakan untuk menggambarkan hubungan

antara satu entitas dengan entitas yang lain. Sedangkan menurut Whitten dan Bentley

(2007, p271), Entity Relationship Diagram (ERD) adalah model data yang

menggunakan beberapa notasi untuk menggambarkan data dalam konteks entitas dan

hubungan yang dideskripsikan oleh data tersebut.

Page 3: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

8

Dari pengertian diatas, dapat disimpulkan bahwa Entity Relationship

Diagram (ERD) adalah model data yang menggunakan beberapa notasi untuk

menggambarkan hubungan antara satu entitas dengan entitas yang lain.

Adapun komponen-komponen yang membentuk Entity Relationship

Diagram (ERD) adalah :

Entitas merupakan kelompok orang, tempat, objek, kejadian, atau konsep

tentang apa yang diperlukan untuk menangkap dan menyimpan data.

Komponen dalam basis data yang mengacu kepada entitas adalah table.

Gambar 2.1 Contoh Entitas Mahasiswa

Pada gambar 2.1, terdapat entitas Mahasiswa dimana pada entitas tersebut

dapat mengandung banyak instance mahasiswa seperti : Thomas, Rudi, Kaka,

Sonia, dll. Dalam pemodelan data, peranan entitas Mahasiswa dipakai untuk

mengelompokkan kategori instance mahasiswa sehingga tidak perlu

mendeskripsikan tiap-tiap instance mahasiswa satu per satu.

Atribut merupakan sifat atau karakteristik deskriptif yang diidentifikasi untuk

disimpan ke dalam suatu entitas. Komponen dalam basis data yang mengacu

kepada atribut adalah record.

Page 4: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

9

Gambar 2.2 Contoh Atribut Pada Entitas Mahasiswa

Pada gambar 2.2, pada entitas Mahasiswa terdapat atribut NIM (Primary

Key), atribut Nama, dan atribut Alamat. Penggunaan atribut NIM, atribut

Nama, dan atribut Alamat dipakai untuk mengidentifikasikan bagian data

spesifik yang disimpan dari setiap instance mahasiswa.

Hubungan merupakan hubungan bisnis alami yang ada di antara satu atau

lebih entitas.

Gambar 2.3 Contoh Hubungan Antara Entitas Mahasiswa Dengan Entitas Pembayaran

Pada gambar 2.3, terdapat hubungan antara entitas Mahasiswa dengan entitas

Pembayaran. Atribut yang menghubungi antara entitas Mahasiswa dengan

entitas Pembayaran adalah NIM yang ditandai sebagai Foreign Key (FK)

oleh entitas Pembayaran.

2.2 Database Management System (DBMS)

Menurut Connolly dan Begg (2010, p66), Database Management System

(DBMS) adalah sebuah sistem perangkat lunak yang memungkinkan pengguna untuk

Page 5: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

10

mendefinisikan, membuat, memelihara dan mengatur kendali akses pada basis data.

Sedangkan menurut Hoffer, Prescott, dan Topi (2009,p49), Database Management

System (DBMS) adalah sebuah sistem perangkat lunak yang dipakai untuk membuat,

merancang, dan menyediakan kendali akses untuk pengguna basis data.

Dari pengertian di atas, dapat disimpulkan bahwa Database Management

System (DBMS) merupakan sistem perangkat lunak yang memiliki fungsi untuk

mendefinisikan, membuat, merancang, dan menyediakan kendali akses untuk

pengguna basis data. Inti dari Database Management System (DBMS) disebut

database engine. Database engine berguna untuk me-respons perintah-perintah

khusus untuk memanipulasi struktur basis data.

Adapun fasilitas-fasilitas umum yang dimiliki oleh sebuah Database

Management System (DBMS) :

Memungkinkan pengguna untuk melakukan proses Structured Query

Language (SQL). Proses Structured Query Language (SQL) secara umum

dipakai untuk mendefinisikan dan memanipulasi data untuk mendapatkan

hasil output yang dikehendaki, seperti yang disampaikan Connolly dan Begg

(2010, p184), Structured Query Language (SQL) adalah sebuah bahasa yang

dirancang dalam penggunaan relasi untuk mengubah input menjadi output

yang dikehendaki. Sedangkan menurut Ahmed et.al (2012, p85), Structured

Query Language (SQL) adalah sebuah bahasa yang meliputi operasi pada

table-table dan mengambil data-data spesifik dari media penyimpanan fisik.

Dari pengertian di atas, dapat disimpulkan bahwa Structured Query

Language (SQL) merupakan sebuah bahasa untuk mengoperasikan table-

table dalam penggunaan relasi untuk mengubah input dan output yang

dikehendaki.

Page 6: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

11

Secara garis besar, perintah Structured Query Language (SQL) dapat

dikelompokkan menjadi :

Data Definition Language (DDL) adalah perintah untuk mendefinisikan

struktur objek basis data seperti membuat table atau mengubah struktur table.

Ada lima jenis perintah Data Definition Language (DDL) yaitu:

o CREATE dipakai untuk membuat struktur objek basis data seperti

table, view, index, sequence, dan synonym. Perintah CREATE pada

umumnya digunakan untuk menentukan parameter – parameter yang

terdapat dalam struktur objek basis data.

CREATE Table

Sintaks penulisan CREATE Table :

CREATE TABLE TABLE_NAME (COLUMNNAME DATATYPE [DEFAULT EXPR][, ...]);

CREATE table merupakan perintah untuk membuat table baru.

Dalam penulisan CREATE table, pengguna menentukan nama

table, nama kolom, tipe data, dan size yang diinginkan.

Contoh penulisan CREATE Table :

CREATE TABLE EMPLOYEES (EMPLOYEE_ID NUMBER(2), LAST_NAME VARCHAR2(14));

CREATE View

Sintaks penulisan CREATE View :

CREATE [OR REPLACE] VIEW VIEW_NAME AS SUBQUERY;

CREATE view merupakan perintah untuk membuat view baru.

Dalam penulisan CREATE view, pengguna diwajibkan untuk

Page 7: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

12

mengisi SUBQUERY. Klausa SUBQUERY dalam sintaks

penulisan CREATE view merupakan perintah SELECT yang

berfungsi sebagai acuan untuk view yang di-create. Klausa OR

REPLACE digunakan untuk mengganti konten sebuah view yang

memiliki nama view yang sama dengan konten yang baru.

Penggunaan klausa OR REPLACE bersifat opsional.

Contoh penulisan CREATE View :

CREATE VIEW EMPVIEW10 AS SELECT EMPLOYEE_ID, LAST_NAME, SALARY FROM EMPLOYEES WHERE DEPARTMENT_ID = 10;

CREATE Index

Sintaks penulisan CREATE Index :

CREATE INDEX INDEX_NAME ON TABLE_NAME (COLUMN_NAME[, COLUMN_NAME]...);

CREATE index merupakan perintah untuk membuat index baru.

Pengguna diwajibkan untuk mengisi nama kolom yang ingin di-

index. Nama kolom yang di-index boleh lebih dari 1 asalkan berada

pada table yang sama.

Contoh penulisan CREATE Index :

CREATE INDEX ID_EMP ON EMPLOYEES (EMPLOYEE_ID);

CREATE Sequence

Sintaks penulisan CREATE Sequence :

CREATE SEQUENCE SEQUENCE_NAME [INCREMENT BY N] [START WITH N] [{MAXVALUE N | NOMAXVALUE}]

Page 8: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

13

[{MINVALUE N | NOMINVALUE}];

CREATE sequence merupakan perintah untuk meng-generate

angka-angka yang unik. Sequence pada umumnya dipakai untuk

membuat value sebuah primary key. Setiap huruf N merupakan

nominal angka yang dikehendaki. CREATE sequence terdiri dari

beberapa opsional:

- Klausa INCREMENT BY menunjuk kepada jumlah

penambahan angka yang dikehendaki ketika sebuah nilai di-

generate.

- Klausa START WITH menunjuk kepada angka pertama yang

di-generate.

- Klausa MAXVALUE menunjuk kepada batasan angka tertinggi

pada sequence yang di-create. Sebaliknya penggunaan klausa

NOMAXVALUE dipakai apabila pengguna tidak menghendaki

batasan untuk MAXVALUE.

- Klausa MINVALUE menunjuk kepada batasan angka terendah

pada sequence yang di-create. Sementara penggunaan

NOMINVALUE dipakai apabila pengguna tidak menghendaki

batasan untuk MINVALUE.

Contoh penulisan CREATE Sequence :

CREATE SEQUENCE DEPTID INCREMENT BY 10 START WITH 100 MAXVALUE 9999 MINVALUE 100 ;

Page 9: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

14

CREATE Synonym

Sintaks penulisan CREATE Synonym :

CREATE SYNONYM SYNONYM_NAME FOR OBJECT_NAME;

CREATE synonym dipakai untuk memberikan nama alias pada

sebuah objek basis data. Penggunaan synonym pada umumnya

dipakai untuk mempermudah pengguna dalam mengingat

penamaan objek basis data tanpa menghilangkan nama aslinya.

Contoh penulisan CREATE Synonym :

CREATE SYNONYM STAFF FOR EMPLOYEES;

o ALTER untuk mengubah struktur objek basis data seperti table dan

sequence. Secara umum, perintah ALTER table dapat dibedakan

menjadi tiga jenis, yaitu add (menambahkan struktur pada table),

modify (memodifikasi struktur pada table), dan drop (menghapus

struktur pada table).

ALTER Table (add)

Sintaks penulisan ALTER Table (Add) :

ALTER TABLE TABLE_NAME ADD (COLUM_NAME DATATYPE [DEFAULT EXPR] [, COLUMN_NAME DATATYPE]...);

ALTER table (add) dipakai untuk menambahkan kolom baru pada

sebuah table. Penambahan kolom baru akan diletakkan pada kolom

terakhir pada sebuah table.

Contoh penulisan ALTER table (add) :

ALTER TABLE PRODUK

Page 10: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

15

ADD (DISKON NUMBER(4,2) DEFAULT 0, KETERANGAN VARCHAR2(20));

ALTER Table (modify)

Sintaks penulisan ALTER Table (Modify) :

ALTER TABLE TABLE_NAME MODIFY (COLUM_NAME DATATYPE [DEFAULT EXPR] [, COLUMN_NAME DATATYPE]...);

ALTER table (modify) digunakan untuk mengubah struktur table.

Perubahan struktur table dapat dilakukan pada tipe data sebuah

kolom, size, dan default value.

Contoh penulisan ALTER Table (Modify) :

ALTER TABLE PRODUK MODIFY (DISKON DEFAULT 10);

ALTER Table (drop)

Sintaks penulisan ALTER Table (Drop) :

ALTER TABLE TABLENAME DROP COLUMN (COLUMNAME);

ALTER table (drop) digunakan untuk menghapus kolom pada

sebuah table. Penghapusan kolom biasanya dilakukan apabila

kolom tersebut sudah tidak diperlukan lagi.

Contoh penulisan ALTER Table (Drop) :

ALTER TABLE PRODUK DROP COLUMN KETERANGAN;

ALTER Sequence

Page 11: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

16

Sintaks penulisan ALTER Sequence :

ALTER SEQUENCE SEQUENCE_NAME [INCREMENT BY N] [START WITH N] [{MAXVALUE N | NOMAXVALUE}] [{MINVALUE N | NOMINVALUE}] ;

ALTER sequence dipakai untuk memodifikasi struktur yang

terdapat dalam sebuah sequence.

Contoh Penulisan ALTER Sequence :

ALTER SEQUENCE DEPTID INCREMENT BY 20 START WITH 150 MAXVALUE 55000 MINVALUE 150 ;

o DROP merupakan perintah untuk menghapus objek basis data yang

dikehendaki oleh pengguna seperti table, view, index, sequence, dan

synonym.

DROP Table

Sintaks penulisan DROP Table :

DROP TABLE TABLE_NAME;

DROP table dipakai untuk menghapus table yang sudah tidak

terpakai. Ketika melakukan DROP table, semua data dan struktur

dalam table akan dihapus. Selain itu, semua index yang terlibat

dalam table juga dihapus. Penggunaan rollback tidak dapat

dilakukan setelah table di-drop.

Contoh penulisan DROP Table :

DROP TABLE EMPLOYEES;

Page 12: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

17

DROP View

Sintaks penulisan DROP View :

DROP VIEW VIEW_NAME;

DROP view dipakai untuk menghapus view yang sudah tidak

terpakai. Penghapusan sebuah view tidak akan menghapus data

yang terdapat di dalam view. Hal ini disebabkan karena view hanya

merepresentasikan data yang terdapat dalam table.

Contoh penulisan DROP View :

DROP VIEW EMPVIEW10 ;

DROP Index

Sintaks penulisan DROP Index :

DROP INDEX INDEX_NAME ;

DROP index dipakai untuk menghapus index yang sudah tidak

terpakai.

Contoh penulisan DROP Index :

DROP INDEX ID_EMP;

DROP Sequence

Sintaks penulisan DROP Sequence :

DROP SEQUENCE SEQUENCE_NAME;

DROP sequence dipakai untuk menghapus sequence.

Contoh penulisan DROP Sequence :

DROP SEQUENCE DEPTID;

Page 13: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

18

DROP Synonym

Sintaks penulisan DROP Synonym :

DROP SYNONYM SYNONYM_NAME;

DROP synonym dipakai untuk menghapus synonym.

Contoh penulisan DROP Synonym :

DROP SYNONYM STAFF;

o TRUNCATE table merupakan perintah untuk menghapus data dan

membebaskan space pada suatu table.

Sintaks penulisan TRUNCATE Table :

TRUNCATE TABLE TABLE_NAME;

TRUNCATE table dipakai untuk menghapus semua baris dari

sebuah table. Perintah TRUNCATE table tidak dapat di-rollback.

Contoh penulisan TRUNCATE Table :

TRUNCATE TABLE EMPLOYEES;

o RENAME table untuk mengganti nama table. Penggunaan perintah

RENAME juga harus diikuti dengan penggunaan perintah ALTER.

Sintaks penulisan RENAME Table :

ALTER TABLE TABLE_NAME RENAME TO TABLE_NAME;

RENAME table dipakai apabila pengguna menghendaki perubahan

nama table.

Contoh penulisan RENAME Table :

ALTER TABLE DEPTS

Page 14: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

19

RENAME TO DEPARTMENTS;

Data Manipulation Language (DML) adalah perintah untuk melakukan

manipulasi data seperti menambah (INSERT), menghapus (DELETE), dan

mengubah data (UPDATE). Berikut jenis-jenis Data Manipulation Language

(DML) adalah :

o INSERT untuk menambah baris ke table. Penggunaan perintah

INSERT, secara umum harus menentukan nama table tempat data

akan dimasukkan, daftar kolom yang diisikan data, dan daftar nilai

yang akan dimasukkan ke dalam kolom.

Sintaks penulisan INSERT Table :

INSERT INTO TABLE_NAME [(COLUMN_NAME [, COLUMN_NAME...])] VALUES (VALUE [, VALUE...]);

Pada perintah INSERT, setiap kolom yang didefinisikan sebagai

NOT NULL, harus selalu diberi value. Untuk pengisian data type

CHAR, VARCHAR2, atau DATE, pengguna diwajibkan untuk

menggunakan tanda kutip tunggal.

Contoh penulisan INSERT Table :

INSERT INTO EMPLOYEES (ID_EMP, LAST_NAME) VALUES (1200, ‘ALEX’);

o DELETE untuk menghapus baris dari table. Penggunaan perintah

DELETE, secara umum harus menentukan nama table dan kondisi

data yang akan dihapus.

Sintaks penulisan DELETE Table :

DELETE [FROM] TABLE_NAME [WHERE CONDITION];

Page 15: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

20

Berbeda dengan penggunaan TRUNCATE table, DELETE table

tidak ikut serta menghapus space yang telah digunakan oleh data

sebelumnya. Selain itu, perintah DELETE table dapat di-rollback

sehingga apabila terjadi kesalahan dalam penghapusan table, maka

table dapat dikembalikan.

Contoh penulisan DELETE Table :

DELETE EMPLOYEES WHERE ID_EMP = 1200;

o UPDATE untuk mengubah data di table. Penggunaan perintah

UPDATE, secara umum harus menentukan nama table yang akan

dimodifikasi, kolom yang akan dimodifikasi, dan nilai dimasukkan

ke dalam kolom yang akan dimodifikasi.

Sintaks penulisan UPDATE Table :

UPDATE TABLE_NAME SET COLUMN_NAME = VALUE [, COLUMN_NAME = VALUE, ...] [WHERE CONDITION];

Ketika melakukan perintah UPDATE table, pengisian value terhadap

kolom yang ingin dimodifikasi harus memiliki data type yang sama

dengan value sebelumnya. Jika tidak, maka tidak dapat di-update

Contoh penulisan UPDATE Table :

UPDATE EMPLOYEES SET LAST_NAME = ‘BUDI’ WHERE ID_EMP = 1200;

o SELECT untuk menampilkan data dari table atau view. Perintah

SELECT secara sederhana terdiri dari dua klausa yaitu SELECT dan

Page 16: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

21

FROM. Klausa SELECT dipakai untuk menentukan kolom-kolom

yang akan ditampilkan, sedangkan klausa FROM menentukan nama

table atau view.

Sintaks penulisan SELECT :

SELECT *|{[DISTINCT] COLUMN_NAME|EXPRESSION [ALIAS],...} FROM [SCHEMA_NAME.]TABLE_NAME | VIEW_NAME [WHERE CONDITION] [GROUP BY GROUP_BY_EXPRESSION] [HAVING GROUP_CONDITION] [ORDER BY COLUMN_NAME] ;

Penulisan perintah SELECT meliputi klausa mandatory dan optional.

Klausa mandatory berupa SELECT dan FROM. Sedangkan klausa

optional berupa WHERE, GROUP BY, HAVING, dan ORDER BY:

- Klausa SELECT digunakan untuk menentukan kolom-kolom

yang ingin ditampilkan. Penggunaan * dipakai untuk memanggil

seluruh data yang terdapat dalam table atau view.

- Klausa FROM digunakan untuk menentukan nama table atau

view. Penggunaan schema_name berfungi untuk memanggil data

dari schema yang berbeda.

- Klausa WHERE digunakan apabila pengguna ingin menampilkan

data berdasarkan kriteria tertentu.

- Klausa GROUP BY digunakan untuk memuat kolom yang tidak

diberikan group function.

- Klausa HAVING digunakan untuk memberikan kondisi tertentu

kepada kolom yang diberi group function.

- Klausa ORDER BY digunakan untuk mengurutkan data

berdasarkan kolom tertentu.

Page 17: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

22

Contoh penulisan SELECT Table :

SELECT JOB_ID, SUM(SALARY) PAYROLL FROM EMPLOYEES WHERE EMPLOYEE_ID LIKE '%MARK%' GROUP BY JOB_ID HAVING SUM(SALARY) > 50000 ORDER BY SUM(SALARY);

o MERGE untuk menggabungkan data dari dua table. Perintah

MERGE secara umum merupakan kombinasi antara perintah

UPDATE dan INSERT. Untuk menggabungkan data dari dua table

maka harus terdapat kolom yang digunakan sebagai perantara antara

kedua table untuk memastikan apakah terdapat data-data yang sama

atau tidak. Apabila terdapat data-data yang sama, maka akan

dimodifikasi (UPDATE), sebaliknya apabila terdapat data-data yang

tidak sama maka data akan ditambahkan (INSERT) sebagai data

yang baru.

Sintaks penulisan MERGE Table :

MERGE INTO TABLE_NAME TABLE_ALIAS USING TABLE_NAME TABLE_ALIAS ON (JOIN CONDITION) WHEN MATCHED THEN UPDATE SET COL1 = COL_VAL1, COL2 = COL2_VAL WHEN NOT MATCHED THEN INSERT (COLUMN_LIST) VALUES (COLUMN_VALUES);

Penggunaan perintah MERGE terdiri dari beberapa klausa :

Page 18: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

23

- Klausa INTO digunakan untuk memilih table yang akan di-

merge. Penggunaan table_alias lebih baik digunakan untuk

mempersingkat penulisan table.

- Klausa USING digunakan untuk memilih table pembanding.

- Klausa ON digunakan untuk menampilkan kriteria untuk

membandingkan table pertama dengan table kedua.

- Klausa WHEN MATCHED dipakai untuk memodifikasi data

apabila terdapat kesamaan value antara kedua table. Data yang

terdapat dalam table pertama akan dimodifikasi berdasarkan data

pada table kedua.

- Klausa WHEN NOT MATCHED digunakan untuk

menambahkan data apabila tidak terdapat kesamaan value antara

kedua table. Data yang terdapat dalam table pertama akan

ditambahkan berdasarkan data pada table kedua.

Contoh penulisan MERGE Table :

MERGE INTO DEPTS D1 USING DEPARTMENTS D2 ON (D1.DEPT_ID = D2.DEPT_ID) WHEN MATCHED THEN UPDATE SET D1.DEPT_NAME = D2.DEPT_NAME WHEN NOT MATCHED THEN INSERT VALUES (D2.DEPT_ID, D2.DEPT_NAME);

Transaction Control Language (TCL) adalah perintah untuk menentukan

suatu transaksi apakah suatu perubahan data akan disimpan secara permanen

atau dibatalkan.

o COMMIT untuk menjadikan perubahan data disimpan secara

permanen.

Page 19: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

24

Sintaks penulisan COMMIT :

COMMIT ; Penggunaan COMMIT menghasilkan kondisi data sebelum di-

commit akan hilang secara permanen. Selain itu, semua perintah

SAVEPOINT yang berkaitan akan dihapus. Penggunaan COMMIT

juga menghasilkan status lock terhadap baris yang dipengaruhi akan

dicabut.

Contoh penulisan COMMIT :

DELETE FROM EMPLOYEES;COMMIT ;

o ROLLBACK untuk membatalkan suatu perubahan data.

Sintaks penulisan ROLLBACK :

ROLLBACK [TO SAVEPOINT SAVEPOINT_NAME] ;

Penggunaan ROLLBACK menghasilkan perubahan data di-undone.

Kondisi data sebelumnya akan dikembalikan. Selain itu, status lock

terhadap baris yang dipengaruhi akan dicabut.

Contoh penulisan ROLLBACK :

DELETE FROM EMPLOYEES;ROLLBACK;

o SAVEPOINT untuk menentukan tahapan-tahapan dalam melakukan

perubahan data sehingga apabila ada kesalahan, data dapat

dikembalikan ke tahapan tertentu. Perintah SAVEPOINT dapat

digunakan untuk mengontrol apakah sebuah transaksi sudah sesuai

dengan yang diharapkan sampai pada tahap tertentu.

Page 20: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

25

Sintaks penulisan SAVEPOINT :

SAVEPOINT SAVEPOINT_NAME ;

Penggunaan SAVEPOINT digunakan untuk mempermudah

pengguna dalam melakukan rollback. Apabila terdapat kesalahan di

dalam memanipulasi data, maka pengguna hanya perlu melakukan

rollback pada tahap tertentu saja tanpa perlu mengembalikan kondisi

mula-mula data sebelum dimanipulasi.

Contoh penulisan SAVEPOINT :

DELETE FROM DEPARTMENTS;SAVEPOINT TAHAP1;UPDATE EMPLOYEES SET LAST_NAME = ‘BUDI’ WHERE ID_EMP = 1200;SAVEPOINT TAHAP2;

Data Control Language (DCL) adalah perintah yang digunakan untuk

mengontrol izin akses pengguna pada basis data. Dua jenis privilege

pengguna yang terdapat pada Data Control Language (DCL) adalah system

privilege dan object privilege. System privilege memungkinkan diberikannya

hak akses pengguna untuk mengakses sistem basis data. Sedangkan object

privilege memungkinkan diberikannya hak akses pengguna untuk

memanipulasi data yang terdapat pada objek basis data.

o GRANT untuk memberikan izin tertentu pada pengguna.

GRANT System Privilege

Sintaks penulisan GRANT pada System Privilege :

GRANT PRIVILEGE_NAME [, PRIVILEGE_NAME...] TO USER_NAME [, USER_NAME| ROLE_NAME, PUBLIC...] [WITH ADMIN OPTION];

Page 21: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

26

Dalam penulisan GRANT system privilege, dapat ditambahkan

klausa WITH ADMIN OPTION sehingga jenis privilege yang

diberikan, dapat diberikan lagi kepada pengguna lain. Beberapa

jenis umum privilege yang terdapat dalam system privilege:

- CREATE SESSION merupakan izin yang diberikan untuk

melakukan login ke database.

- CREATE TABLE merupakan izin yang diberikan untuk

membuat table.

- CREATE ANY TABLE merupakan izin yang diberikan untuk

membuat table di schema user lain

- CREATE SEQUENCE merupakan izin yang diberikan untuk

membuat sequence.

- CREATE VIEW merupakan izin yang diberikan untuk

membuat view.

- CREATE INDEXTYPE merupakan izin yang diberikan untuk

membuat index.

Contoh penulisan GRANT pada System Privilege :

GRANT CREATE SESSION, CREATE TABLE TO HR;

GRANT Object Privilege

Sintaks penulisan GRANT pada Object Privilege :

GRANT OBJECT_PRIVILEGE_NAME [(COLUMNS_NAME)] ON OBJECT_NAME TO{USER_NAME|ROLE_NAME|PUBLIC} [WITH GRANT OPTION];

Dalam penulisan GRANT object privilege, dapat ditambahkan

klausa WITH GRANT OPTION sehingga jenis privilege yang

Page 22: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

27

diberikan, dapat diberikan lagi kepada pengguna lain. Beberapa

jenis umum privilege yang terdapat dalam object privilege :

- SELECT merupakan izin yang diberikan untuk melihat data.

- INSERT merupakan izin yang diberikan untuk melakukan insert

data.

- UPDATE merupakan izin yang diberikan untuk melakukan

update data.

- DELETE merupakan izin yang diberikan untuk menghapus

data.

- ALTER merupakan izin yang diberikan untuk mengubah

struktur table.

- INDEX merupakan izin yang diberikan untuk membuat index

berdasarkan kolom pada table.

Contoh penulisan GRANT pada Object Privilege :

GRANT SELECT, DELETE ON EMPLOYEES TO HR;

o REVOKE untuk menarik izin tertentu dari pengguna.

REVOKE System Privilege

Sintaks penulisan REVOKE pada System Privilege :

REVOKE PRIVILEGE_NAME [, PRIVILEGE_NAME...] FROM USER_NAME [, USER_NAME| ROLE_NAME, PUBLIC...];

Penggunaan REVOKE system privilege pada umumnya digunakan

apabila jenis privilege yang diberikan sudah tidak digunakan lagi.

Contoh penulisan REVOKE pada Sistem Privilege :

Page 23: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

28

REVOKE CREATE SESSION, CREATE TABLE FROM HR;

REVOKE Object Privilege

Sintaks penulisan REVOKE pada Object Privilege :

REVOKE {PRIVILEGE [, PRIVILEGE...]|ALL} ON OBJECT FROM {USER[, USER...]|ROLE|PUBLIC};

Penggunaan REVOKE object privilege digunakan apabila jenis

privilege yang diberikan sudah tidak digunakan lagi.

Contoh penulisan REVOKE pada Object Privilege:

REVOKE DELETE ON EMPLOYEES FROM HR;

Memungkinkan kendali akses pada basis data. Penerapan kendali akses

memungkinkan tingkat perlindungan data yang optimal karena membatasi

ruang gerak bagi pengguna dan meminimalisir resiko kehilangan data.

Komponen-komponen pada lingkungan Database Management System

(DBMS) :

Perangkat keras adalah perangkat yang dipakai untuk menjalankan Database

Management System (DBMS). Perangkat keras merupakan semua bagian fisik

dari komputer. Perangkat keras dapat berjarak dari single personal computer,

single mainframe, dan pada sebuah jaringan dari beberapa komputer.

Semakin baik kualitas yang diberikan oleh perangkat keras, maka semakin

baik performa Database Management System (DBMS).

Perangkat lunak adalah bagian dari sistem komputer yang tidak berwujud.

Komponen dari perangkat lunak meliputi Database Management System

Page 24: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

29

(DBMS) itu sendiri dan program-program aplikasi lainnya yang mendukung

suatu Database Management System (DBMS) dan juga termasuk jaringan

perangkat lunak. Program aplikasi tambahan yang dipakai dalam lingkungan

Database Management System (DBMS) mampu mendukung fungsionalitas

Database Management System (DBMS) menjadi lebih beragam.

Data adalah salah satu komponen utama dalam lingkungan Database

Management System (DBMS). Data merupakan representasi penyimpanan

dari objek dan kejadian yang memiliki pengertian dan kepentingan dalam

lingkup pengguna. Data juga merupakan jembatan yang menghubungi

Database Management System (DBMS) dengan manusia.

Procedure adalah komponen yang mengacu pada petunjuk dan aturan yang

mengatur rancangan dan penggunaan basis data. Procedure merupakan

sebuah manual book yang secara tepat digunakan sebagai pedoman dalam

merancang dan menggunakan basis data. Penggunaan procedure yang tepat

mampu meningkatkan aplikasi Database Management System (DBMS)

menjadi lebih optimal.

Manusia adalah komponen yang bertugas untuk menggerakkan sistem.

Manusia merupakan salah satu komponen utama dalam lingkungan Database

Management System (DBMS). Hal ini disebabkan karena tanpa perantara

manusia, proses interaksi antara manusia dengan komputer tidak akan

terwujud.

Beberapa keuntungan yang terdapat pada Database Management System

(DBMS) :

Page 25: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

30

Memampukan untuk mengontrol redudansi data. Database Management

System (DBMS) mengurangi redudansi data dengan mengintegrasikan file-file

yang ada sehingga data-data yang sama tidak akan disimpan.

Data yang konsisten. Resiko terhadap data yang tidak konsisten akan

dikurangi dengan cara mengeliminasi data-data yang redundan. Dengan

mengeliminasi data-data yang redundan, tingkat akurasi data menjadi lebih

baik.

Memampukan untuk memperoleh informasi tambahan dari jumlah data yang

sama. Informasi tambahan dapat diperoleh dengan mengintegrasikan data-

data operasional. Melalui proses terintegrasi, data-data akan terbentuk

menjadi pola tertentu sehingga munculnya informasi tambahan.

Memampukan untuk meningkatkan data integrity (constraint). Constraint

secara umum digunakan membatasi aturan secara konsisten sehingga

meningkatkan tingkat validitas dan konsistensi data yang tersimpan. Basis

data tidak diperbolehkan untuk dirubah apabila melanggar aturan yang

ditetapkan. Penggunaan Constraint memungkinkan tingkat validitas data

menjadi lebih tinggi.

Memampukan untuk meningkatkan keamanan data. Keamanan data adalah

bentuk perlindungan basis data dari pengguna yang tidak memiliki hak akses.

Tanpa tingkat keamanan yang tepat, integrasi membuat data menjadi lebih

rapuh.

Memampukan untuk mengurangi pengeluaran. Kombinasi dari seluruh data-

data operasional yang disimpan ke dalam satu basis data dan penggunaan satu

set aplikasi yang bekerja pada satu sumber data dapat mengurangi biaya

operasional.

Page 26: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

31

Memampukan untuk menyeimbangkan perbedaan kebutuhan pengguna.

Melalui Database Management System (DBMS), Database Administrator

(DBA) dapat merancang kebutuhan operasional dari pengguna sehingga

memberikan kemudahan bagi pengguna secara keseluruhan.

Memampukan untuk meningkatkan concurrency. Database Management

System (DBMS) mengatur akses basis data secara berkesinambungan dan

memastikan permasalahan tidak terjadi.

Memampukan untuk meningkatkan proses backup dan recovery. Database

Management System (DBMS) menyediakan fasilitas untuk meminimalisir

jumlah proses yang dapat menyebabkan kegagalan.

Beberapa kerugian yang terdapat pada Database Management System

(DBMS) :

Tingkat kompleksitas yang tinggi. Seluruh pengguna harus mengetahui

secara tepat fungsi-fungsi yang terdapat dalam Database Management

System (DBMS) sehingga dapat memperoleh manfaat secara maksimal.

Kapasitas size yang diperlukan semakin besar. Tingkat kerumitan dan

banyaknya fungsi yang ada menyebabkan Database Management System

(DBMS) memerlukan banyak perangkat lunak pendukung yang

mengakibatkan penambahan tempat penyimpanan dan memori untuk

menjalankan Database Management System (DBMS) secara efisien.

Biaya pada Database Management System (DBMS). Penggunaan Database

Management System (DBMS) sesuai dengan kebutuhan menghasilkan

pengeluaran biaya yang beragam. Semakin besar fungsionalitas yang

digunakan pada Database Management System (DBMS), maka pengeluaran

menjadi semakin besar.

Page 27: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

32

Biaya pada perangkat keras tambahan. Database Management System

(DBMS) dapat bekerja dengan baik apabila kebutuhan pada media

penyimpanan data sudah terpenuhi, oleh sebab itu diperlukan media

penyimpanan data yang besar untuk dapat bekerja dengan baik.

Biaya pada konversi. Biaya tambahan diperlukan untuk melatih pengguna

untuk menggunakan sistem yang baru sehingga memungkinkan untuk

mengkonversi dan menjalankan sistem yang baru.

Penurunan performa pada aplikasi tertentu. Secara umum, Database

Management System (DBMS) digunakan untuk menjalankan banyak aplikasi

sehingga memungkinkan adanya penurunan performa pada aplikasi tertentu.

Tingkat kerusakan yang lebih tinggi. Database Management System (DBMS)

merupakan sistem yang terpusat. Apabila terdapat kerusakan pada bagian

manapun dari Database Management System (DBMS), akan menyebabkan

operasi terhenti.

2.3 Struktur Dasar Basis Data Oracle

Menurut Rani, Singh, dan Sharma (2011, p532), basis data Oracle

merupakan sebuah kombinasi antara Oracle instance dan data file yang terdapat

pada file system. Oracle instance merupakan keseluruhan proses-proses sistem pada

basis data. Sedangkan data file adalah file fisikal yang dipakai untuk menyimpan

data pengguna maupun data pada objek basis data. Basis data Oracle menawarkan

fitur-fitur berbasis object-oriented antara lain :

User defined data type merupakan data type yang didefinisikan sendiri oleh

pengguna.

Method adalah penggunan programming language yang terdapat pada

PL/SQL.

Page 28: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

33

Collection type adalah type-type seperti array type atau table type.

Large object seperti Character Large Object (CLOB), Binary Large Object

(BLOB), dan Binary File (BFILE).

Basis data Oracle memiliki struktur-struktur dalam mengelola basis datanya.

Struktur dasar basis data Oracle secara umum dapat dibagi menjadi struktur logikal,

struktur fisikal, dan struktur memori.

Struktur logikal Oracle menggunakan sejumlah struktur-struktur logikal

sebagai building block yang secara umum terdiri dari empat macam, yaitu :

data block, extent, segment, dan tablespace.

o Data block merupakan sebuah dasar dari seluruh penyimpanan basis

data dalam sebuah basis data Oracle. Data block pada Oracle disebut

juga logical block atau page. Ukuran default pada data block sebesar

8 kb.

o Extent merupakan unit pada alokasi space yang meliputi dua atau

lebih data block. Extent mengacu kepada data-data yang terdapat

dalam objek basis data.

o Segment merupakan unit untuk mengalokasikan struktur logikal

seperti sebuah table atau index (atau objek basis data lainnya) yang

mencakup dua atau lebih extent.

o Tablespace mencakup satu atau beberapa data file dan pada

umumnya mengandung segment-segment yang berhubungan.

Struktur fisikal Oracle terdiri dari tiga jenis :

o Data file merupakan file yang digunakan untuk menyimpan data

user, data table dan data index.

Page 29: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

34

o Control file merupakan file yang merekam perubahan pada semua

struktur basis data. Control file merupakan daftar isi dari physical file

basis data.

o Redo log file merupakan file yang mengandung perubahan yang

dibuat pada data dalam table. Redo log file dipakai untuk menyimpan

semua informasi yang berguna untuk me-recovery basis data apabila

terjadi crash.

Struktur memori Oracle terbagi menjadi dua jenis:

o System Global Area (SGA) adalah bagian dari memory yang

merupakan daerah shared memory. Komponen-komponen utama

System Global Area (SGA):

Database buffer cache digunakan untuk menyimpan salinan

dari data files.

Shared pool menyimpan nilai-nilai dari perintah SQL yang

dilakukan oleh pengguna yang mengandung library cache

untuk menyimpan kode SQL dan PL/SQL yang pernah

diakses dan mengandung data dictionary cache untuk

menyimpan informasi data dictionary.

Redo log buffer mengandung informasi yang diperlukan

untuk merekonstruksi perubahan yang dibuat pada basis data

dari operasi Data Manipulation Language (DML).

Java pool digunakan untuk ketika semua session

menggunakan java code dan data dalam Java Virtual

Machine (JVM).

Page 30: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

35

Large pool menyimpan alokasi memory yang besar untuk

menyimpan data tertentu.

Streams pool digunakan untuk mendukung fitur Oracle

stream seperti Large Object (LOB).

o Program Global Area (PGA) adalah bagian dari memori yang

memegang data dan informasi untuk pengguna individu. Program

Global Area (PGA) dapat dibedakan menjadi dua tipe :

Private SQL area adalah area pada memori yang menyimpan

informasi variabel SQL dan stuktur memori secara runtime.

Runtime area dibuat ketika pengguna melakukan perintah

Data Manipulation Language (DML).

Pada struktur memori Oracle terdapat dua proses utama yaitu server process

dan backgorund process :

o Server process adalah proses yang dipakai untuk melayani aktivitas

pengguna kepada basis data secara individual. Masing-masing

pengguna memiliki server process yang berbeda antara yang satu

dengan yang lainnya.

o Background process adalah proses yang memungkinkan sejumlah

besar pengguna untuk menggunakan informasi yang disimpan dalam

basis data secara bersama-sama. Beberapa proses umum yang

terdapat dalam background process :

System Monitor (SMON) dipakai untuk mengawasi

keseluruhan instance dan menjalankan recovery apabila

kegagalan pada instance.

Page 31: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

36

Process Monitor (PMON) dipakai untuk memeriksa seluruh

proses yang dilakukan pengguna dan membersihkan proses

yang telah selesai atau gagal.

Database Writer (DBWn) dipakai untuk menulis perubahan

data dari database buffer cache ke data file.

Checkpoint (CKPT) dipakai untuk memperbarui semua data

file untuk mencatat detail checkpoint.

Log Writer (LGWR) dipakai untuk menulis isi redo log buffer

ke online redo log file.

Archiver (ARCn) dipakai untuk menyimpan isi yang terdapat

pada online redo log file.

2.4 Schema Oracle

Menurut Alapati (2009, p20), schema adalah sekumpulan objek basis data

yang berhubungan yang merupakan bagian dari struktur basis data logikal pada

sebuah basis data Oracle. Struktur schema dideskripsikan dalam database

management system (DBMS) dan secara umum disimpan di dalam data dictionary.

Schema sering digunakan untuk merujuk pada suatu gambaran grafis dari struktur

basis data. Dengan kata lain, schema merupakan struktur pada basis data yang

mendefinisikan objek basis data. Komponen–komponen pada schema Oracle secara

umum:

Table merupakan objek basis data yang digunakan untuk menyimpan data

aplikasi. Sebuah table merupakan sekumpulan elemen-elemen data yang

dikelompokkan dengan menggunakan model dua dimensi, yaitu baris dan

kolom.

Page 32: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

37

Index merupakan objek basis data yang berfungsi untuk mempercepat

pencarian data. Index dapat dibuat menggunakan satu atau lebih kolom-

kolom pada table basis data.

View merupakan objek basis data yang berupa pendefinisian query yang

mengakses ke satu atau beberapa table. View terdiri dari query yang disimpan

dalam sebuah table virtual. Perubahan data pada table fisik yang menjadi

acuan sebuah view akan secara otomatis mengubah data di dalam view.

Sequence adalah objek basis data yang dipakai untuk meng-generate nomor

urut yang unik.

Synonym digunakan untuk memberi nama alias pada suatu objek.

Function merupakan objek basis data yang berisikan perintah SQL atau

PL/SQL yang dipakai bersama-sama untuk mengeksekusi fungsi tertentu dan

selalu diperlukan pengembalian nilai.

Procedure adalah objek basis data yang berisikan perintah SQL atau PL/SQL

yang dipakai bersama-sama untuk mengeksekusi fungsi tertentu dan tidak

diperlukan pengembalian nilai.

Package adalah objek basis data yang secara umum terdiri dari beberapa

function dan procedure yang berhubungan.

Trigger adalah objek basis data yang dipanggil ketika ada kejadian tertentu.

Trigger merupakan kode prosedural yang secara dieksekusi secara otomatis

ketika merespon kejadian pada table atau view tertentu dalam basis data.

Trigger secara umum digunakan untuk memelihara integritas informasi pada

basis data.

Page 33: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

38

2.5 Proses Query Oracle

Proses query Oracle merupakan proses transformasi SQL statement ke dalam

execution plan yang efisien untuk mengembalikan data yang dieksekusi dari basis

data. Tahap-tahap proses eksekuser ketika SQL statement dipanggil :

Parsing adalah proses parsing mengecek sintaks dan semantik pada SQL

statement. SQL statement diurai ke dalam query relational algebra untuk

melihat apakah penulisan sintaksnya tepat atau tidak. Proses parsing

memiliki 2 jenis yaitu :

o Hard parsing adalah proses parsing yang operasinya melibatkan disk.

Hard parsing dilakukan apabila tidak ditemukan kecocokan struktur

SQL di shared pool. Operasi hard parsing membutuhkan resource

yang lebih besar karena semua operasi yang terlibat dalam proses

parsing dijalankan.

o Soft parsing adalah proses parsing yang operasinya tidak melibatkan

disk. Soft parsing dilakukan apabila ditemukan kecocokan struktur

SQL di shared pool sehingga SQL statement dijalankan kembali tanpa

memerlukan resource sebesar hard parsing.

Optimization adalah proses untuk memilih access method untuk memanggil

data berdasarkan query yang digunakan. Access method merupakan jalan

yang dipilih optimizer dalam mengakses data untuk memilih query yang

paling efisien, seperti yang disampaikan Mahjour dan Sohafi (2012, p284),

optimization merupakan proses untuk memilih evaluasi query plan yang

paling efisien dari beberapa strategi yang ada. Proses optimization

memungkinkan optimizer untuk mengambil informasi mengenai type, length,

dan statistik mengenai referensi hubungan dan access method yang tersedia.

Page 34: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

39

Setelah itu, optimizer mempertimbangkan setiap query block dan memilih

plan untuk block tersebut. Proses optimization merupakan proses yang paling

penting karena dipakai untuk menjabarkan seberapa cepat data akan

dipanggil. Dua jenis pendekatan optimization yaitu Rule Based Optimizer

(RBO) dan Cost Based Optimizer (CBO). Rule Based Optimizer (RBO)

merupakan pendekatan optimization yang selalu mengikuti aturan terdefinisi

untuk memilih access method yang digunakan. Sedangkan Cost Based

Optimizer (CBO) merupakan pendekatan optimization yang menggunakan

statistik untuk memilih access method yang berfokus pada nilai cost terkecil.

Pendekatan optimization yang digunakan pada penelitian ini menggunakan

Cost Based Optimizer (CBO). Cost Based Optimizer (CBO) menggunakan

beberapa parameter dasar :

o Current queue length adalah waktu tunggu yang diperlukan untuk

menunggu atau menjalankan eksekusi pada server. Semakin kecil

waktu tunggu, maka semakin kecil cost yang digunakan.

o Server distance mengacu kepada jarak geografis pada server dari

klien yang bersangkutan. Semakin dekat dengan server, maka

semakin kecil cost pada fetch data.

o Server capacity merupakan jumlah proses yang menjalankan server

tanpa mengganggu fungsionalitas pada server.

o Load merupakan rasio angka yang diminta server untuk total

kapasitas permintaan yang bisa ditangani oleh server. Parameter ini

memungkinkan untuk menyeimbangkan konten pada masing-masing

server.

Page 35: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

40

Execution adalah proses untuk mengeksekusi query yang dipanggil. Jika

statement dalam bentuk select, maka data yang dipanggil akan dikembalikan

kepada pengguna. Jika statement dalam bentuk insert, update, delete, maka

data akan dimodifikasi.

Fetching adalah proses dimana Oracle harus mengembalikan data yang di-

request oleh pengguna. Proses fetching hanya dipakai apabila pengguna

melakukan perintah SELECT.

2.6 Index

Menurut Connolly dan Begg (2010, p242), index merupakan struktur yang

menyediakan akses kepada baris-baris dari table berdasarkan nilai pada satu kolom

atau lebih. Sebuah index menyimpan nilai dari kolom yang di-index dengan physical

RowID pada record yang memiliki nilai dari index tersebut. Apabila terdapat

kesamaan antara nilai pencarian dengan nilai pada index, RowID pada index akan

menunjuk ke suatu lokasi baris di dalam table.

Adapun jenis-jenis umum index pada Oracle adalah sebagai berikut :

B-tree index adalah index dengan bentuk pada binary tree dan merupakan

tipe default pada index. Key value pada b-tree index disimpan dalam balance

tree (B-tree) yang menghasilkan pencarian data secara cepat.

Page 36: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

41

Gambar 2.4 Struktur Internal Pada B-tree Index

(Sumber : Oracle Database Concepts 10g Release 2 (10.2))

Pada gambar 2.4, Branch blocks merupakan level blocks teratas pada b-tree

index yang dipakai untuk melakukan proses pencarian. Branch Blocks

mengandung awalan key minimum yang diperlukan untuk membuat

keputusan percabangan antara key-key. Selain itu, Branch blocks juga

merupakan pointer yang memiliki key untuk menunjuk pada level index blok

di bawahnya. Sedangkan leaf blocks merupakan level block terbawah yang

menyimpan setiap key value pada data yang di-index dan RowID yang

dipakai untuk mengalokasikan kepada baris sesungguhnya.

Sintaks penulisan B-tree Index :

CREATE INDEX INDEX_NAME ON TABLE_NAME (COLUMN_NAME[, COLUMN_NAME]...);

Ketika melakukan CREATE index, jumlah kolom yang di-index boleh lebih

dari 1. Penggunaan Index yang memiliki lebih dari 1 kolom disebut dengan

composite index.

Page 37: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

42

Contoh penulisan B-tree Index :

CREATE INDEX ID_PERSONON PERSON (ID_PERSON);

Bitmap index adalah index yang menyimpan data dengan bit array (bitmap)

untuk menandai kolom yang dibuatkan index. penggunaan bitmap index

cocok dipakai untuk kolom yang tingkat keragamannya rendah misalnya

seperti kolom jenis kelamin yang datanya berupa pria dan wanita. Penerapan

pengkodean bitmap index secara umum menggunakan basic (equality)

encoding dan range encoding. Penggunaan basic (equality) encoding efisien

apabila dipakai untuk query yang hanya mengandung kondisi = pada klausa

WHERE. Sedangkan penggunaan range encoding efisien apabila dipakai

untuk query yang mengandung large-range query seperti >= atau <= pada

klausa WHERE. Bitmap index menggunakan bin dimana dipakai untuk

mempartisi data.

Gambar 2.5 Contoh Bitmap Pada Sebuah Table Yang Memiliki 2 Atribut (Sumber : Canahuate,G(2009). Enhanced Bitmap Indexes for Large Scale Data

Management. United States: Program Doctoral Ohio State University)

Pada gambar 2.5, digambarkan ilustrasi sebuah table yang memiliki 2 atribut

dimana masing-masing atribut memiliki 3 bin. Setiap nilai yang ditemukan

dalam sebuah bin, maka bin akan ditandai dengan angka 1. Sedangkan

Page 38: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

43

apabila tidak ditemukan, maka bin akan ditandai dengan angka 0. Pada basic

(equality encoding), nilai pada tuple (baris) T1 ditemukan pada bin pertama

dalam atribut 1 dan bin ketiga dalam atribut 2. Setiap tuple memiliki binary

number setelah melakukan proses binning seperti tuple t1 = 100001 dan t3 =

100100. Pada range encoding, bin terakhir pada setiap atribut tidak perlu

disimpan karena selalu ditandai dengan angka 1. Binary number pada tuple t1

adalah 1100 dan t3 adalah 1111.

Sintaks penulisan Bitmap Index :

CREATE BITMAP INDEX INDEX_NAME ON TABLE_NAME (COLUMN_NAME[, COLUMN_NAME]...);

Ketika menulis Bitmap Index, diwajibkan untuk menambahkan klausa

BITMAP setelah klausa CREATE.

Contoh penulisan Bitmap Index :

CREATE BITMAP INDEX JENIS_KELAMIN ON PERSON(JENIS_KELAMIN);

Menurut Alapati (2009, p301), adapun perbedaan antara b-tree index dengan

bitmap index adalah sebagai berikut:

Tabel 2.1 Tabel Perbandingan B-tree Index Dan Bitmap IndexB-tree index Bitmap indexBaik untuk tingkat keragaman data yang tinggi

Baik untuk tingkat keragaman data yang rendah

Baik untuk Online Transaction Processing (OLTP)

Baik untuk aplikasi Data Warehouse

Menggunakan jumlah space yang besar

Menggunakan jumlah space yang relatif kecil

Mudah untuk di-update Sulit untuk di-update

Page 39: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

44

Adapun beberapa alternatif jenis index lainnya :

Unique index merupakan index yangmana setiap nilai pada kolom yang

dilakukan index bersifat unik.

Sintaks penulisan Unique Index :

CREATE UNIQUE INDEX INDEX_NAME ON TABLE_NAME (COLUMN_NAME[, COLUMN_NAME]...);

Ketika menulis Unique index, diwajibkan untuk menambahkan klausa

UNIQUE setelah klausa CREATE.

Contoh penulisan Unique Index :

CREATE UNIQUE INDEX EMPLOYEE_ID ON EMPLOYEES(EMPLOYEE_ID);

Reverse key index adalah index yang digunakan untuk membalikkan key

value sebelum value dimasukkan ke dalam index. Misalnya jika nilai pada

key index adalah “13579”, maka nilai pada reverse key index adalah “97531”.

Kelebihan pada reverse key index adalah mampu menghindari kecenderungan

data yang banyak pada satu bagian tertentu.

Sintaks penulisan Reverse Key Index :

CREATE INDEX INDEX_NAME ON TABLE_NAME (COLUMN_NAME[, COLUMN_NAME]...) REVERSE;

Ketika menulis Reverse key index, diwajibkan untuk menambahkan klausa

REVERSE pada akhir penulisan.

Contoh penulisan Reverse Key Index :

Page 40: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

45

CREATE INDEX EMPLOYEE_ID ON EMPLOYEES(EMPLOYEES_ID) REVERSE;

2.7 Tuning Basis Data

Menurut Chan dan Ashdown (2012, pp1-2), tuning basis data adalah kegiatan

mengindetifikasi masalah yang paling signifikan dan melakukan perubahan-

perubahan yang tepat untuk mengurangi atau mengeliminasi pengaruh dari masalah

yang bersangkutan. Sedangkan menurut Whalen (2004, p4), tuning basis data

merupakan kegiatan memodifikasi dan mengatur kembali sebuah sistem untuk

mencapai performa yang lebih baik.

Dari pengertian di atas, dapat disimpulkan bahwa tuning basis data adalah

usaha mengidentifikasi masalah yang paling signifikan,memodifikasi, dan mengatur

kembali sebuah sistem untuk mencapai performa yang lebih baik.

Menurut Alapati (2009, p1042), terdapat beberapa jenis tuning basis data

untuk meningkatkan kinerja pada sistem basis data Oracle. Adapun jenis-jenis

tuning basis data tersebut adalah:

SQL Tuning merupakan proses untuk memanipulasi kode SQL sehingga

menghasilkan proses eksekusi query akan berjalan lebih cepat dan tidak

memerlukan beban kerja yang besar.

Memory Tuning merupakan proses pengaturan ukuran memori secara tepat

untuk mengoptimalkan proses soft parsing sehingga resource yang

diperlukan menjadi lebih kecil.

Disk I/O Tuning merupakan metode tuning dengan melakukan penempatan

data file pada disk secara tepat sehingga memampukan untuk

Page 41: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

46

menyeimbangkan load. Hal ini digunakan untuk mempermudah akses data

file tersebut sehingga tidak diperlukan resource yang besar.

Contention Tuning merupakan metode tuning dengan melakukan pengaturan

latch dan wait event. Contention terjadi karena ada proses yang berjalan

dengan proses lain pada resource yang sama secara berkesinambungan. Oleh

sebab itu, dengan mengatur latch dan wait event, maka akan meningkatkan

performa pada basis data.

Adapun manfaat melakukan tuning pada basis data adalah :

Memampukan penurunan ukuran dari konfigurasi perangkat keras yang

diperlukan sehingga dapat menurunkan biaya pengadaan perangkat keras,

dan oleh sebab itu dapat menurunkan biaya maintenance bagi perangkat

keras.

Mampu meminimalisasi penambahan perangkat keras. Hal ini disebabkan

karena melalui proses tuning, dapat mengurangi penggunaan sumber daya

sehingga tidak perlu dilakukan penambahan perangkat keras.

Memampukan waktu respon yang lebih cepat sehingga menghasilkan

peningkatan produktifitas bagi pengguna maupun organisasi. Waktu respon

yang lebih cepat menghasilkan proses bisnis menjadi lebih efektif sehingga

terjadi peningkatan produktifitas.

Meningkatkan moral kerja pegawai perusahaan karena meningkatnya waktu

respon. Waktu respon yang meningkat memungkinkan tercapainya tingkat

kepuasan pengguna yang lebih baik.

Meningkatkan kepuasan pelanggan karena meningkatnya waktu respon.

Kinerja yang cepat karena meningkatnya waktu respon secara tidak langsung

juga mempengaruhi kepuasan pelanggan.

Page 42: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

47

Pada penelitian ini, pendekatan tuning yang dilakukan untuk meningkatkan

kinerja basis data adalah menggunakan SQL Tuning. SQL Tuning merupakan

tindakan optimalisasi query dengan memilih strategi eksekusi yang paling efisien

dalam mengeksekusi sebuah query. Secara umum, pengukuran query yang efisien

adalah melalui pengukuran cost dan pengukuran execution time.

Cost merupakan pendekatan pada query optimizer dimana nilai yang terdapat

pada cost merupakan sebuah ukuran relatif yang dihasilkan oleh basis data

Oracle untuk mewakili jumlah work yang diperlukan untuk menjalankan

proses transaksi. Jumlah total cost dari semua langkah pada explain plan

merepresentasikan besaran nilai cost yang dibutuhkan untuk mengeksekusi

sebuah query. Nilai pada cost terbagi menjadi dua jenis yaitu CPU cost dan

I/O cost. Nilai pada cost tidak ditentukan oleh operasi pengaksesan pada

table.

o CPU cost merupakan nilai yang sebanding dengan jumlah siklus

mesin yang dibutuhkan untuk melakukan proses optimization.

o I/O cost merupakan nilai yang sebanding dengan jumlah data block

yang dibaca ketika melakukan proses optimization.

Execution time adalah lamanya waktu yang diperlukan untuk menampilkan

hasil output dari proses seleksi data yang dikehendaki. Semakin cepat

execution time yang dihasilkan, maka semakin efektif proses pemanggilan

query yang dilakukan.

Dewasa ini, penerapan SQL tuning merupakan parameter yang wajib

digunakan di dalam pengelolaan query, seperti yang disampaikan Karthik, Reddy,

dan Vanan (2012, p418), beberapa alasan pentingnya melakukan proses SQL tuning :

Page 43: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

48

Memungkinkan untuk mengurangi response time ketika memproses SQL.

Melalui access method yang tepat, maka tingkat kompleksitas jalannya

proses optimization menjadi lebih rendah sehingga mampu mengurangi

response time.

Menemukan access method yang lebih efisien. Proses Access method yang

tepat memungkinkan penurunan sumber daya yang diperlukan ketika

mengakses query sehingga menjadi lebih efisien.

Meningkatkan waktu pencarian menggunakan index. Penggunaan index yang

tepat memungkinkan penghapusan kondisi pengaksesan table secara

menyeluruh (full table scan) sehingga mempercepat waktu pencarian.

Memungkinkan proses join table lebih efisien. Penggunaan strategi join yang

tepat memungkinkan penurunan sumber daya yang diperlukan sehingga

menjadi lebih efisien.

Beberapa cara proses SQL tuning adalah dengan penulisan SQL yang efisien,

penggunaan index yang tepat, dan penambahan hint optimizer yang sesuai.

Berikut merupakan beberapa cara untuk melakukan proses penulisan SQL

yang efisien:

1. Gunakan equijoin secara tepat. Apabila memungkinkan, gunakan

fungsi equijoin sehingga menghasilkan query yang lebih efisien.

Sintaks umum penulisan equijoin :

SELECT A.COLUMN_NAME, B.COLUMN_NAME FROM TABLE_NAME A, TABLE_NAME B WHERE A.COLUMN_NAME= B.COLUMN_NAME;

Contoh penulisan equijoin :

Page 44: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

49

SELECT M.EMPLOYEE_ID, M.EMPLOYEE_LAST_NAME, N.DEPARTMENT_NAME FROM EMPLOYEES M, DEPARTMENTS N WHERE M.EMPLOYEE_ID = N.EMPLOYEE_ID;

2. Batasi penggunaan SQL function, NOT EQUAL, dan IS NULL

maupun IS NOT NULL di dalam klausa WHERE. Penggunaan SQL

function, NOT EQUAL, dan IS NULL maupun IS NOT NULL di

dalam klausa WHERE akan menyebabkan Optimizer tidak dapat

memanggil Index yang dibuat.

Sintaks umum penulisan SQL function :

SELECT COLUMN_NAME FROM TABLE_NAME WHERE SQL_FUNCTION_NAME = ‘VALUE’;

Contoh penulisan SQL function :

SELECT EMPLOYEE_ID, LAST_NAME FROM EMPLOYEES WHERE SUBSTR (JOB_ID, 4) =’REP’;

Sintaks umum penulisan NOT EQUAL (<>) :

SELECT COLUMN_NAME FROM TABLE_NAME WHERE COLUMN_NAME<> ‘VALUE’;

Contoh penulisan NOT EQUAL (<>) :

SELECT EMPLOYEE_ID, LAST_NAME FROM EMPLOYEES WHERE JOB_ID <> ‘ST_CLERK’;

Sintaks umum penulisan NOT EQUAL (!=) :

SELECT COLUMN_NAME FROM TABLE_NAME WHERE COLUMN_NAME != ‘VALUE’;

Page 45: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

50

Contoh penulisan NOT EQUAL (!=) :

SELECT EMPLOYEE_ID, LAST_NAME FROM EMPLOYEES WHERE JOB_ID != ‘ST_CLERK’;

Sintaks umum penulisan IS NULL :

SELECT COLUMN_NAME FROM TABLE_NAME WHERE COLUMN_NAME IS NULL;

Contoh penulisan IS NULL :

SELECT LAST_NAME, SALARY FROM EMPLOYEES WHERE MANAGER_ID IS NULL;

Sintaks umum penulisan IS NOT NULL :

SELECT COLUMN_NAME FROM TABLE_NAME WHERE COLUMN_NAME IS NOT NULL;

Contoh penulisan IS NOT NULL :

SELECT LAST_NAME, SALARY FROM EMPLOYEES WHERE MANAGER_ID IS NOT NULL;

3. Penggunaan subquery secara efisien

a. Jika subquery mengandung predikat selective WHERE, maka akan

lebih baik dengan menggunakan subquery IN.

Sintaks umum penulisan subquery IN :

SELECT A.COLUMN_NAME FROM TABLE_NAME A WHERE COLUMN_NAME IN (SELECT COLUMN_NAME FROM TABLE_NAME B) ;

Contoh penulisan subquery IN :

Page 46: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

51

SELECT E.EMPLOYEE_ID FROM EMPLOYEES E WHERE EMPLOYEE_ID IN (SELECT EMPLOYEE_ID FROM JOB_HISTORY J) ;

b. Jika parent query mengandung sebagian besar filter yang selective,

maka akan lebih baik dengan menggunakan subquery EXISTS. Hal

ini memungkinkan predikat-predikat selective pada parent query

dijalankan terlebih dahulu sebelum melakukan proses filtering

terhadap baris-baris yang diseleksi.

Sintaks umum penulisan subquery EXISTS :

SELECT A.COLUMN_NAME FROM TABLE_NAME A WHERE EXISTS (SELECT COLUMN_NAME FROM TABLE_NAME B WHERE B.COLUMN_NAME = A.COLUMN_NAME) ;

Contoh penulisan subquery EXISTS :

SELECT E.EMPLOYEE_ID FROM EMPLOYEES E WHERE EXISTS (SELECT EMPLOYEE_ID FROM JOB_HISTORY J WHERE J.EMPLOYEE_ID = E.EMPLOYEE_ID) ;

4. Penggunaan klausa WHERE lebih baik dibandingkan klausa

HAVING. Klausa WHERE akan membatasi jumlah baris yang akan

diakses sedangkan klausa HAVING memiliki kecenderungan untuk

mengakses jumlah baris yang lebih banyak dari yang diperlukan dan

juga menggunakan tambahan sorting.

Sintaks umum penulisan klausa WHERE :

Page 47: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

52

SELECT COLUMN_NAME FROM TABLE_NAME WHERE COLUMN_NAME = ‘VALUE’;

Contoh penulisan klausa WHERE :

SELECT BARANG_ID, MIN(HARGA) FROM BARANG WHERE BARANG_ID IN(100,101) GROUP BY BARANG_ID;

Sintaks umum penulisan klausa HAVING :

SELECT COLUMN_NAME, GROUP_FUNCTION(COLUMN_NAME) FROM TABLE_NAME GROUP BY COLUMN_NAME HAVING COLUMN_NAME = (‘VALUE’);

Contoh penulisan klausa HAVING :

SELECT BARANG_ID, MIN(HARGA) FROM BARANG GROUP BY BARANG_ID HAVING BARANG_ID IN (100,101);

5. Gunakan function CASE. Gunakan function CASE untuk

menghindari proses pemeriksaan baris-baris yang sama secara

berulang-ulang atau menghindari proses join pada table yang sama

secara berulang-ulang.

Sintaks penulisan function CASE :

SELECT COLUMN_NAME CASE COLUMN_NAME WHEN ‘VALUE’ THEN CONDITION

WHEN ‘VALUE’ THEN CONDITION ELSE COLUMN_NAME

END AS “COLUMN_NAME” FROM TABLE_NAME;

Page 48: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

53

Contoh penulisan function CASE :

SELECT NAMA_PEGAWAI, KODE_BAG, GAJI AS “GAJI”, CASE KODE_BAG WHEN 31 THEN GAJI*1.1

WHEN 41 THEN GAJI*1.5 ELSE GAJI

END AS “GAJI BARU” FROM PEGAWAI;

6. Penggunaan subquery NOT EXISTS atau NOT IN yang lebih baik

dibandingkan operator MINUS. Operator MINUS memiliki

kecenderungan untuk menggunakan proses sorting pada table yang

diseleksi. Sedangkan Subquery NOT EXISTS atau NOT IN akan

menghasilkan proses filtering sehingga tidak diperlukan lagi

penggunaan sorting pada table yang diseleksi.

Sintaks penulisan subquery NOT EXISTS :

SELECT A.COLUMN_NAME FROM TABLE_NAME A WHERE NOT EXISTS (SELECT COLUMN_NAME FROM TABLE_NAME B WHERE B.COLUMN_NAME = A.COLUMN_NAME) ;

Contoh penulisan subquery NOT EXISTS :

SELECT E.EMPLOYEE_ID FROM EMPLOYEES E WHERE NOT EXISTS (SELECT EMPLOYEE_ID FROM JOB_HISTORY J WHERE J.EMPLOYEE_ID = E.EMPLOYEE_ID) ;

Sintaks penulisan subquery NOT IN:

SELECT A.COLUMN_NAME FROM TABLE_NAME A WHERE COLUMN_NAME NOT IN (SELECT COLUMN_NAME FROM TABLE_NAME B) ;

Page 49: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

54

Contoh penulisan subquery NOT IN :

SELECT E.EMPLOYEE_ID FROM EMPLOYEES E WHERE EMPLOYEE_ID NOT IN (SELECT EMPLOYEE_ID FROM JOB_HISTORY J) ;

Sintaks penulisan operator MINUS:

SELECT A.COLUMN_NAME FROM TABLE_NAME A MINUS SELECT B.COLUMN_NAME FROM TABLE_NAME B;

Contoh penulisan operator MINUS :

SELECT E.EMPLOYEE_ID FROM EMPLOYEES E MINUS SELECT J.EMPLOYEE_ID FROM JOB_HISTORY J ;

Penggunaan index yang tepat pada umumnya menghasilkan proses

pengaksesan data yang lebih cepat dibandingkan melakukan proses scanning

data pada table secara menyeluruh (full table scan), seperti yang disampaikan

Alapati (2009, p297), beberapa strategi penggunaan index yang tepat :

1. Pembuatan index diperlukan jika akses data tidak lebih dari 4 atau 5

persen data dalam sebuah table. Hal ini disebabkan karena

penggunaan full table scan akan lebih cepat apabila persentase data

yang diakses dari table sangat besar.

Page 50: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

55

2. Hindari penggunaan index pada table yang berukuran kecil. Hal ini

disebabkan karena penggunaan full table scan sudah cukup untuk

table yang berukuran kecil.

3. Pembuatan primary key pada semua table karena kolom yang

dijadikan primary key akan secara otomatis dijadikan sebagai index

dari table tersebut. Oleh sebab itu, diperlukan ketepatan dalam

menentukan primary key pada sebuah table. Primary key harus

bersifat unik dan tidak boleh null.

4. Pembuatan index pada kolom-kolom yang terlibat dalam operasi

multi-table join. Hal ini disebabkan karena tingkat kerumitan

pengaksesan data pada operasi multi-table join lebih tinggi

dibandingkan dengan pengaksesan data pada operasi single table.

5. Pembuatan index yang dipakai secara berkesinambungan dalam

klausa WHERE.

6. Pembuatan index pada kolom-kolom yang terlibat dalam operasi

ORDER BY dan GROUP BY, atau operasi lainnya seperti UNION

dan DISTINCT yang melibatkan sorting. Hal ini disebabkan karena

kolom yang di-index telah diurutkan secara otomatis sehingga proses

pengaksesan data menjadi lebih cepat.

7. Hindari pembuatan index pada kolom-kolom yang mengandung

karakter string yang panjang.

8. Hindari pembuatan index pada kolom-kolom yang sering dilakukan

operasi UPDATE.

9. Pembuatan index pada table yang memiliki tingkat selektivitas yang

tinggi atau memiliki sedikit baris yang mempunyai nilai sama.

Page 51: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

56

10. Jumlah penggunaan index diusahakan tetap sedikit. Hal ini disebabkan

karena penggunaan index yang banyak akan meningkatkan sumber

daya yang diperlukan dan mampu menghambat kinerja akses data.

11. Pembuatan index yang terdiri dari dua kolom atau lebih yang secara

umum disebut composite index diperbolehkan jika nilai setiap kolom

tidak unik.

Penggunaan hint optimizer yang sesuai juga memampukan proses

optimalisasi query menjadi lebih efisien. Hint optimizer memiliki

kemampuan untuk memaksa optimizer untuk memilih access method

berdasarkan keinginan pengguna dalam menyeleksi query yang terdapat

dalam fase optimization. Adapun beberapa jenis hint optimizer untuk

mengoptimalisasi query, yaitu :

1. USE_NL hint. USE_NL dipakai untuk memaksa optimizer untuk

menggunakan teknik NESTED LOOP JOIN. NESTED LOOP JOIN

adalah sebuah join yang efektif jika jumlah row pada tabel-tabel yang

digabungkan berjumlah sedikit dan jika tabel kedua atau selanjutnya

memiliki index yang memiliki nilai cardinality rendah. Penggunaan

NESTED LOOP JOIN juga dapat digunakan pada outer join. Outer

join akan menambahkan baris yang tidak memenuhi kondisi join.

Value pada baris yang tidak memenuhi kondisi join tersebut adalah

null. Optimizer akan memilih penggunaan NESTED LOOP JOIN

apabila jumlah data table yang terlibat dalam kondisi join sedikit.

Sintaks penulisan USE_NL hint :

/*+ USE_NL([@queryblock] < tablespecification > < tablespecification >) */

Page 52: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

57

Ketika menulis USE_NL hint, jumlah table yang terlibat boleh lebih

dari 1 table. Penulisan USE_NL hint ditempatkan setelah klausa

SELECT

Contoh penulisan USE_NL hint :

SELECT /*+USE_NL(A,B)*/ A.DEPT_NO, B.DEPT_NO FROM EMPLOYEES A, DEPARTMENTS B WHERE A.DEPT_NO = B.DEPT_NO;

2. USE_HASH hint. USE_HASH dipakai untuk memaksa optimzer

untuk menggunakan teknik HASH JOIN. HASH JOIN biasa

digunakan untuk menggabungkan tabel-tabel yang tidak memiliki

index ber-cardinality rendah dan hanya menggunakan kondisi = pada

join predicate. Penggunaan HASH JOIN juga dapat digunakan pada

outer join. Optimizer akan memilih penggunaan HASH JOIN apabila

data table yang terlibat dalam kondisi join berjumlah besar.

Sintaks penulisan USE_HASH hint :

/*+ USE_HASH([@queryblock] < tablespecification > < tablespecification >) */

Ketika menulis USE_HASH hint, jumlah table yang terlibat boleh

dari 1 table. Penulisan USE_HASH ditempatkan setelah klausa

SELECT.

Contoh penulisan USE_HASH hint :

SELECT /*+USE_HASH(A,B)*/ A.DEPT_NO, B.DEPT_NO FROM EMPLOYEES A, DEPARTMENTS B WHERE A.DEPT_NO = B.DEPT_NO;

3. USE_MERGE hint. USE_MERGE dipakai untuk memaksa optimizer

untuk menggunakan teknik SORT MERGE JOIN. SORT MERGE

JOIN biasanya digunakan untuk memperoleh hasil query yang telah

Page 53: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

58

di-sorting oleh join key dan dipakai ketika tabel-tabel yang diseleksi

menggunakan large range-join (penggunaan large range-join seperti

BETWEEN, >=, atau <=). Penggunaan SORT MERGE JOIN juga

dapat digunakan pada outer join. Optimizer akan memilih penggunaan

SORT MERGE JOIN apabila data table yang terlibat dalam kondisi

join berjumlah besar dan menggunakan large range join.

Sintaks penulisan USE_MERGE hint :

/*+ USE_MERGE([@queryblock] < tablespecification > < tablespecification >) */

Ketika menulis USE_MERGE hint, jumlah table yang terlibat boleh

lebih dari 1 table. Penulisan USE_MERGE ditempatkan setelah

klausa SELECT.

Contoh penulisan USE_MERGE hint :

SELECT /*+USE_MERGE(A,B)*/ A.DEPT_NO, B.DEPT_NO FROM EMPLOYEES A, DEPARTMENTS B WHERE A.DEPT_NO = B.DEPT_NO;

4. HASH_AJ hint. HASH_AJ dipakai untuk memaksa optimizer untuk

menggunakan teknik HASH ANTI JOIN .HASH ANTI JOIN

digunakan untuk menggabungkan tabel-tabel yang tidak memiliki

korelasi data yang sama dimana hanya dapat dilakukan apabila query

mengandung subquery NOT IN atau NOT EXISTS. Selain itu, HASH

ANTI JOIN digunakan untuk memperoleh hasil query yang tidak

menggunakan large-range join.

Sintaks penulisan HASH_AJ hint :

/*+ HASH_AJ([@queryblock] < tablespecification > < tablespecification >) */

Page 54: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

59

Ketika menulis HASH_AJ hint, jumlah table yang terlibat boleh lebih

dari 1 table. Penulisan klausa HASH_AJ hint ditempatkan setelah

klausa SELECT yang terdapat dalam inner query.

Contoh penulisan HASH_AJ hint :

SELECT DEPT_NO, EMP_NO, LAST_NAME FROM EMPLOYEES WHERE DEPT_NO NOT IN(SELECT /*+HASH_AJ*/ DEPT_NO FROM DEPARTMENTS WHERE DEPT_NO =’300’);

5. MERGE_AJ hint. MERGE_AJ dipakai untuk memaksa optimizer

untuk menggunakan teknik SORT MERGE ANTI JOIN . SORT

MERGE ANTI JOIN digunakan untuk menggabungkan tabel-tabel

yang tidak memiliki korelasi data yang sama yang hanya dapat

dilakukan apabila query mengandung subquery NOT IN atau NOT

EXISTS. Selain itu, SORT MERGE ANTI JOIN dipakai untuk

memperoleh hasil query yang telah di-sorting oleh join key.

Sintaks penulisan MERGE_AJ hint :

/*+ MERGE_AJ([@queryblock] < tablespecification > < tablespecification >) */

Ketika menulis MERGE_AJ hint, jumlah table yang terlibat boleh

lebih dari 1 table. Penulisan klausa MERGE_AJ hint ditempatkan

setelah klausa SELECT yang terdapat dalam inner query.

Page 55: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

60

Contoh penulisan MERGE_AJ hint :

SELECT DEPT_NO, EMP_NO, LAST_NAME FROM EMPLOYEES WHERE DEPT_NO NOT IN(SELECT /*+MERGE_AJ*/ DEPT_NO FROM DEPARTMENTS WHERE DEPT_NO =’300’);

6. NO_MERGE hint. NO_MERGE hint dipakai untuk memaksa

optimizer untuk tidak mengkombinasikan outer query dan inline view

query ke dalam single query. NO_MERGE sering dipakai untuk

mengurangi nilai pertukaran query dan menghasilkan proses

optimisasi menjadi lebih cepat.

Sintaks penulisan NO_MERGE hint :

/*+NO_MERGE(<@queryblock> [tablespecification]); */

Penulisan NO_MERGE hint dipakai untuk melibatkan inline view.

Penulisan klausa NO_MERGE hint ditempatkan setelah klausa

SELECT.

Contoh penulisan NO_MERGE hint :

SELECT /*+NO_MERGE(AA)*/ DEPT_NO, LAST_NAME FROM (SELECT A.DEPT_NO, B.DEPT_NAME, A.LAST_NAME FROM EMPLOYEES A, DEPARTMENTS B WHERE A.DEPT_NO = B.DEPT_NO)AA;

7. PARALLEL hint. PARALLEL hint dipakai untuk memaksa optimizer

untuk menggunakan multiple prosessor untuk menjalankan single

SQL statement secara bersamaan. Dengan menggunakan multiple

prosessor, Oracle dapat menjalankan query lebih cepat daripada

hanya menggunakan single processor.

Page 56: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

61

Sintaks Penulisan PARALLEL hint :

/*+ PARALLEL([@queryblock] < tablespecification >

<degree | DEFAULT>) */

Ketika menulis PARALLEL hint, jumlah table yang terlibat hanya

boleh 1. Penggunaan degree dipakai untuk menentukan jumlah

prosessor yang berjalan. Apabila tidak memberikan degree, maka

Optimizer akan menentukan jumlah prosessor secara otomatis.

Penulisan klausa PARALLEL ditempatkan setelah klausa SELECT.

Contoh penulisan PARALLEL hint :

SELECT /*+PARALLEL(A 10)*/ A.DEPT_NO, B.DEPT_NO FROM EMPLOYEES A, DEPARTMENTS B WHERE A.DEPT_NO = B.DEPT_NO;

8. CARDINALITY hint. Istilah cardinality mengacu kepada keunikan

data value yang tersimpan pada atribut table. Semakin kecil nilai

kardinalitas, maka semakin besar duplikasi data value pada atribut

table, seperti yang disampaikan Sherimon, Krishnan, dan Vinu (2012,

p348), cardinality merupakan sebuah properti yang mendefinisikan

berapa banyak value yang dapat terdapat pada table. Cardinality

terbagi menjadi tiga jenis yaitu high-cardinality, normal-cardinality,

dan low-cardinality.

a. High-cardinality merupakan kolom-kolom dengan value yang

memiliki tingkat keunikan sangat tinggi. Contoh high-cardinality

dapat berupa id pelanggan, alamat e-mail, atau no telpon.

Page 57: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

62

b. Normal-cardinality merupakan kolom-kolom dengan value yang

memiliki tingkat keunikan cukup tinggi. Contoh normal-cardinality

dapat berupa jenis kendaraan atau nama kota.

c. Low-cardinality merupakan kolom-kolom dengan value yang

memiliki tingkat keunikan rendah. Contoh low-cardinality dapat

berupa jenis kelamin.

CARDINALITY hint dipakai untuk memaksa optimizer untuk

menggunakan nilai integer yang diberikan pengguna secara manual

kepada komputasi kardinalitas tablespace tanpa perlu dilakukan

pemeriksaan. CARDINALITY hint digunakan pada proses join yang

kompleks karena mampu memanggil index yang tidak terpanggil.

Sintaks penulisan CARDINALITY hint :

/*+ CARDINALITY(<tablespecification > <integer>) */

Ketika menulis CARDINALITY hint, jumlah table yang terlibat

hanya boleh 1. Penggunaan integer wajib dipakai untuk menentukan

nilai kardinalitas yang dikehendaki. Penulisan klausa

CARDINALITY ditempatkan setelah klausa SELECT.

Contoh penulisan CARDINALITY Hint :

SELECT /*+CARDINALITY(A 1)*/ A.DEPT_NO, B.DEPT_NO FROM EMPLOYEES A, DEPARTMENTS B WHERE A.DEPT_NO = B.DEPT_NO;

2.8 Aplikasi Proses Bisnis Perusahaan

Proses bisnis merupakan prosedur yang digunakan untuk menyelesaikan

tugas bisnis. Penerapan proses bisnis yang tepat akan mendukung perusahaan dalam

mempercepat penyelesaian tugas-tugas perusahaan. Dalam meningkatkan kinerja

Page 58: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

63

proses bisnis yang lebih optimal dan terintegrasi, maka vendor-vendor perusahaan IT

terkemuka seperti Oracle, SAP, IBM, maupun Microsoft mengembangkan aplikasi

yang berbasis proses bisnis seperti aplikasi Oracle E-Business Suite, aplikasi SAP

Business Suite, aplikasi Business Process Management (BPM), aplikasi Office

Business Aplications. PT. VWX menerapkan aplikasi Oracle E-Business Suite untuk

mendukung penyelesaian tugas perusahaan. Penerapan aplikasi Oracle E-Business

Suite pada PT.VWX disebabkan karena PT. VWX menggunakan Database

Management System (DBMS) Oracle sehingga memudahkan di dalam proses

pengintegrasiannya.

Aplikasi yang terkait selama melakukan penelitian ini adalah Oracle

financial. Oracle financial adalah salah satu aplikasi Oracle E-business suite yang

berfokus pada bagian finansial. PT. VWX menggunakan aplikasi Oracle financial

dengan sebutan aplikasi ProFin. Oracle financial terdiri dari beberapa modul:

Oracle asset adalah modul yang digunakan untuk menentukan kebijakan

strategis terhadap aset-aset perusahaan secara tepat. Oracle asset

memampukan proses pengaturan aset secara otomatis dan mempermudah

proses akuntansi.

Oracle general ledger adalah modul yang menyimpan laporan jurnal, laporan

budgeting, dan laporan finansial yang dibutuhkan. Oracle general ledger

memampukan proses finansial secara terotomatisasi dan mengendalikan

pengaturan hasil finansial secara real time.

Oracle inventory adalah modul yang menentukan keputusan persediaan

dengan meminimalisir stok dan memaksimalkan aliran kas. Oracle inventory

memampukan peningkatan visibilitas pada persediaan, mengurangi level

persediaan, dan mempermudah operasi kendali persediaan.

Page 59: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

64

Oracle order entry adalah modul yang mengatur komitmen konsumen

dengan penggunaan sistem order entry yang baik.

Oracle payable adalah modul yang memelihara data tagihan supplier dan

aktifitas pembayaran. Oracle payable memampukan penurunan biaya,

menanamkan disiplin fiskal, dan meningkatkan hubungan bisnis perusahaan.

Oracle personnel adalah modul yang meningkatkan pengaturan pekerja

dengan memeriksa tingkat kinerja masing-masing pekerja.

Oracle purchasing adalah modul yang meningkatkan kekuatan pembelian

dan financial control.

Oracle receivables adalah modul yang digunakan untuk meningkatkan arus

kas, mengurangi biaya operasi, dan memastikan akurasi keuangan yang tepat

sesuai dengan pedoman akuntansi.

Oracle revenue accounting adalah modul yang memberikan tingkat akurasi

dan waktu yang cepat pada pendapatan.

Oracle sales analysis adalah modul yang digunakan untuk melakukan

perkiraan, perencanaan, dan laporan informasi penjualan.

Oracle financial analyzer adalah salah satu aplikasi Oracle E-business suite

yang digunakan untuk menganalisis, menentukan anggaran belanja, dan perencanaan

untuk laporan finansial secara terintegrasi.

Modul-modul yang digunakan selama melakukan penelitian ini adalah modul

Oracle purchasing dan modul Oracle financial analyzer. PT. VWX menggunakan

modul Oracle purchasing dengan sebutan modul ProAng, sedangkan untuk modul

Oracle financial analyzer dikenal dengan sebutan modul hyperion. Selain aplikasi

Oracle financial, dokumen-dokumen yang terkait selama melakukan penelitian ini

adalah dokumen yang terdapat dalam siklus pengeluaran. Dokumen-dokumen

Page 60: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

65

tersebut antara lain Purchase Requisition (PR), Purchase Order (PO), dan Receiving

report (Receipts):

Purchase Requisition (PR) adalah dokumen yang mengandung daftar

permintaan pembelian barang atau jasa. Purchase Requisition (PR) secara

umum mengandung deskripsi dan kuantitas pada barang atau jasa yang

dipesan, tanggal pemesanan, dan nomor account. Prosedur Purchase

Requisition (PR) adalah masing-masing divisi diperbolehkan untuk mengisi

dokumen Purchase Requisition (PR) atas persetujuan dari kepala divisi dari

masing-masing divisi.

Purchase Order (PO) adalah dokumen yang mengandung pesanan pembelian

barang atau jasa berdasarkan purchase requisition yang telah disetujui

dimana pengguna memiliki hak untuk memperoleh barang atau jasa.

Purchase Order (PO) secara umum mengandung permintaan pembelian atas

barang atau jasa kepada supplier beserta pengirimannya. Prosedur Purchase

Order (PO) adalah perusahaan calon pembeli mencari dan menentukan

supplier dari beberapa supplier yang meliputi beberapa kriteria umum, yaitu

memiliki kualitas barang dan jasa terbaik, harga terendah, dan pengiriman

yang tepat waktu.

Receiving report (receipts) adalah dokumen yang merupakan laporan

penerimaan barang atau jasa bahwa barang atau jasa yang diterima telah

memenuhi jenis, spesifikasi, mutu dan kuantitas seperti yang tercantum

dalam Purchase Order (PO). Receiving report (receipt) secara umum

mengandung deskripsi dan kuantitas barang yang diterima, nomor Purchase

Order (PO), tanggal terima barang, dan asal pengiriman. Prosedur Receiving

Page 61: library.binus.ac.idlibrary.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewBAB 2 LANDASAN TEORI Basis Data Menurut Connolly dan Begg (2010, p65), basis data adalah suatu

66

report (receipt) adalah melakukan pencocokan antara Receiving report

(receipt) dengan Purchase Order (PO).

Dokumen tambahan lainnya yang digunakan selama mengerjakan penelitian

ini adalah Chart Of Account (COA). Chart Of Account (COA) merupakan daftar

semua kode akun yang disajikan dengan angka, huruf, atau paduan angka dan huruf.

Manfaat dari pembuatan Chart Of Account (COA) berupa :

Meningkatkan efisiensi pencatatan. Chart Of Account (COA) memampukan

pembuatan catatan operasional, akuntansi dan keuangan menjadi lebih

ringkas dan sistematis.

Mempermudah perbaikan atau penyesuaian. Apabila terdapat transaksi

tambahan ataupun kesalahan penulisan oleh pengguna, Chart Of Account

(COA) memampukan untuk dilakukannya tindakan-tindakan penyesuaian.

Meningkatkan kontrol pencatatan. Chart Of Account (COA) memberikan

identitas transaksi yang mudah dilihat dan diingat oleh pengguna.