- I. HIERARKI DATA
Data harus disusun secara teratur agar pengolahannya dapat dilakukan dengan baik dan efisien. Pengorganisasian data dapat dibagi dalam enam tingkatan, yaitu :
- Bit adalah suatu sistem angka biner yang terdiri atas dua macam nilai saja, yaitu 0 dan 1. Sistem angka biner merupakan dasar dasar yang dapat digunakan untuk komunikasi antara manusia dan mesin (komputer) yang merupakan sekumpulan komponen elektronik dan hanya dapat membedakan dua keadaan saja (on dan off). Jadi bit adalah unit terkecil dari pembentuk data.
- Byte adalah bagian terkecil yang dapat dialamatkan dalam memori. Byte merupakan sekumpulan bit yang secara konvensional terdiri atas kombinasi delapan bit. Satu byte digunakan untuk mengkodekan satu buah karakter dalam memori. Contoh: Kode Ascii untuk J ialah 10101010. Jadi byte adalah kumpulan bit yang membentuk satu karakter (huruf, angka, atau tanda). Dengan kombinasi 8 bit, dapat diperoleh 256 karakter (= 2 pangkat 8).
- Field atau kolom adalah unit terkecil yang disebut data. Field merupakan sekumpulan byte yang mempunyai makna. Contoh: Joni yang merupakan field nama. Jadi field ibarat kumpulan karakter yang membentuk suatu kata.
- Record atau baris adalah kumpulan item yang secara logic saling berhubungan. Setiap record dapat dikenali oleh sesuatu yang mengenalinya, yaitu field kunci. Gambar 1 merupakan contoh dari record. Jadi record ibarat kumpulan kata yang membentuk satu kalimat yang berarti, misal gambar 1 mewakili kalimat: Joni memenmpuh mata kuliah MIS (kode IS101) dengan nilai A.
Gambar 1. Contoh Record
- File atau tabel adalah kumpulan record yang sejenis dan secara logic berhubungan. Pembuatan dan pemeliharaan file adalah faktor yang sangat penting dalam sistem informasi manajemen yang memakai komputer. Jadi tabel ibarat kumpulan baris/record yang membentuk satu tabel yang berarti, misal gambar 2 mewakili tabel nilai mata kuliah MIS.
Gambar 2. Contoh File Kursus
- Database merupakan kumpulan file-file yang berhubungan secara logis dan digunakan secara rutin pada operasi-operasi sistem informasi manajemen. Semua database umumnya berisi elemen-elemen data yang disusun ke dalam file-file yang diorganisasikan berdasarkan sebuah skema atau struktur tertentu, tersimpan di hardware komputer dan dengan software untuk melakukan manipulasi data untuk kegunaan tertentu. Jadi, suatu database adalah menunjukkan suatu kumpulan tabel yang dipakai dalam suatu lingkup perusahaan atau instansi untuk tujuan tertentu. Contoh suatu database adalah database akademik yang berisi file-file: mahasiswa, dosen, kurikulum, dan jadwal yang diperlukan untuk mendukung operasi sistim informasi akademik. Contoh suatu database sederhana ditunjukkan oleh gambar 3.
Gambar 3. Contoh Database Kepegawaian
Hirarki semua data diatas ditunjukkan pada gambar 4.
Gambar 4 Hierarki Data
Atas dasar hirarki data diatas, maka perlu dijenjangkan lagi proses perubahan data ke informasi sebagai berikut (lihat gambar 5):
II.Sistem Informasi
Suatu sistem dalam suatu organisasi yang merupakan kombinasi dari orang-orang, fasilitas, teknologi, media, prosedur-prosedur dan pengendalian untuk mendapatkan jalur komunikasi penting, memproses tipe transaksi rutin tertentu, memberi sinyal kepada manajemen dan yang lainnya terhadap kejadian-kejadian internal dan eksternal yang penting dan menyediakan suatu dasar informasi untuk pengambilan keputusan.
Data
Nilai/value yang turut merepresentasikan deskripsi dari suatu objek atau kejadian (event)
Informasi
Merupakan hasil dari pengolahan data dalam suatu bentuk yang lebih berguna dan lebih berarti bagi penerimanya yang menggambarkan suatu kejadian-kejadian (event) yang nyata (fact) yang digunakan untuk pengambilan keputusan.
Gambar 5. Pemrosesan data
Sistem informasi yang terotomasi, terdiri dari beberapa komponen, antara lain :
- Hardware : CPU, Disk, terminal, printer.
- Software : Sistem operasi, sistem database, prog. pengontrol komunikasi, prog. aplikasi
- Personil : yg mengoperasikan sistem, menyediakan masukan, mengkonsumsi keluaran dan melakukan aktivitas manual yang mendukung sistem.
- Data : data yang tersimpan dalam jangka waktu tertentu
- Prosedur : instruksi dan kebijakan untuk mengoperasikan sistem
Sistem Database
Pengertian sistem basis data/database adalah sistem yang terdiri atas kumpulan file (tabel) yang saling berhubungan dan sekumpulan program (sistem operasi dan DBMS) yang memungkinkan user/pemakai mengelola, mengakses, dan memanipulasi file-file (tabel-tabel) tersebut.
Komponen Sistem Database
Komponen Sistem Database meliputi :
- Data, bersifat:
Dipakai bersama
Terintegrasi/terpadu
- Perangkat keras (Hardware)
- Perangkat lunak (Software)
Harus menyediakan fasilitas:
Membuat file
Menyisipkan data
Menampilkan data
Menghapus data
Kontrol keamanan
Kontrol keterpaduan
- Pemakai (Users)
Database administrator
Pemrogram aplikasi
User pemakai akhir (End-User)
Tujuan/objektip
Tujuan/objektip sistem database adalah sebagai berikut :
- Kecepatan dan Kemudahan (Speed)
- Effisiensi Ruang Penyimpanan (Space)
- Keakuratan (Accuracy) untuk meminimasi duplikasi dan redudansi, melalui a.l. : domain, tipe, constraints, keunikan data.
- Ketersediaan (Availability): data master dan detil; data transaksi dan historis; off-line dan on-line; central dan distributed (di anak cabang).
- Kelengkapan (Completeness): penambahan baris dan kolom untuk menjaga kelengkapan data mudah dilakukan.
- Keamananan (Security): level pekerjaan menentukan tingkat akses database.
- Kebersamaan Pemakaian (Shareability): dimana saja, kapan saja, siapa saja dapat mengakses.
- Mudah dikembangkan (extenbility), mampu mengakomodasikan kebutuhan baru dari suatu aplikasi dengan akibat yang ringan terhadap perubahan data dasarnya.
- III. Pengertian database relasional
Menurut Mark Whitehorn dan Bill Marklyn[1] database relasional adalah:
Suatu database yang menggunakan model relasional, dimana model tersebut menyediakan mekanisme-mekanisme yang kita perlukan untuk menyimpan dan memanipulasi data yang kompleks dengan cara yang sedemikian rupa sehingga kita dapat meng-query data itu dan memperoleh jawaban-jawaban yang kita perlukan.
Ada beberapa komponen pokok dalam database relasional yaitu[2]:
– Entity, adalah objek-objek terpisah (orang, tempat, benda, konsep, atau peristiwa) dalam suatu organisasi yang akan direpresentasikan ke dalam database (menjadi tabel).
– Attribute, adalah properti yang menggambarkan aspek-aspek yang dimiliki suatu objek yang akan dicatat (menjadi kolom).
– Relationship (relasi), adalah hubungan-hubungan yang dapat terjadi antara dua entity.
– Data disimpan dalam suatu tabel berbentuk dua dimensi: field (kolom) dan record (baris).
Relasi antar entiti
Secara umum suatu database relasional dibuat untuk meniru dunia nyata. Dalam dunia nyata ada banyak objek yang saling berhubungan satu sama lain. Misalnya seorang karyawan toko akan berurusan dengan banyak pelanggan, satu pelanggan dapat membeli banyak item barang, dan seterusnya. Oleh karena itu database harus menyimpan informasi tentang objek-objek yang berbeda tersebut dan juga tentang hubungan antar objek-objeknya.
Setiap tabel dalam database akan mewakili satu jenis objek di dunia nyata. Untuk menentukan hubungan-hubungan apa saja yang perlu ditetapkan antar tabel, maka perlu diketahui jenis-jenis hubungan yang dapat terjadi antar objek dalam dunia nyata. Ada empat jenis hubungan yang mungkin terjadi antara setiap pasangan objek, yaitu[3]:
– satu ke banyak (one to many)
Hubungan satu ke banyak dapat dimisalkan seperti hubungan antara pelanggan dan pemesanan yang dapat mereka lakukan. Artinya seorang pelanggan mungkin saja tidak melakukan pemesanan sama sekali, melakukan hanya satu kali pemesanan, atau melakukan lebih dari satu pemesanan. Hubungan ini bersifat asimetris karena setiap pemesanan hanya akan dilakukan oleh satu pelanggan saja, akan tetapi setiap pelanggan dapat melakukan lebih dari satu pemesanan. Hubungan satu ke banyak sering terjadi dalam dunia bisnis.
– satu ke satu (one to one)
Sebagai contoh dianggap bahwa setiap staf dalam suatu kantor harus memiliki ruangan tersendiri. Hubungan yang terjadi antara staf dengan ruangannya adalah hubungan satu ke satu, karena seorang staf hanya akan memiliki satu ruangan, dan satu ruangan hanya ditempat oleh seorang staf. Hubungan satu ke satu jarang dijumpai dalam merancang suatu database.
– banyak ke banyak (many to many)
Contoh hubungan banyak ke banyak adalah hubungan antara karyawan toko dengan pelanggan. Seorang pelanggan bisa dilayani oleh satu atau lebih karyawan dan seorang karyawan bisa saja melayani banyak pelanggan. Demikian pula hubungan antara mahasiswa dengan mata kuliah. Hubungan banyak ke banyak sangat sering dijumpai.
– tidak ada (none)
Pada kenyataannya ada beberapa objek yang memang tidak memiliki hubungan sama sekali satu dengan lainnya. Sebagai contoh informasi tentang sewa kantor tidak berhubungan sama sekali dengan informasi tentang pelanggan.
Primary key dan foreign key
Setelah mengetahui bentuk-bentuk relasi yang mungkin terjadi, maka relasi-relasi tersebut perlu dimodelkan dalam database. Untuk memodelkan relasi dalam database dapat digunakan key (primary key dan foreign key). Primary key (PK) adalah suatu kolom pengenal unik dalam suatu tabel (kolom) yang berfungsi untuk mengidentifikasi tabel tersebut. Setiap tabel dalam database relasional harus memiliki primary key. Suatu primary key dapat terdiri atas satu atau lebih field/kolom. Tidak boleh ada nilai dalam suatu primary key yang kosong (null). Contoh PK adalah NIM dalam tabel mahasiswa, dan NIP dalam tabel pegawai, dst. Dengan PK, diharapkan tiap baris dari tabel mengandung informasi unik (tak ada duanya).
Foreign key adalah kolom pengenal yang berisi nilai-nilai yang diambil dari primary key tabel yang berhubungan dengan tabel bersangkutan. Foreign key tidak harus ada dalam setiap tabel. Tetapi apabila terdapat suatu hubungan antara dua tabel, misal tabel mahasiswa dengan tabel KRS, maka salah satu tabelnya akan memiliki foreign key, dan sebuah tabel sangat mungkin memiliki lebih dari satu foreign key. Jika sebuah tabel memiliki lebih dari satu foreign key, tabel tersebut harus memiliki lebih dari satu hubungan dengan tabel lainnya.
- IV. Normalisasi
Proses normalisasi merupakan proses pengelompokan elemen data menjadi table-tabel yang optimal. Diharapkan melalui proses normalisasi, satu tabel mewakili satu entity atau satu konsep, bukannya satu tabel yang terdiri atas puluhan kolom untuk menyimpan semua informasi. Pada proses normalisasi selalu diuji pada beberapa kondisi. Apakah ada kesulitan saat menambah (insert), menghapus (delete), mengubah (update), membaca/mencari (retrieve) pada satu database. Bila ada kesulitan pada pengujian tersebut maka relasi tersebut dipecahkan pada beberapa tabel lagi atau dengan kata lain perancangan belumlah mencapai database yang optimal.
Tujuan normalisasi menurut Whitehorn dan Marklyn (2004:213):
- Untuk mencari dan mengelompokkan seluruh sifat yang berkenaan dengan objek tertentu.
- Untuk menghilangkan informasi yang berlebihan.
- Untuk memberikan identifikasi unik bagi record individu (primary key).
Kegunaan normalisasi:
- Meminimasi pengulangan informasi.
- Memudahkan indentifikasi entity atau obyek.
Bentuk-bentuk normalisasi :
- Bentuk tidak normal (Unnormalized Form)
Bentuk ini merupakan kumpulan data yang akan direkam, tidak ada keharusan mengikuti suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi. Data dikumpulkan apa adanya sesuai dengan keberadaannya. Tabel 1 menunjukkan bentuk tidak normal, terlihat satu sell (perpotongan baris dan kolom berisi nilai lebih dari satu kode mata kuliah.
Tabel 1 Bentuk Unnormalized Form (Not Normalized table)
NIM | Nama | KodeMK |
61521 | Jones | MAT231, ECO220, HST211 |
61300 | Devi | HST221 |
61425 | Tony | ENG202, MAT231 |
61230 | Paula | MAT231, ENG202 |
- Bentuk Normal Kesatu (1NF / First Normal Form)
Bentuk normal ke satu mempunyai ciri yaitu setiap data dibentuk dalam flat file (file datar atau rata), data dibentuk dalam satu record demi satu record dan nilai dari field field berupa “atomic value”. Tidak ada set atribute yang berulang-ulang atau atribute bernilai ganda (multivalue). Tiap field hanya satu pengertian, bukan merupakan kumpulan kata yang mempunyai arti mendua, hanya satu arti saja dan bukanlah pecahan kata-kata sehingga artinya lain. Suatu relasi memenuhi 1NF jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki nilai tunggal dalam satu selnya. Tabel 2 menunjukkan bentuk normal kesatu dari tabel 1.
Tabel 2. Bentuk 1NF tabel 1
NIM | Nama | KodeMK |
61521 | Jones | MAT231 |
61521 | Jones | ECO220 |
61521 | Jones | HST221 |
61300 | Devi | HST221 |
61425 | Tony | ENG202 |
61425 | Tony | MAT231 |
61230 | Paula | MAT231 |
61230 | Paula | ENG202 |
- Bentuk Normal Kedua (2NF / Second Normal Form)
Bentuk normal kedua mempunyai syarat yaitu bentuk data telah memenuhi kriteria bentuk normal kesatu. Atribute bukan kunci haruslah bergantung secara fungsi pada kunci utama (primary key). Sehingga untuk membentuk normal kedua haruslah sudah ditentukan kunci kunci field. Kunci field haruslah unik dan dapat mewakili atribute lain yang menjadi anggotanya.
Suatu relasi memenuhi 2NF jika dan hanya jika :
- Memenuhi 1NF.
- Setiap atribut yang bukan kunci utama (PK) tergantung secara fungsional terhadap semua atribut kunci dan bukan hanya sebagian atribut.
Pada tabel 3 menunjukkan bentuk tabel yang telah memenuhi bentuk normal kesatu tetapi belum memenuhi bentuk normal kedua. Tabel 4 menunjukkan normalisasi dari tabel 3.
Tabel 3. Bentuk 1NF suatu tabel (belum 2NF)
NIM | Nama | TglLahir | MKuliah | KodeMK | Kredit | Nilai | Bobot |
61521 | Jones | 12/5/1977 | Math | MAT231 | 3 | B | 3 |
61521 | Jones | 12/5/1977 | Economic | ECO220 | 3 | A | 4 |
61521 | Jones | 12/5/1977 | History | HST221 | 2 | B | 3 |
61300 | Devi | 4/28/1978 | History | HST221 | 2 | A | 4 |
61425 | Tony | 11/1/1978 | English | ENG202 | 2 | C | 2 |
61425 | Tony | 11/1/1978 | Math | MAT231 | 3 | B | 3 |
61230 | Paula | 6/14/1977 | Math | MAT231 | 3 | B | 3 |
61230 | Paula | 6/14/1977 | English | ENG202 | 2 | C | 2 |
Catatan: NIM adalah primary key.
Tabel 4. Tabel yang memenuhi 2NF (dipecah menjadi 3 tabel)
Tabel Mahasiswa
NIM | Nama | TglLahir |
61521 | Jones | 12/5/1977 |
61300 | Devi | 4/28/1978 |
61425 | Tony | 11/1/1978 |
61230 | Paula | 6/14/1977 |
Tabel Peserta Kuliah
KodeMK | MKuliah | Kredit |
MAT231 | Math | 3 |
ECO220 | Economic | 3 |
HST211 | History | 2 |
ENG202 | English | 2 |
Tabel Nilai
NIM | KodeMK | Nilai | Bobot |
61521 | MAT231 | B | 3 |
61521 | ECO220 | A | 4 |
61521 | HST211 | B | 3 |
61300 | HST211 | A | 4 |
61425 | ENG202 | C | 2 |
61425 | MAT231 | B | 3 |
61230 | MAT231 | B | 3 |
61230 | ENG202 | C | 2 |
- Bentuk Normal Ketiga (3NF / Third Normal Form)
Untuk menjadi bentuk normal ketiga maka relasi haruslah dalam bentuk normal kedua dan semua atribute bukan primer tidak punya hubungan yang transitif. Dengan kata lain, setiap atribute bukan kunci haruslah bergantung hanya pada primary key secara menyeluruh.
Suatu relasi memenuhi bentuk 3NF jika dan hanya jika :
- Relasi tersebut memenuhi 2NF.
- Setiap atribut bukan kunci tidak tergantung secara fungsional kepada atribut lain yang bukan kunci dalam relasi tersebut.
Tabel 5 menunjukkan bentuk normal ketiga dari tabel 4. Nilai dan bobot mempunyai saling ketergantungan, dan bobot tidak tergantung pada NIM maupun Kode Mata kuliah.
Tabel 5. Tabel yang memenuhi 3NF (dipecah dua):
Tabel Nilai Tabel Bobot
NIM | KodeMK | Nilai |
61521 | MAT231 | B |
61521 | ECO220 | A |
61521 | HST211 | B |
61300 | HST211 | A |
61425 | ENG202 | C |
61425 | MAT231 | B |
61230 | MAT231 | B |
61230 | ENG202 | C |
Nilai | Bobot |
A | 4 |
B | 3 |
C | 2 |
D | 1 |
E | 0 |
- V. Structured Query Language
SQL (Structured Query Language) adalah bahasa standar untuk melakukan query data, untuk pengelolaan dan manipulasi sistem database relasional. Standarisasi dilakukan oleh ANSI (American National Standard Institute) dan disebut dengan ANSI SQL. Standar yang banyak digunakan sampai saat ini adalah ANSI SQL-92, dan revisi terakhir disebut dengan ANSI SQL-98, SQL-3 yang saat ini masih dalam proses.
Perintah dalam SQL dibedakan menjadi:
DDL – Data Definition Language. DDL adalah kelompok perintah dalam SQL yang digunakan untuk membuat dan mendefinisikan struktur database, yakni membuat database, membuat tabel, relasi antar tabel, membuat view data, menghapus database, menghapus tabel, dan tipe data dari setiap kolom data yang ada dalam tabel.
DML – Data Manipulation Language. DML adalah kelompok perintah dalam SQL yang digunakan untuk melakukan manipulasi database, menampilkan data dari satu atau lebih table (select), menambah data ke dalam table (insert), memperbaiki data dalam tabel (update), dan menghapus data dari suatu tabel (delete).
DCL – Data Control Language.
DCL adalah kelompok perintah dalam SQL yang digunakan untuk mengatur pemakai database, siapa saja yang dapat melakukan pengelolaan data, siapa saja yang boleh mengakses data dalam tabel, hak akses apa saja yang diperbolehkan, melihat, menambah, memperbaiki, atau menghapus data.
Dalam melakukan pemrosesan tabel, terdapat tiga operasi dasar :
- Projection : memilih kolom tertentu dari suatu tabel untuk membentuk tabel yang baru. Misal tabel baru cukup berisi NIM dan Alamat.
- Selection : membentuk suatu tabel baru dengan cara menyeleksi baris yang memenuhi konmdisi atau persyaratan. Misal mencari informasi mahasiswa yang mempunyai IP > 3,5 untuk dapat beasiswa.
- Joint : membentuk suatu tabel baru dari baris-baris yang ada di dua atau lebih tabel, yang mempunyai atribut yang memenuhi kondisi yang diinginkan.
Statement (Pernyataan) dalam SQL
Bahasa SQL cukup kaya untuk memungkinkan penggunanya melakukan banyak operasi lain seperti membuat tabel, tetapi penggunaan yang paling lazim dari bahasa ini adalah mengajukan pertanyaan pada suatu database. Bagian bahasa ini tersusun atas pernyataan Data Manipulation Language (Bahasa Manipulasi Data DML) dari SQL.
Pernyataan DML ditulis, menurut konvensi, dalam UPPERCASE. Pernyataan tersebut meliputi SELECT, FROM, DISTINCT, WHERE, ORDER BY, GROUP BY, HAVING.
Sebelum memulai penjelasan mengenai pernyataan di atas, di bawah ini terdapat tabel sampel yang merupakan tabel utama yang akan digunakan dalam contoh.
EMPLOYEES
EmployeeNo |
FirstName |
LastName |
DateOfBirth |
DateEmployed |
CarNo |
1 |
Bilda | Groves | 12 Apr 1966 | 01 May 1999 |
2 |
2 |
John | Greeves | 21 Mar 1977 | 01 Jan 2000 |
|
3 |
Sally | Smith | 01 May 1977 | 01 Apr 2002 |
5 |
4 |
Fred | Jones | 03 Apr 1966 | 01 May 2004 |
3 |
SALES
SaleNo |
EmployeeNo |
Customer |
Item |
Supplier |
Amount |
1 |
1 |
Simpson | Sofa | Harrison |
$235,67 |
2 |
1 |
Johnson | Chair | Harisson |
$453,78 |
3 |
2 |
Smith | Stool | Ford |
$82,78 |
4 |
2 |
Jones | Suite | Harisson |
$3.421,00 |
5 |
3 |
Smith | Sofa | Harisson |
$235,67 |
6 |
1 |
Simpson | Sofa | Harisson |
$235,67 |
7 |
1 |
Jones | Bed | Ford |
$453,00 |
SELECT dan FROM
Yang pertama dari pernyataan ini adalah SELECT. SELECT digunakan untuk menunjuk kumpulan field/kolom dari tabel yang diketahui. FROM hanyalah menunjuk pada tabel yang dipakai. Contohnya:
SELECT SaleNo, Item, Amount
FROM SALES;
Sehingga akan menghasilkan sebagai berikut:
SaleNo |
Item |
Amount |
1 |
Sofa |
$235,67 |
2 |
Chair |
$453,78 |
3 |
Stool |
$82,78 |
4 |
Suite |
$3.421,00 |
5 |
Sofa |
$235,67 |
6 |
Sofa |
$235,67 |
7 |
Bed |
$453,00 |
WHERE
SELECT memungkinkan untuk memilih field yang akan dikerjakan dan WHERE memperbolehkan untuk memilih jenis baris/rekord yang spesifik.
SELECT Item, Amount
FROM SALES
WHERE Item = ‘Sofa’ AND Customer = ‘Smith’;
Akan menghasilkan:
Item | Amount |
Sofa |
$235,67 |
ORDER BY
ORDER BY memberikan kontrol atas urutan kemunculan rekord dalam tabel jawaban yang dihasilkan oleh query seperti dalam pernyataan berikut:
SELECT item, Customer, SaleNo, Amount
FROM SALES
WHERE SaleNo > 0
ORDER BY Customer ASC, Amount DESC;
Maka akan dihasilkan data sebagai berikut:
Item |
Customer |
SaleNo |
Amount |
Chair | Johnson |
2 |
$,453,78 |
Suite | Jones |
4 |
$3.421,00 |
Bed | Jones |
7 |
$453,00 |
Sofa | Simpson |
6 |
$235,67 |
Sofa | Simpson |
1 |
$235,67 |
Sofa | Smith |
5 |
$235,67 |
Stool | Smith |
3 |
$82,78 |
ASC menentukan urutan menurut abjad sedangkan DESC mengurut rekord dalam urutan yang menurun.
[1] Mark Whitehorn dan Bill Marklyn, Seluk Beluk Database Relasional, Penerbit Erlangga, 2003, halaman 143.
[2] Thomas M. Connolly and Carolyn E. Begg, Database System A Practical Approach to Design, Implementation, and Management, University of Paisley, 2001, halaman 15.
[3] Mark Whitehorn dan Bill Marklyn, Seluk Beluk Database Relasional, Penerbit Erlangga, 2003, halaman 76-77.