Wecome


Click here for Myspace Layouts
Twitter Delicious Facebook Digg Stumbleupon Favorites More

Jumat, 14 Januari 2011

Studi dan Implementasi Pengamanan Basis Data dengan Teknik Kriptografi Stream Cipher

Studi dan Implementasi Pengamanan Basis Data dengan Teknik
Kriptografi Stream Cipher


Abstrak

Masalah keamanan merupakan salah satu tantangan yang harus dipenuhi di dalam industri dan penelitian basis data. Data yang tersimpan di dalam basis data harus dapat terjamin keamanannya. Pengamanan data dapat dilakukan melalui dua cara. Cara pertama ialah pengaturan hak akses setiap pengguna oleh administrator basis data. Cara kedua ialah pengamanan data dari sisi kandungan data yang tersimpan pada basis data. Makalah ini menguraikan implementasi pengamanan data pada basis data dengan cara kedua. Pengamanan data dilakukan dengan menggunakan teknik kriptografi RC4. Penelitian (studi) yang dilakukan ialah untuk mencari cara agar RC4 dapat dimanfaatkan untuk mengamankan data serta memberi kemudahan bagi pemilik data untuk mengamankan datanya tanpa perlu mengetahui query – query yang perlu diketikkan atau dijalankan.


Kata kunci: basis data, kriptografi, RC4




1. Pendahuluan

Berbagai organisasi, perusahaan, atau pun pihak – pihak lain telah memanfaatkan teknologi basis data untuk menyimpan dan mengelola data organisasi atau perusahaannya. Saat ini, keamanan terhadap data yang tersimpan dalam basis data sudah menjadi persyaratan mutlak. Pengamanan terhadap jaringan komputer yang terhubung dengan basis data sudah tidak lagi menjamin keamanan data karena kebocoran data dapat disebabkan oleh “orang dalam” atau pihak – pihak yang langsung berhubungan dengan basis data seperti administrator basis data. Hal ini menyebabkan pengguna basis data harus menemukan cara untuk mengamankan data tanpa campur tangan administrator basis data. Kriptografi dapat digunakan untuk mengamankan data. Oleh karena itu, pengguna basis data membutuhkan bantuan untuk memenuhi kebutuhan keamanan akan data yang disimpannya.

Penerapan kriptografi pada makalah ini akan difokuskan bagaimana kriptografi dapat mengamankan data sampai pada level baris (row) dan kolom (field) dengan tetap memperhatikan integritas data dan kewenangan setiap pengguna basis data. Algoritma kriptografi yang akan digunakan ialah algoritma kriptografi simetris dan bersifat stream cipher sehingga data hasil enkripsi
(cipherteks) mempunyai ukuran yang sama dengan data asli (plainteks). Teknik kriptografi simetris dipilih karena diharapkan dengan algoritma ini proses enkripsi – dekripsi data dapat dilakukan

dengan waktu yang lebih cepat dibandingkan dengan
algoritma kriptografi kunci publik (asimetris) [5].

2. Kriptografi

Kriptografi merupakan ilmu sekaligus seni untuk menjaga keamanan pesan (message) [5]. Algoritma kriptografi adalah [3] :
Æ’ Aturan untuk enkripsi (enciphering) dan dekripsi
(deciphering).
Æ’ Fungsi matematika yang digunakan untuk enkripsi dan dekripsi.

Algoritma kriptografi berkembang terus dan terbagi atas dua bagian yaitu algoritma kriptografi klasik dan modern. Pada kriptografi klasik, kriptografer menggunakan algoritma sederhana, yang memungkinkan cipherteks dapat dipecahkan dengan mudah (melalui penggunaan statistik, terkaan, intuisi, dan sebagainya). Algoritma kriptografi modern dibuat sedemikian kompleks sehingga kriptanalis sangat sulit untuk memecahkan cipherteks tanpa mengetahui kunci. Algoritma kriptografi modern umumnya beroperasi dalam mode bit. Algoritma ini dapat dikelompokkan menjadi dua kategori yaitu cipher aliran (stream cipher – beroperasi dalam bentuk bit tunggal) dan cipher blok (block cipher – beroperasi dalam bentuk blok bit). Pengelompokan algoritma juga dilakukan berdasarkan kunci enkripsi – dekripsi yang digunakan, yaitu simetris (menggunakan kunci yang sama untuk proses enkripsi – dekripsi) dan asimetris atau kunci – publik (menggunakan kunci yang berbeda untuk proses enkripsi – dekripsi).



1


2.1 Algoritma Kriptografi RC4

Algoritma kriptografi RC4 merupakan salah satu algoritma berjenis stream cipher. Algoritma ini akan memproses data dalam ukuran byte demi byte (1 byte = 8 bit). Algoritma ini dapat melakukan enkripsi dan dekripsi pada panjang data yang variabel atau dinamis tanpa perlu adanya penambahan byte (padding).

RC4 mempunyai sebuah S-Box, S0, S1, ... , S255, yang berisi permutasi dari bilangan 0 sampai 255, dan permutasi merupakan fungsi dari kunci K dengan panjang yang variabel. Langkah – langkah algoritma kriptografi RC4 sebagai berikut :
1. Inisialisasi S-Box
- isi S-Box secara berurutan, yaitu S0=0, S1=1,
... , S255=255.
- Lakukan padding kunci K sehingga panjang kunci K = 256.
- Lakukan pertukaran dan pengisian pada S-Box
dengan kunci K, sebagai berikut :
j = 0
for i = 0 to 255
j = (j + Si + Ki) mod 256
swap Si dan Sj
Fungsi swap merupakan fungsi yang
menukarkan nilai S ke-i dengan nilai S ke-j

2. Proses enkripsi atau dekripsi RC4 :
i = 0
j = 0
for idx = 0 to len-1
i = (i + 1) mod 256
j = (j + Si) mod 256
swap Si dan Sj
t = (Si + Sj) mod 256
k = St
buffidx = k XOR buffidx
Keterangan:
- buff merupakan pesan yang akan dienkripsi atau dekripsi
- len merupakan panjang dari buff
Hasil akhir dari proses di atas ialah buff yang berisi pesan yang telah dienkripsi atau dekripsi.

3. Analisis

Perangkat lunak yang dikembangkan memberi penekanan pada kemudahan bagi pengguna umum basis data di dalam pemanfaatan perangkat lunak untuk melakukan pengamanan data melalui proses enkripsi dan dekripsi pada data yang dimiliki pengguna tersebut tanpa perlu melalui penulisan bahasa query tetapi cukup dengan melakukan “klik” pada tombol – tombol yang disediakan. Deskripsi umum sistem kerja perangkat lunak yang dibangun dapat dilihat pada gambar 1.


Gambar 1. Deskripsi Umum Sistem Kerja Perangkat Lunak


Perangkat lunak yang dibangun dinamakan MSSQL_CRYPT. Seperti terlihat pada gambar 1, perangkat lunak yang dibangun terletak di antara server basis data dan web browser. Hasil akhir dari perangkat lunak ini ialah aplikasi berbasis web. Pada dasarnya, perangkat lunak akan melakukan dua fungsi utama, yaitu :
1. Melakukan enkripsi – dekripsi data pada level kolom atau field.
2. Melakukan enkripsi – dekripsi data pada level baris atau row.

Perangkat lunak menerima masukan dari pengguna melalui antarmuka yang disediakan dan mengolah masukan dari pengguna tersebut serta mengubahnya menjadi query tertentu. Query ini kemudian dijalankan pada sistem basis data yang terdapat di server. Kemudian hasil dari query ini diberikan kembali kepada pengguna melalui antarmuka perangkat lunak.

Pengguna dari perangkat lunak MSSQL_CRYPT
dapat dikelompokkan sebagai berikut :
1. Administrator basis data
Administrator basis data merupakan pihak yang bertanggung jawab untuk melakukan pengaturan basis data antara lain: pembuatan basis data dan pengaturan pengguna basis data serta hak akses dari setiap pengguna tersebut.
2. Pemilik data
Pemilik data merupakan pihak yang memiliki data yang terdapat pada basis data. Memiliki artinya pihak tersebut berhak melakukan pengubahan pada data seperti melakukan penambahan data baru, atau pun menghapus data, jadi bukan hanya memiliki hak untuk melihat isi dari data. Pemilik data merupakan pihak yang akan dan ingin melakukan perlindungan terhadap data yang dimilikinya dengan cara enkripsi maupun dekripsi terhadap data tersebut.

4. Perancangan

Perancangan merupakan proses pengolahan hasil analisis perangkat lunak menjadi rencana pengembangan perangkat lunak dan batasan – batasan perangkat lunak atau masalah yang mungkin dihadapi dalam pengembangan perangkat lunak. Perancangan yang dilakukan meliputi perancangan arsitektur, perancangan modul, dan perancangan antarmuka.

4.1 Perancangan Arsitektur

Arsitektur perangkat lunak terdiri atas tiga buah proses utama yang dilakukan, yaitu :
1. Pemrosesan Otentikasi dan Kewenangan Data Otentikasi dan kewenangan data diproses berdasarkan nama pengguna (user id) dan
password yang diterima sistem dan dicocokan



2


dengan data dan wewenang pada server basis data. Otentikasi merupakan pemrosesan wewenang pengguna untuk melakukan koneksi dengan server basis data sedangkan kewenangan data merupakan pemrosesan wewenang pengguna untuk melakukan manipulasi terhadap basis data dan tabel.
2. Pemrosesan Query
Query – query yang diproses antara lain :
a. Mendapatkan struktur tabel.
b. Mendapatkan data yang tersimpan pada tabel. c. Mengubah data yang tersimpan.
d. Mengubah struktur tabel.
3. Pemrosesan Pesan
Pemrosesan pesan adalah proses untuk melakukan enkripsi – dekripsi pesan yang diterima berdasarkan kunci.

4.2 Perancangan Modul Perangkat Lunak

Perangkat lunak disusun atas lima modul utama, yaitu :
1. Modul Antarmuka
Modul ini menyusun antarmuka perangkat lunak, menyediakan tempat dan template bagi modul lain untuk meletakkan hasil proses modul
tersebut.
2. Modul Otentikasi
Modul ini dirancang untuk implementasi dari proses konfirmasi login dan proses otentikasi pengguna.
3. Modul Pemrosesan Query
Modul ini dirancang untuk implementasi pemrosesan query.
4. Modul Enkripsi – Dekripsi
Modul ini dirancang untuk implementasi dari proses enkripsi – dekripsi.
5. Modul kriptografi RC4
Modul ini dirancang untuk implementasi algoritma kriptografi RC4.

4.3 Perancangan Antarmuka

Antarmuka perangkat lunak terdiri atas dua halaman utama yaitu halaman login dan halaman aplikasi. Hasil dari implementasi perancangan antarmuka dapat dilihat pada bagian 5.

5. Implementasi

Hal – hal yang menjadi batasan pada tahap implementasi adalah :
1. Perangkat lunak hanya akan diimplementasikan pada satu macam sistem basis data relasional
yaitu Microsoft SQL Server 2000 (MSSQL-
Server).
2. Hasil perancangan diimplementasikan pada komputer yang berfungsi sebagai server basis data dan server aplikasi web.

5.1 Implementasi Modul Kriptografi RC4


Modul ini terdiri atas tiga buah prosedur utama, yaitu :
1. Prosedur RC4_swap, untuk menukarkan nilai dua buah variabel.
2. Prosedur RC4_PrepareKey, untuk menyiapkan
S-Box sebelum proses enkripsi atau dekripsi dilakukan.
3. Prosedur RC4, untuk melakukan enkripsi –
dekripsi dengan algoritma RC4.

5.2 Implementasi Modul Otentikasi

Modul ini terdiri atas dua prosedur utama, yaitu :
1. Fungsi connect, untuk membuka koneksi dan melakukan otentikasi ke MSSQL-Server.
2. Prosedur get_database_table, untuk mendapatkan daftar basis data dan tabel
pengguna (user).

5.3 Implementasi Modul Pemrosesan Query

Modul ini terdiri atas dua prosedur utama, yaitu :
1. Prosedur view_structure, untuk mendapatkan struktur dari suatu tabel.
2. Prosedur view_data, untuk mendapatkan data
(baris) dari suatu tabel.

5.4 Implementasi Modul Enkripsi – Dekripsi

Modul ini terdiri atas empat fungsi utama, yaitu :
1. Fungsi encrypt_col, untuk melakukan enkripsi data secara kolom.
2. Fungsi encrypt_row, untuk melakukan enkripsi data secara baris.
3. Fungsi decrypt_col, untuk melakukan dekripsi
secara kolom.
4. Fungsi decrypt_row, untuk melakukan dekripsi secara baris.

5.5 Implementasi Penanganan Integritas

Data

Untuk menangani integritas tipe data, ada beberapa tipe data yang membutuhkan penanganan atau batasan tertentu, yaitu sebagai berikut :
1. Kelompok tipe data teks (character strings), terdiri atas : char, varchar, text, nchar, nvarchar, dan ntext.
MSSQL_CRYPT tidak berhasil melakukan enkripsi maupun dekripsi pada tipe data ntext. Untuk tipe data teks lainnya, proses enkripsi dan dekripsi dapat berjalan dengan baik dengan syarat ukuran kolom mempunyai ukuran 33% lebih besar dari panjang data terbesar yang tersimpan pada kolom tersebut. Hal ini disebabkan karena proses enkripsi akan menghasilkan data yang setiap karakternya dapat bernilai keseluruhan kode ASCII yang ada sedangkan tipe data teks pada MSSQL tidak dapat menyimpan semua karakter ASCII sehingga perlu dilakukan konversi terhadap data



3


acak hasil enkripsi dengan cara melakukan pengkodean data tersebut secara Base 64
(Base64 Encoding) terlebih dahulu sebelum dilakukan update (pengubahan) data pada basis
data. Hasil dari pengkodean data secara Base 64
ialah data dengan karakter yang dapat disimpan pada field dengan tipe data teks MSSQL dengan ukuran 33% lebih panjang dari data aslinya (data sebelum dikodekan).
2. Kelompok tipe data biner (binary strings), terdiri atas : binary, varbinary, dan image.
Tidak ada penanganan dan batasan khusus untuk kelompok tipe data ini.
3. Kelompok tipe data numerik, terdiri atas : bigint,
int, smallint, tinyint, bit, decimal, numeric, money, smallmoney, float, real, datetime, dan smalldatetime.
MSSQL_CRYPT tidak melakukan enkripsi dan dekripsi pada tipe data bit karena ukuran data bit hanya satu bit sedangkan proses enkripsi dan dekripsi hanya dapat dilakukan pada data dengan ukuran minimal satu byte. Untuk mempertahankan tipe data pada setiap kolom, MSSQL_CRYPT akan melakukan enkripsi dekripsi tanpa mengubah tipe data tetapi data yang dienkripsi akan disimpan pada satu tabel tambahan sedangkan tabel yang mengalami enkripsi data, data bersangkutan akan diubah
(update) menjadi nol. Tabel ini berfungsi sebagai tabel internal aplikasi MSSQL_CRYPT dan akan digunakan oleh semua data bertipe numerik yang akan dienkripsi. Tabel disimpan pada satu basis data internal dengan nama basis data
“mcrypt” dan nama tabel “ud”. Struktur dari tabel “ud” dapat dilihat pada gambar 2.










Gambar 2 Struktur Tabel ud (basis data internal "mcrypt")
khusus, yaitu cursor,
timestamp, dan uniqueidentifier serta tipe data yang didefinisikan oleh pengguna sendiri (user defined
type).
MSSQL_CRYPT tidak menangani kelompok tipe data ini. Penanganan kelompok tipe data ini memerlukan studi secara khusus. Selain itu, kelompok tipe data ini jarang digunakan.

Selain penanganan integritas tipe data, MSSQL_CRYPT juga menangani constraint pada data. Constraint yang dimaksud adalah primary key, foreign key, dan unique key. MSSQL_CRYPT akan mengunci kolom yang memiliki salah satu constraint tersebut sehingga pengguna tidak dapat


melakukan enkripsi ataupun dekripsi baik secara kolom maupun baris. MSSQL_CRYPT tidak menangani kolom yang memiliki constraint check karena constraint check dapat mengandung berbagai macam parameter sehingga sulit untuk diolah dan ditangani.

5.6 Implementasi Antar Muka

Hasil dari implementasi perancangan antarmuka dapat dilihat pada gambar 3 dan gambar 4.


















Gambar 3 Tampilan Halaman Login





















Gambar 4 Tampilan Halaman Aplikasi
6. Kesimpulan

Makalah ini membahas pemanfaatan kriptografi, khususnya teknik kriptografi stream cipher RC4, untuk pengamanan basis data. Beberapa kesimpulan yang dapat diambil dari pelaksanaan tugas akhir ini, yaitu :
1. Tipe data yang berhasil dienkripsi atau dekripsi dengan baik, antara lain :
a. Kelompok tipe data teks (character strings), antara lain : char, varchar, text, nchar, dan
nvarchar.
b. Kelompok tipe data biner (binary strings), antara lain : binary, varbinary, dan image.


4


c. Kelompok tipe data numerik, antara lain : bigint, int, smallint, tinyint, decimal, numeric, money, smallmoney, float, real, datetime, dan smalldatetime.
2. Tipe data yang tidak dienkripsi atau dekripsi, antara lain :
a. Kelompok tipe data teks, antara lain : ntext.
b. Kelompok tipe data numerik, antara lain : bit. c. Kelompok tipe data khusus, antara lain : cursor, sql_variant, table, timestamp, dan uniqueidentifier serta tipe data yang didefinisikan oleh pengguna sendiri (user
defined type).
3. Batasan – batasan dari perangkat lunak yang dihasilkan, antara lain :
a. Hanya dapat melakukan enkripsi dekripsi pada tabel yang mempunyai primary key dengan satu atribut.
b. Tidak dapat melakukan pencegahan enkripsi
dekripsi terhadap data yang memiliki
constraint check.
c. Tidak melakukan pengecekan terhadap kevalidan kunci enkripsi dekripsi yang
digunakan.

7. Daftar Referensi

1. Ir. Fathansyah, Basis Data, Informatika, Bandung, 1999.
2. T. Marcus, A. Prijono dan J.Widiadhi, DELPHI DEVELOPER dan SQL Server 2000, Informatika, Bandung, 2004.
3. R. Munir, Bahan Kuliah IF5054 Kriptografi,
Departemen Teknik Informatika, ITB, 2004.
4. A. Rahmani, Implementasi Teknik Kriptografi Blowfish untuk Pengamanan Basis Data, Tesis Magister Departemen Teknik Informatika, ITB,
2003.
5. B. Schneier, Applied Cryptography: Protocols, Algorithms, and Source Code in C, 2nd Edition, John Wiley & Sons, Inc, 1996.
6. A. Silberschatz, H. F. Korth. Dan S. Sudarshan, Database System Concepts, 4th Edition, McGraw – Hill, 2002.
7. B. Sukmawan, RC4 Stream Cipher, 1998.
8. B. Trower, Crypt Data Packaging, Trantor
Standard Systems Inc, 2001.

















5

BASIS DATA (DATABASE)

BASIS DATA (DATABASE)

Data, Informasi dan Basis Data
Data merupakan fakta mengenai suatu objek seperti manusia, benda, peristiwa, konsep, keadaan dan sebagainya yang dapat dicatat dan mempunyai arti secara implisit. Data dapat dinyatakan dalam bentuk angka, karakter atau simbol, sehingga bila data dikumpulkan dan saling berhubungan maka dikenal dengan istilah basis data (database) [Ramez2000]. Sedangkan menurut George Tsu-der Chou basis data merupakan kumpulan informasi bermanfaat yang diorganisasikan ke dalam aturan yang khusus. Informasi ini adalah data yang telah diorganisasikan ke dalam bentuk yang sesuai dengan kebutuhan seseorang [Abdul1999]. Menurut Encyclopedia of Computer Science and Engineer, para ilmuwan di bidang informasi menerima definisi standar informasi yaitu data yang digunakan dalam pengambilan keputusan.

Definisi lain dari basis data menurut Fabbri dan Schwab adalah sistem berkas terpadu yang dirancang terutama untuk meminimalkan duplikasi data.

Menurut Ramez Elmasri mendefinisikan basis data lebih dibatasi pada arti implisit yang khusus, yaitu:
a. Basis data merupakan penyajian suatu aspek dari dunia nyata (real world).
b. Basis data merupakan kumpulan data dari berbagai sumber yang secara logika mempunyai arti implisit. Sehingga data yang terkumpul secara acak dan tanpa mempunyai arti, tidak dapat disebut basis data.
c. Basis data perlu dirancang, dibangun dan data dikumpulkan untuk suatu tujuan. Basis data dapat digunakan oleh beberapa user dan beberapa aplikasi yang sesuai dengan kepentingan user.

Dari beberapa definisi-definisi tersebut, dapat dikatakan bahwa basis data memounyai berbagai sumber data dalam pengumpulan data, bervariasi derajat interaksi kejadian dari dunia nyata, dirancang dan dibangun agar dapat digunakan oleh beberapa user untuk berbagai kepentingan
[Waliyanto2000].


Hirarki Data
Data diorganisasikan kedalam bentuk elemen data (field), rekaman (record), dan berkas (file). Definisi dari ketiganya adalah sebagai berikut:

Elemen data adalah satuan data terkecil yang tidak dapat dipecah lagi menjadi unit lain yang bermakna. Misalnya data siswa terdiri dari NIS, Nama, Alamat, Telepon atau Jenis Kelamin.

Rekaman merupakan gabungan sejumlah elemen data yang saling terkait. Istilah lain dari rekaman adalah baris atau tupel.

Berkas adalah himpunan seluruh rekaman yang bertipe sama.


Berkas (file)




Rekaman (record) Rekaman (record) Rekaman (record) …





Elemen Data (field) Elemen Data (field) Elemen Data (field)


Gambar 1.1 Hirarki data

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 2
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


Sistem Basis Data
[Waliyanto2000] Gabungan antara basis data dan perangkat lunak SMBD (Sistem Manajemen Basis Data) termasuk di dalamnya program aplikasi yang dibuat dan bekerja dalam satu sistem disebut dengan Sistem Basis Data.

User/Programmer






Program Aplikasi



SMBD


Perangkat Lunak Pemroses
Program/Query



Perangkat Lunak
Pengakses Data






Definisi Data
(Meta Data) Basis Data

Sistem Basis Data

Gambar 1.2 Konsep Sistem Basis Data (kompilasi Ramez Elmasri. dkk 1994)

C. J. Date menyatakan bahwa sistem basis data dapat dianggap sebagai tempat untuk sekumpulan berkas data yang terkomputerisasi dengan tujuan untuk memelihara informasi dan membuat informasi tersebut tersedia saat dibutuhkan.


Data Base Management System (DBMS)/Sistem Manajemen Basis Data (SMB)

DBMS dapat diartikan sebagai program komputer yang digunakan untuk memasukkan, mengubah, menghapus, memodifikasi dan memperoleh data/informasi dengan praktis dan efisien.

Kelebihan dari DBMS antara lain adalah:
• Kepraktisan. DBMS menyediakan media penyimpan permanen yang berukuran kecil namun banyak menyimpan data jika dibandingkan dengan menggunakan kertas.
• Kecepatan. Komputer dapat mencari dan menampilkan informasi yang dibutuhkan dengan cepat.
• Mengurangi kejemuan. Pekerjaan yang berulang-ulang dapat menimbulkan kebosanan bagi manusia, sedangkan mesin tidak merasakannya.
• Update to date. Informasi yang tersedia selalu berubah dan akurat setiap.

[Waliyanto2000] Keuntungan-keuntungan dalam penggunaan DBMS antara lain adalah:

a. Pemusatan kontrol data. Dengan satu DBMS di bawah kontrol satu orang atau kelkompok dapat menjamin terpeliharanya standar kualitas data dan keamanan batas penggunaannya serta dapat menetralkan konflik yang terjadi dalam persyaratan data dan integritas data dapat terjaga.
b. Pemakaian data bersama (Shared Data). Informasi yang ada dalam basis data dapat digunakan lebih efektif dengan pemakaian beberapa user dengan kontrol data yang terjaga.
c. Data yang bebas (independent). Program aplikasi terpisah dengan data yang disimpan dalam komputer.
d. Kemudahan dalam pembuatan program aplikasi baru.
e. Pemakaian secara langsung. DBMS menyediakan interface yang memudahkan pengguna dalam mengolah data.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 3
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


f. Data yang berlebihan dapat dikontrol. Data yang dimasukkan dapat terjadi kerangkapan
(redudant), untuk itu DBMS berfungsi untuk menurunkan tingkat redudancy dan pengelolaan
proses pembaruan data.
g. Pandangan user (user view). Ada kemungkinan basis data yang diakses adalah sama, maka
DBMS mampu mengatur interface yang berbeda dan disesuaikan dengan pemahaman tiap user terhadap basis data menurut kebutuhan.

Kelemahan-kelemahan DBMS antara lain:

a. Biaya. Kebutuhan untuk medapatkan perangkat lunak dan perangkat keras yang tepat cukup mahal, termasuk biaya pemeliharaan dan sumber daya manusia yang mengelola basis data tersebut.
b. Sangat kompleks. Sistem basis data lebih kompleks dibandingkan dengan proses berkas, sehingga dapat mudah terjadinya kesalahan dan semakin sulit dalam pemeliharaan data.
c. Resiko data yang terpusat. Data yang terpusat dalam satu lokasi dapat beresiko kehilangan data selama proses aplikasi.


Model Data
Model data dapat dikelompokkan berdasarkan konsep pembuatan deskripsi struktur basis data, yaitu:
a. Model data konsepsual (high level) menyajikan konsep tentang bagaiman user memandang atau
memperlakukan data. Dalam model ini dikenalkan tiga konsep penyajian data yaitu:
• Entity (entitas) merupakan penyajian obyek, kejadian atau konsep dunia nyata yang keberadaannya secara eksplisit didefinisikan dan disimpan dalam basis data, contohnya Mahasiswa, Matakuliah, Dosen, Nilai dan lain sebagainya.
• Atribute (atribut) adalah keterangan-keterangan yang menjelaskan karakteristik dari suatu entitas seperti NIM, Nama, Fakultas, Jurusan untuk entitas Mahasiswa.
• Relationship (hubungan) merupakan hubungan atau interaksi antara satu entitas dengan yang lainnya, misalnya entitas pelanggan berhubungan dengan entitas barang yang
dibelinya.
b. Model data fiskal (low level) merupakan konsep bagaimana deskripsi detail data disimpan ke
dalam komputer dengan menyajikan informasi tentang format rekaman, urutan rekaman, dan jalur pengaksesan data yang dapat membuat pemcarian rekaman data lebih efisien.
c. Model data implementasi (representational) merupakan konsep deskripsi data disimpan dalam
komputer dengan menyembunyikan sebagian detail deskripsi data sehingga para user mendapat gambaran global bagaimana data disimpan dalam komputer. Model ini merupakan konsep model data yang digunakan oleh model hirarki, jaringan dan relasional.

Skema dan Instan Basis Data
Skema basis data merupakan deskripsi dari basis data yang spesifikasinya ditentukan dalam tahap perancangan namun tidak terlalu diharapkan diubah setiap saat. Penggambaran skema umumnya hanya berisi sebagian dari deatil deskripsi basis data.

MAHASISWA
NIM NAMA FAKULTAS JURUSAN

MATA KULIAH
KD_MK MATA KULIAH SKS

DOSEN
KD_DOSEN NAMA ALAMAT TELEPON

KULIAH
ID_KUL NIM KD_MK KD_DOSEN SEMESTER TAHUN NILAI

Gambar 1.3 Skema Basis Data Akademi

Sekelompok data yang tersusun dalam satu baris rekaman (record/tuple) dan tersimpan dalam basis data disebut dengan instansi (instance) atau kejadian (occurences).

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 4
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


Arsitektur DBMS
Arsitektur ini dikenal dengan nama arsitektur tiga skema (three-schema architecture) dimana fungsi ini untuk memisahkan antara basis data fisik dengan program aplikasi user. Skema-skema tersebut adalah sebagai berikut:
a. Level internal merupakan skema internal yang memuat deskripsi struktur penyimpanan basis data dan menggunakan model data fisikal serta mendefinisikan secara detail penyimpanan data dalam
basis data, serta jalur pengaksesan data.
b. Level konsepsual adalah skema yang memuat deskripsi struktur basis data secara keseluruhan untuk semua pemakai. Skema ini hanya memuat deskripsi tentang entitas, atribut, hubungan dan batasan, tanpa memuat deskripsi data secara detail.
c. Level eksternal merupakan skema eksternal (user view) yang mendefinisikan pandangan data terhadap sekelompok user (local view) dengan menyembunyikan data lain yang tidak diperlukan oleh kelompok user tersebut.

Keuntungan dari arsitektur ini antara lain:
a. Perubahan skema konsepsual, yaitu adanya perubahan dalam skema konsepsual contohnya penambahan suatu item data tidak akan berpengaruh pada program aplikasi. Tetapi jika skema eksternal tidak sesuai lagi dengan skema konsepsual yang baru maka program aplikasi harus disesuaikan juga.
b. Perubahan skema internal. Pemisahan antara skema eksternal dan skema internal berfungsi untuk menjaga bila terjadi perubahan skema internal, misalnya ada penambahan “pointer” pada rekaman tidak memerlukan perubahan pada aplikasi.
c. Perubahan skema eksternal. Adanya penambahan skema eksternal atau pembuatan skema eksternal baru tidak akan berpengaruh pada aplikasi yang ada selama aplikasi tersebut tidak mengakses data berdasarkan skema yang baru.


Komponen DBMS
Komponen-komponen DBMS (Howe,1991) terdiri dari:
• Interface, yang didalamnya terdapat bahasa manipulasi data (data manipulation language)
• Bahasa definisi data (data definition language) untuk skema eksternal, skema konsepsual dan skema internal.
• Sistem kontrol basis data (Database Control System) yang mengakses basis data karena adanya perintah dari bahasa manipulasi data.

Contoh bahasa menggunakan komponen-komponen tersebut adalah SQL (Structured Query
Language). SQL merupakan bahasa standar yang digunakan oleh kebanykan aplikasi-aplikasi DBMS.


Klasifikasi DBMS
Sistem Basisi Data dapat diklasifikasikan menjadi tiga bagian, yang terdiri dari:
a. Klasifikasi berdasarkan model data. Klasifikasi ini terdiri dari model data hirarki, model data jaringan, model data relasional.
1. Model data hirarki
Dalam model ini, data disusun menurut struktur pohon yang merupakan bentuk lain dari abstraksi data untuk basis data akademi. Pada puncak hirarki diesbut dengan akar (root). Tiap entitas tingkat atas (parent) mempunyai satu atau lebih sub-entitas (children) sehingga setiap entitas hanya boleh mempunyai satu induk, tetapi dapat mempunyai banyak anak.

Pada mode data hirarki, hubungan antar entitas dinyatakan dalam satu-banyak (one to many) atau satu-satu (one to one). Dalam satu Universitas terdapat banyak Fakultas dan setiap Fakultas terdapat banyak Dosen atau banyak Mahasiswa, dan seterusnya. Tanda panah menunjukkan derajat keterhubungan “banyak”.

Untuk menampilkan semua mata kuliah pada Fakultas tertentu harus dilakukan dalam dua tahap. Yang pertama adalah menampilkan rekaman semua Dosen yang mengajar di Fakultas tersebut, kemudian baru mata kuliah yang dipegang oleh para Dosen. Dalam hal ini penampilan data terlihat kurang efisien, sebab menggunakan entitas perantara (dosen) yang harus ditampilkan juga. Dikarenakan kunci data yang digunakan untuk menghubungkan antar entitas diberi kode dalam struktur data, maka untuk jumlah entitas perantara yang sedikit masih dapat dikatakan efisien.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 5
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


Kelemahan lain pada model data hirarki adalah tidak dapat melakukan pencarian data pada
field. Misalnya dalam entitas mata ki\uliha tida pat ditampilkan hanya mata kuliah dengan jumlah SKS tertentu, sebab field “Jumlah SKS” bukan sebagai kunci data. Hal ini masih dapat dilakukan dengan mengubah struktur data dengan memberi hubungan khusus yang digunakan untuk mengubah struktur database. Kelebihan model ini adalah sangat mudah dipahami dan mudah dalam pembaharuan data [Waliyanto2000].








Fakultas

Universitas

Nama Unive rsitas
ABC


Nama Fakultas Jumlah Dosen Jumlah Mhs Jumlah Jurusan
Teknik 316 1098 8

Mahasiswa Dosen

No. Mhs Nama Jurusan
10189 Munif Elektro

Mata Kuliah
Kode MK Nama MK Jumlah SKS
KID627187 Fisika Dasar 2


Gambar 1.4 Organisasi rekaman data pada model hirarki [Waliyanto2000]


2. Model data Jaringan
Dalam model ini setiap entitas dapat mempunyai banyak induk dan banyak anak. Pada gambar menunjukkan entitas mata kuliah mempunyai dua induk, yaitu langsung berhubungan dengan Fakultas dan Dosen.






Fakultas

Universitas

Nama Unive rsitas
ABC


Nama Fakultas Jumlah Dosen Jumlah Mhs Jumlah Jurusan
Teknik 316 1098 8

Mahasiswa Dosen

No. Mhs Nama Jurusan
10189 Munif Elektro

Mata Kuliah
Kode MK Nama MK Jumlah SKS
KID627187 Fisika Dasar 2

Registrasi
No. Mhs Nama MK
10189 KID627187


Gambar 1.5 Organisasi rekaman data model raringan [Waliyanto2000]

Dalam model ini lebih sedikit terdapat data rangkap, namun lebih banyak terdapat hubungan antar entitas, sehingga akan menambah informasi hubungan yang harus disimpan dalam database. hal ini akan menambah volume dan kerumitan dalam penyimpanan berkas data.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 6
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


3. Model data Relasional
Dalam model ini setiap field dapat dijadikan kunci data. Data rekaman disusun dari nilai yang berhubungan (record). Baris-baris ini akan membentuk tabel yang umunya tersimpan dalam satu berkas (file).

Mata Kuliah Fakultas

No MK Nama MK SKS NIP
KDI1892 Bahasa Inggris 2 1222
KAI6522 Fisika Lanjut 2 2344
… … … …

Mahasiswa Dosen Registrasi
No Mhs Nama Jurusan Fakultas
11782 Arif Elektro Teknik
44366 Rudian Mesin Teknik
89878 Nita Sipil Teknik
… … … …

Gambar 1.6 Organisasi basis data model relasional [Waliyanto2000]

Dengan menggunakan model ini, pencarian field dari suatu tabel atau banyak tabel dapat dilakukan dengan cepat. Pencarian atribut yang berhubungan pada tabel yang berbeda dapat dilakukan dengan menghubungkan terlebih dahulu tabel-tabel tersebut dengan menggunakan atribut yang sama (joint operation).

Keuntungan yang didapat dengan menggunakan model ini adalah sebagai berikut
[Waliyanto2000]:

• Model ini lebih luwes karena nilai data dalam tabel tidak ada pembatasan dalam berbagai proses pencarian data.
• Model ini mempunyai latar belakang teori matematika.
• Pengorganisasian model relasional sangat sederhana, sehingga mudah dipahami.
• Basis data yang sama biasanya dapat disajikan dengan lebih sedikit terjadi data rangkap
(redudancy data).

Sedangkan beberapa kelemahan model ini adalah [Waliyanto2000]:
• Lebih sulit dalam implementasinya terutama untuk data dengan jumlah yang besar dan tingkat kompleksitasnya tinggi.
• Proses pencarian informasi lebih lambat, karena beberapa tabel tidak dihubungkan secara fisik. Dalam manipulasi data yang menggunakan beberapa tabel akan
memerlukan waktu yang lama, karena tabel-tabel harus dihubungkan terlebih dahulu.

b. Klasifkasi berdasarkan lokasi penyimpanan data, yaitu DBMS terpusat dan DBMS terdistribusi. Dalam DBMS terpusat basis data disimpan dalam satu komputer media penyimpan sehingga pengguuna sistem mengakses data dari pusat. DBMS terdistribusi, basis data tersebar pada penyimpanan tiap terminal pengguna (client). Antar pengguna dapat mengakses data secara langsung tanpa perlu melalui pusat penyimpanan. DBMS ini memerlukan sistem kontrol yang rumit.
c. Klasifikasi berdasarkan tujuan DBMS digunakan yaitu tujuan umum (general purpose) dan tujuan khusus (special purpose). Untuk tujuan umum dapat digunakan untuk berbagai tujuan dengan
memperlakukan data sama menurut penggunaannya contoh aplikasinya adalah DBASE, ORACLE, FOXBASE dan sebagainya. DBMS tujuan khusus dirancang dan digunakan untuk keperluan tertentu, sebagai contoh pengelolaan data karyawan pada perusahaan Asuransi.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 7
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007



Pengembangan Database
Database diproses oleh DBMS untuk digunakan oleh pengembang maupun pengguna, yang mengakses DBMS secara langsung atau tidak langsung melalui program-program aplikasi. Database terdiri dari empat elemen utama yaitu data pengguna, metadata, indeks dan metadata aplikasi
[David2002].


Data Pengguna
Hampir semua database me-representasikan data pengguna sebagai relasi dengan menganggapnya sebagai tabel data. Kolom dalam tabel berisi field-field atau atribut dan baris tabel berisi record/tuple
(rekaman) untuk keterangan entitas dalam lingkungan bisnis. Tidak semua relasi diperlukan, beberapa relasi lebih baik distrukturkan dengan proses normalisasi.

Relasi ini dapat digambarkan dengan bentuk hubungan antara pelajar dengan guru sebagai berikut:

Tabel 1-1 Relasi Pelajar dengan Guru (R1)

NamaPelajar TeleponPelajar NamaGuru TeleponGuru
Aminudin 7778889 Pardi 7789665
Usman 7896532 Pardi 7789665
Ari 7474856 Dadang 8965555
Rina 7895654 Marni 4562211
Tuti 7897744 Dadang 8965555
Joni 7845644 Dadang 8965555

Struktur relasi tersebut dapat terjadi beberapa masalah, misalnya jika guru Dadang mengganti nomor
telepon maka tiga record yang terdapat guru Dadang diatas harus diganti juga. Untuk itu lebih baik jika struktur relasi diubah menjadi dua relasi seperti di bawah ini:

Tabel 1-2 Hubungan antara R1 dan R2

NamaPelajar TeleponPelajar NamaGuru
Aminudin 7778889 Pardi
Usman 7896532 Pardi
Ari 7474856 Dadang
Rina 7895654 Marni
Tuti 7897744 Dadang
Joni 7845644 Dadang

Dari relasi diatas akan pengubahan data hanya dilakukan pada relasi kedua.

Metadata
Penjelasan struktur dari suatu tabel disebut dengan metadata dan terkadang disebut dengan system tables. Bentuk dari metada dapat digambarkan seperti dibawah ini yang terdiri dua tabel. Tabel pertama berisi daftar tabel-tabel di dalam suatu database sedangkan tabel yang kedua berisi daftar kolom-kolom pada suatu tabel.

Tabel 1-3 Tabel SysTable


Nama Tabel Jumlah
Kolom
Primary Key
Pelajar 4 NIS
Guru 3 NIP
Mata Pelajaran 4 Kode_MP
Relasi Belajar 3 {NIS,Kode_MP,NIP}

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 8
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007



Tabel 1-4 Tabel SysColumns

Nama Kolom Nama Tabel Tipe Data Panjang
NIS Pelajar String 5
Nama Pelajar String 20
Telepon Pelajar String 12
Alamat Pelajar String 50
NIP Guru String 6
Nama Guru String 20
Telepon Guru String 12
Divisi Guru String 20
Kode_MP Mata Pelajaran String 5
Nama MP Mata Pelajaran String 15
Jumlah Jam Mata Pelajaran Integer 4
NIS Relasi Belajar String 5
Kode_MP Relasi Belajar String 5
NIP Relasi Belajar String 6
Tingkat Relasi Belajar String 2


Indeks
Tipe database ini digunakan untuk meningkatkan kinerja dan akses suatu database. Terkadang tipe data ini disebut dengan overhead data, terdiri dari prinsip-prinsip indeks serta beberapa penggunaan struktur data link list. Di bawah ini contoh pengguanan dua buah indeks dari tabel Mahasiswa:

Tabel 1-5 Contoh Tabel Mahasiswa

NO Nama Jurusan Kelas
10 David Carradine Akuntansi 2AB
20 Jaka Sembung Manajemen 2CV
30 Kebo Ireng Manajemen 2CV
40 Lasmini Teknik Sipil 1SP
50 Joni Keboy Akuntansi 1AB
60 Franc De Nero Manajemen 2AB
70 Marco Van Basten Teknik Sipil 1SP
80 Maradani Teknik Sipil 1SP
90 Dona Doni Akuntansi 1AB

Tabel 1-6 Tabel Indeks berdasarkan Kelas

Kelas No
1AB 50,90
2AB 10,60
2CV 20,30
1SP 40,70,80

Tabel 1-7 Tabel indeks berdasarkan Jurusan

Jurusan No
Akuntansi 10,50,90
Manajemen 20,30,60
Teknik Sipil 40,70,80

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 9
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


Indek tidak hanya digunakan untuk pengurutan, tetapi digunakan juga untuk mengakses cepat ke
database terutama pencarian data. Apbila suatu tabel contuhnya tabel Mahasiswa, mengalami pengubahan data (penambahan/pengubahan/penghapusan) maka tabel indeks mengalami pengubahan juga.


Application Metadata
Application metadata digunakan untuk menyimpan struktur dan format dari user forms, report, queries
dan komponen-komponen aplikasi lainnya.

Konsep Dasar Tabel
Tabel merupakan blok dasar yang paling umum digunakan dalam sistem basis data, atau disebut juga dengan relasi. Komponen tabel terdiri dari beberapa kolom yang ditandai dengan jenis atribut. Perpotongan antara baris dan kolom disebut nilai atribut. Tujuan penggunaan tabel adalah untuk menyederhanakan logika pandangan terhadap data. Beberapa kententuan-ketentuan dalam penyusunan sebuah tabel adalah sebagai berikut [Waliyanto2000]:
a. Urutan baris diabaikan, sehingga pertukaran baris tidak berpengaruh pada isi informasi tabel.
b. Urutan kolom diabaikan serta identifikasi kolom dibedakan dengan jenis atribut.
c. Tiap perpotongan antara baris dan kolom berisi atribut tunggal
d. Tiap baris dalam tabel harud dibedakan, sehingga tidak ada dua baris atau lebih dalam tabel mempunyai nilai atribut yang sama secara keseluruhan.

Tabel yang memenuhi ketentuan ini disebut dengan tabel normal, jika belum maka dilakukan proses normalisasi.

Salah satu keuntungan menggunakan basis data adalah konsistensi data selalu terjaga dengan menghindari adanya data rangkap (redudant data). Perbedaan antara data rangkap dan data duplikat adalah duplikasi data terjadi bila satu atribut mempunyai dua atau lebih nilai yang sama, sedangkan data rangkap adalah bila satu atribut mempunyai dua atau lebih nilai yang sama, namun bilai salah satu nilai dihapus, maka tidak ada informasi yang hilang, sehingga duplikasi data ini tidak perlu ada. Untuk lebih jelasnya lihat dua tabel berikut:

Tabel 1-8 Contoh duplikasi data pada suatu tabel

NamaPelajar TeleponPelajar NamaGuru
Aminudin 7778889 Pardi
Usman 7896532 Pardi
Ari 7474856 Dadang
Rina 7895654 Marni
Tuti 7897744 Dadang
Joni 7845644 Dadang

Tabel 1-9 Contoh adanya kerangkapan data pada suatu tabel

NamaPelajar TeleponPelajar NamaGuru TeleponGuru
Aminudin 7778889 Pardi 7789665
Usman 7896532 Pardi 7789665
Ari 7474856 Dadang 8965555
Rina 7895654 Marni 4562211
Tuti 7897744 Dadang 8965555
Joni 7845644 Dadang 8965555

Pada tabel 1.8 terjadi duplikasi data pada atribut NamaGuru, andaikan baris pertama pada atribut
NamaGuru dihilangkan maka informasi untuk atribut NamaPelajar baris pertama akan hilang, sedangkan pada tabel 1.9 dapat terlihat bahwa kalau atribut TeleponGuru dari baris pertama dihilangkan maka informasi ini masih dapat diketahui melalui atribut NamaGuru pada baris kedua, mengapa?

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 10
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


Salah satu syarat tabel normal adalah setiap atribut harus mempunyai nilai tunggal untuk tiap barisnya.
Di bawah ini contoh dari suatu tabel yang mempunyai atribut bernilai ganda.

Tabel 1-10 Tabel Dosen dengan nilai ganda

NIP Nama Gelar
102 Jackie Ceng Ir
106 Dakocan Ir, MSc
503 Ali Oncom Drs
401 Otoy Ir, MSc, PhD
203 Gareng Prof, Drs


Dalam tabel di atas terdapat nilai atribut ganda pada kolom Gelar. Hal ini berakibat pengurutan data
hanya dapat dilakukan berdasarkan kolom NIP dan Nama. Untuk menghilangkan nilai ganda tersebut, hal yang paling mudah dilakukan adalah membuat pengisian nilai atribut vertikal namun dapat berakibat kerangkapan data, seperti di bawah ini.

Tabel 1-11 Pengisian atribut secara vertikal

NIP Nama Gelar
102 Jackie Ceng Ir
106 Dakocan Ir
106 Dakocan MSc
503 Ali Oncom Drs
401 Otoy Ir
401 Otoy MSc
401 Otoy PhD
203 Gareng Prof
203 Gareng Drs


Solusi yang teapat untuk menghilangkan kerangkapan data tersebut adalah dengan membagi tabel
menjadi dua bagian yang saling terhubung dengan elemen penghubung salah satu atributnya. Perhatikan tabel-tabel di bawah ini:

Tabel 1-12 Menghilangkan nilai rangkap dengan pemecahan tabel

Gelar



Dosen

NIP Nama
102 Jackie Ceng
106 Dakocan
503 Ali Oncom
401 Otoy
203 Gareng

Dengan cara ini dapat mempermudah dalam proses normalisasi berikutnya. Dalam penyusunan
aturan data perlu dipahami tentang determinan dan identitas. Jika sebuah tabel memiliki atribut A, B,
dan C, sedangkan A menjadi penentu B atau sebaliknya B ditentukan oleh A maka A determinan
(functional determines) B (B functional dependent A) . Nilai atribut B dapat saja duplikasi, kosong atau dapat diubah. Jika a1 dan b1 merupakan nilai A maka akan berpasangan dengan nilai B yang sama ataupun berbeda. Jadi A determinan B jika tiap A mempunyai satu pasangan nilai B. Perhatikan contoh tabel di bawah ini:

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 11
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007



Tabel 1-13 Tabel Mahasiswa

NIM Nama Jurusan Fakultas
21297956 Asmawi Teknik Sipil Teknologi Industri
21297556 Tina Manajemen Ekonomi
20399458 Marino Akuntansi Ekonomi
21198113 Budi Teknik Sipil Teknologi Industri

Apabila setiap nilai atribut NIM menentukan nama mahasiswa maka dikatakan atribut NIM determinan
atribut Nama. Begitu juga dengan atribut Jurusan dan Fakultas yang ditentukan oleh NIM. Bentuk diagram determinan adalah sebagai berikut:


Nama



NIM

Jurusan



Fakultas


Gambar 1.7 Diagram determinan dari tabel Mahasiswa

Dalam kasus lain, ada kemungkinan dua atribut atau lebih secara bersama menentukan atribut lain atau determinan komposit (composite determinant/fully functionally dependent) . Sebagai contoh pada tabel di bawah, atribut NIM dan atribut MataKuliah menentukan atribut Dosen sebagai pengajar.

Tabel 1-14 Tabel pengajaran mata kuliah

NIM MataKuliah Dosen
21297956 Matematika Dasar Pardi
21297956 Fisika Dasar Munir
20399458 Matematika Dasar Joko Susilo
21198113 Fisika Dasar Munir
20399458 Akuntasi Dasar Marni Siregar
21297556 Matematika Dasar Joko Susilo

Gambar diagram determinannya adalah sebagai berikut:




NIM


MataKuliah



Dosen



Gambar 1.8 Diagram determinan tabel pengajaran mata kuliah

Sedangkan bila atribut A determinan atribut B dan atribut B merupakan determinan atribut C maka atribut A adalah determinan transitif atribut C (C transitive dependency A). perhatikan contoh tabel dan diagram determinan di bawah ini:

Tabel 1-15 Daftar penerimaan mahasiswa baru

NIM Jurusan Fakultas
21297956 SI ILKOM
21297556 SK ILKOM
20399458 TI TI
21198113 SK ILKOM

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 12
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007




NIM Jurusan Fakultas



Gambar 1.9 Diagram A determinan transitif C

Dari pembahasan di atas tiap baris dapat diidentifikasikan dengan semua nilai atribut, tetapi akan sangat menyulitkan. Oleh sebab itu perlu pemilihan salah satu nilai atribut yang digunakan sebagai identitas (identifier) atau elemen kunci (key element) dari baris. Nilai atribut dapat dijadikan identitas jika dalam tabel tidak terjadi duplikasi data dan data dengan nilai kosong (NULL).


Normalisasi
Proses normalisasi menyediakan cara sistematis untuk meminimalkan terjadinya kerangkapan data diantara relasi dalan perancangan logikal basis data. Format normalisasi terdiri dari lima bentuk, yaitu:

Form Normal Pertama (1NF). Suatu tabel dikatakan sudah 1NF jika telah memenuhi ketentuan sebagai berikut:
• Tidak ada atribut mempunyai nilai berulang atau nilai array
• Tidak mempunyai baris yang rangkap

Bentuk unnormal mengijinkan nilai-nilai pada suatu atribut dapat berulang. Perhatikan contoh tabel- tabel berikut ini: [Sitansu1991]

Tabel 1-16 Tabel UNIV (University)

DNO DNAME DHEAD
EN English Lee Kunkel
CS Computer Science Albert Roby
MA Mathematics Deb Kumar Boy
HS History Cathy Doucette
EE Elecrical Engineering Raj Chandra Mittra

Tabel 1-17 Tabel INSTR (Instructor)

INAME IDEG SPCODE RANK SSNO DNO
Lee Kunkel BA, MA, PhD 4 Professor 2323121 EN
Albert Roby BS, MS, PhD 2 Professor 1212154 CS
Deb Kumar Boy BS, MS, PhD 5 AssocProf 4545454 MA
Cathy Doucette MA, PhD 6 AssocProf 4545654 HS
Raj Chandra Mittra BA, MSc, PhD 10 Professor 2231321 EE
Tom Clark BA, MA 5 AsstProf 1546465 MA
Marcia Brown BA, BS, MS 2 Instructor 4464654 CS
Susan Woodsmith MA, MS, PhD 3 AsstProf 2131321 PH
Brady Jackson MA, DLitt 15 Professor 2456465 RL
Jack Adams BA, PhD 1 AssocProf 4545462 CS




Tabel 1-18 Tabel STUDNT (Student)

SNAME SSNO MAJOR DEGREE ADVSR DNO COLREG
Roger Brown Smith 121545 Biology BS Jack Adams BI Arts & Sci.
Cindy Logan 232332 Computer Science BS Deb Kumar Boy MA Arts & Sci.
Benjamin Johnson 554545 NDEG NONE BA Business
Steve Levin 454545 BA Lee Kunkel EN Arts & Sci.
Tom Jones 899778 Mathematics MS Raj Chandra Mittra EE Engineering
Berverly Black 365654 English PhD Lee Kunkel EN Arts & Sci.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 13
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007




Tabel 1-19 Tabel CRSE (Course)

CNO CNAME INAME DNO SECNO
CS225 Assembler Language Marcia Brown CS 02
CS547 Discrete Mathematics Deb Kumar Roy CS 01
MA423 Differential Geometry Tom Clark MA 04
EN104 English Composition Staff EN 04
RL712 Comparative Religion Brady Jackson RL 01
CS761 Expert System Albert Roby CS 03
EC102 Macroeconomics Staff EC 06
EN604 Romanticism Lee Kunkel EN 01
HS252 Middle East Cathy Doucette HS 02
EE202 Microcomputing Staff EE 04
MA611 Algebraic Topology Tom Clark MA 01
CS579 Database Systems Marcia Brown CS 02
BI104 Biology Concepts Staff BI 07

Tabel 1-20 Tabel CRSLST (Course List)

CNO SECNO SID GRADE OFRNG
CS579 02 121212 A Spring 87
CS579 02 121231 B- Spring 87
CS579 02 454549 B+ Spring 87
CS579 02 484545 I Spring 87
MA611 01 112121 C Fall 86
MA611 01 212121 A Fall 86
MA611 01 545454 C+ Fall 86
MA611 01 121215 W Fall 86

Tabel 1-21 Tabel SPECL (Special)

SPCODE SPNAME
1 Information Systems
2 Database Systems
3 Kant Doctrine
4 Romantic Literature
5 Differential Geometry
6 Mideast History
7 Topology
8 Automated Reasoning
9 Expert System
10 Microelectronics
11 English Drama
12 Shakespeare
13 Indian History
14 Decision Support Systems
15 Comparatibe Religion




Tabel UNIV, STUDNT, CRSE, CRELST dan SPCODE semuanya berada dalam 1NF, namun untuk
tabel INSTR masih dalam keadaan unnormalisasi, karena atribut IDEG menerima nilai array seperti
“BA, MA, PhD” atau “MA, MS, PhD”.

Form Normal Kedua (2NF). Relasi dapat dikatakan format normal kedua jika sudah dalam format normal pertama dan diikuti kondisi sebagai berikut:

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 14
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


• Key terdiri dari atribut tunggal
• Setiap atribut nonkey ketergantungan fungsional pada semua key atau tidak terjadinya ketergantungan pada key composite.


Misalnya tabel UNIV berada dalam normal kedua dengan mengasumsikan DNO sebagai key, kecuali CRSE. Jika ditentukan CNO dan SECNO sebagai key composite, atribut nonkey CNAME tergantung hanya pada CNO, bukan pada SECNO, sehingga CNAME tidak secara ketergantungan fungsional penuh terhadap key (CNO, SECNO).

Form Normal Ketiga (3NF). Relasi dikatakan format normal ketiga jika sudah dalam format normal kedua dan tidak ada ketergantungan transitif diantara atribut. Misalnya tabel STUDNT mempunyai atribut SSNO sebagai key (2NF). Ketergantungan transitif terjadi diantara DNO dan COLREG. Saat DNO determinan COLREG tanpa melibatkan key SSNO. Contohnya, DNO=’CS’ termasuk COLREG=’Arts/Sc.’ tidak tergantung oleh atribut SSNO, sehingga STUDNT belum termasuk 3NF. Yang menjadi catatan, ketergantungan transitif tidak akan terjadi jika ada ketergantungan fungsional diantara atribut-atribut nonkey yang melibatkan key. Misalnya atribut nonkey SNAME determinan atribut nonkey lainnya yaitu MAJOR, DEGREE, ADVSR dan DNO. Tetapi hal ini merupakan ketergantungan fungsional bukan ketergantungan transitif selagi semua melibatkan key SSNO.

Form Normal Boyce-Codd (BCNF). BCNF menentukan setiap determinan adalah kunci kandidat
(candidate key). Misalnya UNIV mempunyai dua determinan yaitu DNO dan DNAME yang merupakan kunci kandidat sehingga termasuk ke dalam BCNF. Di lain pihak CRSLST dalam 3NF tetapi tidak dalam BCNF. Atribut komposisinya (CNO, SECNO, SID, OFRNG) sebagai kunci-kunci kandidat dan tidak ada ketergantungan transitif, sehingga CRSLST termasuk ke dalam 3NF. Namun atribut CNO adalah determinan saat SECNO tergantung penuh secara fungsional terhadap CNO, walaupun CNO bukan kunci kandidat, sehingga CRSLST belum termasuk BCNF.

Form Normal Keempat (4NF). Bentuk ini adalah bentuk normal ketiga atau BCNF dengan nilai atribut tidak tergantung pada nilai banyak (multivalue dependency).

Form Normal Kelima (5NF). Konsep pada bentuk ini adalah ketergantungan pada gabungan beberapa atribut (join dependency).

Bentuk lain proses normalisasi dapat anda lihat dalam tabel-tabel di bawah ini:

Tabel 1-22 Tabel Mahasiswa dalam 1NF

NIM NamaAwal NamaAkhir Fakultas
122233 Asep Darma Ilmu Komputer
233323 Angling Darma Ilmu Komputer
244455 Bergola Ijo Hukum
334343 Jaka Sembung Kebidanan
322323 Jaka Tarub Hukum

Pada tabel di atas berada pada 1NF kerana tidak ada baris yang duplikat, setiap kolom hanya
mempunyai nilai tunggal (tidak ada group berulang atau array) dan semua masukan dalam kolom mempunyai jenis yang sama.

Key NIM secara fungsional menentukan atribut lain seperti NamaAwal, NamaAkhir, dan Fakultas
(dengan asumsi, setiap mahasiswa hanya boleh menempatkan satu fakultas). NIMNamaAwal, NIMNamaAkhir, NIMFakultas.

Atribut key menentukan secara unik nilai dari atribut lain dalam tabel, semua atribut non-key dalam tabel secara fungsional tergantung terhadap key. Tetapi ada kemungkinan atribut non-key dalam tabel dapat menentukan atribut lain pada tabel tersebut. Perhatikan tabel berikut:

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 15
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


Tabel 1-23 Atribut Non-Key Determinan

NamaAwal NamaAkhir Fakultas Jenjang
Asep Darma Ilmu Komputer S1
Angling Darma Ilmu Komputer S1
Bergola Ijo Hukum S1
Jaka Sembung Kebidanan D3
Jaka Tarub Hukum S1

Atribut jenjang dapat dikatakan tergantung secara fungsional pada atribut Fakultas dengan
konsekuensi bahwa Fakultas Ilmu Komputer dan Hukum hanya untuk mahasiswa S1 dan Fakultas
Kebidanan hanya untuk mahasiswa D3.

Pada tabel 1.23 juga memiliki composite key (kunci komposisi) yang terdiri dari atribut NamaAwal dan NamaAkhir dan atribut Jenjang tergantung secara fungsional pada composite key tersebut. Sebenarnya bisa saja atribut Jenjang tergantung pada atribut NamaAkhir (jika nilai atribut NamaAkhir tidak ada yang sama, namun NamaAkhir terdapat nilai yang sama yaitu “Darma”), atau tergantung dengan atribut NamaAwal, tetapi atribut NamaAwal mempunyai nilai duplikat yaitu “Jaka”. Maka atribut Jenjang tidak tergantung fungsional terhadap kedua atribut key tersebut. Sehingga tabel tersebut belum termasuk ke dalam 2NF (semua atribut non-key tergantung pada semua key).

Tabel 1.23 dapat dinormalisasikan ke dalam bentuk 2NF jika di tambahkan atribut NIM, sehingga tabel hanya mempunyai atribut tunggal (non-composite key) seperti di bawah ini.

Tabel 1-24 Tabel Normalisasi 2NF

NIM NamaAwal NamaAkhir Fakultas Jenjang
122233 Asep Darma Ilmu Komputer S1
233323 Angling Darma Ilmu Komputer S1
244455 Bergola Ijo Hukum S1
334343 Jaka Sembung Kebidanan D3
322323 Jaka Tarub Hukum S1




Anomali (Pelanggaran) dan Normalisasi
Untuk mengilustrasikan adanya anomali, anggap terjadi pada atribut Jenjang dari Fakultas, misalnya Kebidanan. Jika Jaka Sembung kembali berkelana (tidak jadi kuliah) maka baris yang berhubungan dengan Jaka Sembung akan dihapus dan terjadi kehilangan informasi bahwa Kebidanan mempunyai jenjang D3. Kita dapat saja mengetahui bahwa Jenjang Kebidanan adalah D3, tetapi dalam database tersebut tidak ada informasi yang menyatakan Jenjang Kebidanan.

Contoh lain misalnya penambahan mahasiswa baru yang bernama Suparman yang ingin kuliah di Fakultas Teknik. Fakta dari informasi tabel kita tidak dapat mengetahui apa jenjang dari Fakultas Teknik dan juga apakah Fakultas Teknik terdapat pada Universitas yang bersangkutan. Dari hal ini kita tidak akan mengetahui apakah dapat nilai Teknik tersebut dapat dimasukkan ke dalam atribut Fakultas atau tidak. Apabila dapat dimasukkan ke atribut Fakultas, bagaimana dengan atribut Jenjang-nya?

DBMS hanya dapat bekerja dengan informasi yang terdapat pada tabel-tabel dan aturan-aturan yang bekerja pada tabel-tabel tersebut dengan tepat dan mungkin.

Bagaiman hubungan antara anomali dan normalisasi? Jawaban yang singkat adalah dengan menyusun tabel-tabel dalam database cukup dinormalkan (dalam praktek umumnya sampai normal keempat), dan menjamin bahwa anomali tidak terjadi pada database.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 16
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


Porses normalisasi kelihatan sangat menyulitkan, ketika melihat dari definisi tiap-tiap tingkatan
normalisasi. Namun dalam prakteknya kita dapat mencapainya dengan menjamin bahwa tabel-tabel terdiri dari tabel “single-theme”.

Walaupun dalam 2NF dapat terjadi penambahan maupun penghapusan data yang mengakibatkan anomali, kita dapat membentuk tabel tersebut menjadi beberapa tabel “single-theme”. Gagasan ini dapat diilustrasikan pada tabel di bawah ini.

Tabel 1-25 Tabel-tabel "Single-Theme"


NIM NamaAwal NamaAkhir
122233 Asep Darma
233323 Angling Darma
244455 Bergola Ijo
334343 Jaka Sembung
322323 Jaka Tarub



Transitive Dependencies (Ketergantungan transitif) (3NF)
Seperti yang telah kita ketahui, ketergantungan transitif terjadi bilamana suatu AB dan BC, maka
AC. Ilustrasi untuk kejadian ini dapat dilihat pada tabel berikut.

Tabel 1-26 Tabel Daftar Buku

Author
Last
Name Author
First
Name

Book Title

Subject

Collection or Library

Building
Berdahl Robert The Politics of the
Prussian Nobility History PCL General Stacks Perry-Casta
Library
Yudof Mark Child Abuse and
Neglect Legal
Procedures Law Library Townes Hall
Harmon Glynn Human Memory and
Knowledge Cognitive
Psychology PCL General Stacks Perry-Casta
Library
Graves Robert The Golden Fleece Greek Literature Classics Library Waggener
Hall
Miksa Francis Charles Ammi Cutter Library
Biography Library and Information Science Collection Perry-Casta
Library
Hunter David Music Publishing and
Collecting Music Literature Fine Arts Library Fine Arts
Building
Graves Robert English and Scottish
Ballads Folksong PCL General Stacks Perry-Casta
Library

Dari tabel di atas kita dapat berpendapat bahwa buku yang ber-subyek History, cognitive psychology,
dan folksong diberikan ke PCL General Stacks collection; sedangkan Legal procedure diberikan ke Law Library; Greek Literature diberikan ke Classic Library; sedangkan Library Biography diberikan ke Library and Information Science Collection; dan Music Literature diberikan ke Fine Arts Library.

Kemudian kita dapat menduga bahwa PCL General Stacks Collection dan LISC keduanya ditempatkan di gedung Perry-Casta Library (PCL); Classic Library ditempatkan di gedung Waggener Hall; Law Library and Fine Arts Library di tempatkan di gedung Townes Hall dan Fine Arts Building.

Sehingga kita dapat melihat ketergantungan transitif pada tabel di atas, dimana buku-buku History, Cognitive Psychology atau Library Biography secara fisik ditempatkan di gedung PCL; buku Lega Procedures di tempatkan di Townes Hall dan begitu seterusnya.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 17
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007



Apa yang salah ketika terjadinya ketergantungan transitif pada tabel tersebut? Hal pertama terjadinya
duplikasi informasi, dimana tiga baris berbeda mengacu pada PCL General Stacks yang berada di gedung PCL. Kesalahan yang kedua adalah kemungkinan adanya penghapusan anomali, yaitu jika kita hapus baris dengan nama pengarangYudof maka kita akan kehilangan informasi Law Library di dalam Townes Hall. Ketiga dapat pula terjadi penambahan anomali jika kita akan menambah buku Chemistry, tetapi kenyataannya tidak ada data yang menyatakan Chemistry Library berada di gedung Robert A. Welch Hall. Dan masalah keempat terjadinya kesalahan meng-update jika pegawai memasukan buku ke LISC tetapi memasukkan Townes Hall ke atribut Building.

Solusi untuk masalah di atas adalah membentuk tabel tersebut menjadi tabel-tabel “single-theme”.

Tabel 1-27 Tabel-tabel "single-theme " untuk tabel transitive dependencies

Author Last Name
Author
First Name

Book Title
Berdahl Robert The Politics of the
Prussian Nobility
Yudof Mark Child Abuse and Neglect
Harmon Glynn Human Memory and
Knowledge
Graves Robert The Golden Fleece
Miksa Francis Charles Ammi Cutter
Hunter David Music Publishing and
Collecting
Graves Robert English and Scottish
Ballads




Subject Collection or Library


History PCL General Stacks

Collection or Library Building


PCL General Stacks Perry-Casta
Library

Legal
Procedures
Cognitive
Psychology

Law Library


PCL General Stacks

Law Library Townes Hall


PCL General Stacks Perry-Casta
Library

Greek Literature Classics Library

Classics Library Waggener Hall




Library
Biography

Library and Information
Science Collection

Library and Information
Science Collection

Perry-Casta
Library

Music Literature Fine Arts Library


Folksong PCL General Stacks

Fine Arts Library Fine Arts
Building
PCL General Stacks Perry-Casta
Library



Kita dapat lihat bahwa semua tabel tidak mempunyai ketergantungan transitif (3NF, Domain Key
Normal Form (DKNF)).

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 18
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


Untuk tabel pengarang terdapat nama depan yang sama yaitu Robert, dalam hal ini kita menyarankan
untuk membuat atribut identifikasi dalam menyatakan nama pengarang, seperti di bawah ini.

Tabel 1-28 Tabel pengarang setelah penambahan atribut ID



Author
Last Name Author
First
Name
ID Author
Berdahl


Yudof


Harmon Robert


Mark


Glynn 001


002


003
Graves Robert 004
Miksa Francis 005
Hunter David 006
Graves Robert 007

Pembentukan tabel-tabel di atas akan lebih menghemat kapasitas media penyimpan dan meminimalkan kesalahan dalam pemasukkan data yang berupa key.

BCNF mengijinkan terjadinya anomali ketika tabel gagal memiliki properti yaitu setiap determinan adalah kunci kandidat (candidate key). Contoh pada tabel di bawah ini gagal memiliki properti ini. Dalam tabel ini SSN ditafsirkan sebagai pelajar dengan Major serta Adviser (pembimbing). Dengan catatan tiap pelajar pelajar 123-45-6789 dan 987-65-4321 mempunyai dua jurusan dengan pembimbing yang berbeda tiap jurusannya.

Tabel 1-29 Tabel Mahasiswa dengan BCNF

SSN Major Adviser
123-45-6789 Library and Information Science Dewey
123-45-6789 Public Affairs Roosevelt
222-33-4444 Library and Information Science Putnam
555-12-1212 Library and Information Science Dewey
987-65-4321 Pre-Medicine Semmelweis
987-65-4321 Biochemistry Pasteur
123-54-3210 Pre-Law Hammurabi

Dalam tabel di atas salah satu determinan adalah atribut berpasangan yaitu SSN dan Major. Tiap
pasangan nilai atribut SSN dan Major menentukan nilai unik untuk atribut Adviser. Determinan lain adalah pasangan SSN dan Adviser yang menentukan nilai unik atribut Major. Determinan lain lagi adalah Adviser dimana setiap nilai adviser yang berbeda menentukan secara unik nilai atribut Major.
(catatan: setiap pelajar mempunyai pembimbing (adviser) tunggal untuk setiap jurusannya (major) dan tiap pembimbing (adviser) membimbing hanya satu jurusan)

Sekarang kita akan menguji ketiga determinan tersebut apakah sebagai kunci kandidat. Pasangan SSN dan Major adalah kunci kandidat untuk setiap pasangan unik mengidentifikasikan sebuah baris dalam tabel. Pasangan SSN dan Adviser juga kunci kandidat. Tetapi determinan Adviser bukan sebagai kunci kandidat karena nilai Dewey terdapat dalam dua baris pada kolom Adviser. Jadi tabel di atas tidak dapat dikatakan dalam kondisi setiap determinan adalah kunci kandidat.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 19
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007



Sangatlah mudah untuk memeriksa anomali dalam tabel ini. Misalnya jika pelajar 987-65-4321
meninggalkan universitas tersebut, tabel akan kehilangan informasi bahwa Semmelweis adalah seorang pembimbing untuk jurusan Pre-Medicine. Contoh lain adalah tidak adanya informasi tentang pembimbing-pembimbing untuk pelajar dengan jurusan History (Sejarah).

Solusi untuk masalah di atas adalah membuat tabel tersebut dipecah menjadi beberapa tabel-tabel single-theme seperti di bawah ini:

SSN Adviser
123-45-6789 Dewey
123-45-6789 Roosevelt
222-33-4444 Putnam
555-12-1212 Dewey
987-65-4321 Semmelweis
987-65-4321 Pasteur
123-54-3210 Hammurabi

Maka kedua tabel di atas dalam kondisi BCNF yaitu setiap determinan merupakan kunci kandidat.

Bentuk formal keempat memperhatikan terjadinya anomali ketika tabel gagal memiliki properti bahwa tidak ada ketergantungan nilai banyak (multivalued). Contoh tabel di bawah merupakan bentuk anomali untuk ketergantungan dengan nilai banyak.

Tabel 1-30 Mahasiswa dengan daftar hobi

LastName Major Hobby
Jones Library and Information Science Surfing the Internet
Jones Library and Information Science Chess
Jones Public Affairs Surfing the Internet
Jones Public Affairs Chess
Lee Library and Information Science Photography
Lee Library and Information Science Stamp collecting
Ruiz Pre-Medicine Surfing the Internet
Ruiz Pre-Medicine Photography
Ruiz Biochemistry Surfing the Internet
Ruiz Biochemistry Photography
Smith Pre-Law Playing poker

Anggap pelajar Jack Jones hobinya menjelajah internet dan bermain catur; Lynn Lee hobinya
photographer dan koleksi perangko; Mary Ruiz, hobinya menjelajah internet dan photographer; dan
Lynn Smith, hobinya bermain poker.

Situasi ini dapat mengakibatkan redudansi data dan memberikan efek ketergantungan nilai banyak terjadi ketika (a) tabel sekurangnya mempunyai tiga atribut (b) dua atribut mempunyai nilai banyak dan (c) nilai dari atribut multivalued tergantung hanya satu dari sisa atribut. Atribut LastName menentukan nilai banyak dari atribut Major dan Hobby, tetapi keduanya tidak saling tergantung terhadap yang lainnya (independent).

Notasi untuk ketergantungan multivalue adalah panah ganda. Untuk contoh ini kita dapat menulisnya dengan bentuk LastName ⇒ Major dan LastName ⇒ Hobby (LastName multideterminan Major dan LastName Multideterminan Hobby).

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 20
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


Bentuk tabel-tabel yang dijadikan single-theme adalah sebagai berikut:


LastName Major
Jones Library and Information Science
Jones Public Affairs
Lee Library and Information Science
Ruiz Pre-Medicine Ruiz Biochemistry Smith Pre-Law



Normal Form Kelima sulit untuk diilustrasikan dengan contoh sederhana. Karenanya di sini tidak meng-ilustrasikan properti dari 5NF mempunyai tiap join dependency dalam tabel menjadi penyebab membentuk kunci kandidat tabel. Alasan lain yang pertama, dalam prakteknya 4NF sudah mencukupi dan yang kedua adalah Domain-Key Normal Form (DKNF) sudah termasuk 5NF.

DKNF digunakan sebagai solusi untuk menghindari anomali: kumpulan tabel-tabel (relasi) dalam DKNF sebagai konsekuensi dari teori Ronald Fagin (1981) untuk bebas dari anomali. Definsi dari DKNF adalah relasi dalam DKNF jika setiap constrain relasi logikal mendefinisikan kunci dan domain. Menurut Fagin istilah kunci adalah primary key dan candidate key, domain merupakan kumpulan definisi dari isi atribut (kolom) dan beberapa batasan jenis data yang akan disiman dalam kolom, sebagai contoh batasan hanya data numerik atau hanya data logikal. Constraint berarti aturan-aturan terhadap atribut dengan jelas sehingga dapat diputuskan aturan yang mana dijalankan atau dilanggar untuk kumpulan data yang mana diterima. Sebagai ilustrasi ini simak tabel di bawah ini:

Konversi tabel dengan partial dependency ke tabel DKNF Tabel 1-31 Tabel dengan partial dependency

FirstName LastName Major Level
Jack Jones LIS Graduate
Lynn Lee LIS Graduate
Mary Ruiz Pre-Medicine Undergraduate
Lynn Smith Pre-Law Undergraduate
Jane Jones LIS Graduate

Dalam tabel di atas terdapat komposisi kunci yang terdiri dari pasangan atribut LastName-FirstName,
dan semua atribut tergantung dengan kunci ini. Tetapi ada hal lain yang penting: atribut Level tergantung pada atribut LastName, Level hanya tergantung pada sebagian kunci. Sehingga tabel ini belum dikatakan DKNF.

Kita akan membutuhkan tabel yang menyediakan link antara pasangan atribut FirstName dan LastName dan atribut Major. Dalam tabel tersbeut Major menjadi konsekuensi logikal dari key dan domain. Sehingga dibutuhkan dua tabel, satu berisi Major dan Level dan yang lain FirstName, LastName dan Major.

Major Level
LIS Graduate
Pre-Medicine Undergraduate
Pre-Law Undergraduate




Contoh tabel-tabel di bagian sebelumnya sudah termasuk DKNF. Jadi dengan membentuk tabel menjadi single-theme hampir sama halnya dengan membentuk tabel DKNF.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 21
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007



PEMODELAN BASIS DATA



Model Hubungan Antar Entitas (Entity Relationship-Model)
Model entity-relationship pertama kali diperkenalkan oleh Peter Chen pada tahun 1976. Dalam pemodelan ini dilakukan dengan tahapan sebagai berikut:
a. Memilih entitas-entitas yang akan disusun dalam basis data dan menentukan hubungan antar entitas yang telah dipilih.
b. Melengkapi atribut-atribut yang sesuai pada entitas dan hubungan sehingga diperoleh bentuk tabel normal penuh (ternormalisasi).

Elemen-elemen dalam model ER dapat digambarkan pada gambar diagram di bawah ini:






Entitas Relasi

Atribut



Gambar 2.1 Elemen-elemen ER-Model

Entitas merupakan sesuatu yang dapat diidentifikasikan dalam lingkungan kerja pengguna. Entitas yang diberikan tipe dikelompokkan ke kelas entitas. Perbedaan antara kelas entitas dan instansi entitas adalah sebagai berikut:
• Kelas entitas adalah kumpulan entitas dan dijelaskan oleh struktur atau format entitas di dalam kelas.
• Instansi kelas merupakan bentuk penyajian dari fakta entitas.

Umumnya terdapat banyak instansi entitas di dalam setiap entitas kelas. Setiap entitas kelas memiliki atribut yang menjelaskan karakteristik dari entitas tersebut, sedangkan setiap instansi entitas mempunyai identifikasi yang dapat bernilai unik (mempunyai nilai yang berbeda untuk setiap identifikasinya) atau non-unik (dapat bernilai sama untuk setiap identifikasinya).

Antara entitas diasosiakan dalam suatu hubungan (relationship). Suatu relasi dapat memiliki beberapa atribut. Jumlah kelas entitas dalam suatu relasi disebut derajat relasi. Gambar di bawah ini merupakan contoh dari relasi berderajat dua dan relasi berderajat tiga.



PENJUAL PESANAN

IBU BAPAK



Memesan


(a)





ANAK


Mempunyai



(b)


Gambar 2.2 (a) Relasi berderajat dua (b) Relasi berderajat tiga


Tipe Binary Relationship
Relasi memiliki tiga tipe biner yaitu:
a. One-to-one (1:1). Hubungan terjadi bila setiap instansi entitas hanya memiliki satu hubungan dengan instansi entitas lain.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 22
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007



a1 b1

a2 b2

a3 b3


a4 b4


a5 b5

a6 b6

a7 b7


Gambar 2.3 Hubungan 1:1 (one-to-one)

b. One-to-many (1:M). Relasi ini terjadi bila setiap instansi entitas dapat memiliki lebih dari satu hubungan terhadap instansi entitas lain tetapi tidak kebalikannya.


a1 b1

a2 b2

a3 b3

a4 b4


a5 b5

a6 b6

a7 b7


Gambar 2.4 Hubungan 1:M (one-to-many)

c. Many-to-many (M:N). Hubungan saling memiliki lebih dari satu dari setiap instansi entitas terhadap instansi entitas lainnya.


a1 b1

a2 b2

a3 b3

a4 b4

a5 b5

a6 b6

a7 b7


Gambar 2.5 Hubungan M:N (many-to-many)

Selain relasi antara dua entitas, terdapat juga hubungan terhadap entitasnya sendiri yang disebut dengan recursive relationship (self relation). Hubungan ini dapat mempunyai tipe biner, seperti yang sudah dibahas sebelumnya.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 23
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007



1:1

a1

1:M

a1

M:N

a1



a2 a2 a2


a3 a3 a3


a4 a4 a4


a5 a5 a5


a6 a6 a6


a7 a7 a7




(a)

(b)

(c)


Gambar 2.6 (a) Relasi rekursif 1:1 (b) Relasi rekursif 1:M (c) Relasi rekursif M:N


Partisipasi Hubungan
Partisipasi atau keterlibatan setiap instansi entitas dalam membentuk hubungan dapat bersifat wajib
(obligatory/digambarkan dengan garis penuh) atau tidak wajib (non-obligatory/digambarkan dengan
garis putus-putus) dalam aturan data. Misalnya hubungan antara DOSEN dan Mata Kuliah dengan aturan data sebagai berikut:

Setiap dosen harus mengajar satu mata kuliah dan setiap mata kuliah harus diajarkan oleh seorang dosen.

Setiap anggota entitas dalam hubungan adalah wajib untuk instansi entitas DOSEN maupun Mata
Kuliah.


DOSEN MATA KULIAH


Mengajar


Gambar 2.7 Diagram E-R dengan partisipasi wajib

Dalam bentuk aturan lain yaitu:

Setiap dosen harus mengajar satu mata kuliah dan setiap mata kuliah mungkin diajarkan oleh seorang dosen atau mungkin tidak sama sekali.


DOSEN MATA KULIAH


Mengajar


Gambar 2.8 Diagram E-R dengan partisipasi wajib pada sisi Dosen dan tidak wajib pada sisi
Mata Kuliah

Atau aturan lain:
Setiap dosen hanya boleh mengajar satu mata kuliah atau boleh saja dosen tidak mengajar dan setiap mata kuliah harus diajarkan oleh seorang dosen.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 24
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007




DOSEN MATA KULIAH


Mengajar



Gambar 2.9 Diagram E-R dengan partisipasi tidak wajib pada sisi Dosen dan wajib pada sisi
Mata Kuliah

Aturan lain yang tidak mewajibkan kedua belah pihak:
Setiap dosen hanya boleh mengajar satu mata kuliah atau boleh saja dosen tidak mengajar dan setiap mata kuliah hanya boleh diajarkan oleh seorang dosen atau tidak sama sekali.


DOSEN MATA KULIAH


Mengajar


Gambar 2.10 Diagram E-R dengan partisipasi tidak wajib pada kedua sisi

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 25
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007



PERANCANGAN BASIS DATA



Permasalahan dalam perancangan basis data adalah bagaimana merancang struktur logikal dan fisikal dari satu atau lebih basis data untuk memenuhi kebutuhan informasi yang diperlukan oleh pengguna sesuai dengan aplikasi-aplikasi yang ditentukan. [Waliyanto2000]

Dengan permasalahan tersebut dapat ditentukan beberapa tujuan utama perancangan basis data, yaitu:
a. Memenuhi kebutuhan informasi sesuai dengan yang diperlukan oleh pengguna untuk aplikasi tertentu.
b. Mempermudah pemahaman terhadap struktur informasi yang tersedia dalam basis data,
c. Memberikan keterangan tentang persyaratan pemrosesan dan kemampuan sistem, seperti lama tidaknya mengakses data, kapasitas memori yang tersedia dan sebagainya.

Tahapan-tahapan proses perancangan untuk memenuhi tujuan tersebut adalah:
1. Mengumpulkan dan menganalisis persyaratan
2. Merancang konsepsual basis data
3. Memilih Sistem Manajemen Basis Data
4. Merancang logikal basis data
5. Merancang fisikal basis data (pemetaan model data)
6. Implementasi sistem basis data

Dalam pelaksanaan perancangan tersebut terdapat dua kegiatan yang dapat dilakukan secara paralel, yaitu perancangan struktur dan isi data (analisis data) dan perancangan pemrosesan data serta program aplikasi (analisis fungsional).

Tahapan rancangan basis data seperti pada bagan di bawah ini tidak secara ketat harus diikuti secara berurutan. Karena antara tahap yang satu dengan yang lainnya dapat saling mempengaruhi dan memberi umpan balik.


Tahap I:
Koleksi & analisi persyaratan


Persyaratan Proses






Tahap II:
Rancangan konsepsual

Rancangan skema eksternal &
konsepsual
(terlepas dari DBMS)


E-R model
Definisi entitas



Tahap III:
Pemilihan DBMS




Tahap IV: Rancangan logikal





Tahap V: Rancangan fisikal

Rancangan skema eksternal &
konsepsual
(sesuai dengan DBMS terpilih)





Rancangan skema internal
(sesuai dengan DBMS terpilih)





Definisi: tabel. index. view, jalur, akses, format penyimpanan


Rancangan program aplikasi






Tahap VI:
Implementasi



Gambar 3.1 Tahapan perancangan basis data (kompilasi dari Elmasri R, 1994)

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 26
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


Rancangan konsepsual basis data (tahap 2) menghasilkan skema konsepsual dari basis data yang
bebas dari DBMS tertentu. Dalam hal ini juga digunakan pemodelan bahasa tingkat tinggi seperti model E-R (Entity Relationship) atau EER (Enhanced Entity Relationship). Tahap ini juga menentukan transaksi data yang dapat dilakukan terhadap sistem basis data.

Rancangan logikal (tahap 4) disebut juga pemetaan model data, yaitu mentransformasikan model data yang telah dibuat pada tahap dua ke dalam model data yang sesuai dengan DBMS terpilih. Tahap ini juga melakukan perancangan skema eksternal untuk aplikasi yang ditentukan.

Rancangan fisikal basis data (tahap 5) melakukan pendefinisian basis data yang akan disimpan sesuai dengan SMBD yang digunakan, meliputi struktur penyimpanan data, format data dan jalur akses. Tahap ini disebut skema internal.


Koleksi dan Analisis Persyaratan
Koleksi dan analisis persyaratan merupakan proses pengumpulan dan analisis tujuan dan harapan pengguna untuk memperoleh informasi dari sistem basis data. Kegiatan-kegiatan yang dilakukan dalam tahapan ini adalah sebagai berikut:
a. Melakukan identifikasi bidang aplikasi dan kelompok pemakai
b. Mempelajari dan menganalisis dokumen yang ada pada aplikasi tertentu c. Mempelajari sistem yang sedang berjalan
d. Membuat semacam pertanyaan/angket pada calon pengguna yang dipandang potensial untuk memperoleh spesifikasi informasi dan proses yang diperlukan.


Perancangan Konsepsual Basis Data
Tahapan ini meliputi dua kegiatan yaitu rancangan skema konsepsual tentang organisasi data yang harus disimpan dalam basis data, dan rancangan transaksi yang dilakukan untuk memperoleh informasi dari sistem basis data hasil analisis persyaratan pada tahap 1.

Rancangan skema konsepsual
Hasil rancangan konsepsual merupakan pemodelan data dari pemahaman dunia nyata yang dituliskan dalam bahasa tingkat tinggi dan tidak terikat dengan DBMS yang akan digunakan. Umumnya pembuatan skema konsepsual ini menggunakan diagram E-R.

Untuk menyusun rancanngan konsepsual dimulai dengan identifikasi komponen utama dari skema
(entitas, hubungan, atribut) dengan mengacu pada karakateristik sebagai berikut:
a. Model data harus cukup memberikan tampilan yang menggambarkan perbedaan jenis data, hubungan dan constraint (ekspresif).
b. Model harus dibuat sederhana dan mudah dipahami serta digunakan oleh pengguna.
c. Penyajian model data dibuat dalam diagram yang mudah diinterprestasi
d. Penyajian model data dalam skema harus teliti dan tidak menimbulkan interprestasi (akurat).


Rancangan transaksi
Teknik pembuatan spesifikasi transaski dilakukan dengan melakukan identifikasi data masukan dan data keluaran serta sifat fungsional transaksi, sehingga perancang dapat membuat model konsepsual transaksi yang tidak terikat dengan sistem.

Fungsi-sungsi model transaksi adalah sebagai berikut:
a. Transaksi pemanggilan (retrieval transaction), yaitu pemanggilan data untuk ditampilkan di layar
monitor atau dicetak sebagai laporan.
b. Transaksi pembaharuan (update transaction), digunakan untuk pemasukan data baru atau
perubahan data lama.
c. Transaksi campuran (mixed transaction), digunakan untuk kombinasi pemanggilan data dan
pembaharuan data.


Pemilihan DBMS
Faktor-faktor yang menentukan pemilihan DBMS antara lain adalah faktor teknik, faktor ekonomi dan politik dalam organisasi.

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 27
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


Faktor teknik meliputi kelangsungan dari DBMS untuk diterapkan dalam pengelolaan data seprti jenis
model DBMS, struktur penyimpanan data dan alur akses data, interface pengguna dan pemrogram, jenis bahasa tingkat tinggi dan sebagainya.

Faktor ekonomi diantaranya pembelian software DBMS, pembelian hardware, biaya pemeliharaan sistem, biaya penyusunan basis data dan lain sebagainya.


Pemodelan Logikal Basis Data
Tujuan dari tahap ini adalah menyusun rancangan konsepsual dan skema eksternal yang sesuai dengan DBMS yang dipilih. Langkah-langkah yang dilakukannya adalah:
a. Pemetaan (transformasi data) yang tidak terikat sistem. b. Penyusunan skema sesuai dengan DBMS.


Perancangan Fisikal Basis Data
Tujuan dari perancangan ini adalah untuk membuat spesifikasi struktur penyimpanan dan jalur akses data sehingga diperoleh kemampuan sistem yang baik untuk berbagi aplikasi. Beberapa hal yang menjadi pertimbangan dalam perancangan fisikal adalah:

1. Waktu tanggap. Yaitu waktu yang digunakan oleh sistem sejak transaski basis data dimasukkan untuk dieksekusi sampai mendapat tanggapan dari sistem. Faktor yang mempengaruhinya dalah waktu akses basis data yang dikendalikan oleh DBMS serta dipengaruhi oleh sistem pemuatan data (loading) pada komputer, sistem operasi yang digunakan, atau penundaan sistem komunikasi.
2. Penggunaan memori komputer. Merupakan kapasitas memori komputer yang digunakan untuk menyimpan berkas-berkas basis data dan struktur jalur akses.
3. Transaksi data. Kemampuan melakukan transaksi data tiap satuan waktu merupakan hal yang kritis.


Implementasi Sistem Basis Data
Tahap ini merupakan implementasi dari hasil pemodelan logikal dan fisikal. Bahasa yang digunakan untuk definisi data atau penyimpanan data yang sesuai dengan DBMS terpilih. Implementasi penyusunan basis data dimulai dari pembuatan berkas-berkas data kosong yang akan digunakan untuk menyimpan data dalam basis data. Kemudian dilanjutkan dengan pemasukan data untuk tiap instansi tabel.

Dalam impelementasi rancangan transaksi, program aplikasi ditulis dengan bahasa manipulasi data yang sesuai. Program-program aplikasi yang dibuat harus dilakukan uji coba dulu untuk menguji kebenaran program. Setelah diuji kemudian diimplementasikan dalam operasional sistem basis data.











BERLANJUT …

Haidar Dzacko. 2007. Basis Data (Database). Copyright© 2007 Mangosoft All rights reserved. 28
+Created 11/09/2007
Version 1.2.5 #Release 24/10/2007


Referensi:

[Abdul1999] Abdul Kadir. 1999. Konsep & Tuntunan Praktis Basis Data. Penerbit Andi. Yogyakarta.

[David2002] David M. Kroenke. 2002. Database Processing Fundamentals, Design, and
Implementation. Eight Edition. Pretince Hall.

[Ramez2000] Ramez Elmasri & Shamkant B Navathe. 2000. Database System.

[R.E. 2003] R.E. Wyllys. 2003. Database-Management Principles And Applications.

[Sitansu1991] Sitansu S. Mittra. 1991. Principles of Relational Database Systems. International
Editions. Prentice-Hall. New Jersey.

[Waliyanto2000]Waliyanto. 2000. Sistem Basis Data Analisis dan Pemodelan Data. J&J Learning. Yogyakarta.

contoh pidato ceramah

Nama : Arie wibowo
Nim : A1B07033
Bismilah hirohman nirohim
Assalammualaikum.Wr.wb
Disamping tapi teu diselempak …..Ka kuping tapi teu kompak
Assalammualaikum.Wr.wb
Maremeh ngan buahna kesemek….. Rame ngan jiga nu ambek
Alhamdulilah hilazi kodahroza na izal fiqri lil arbai hiza
Wasalam tu wasalam muala saidina Muhammad dil mustofa
Assahadu ala ila haillallah wamalikul huda waashadu ana wanabiyana muhammadan abduhu warosullah.
Dikesempatan yang baik ini bolehlah saya meyampaikan sebuah ceramah tentang Pemimpin dalam islam
Dalam Islam adanya seorang pemimpin atau pemerintah dalam negara adalah wajib hukumnya. Maknanya, setiap rakyat dalam satu negara, wajib memiliki pemimpin. Kalau tidak ada pemimpin, maka berdosalah setiap orang Islam dalam negara itu.
Pentingnya pemimpin adalah untuk mengajar, mendidik dan memimpin rakyat kepada jalan kebenaran, keadilan, keselamatan dan kebahagiaan hidup yang hakiki dunia dan Akhirat.Dengan kata lain, pemimpin bertanggung jawab untuk membuat rakyat dan aman, makmur dan mendapat keampunan ALLAH SWT. Untuk itu pemimpin bukanlah dari sembarang orang. Pemimpin Islam bukannya hasil dipilih, diperebutkan atau hasil menonjolkan diri. Pemimpin bukan juga dipilih karena tamatan dan gelar. Sebab memimpin bukan pekerjaan untuk mendapatkan rezeki dan tidak juga untuk mencari publisitas. Lebih-lebih lagi bukan ladang tempat mengeruk kekayaan.
Tugas pemimpin adalah tugas menyelamatkan umat di dunia dan Akhirat. Untuk itu dia hendaklah menjadi seorang yang betul-betul dapat melakukan kerja itu. Kebolehan atau karisma kepemimpinan m‱rni telah ALLAH bekalkan padanya. Ditambah dengan ilmu kepemimpinan yang ALLAH didik padanya, watak, latar belakang kehidupan, didikan awal yang diterima
Syarat syarat menjadi pemimpin:
1. Beragama Islam. Orang yang bukan Islam tidak boleh menjadi pemimpin kepada orang Islam.
2. Lelaki. Perempuan tidak boleh menjadi pemimpin. Cuma boleh menjadi wakil pemimpin.
3. Baligh. Anak-anak tidak boleh menjadi pemimpin.
4. Akil yakni berakal cerdik. Orang yang lemah akal atau gila tidak boleh menjadi pemimpin.
5. Merdeka. Hamba sahaya tidak layak menjadi pemimpin.
6. Sempurna anggota tubuhnya. Orang cacat tidak boleh menjadi pemimpin. Sebab cacat itu menghalanginya untuk aktif dalam tugasnya.

Sifat-sifat yang wajib bagi pemimpin:
1. Memiliki ilmu Islam dan buah fikiran
Sepatutnya ilmunya bertaraf mujtahid. Paling tidak ia mempunyai ilmu yang agak luas secara menyeluruh. Yakni pemikirannya dalam semua aspek ilmu didasarkan pada ilmu wahyu dan sabda Nabi. Karena sebagai pemimpin, ia mesti tahu untuk menjatuhkan hukum halal atau haram, wajib atau sunat, makruh atau mubah dan lain-lain. Karena dasar, teknik dan tujuan kerja ke atas sesuatu perkara termasuk hal-hal pemerintahan, proyek-proyek perindustrian, pendidikan, pertanian, kesehatan, ketentaraan dan lain-lain, yang tentunya hendak dibangunkan, mesti diberi jawaban dan jalan penyelesaian yang tepat dengan Al Quran dan Hadist. Demikian juga terhadap isu semasa apapun baik isu yang kecil atau besar, dalam negara atau di luar negara yang selalu terjadi, berubah dan berkembang di dunia, yang perlu ditentukan hukumnya.Pemimpin mesti dapat menentukan sikap yang benar menurut Islam, boleh atau tidak, halal atau haram, bahaya atau tidak dan kemungkinan lain. Hal ini sungguh penting, yang mana kalau pemimpin gagal menentukan sikap yang tepat untuk jangka pendek atau jangka panjang, banyak kemungkinan yang tidak baik akan terjadi pada negara dan masyarakat. Maka pemimpin sangat memerlukan ilmu Islam, buah fikiran, ide yang kreatif dan strategi dalam kepemimpinannya.
Rasulullah SAW ketika melepaskan Sayidina Muaz menjadi gubernur di Yaman, baginda bertanya,
"Dengan apa nanti engkau menghukum?"
"Dengan Kitabullah," jawab Muaz.
"Kalau tidak ada?"
"Dengan Sunnah RasulNya."
"Jika tidak ada dalam Sunnah?"
Muaz menjawab, "Aku akan berijtihad dengan fikiranku."
Rasulullah berkata, "Segala puji bagi Allah yang menyelaraskan kefahaman utusan Rasulullah dengan apa yang diredhai Rasulullah." (Riwayat Ahmad, Abu Daud dan At Tarmizi)
2. Mengerti memimpin rakyat
Pemimpin seolah-olah orang yang matanya terbuka, bertugas membawa orang-orang buta menuju tujuannya. Rakyat yang berjuta-juta dalam sebuah negara hendak dijaga, dilindungi, digerakkan fisik, mental dan spiritualnya agar berguna untuk diri, keluarga, masyarakat, agama dan negara. Mereka hendak diletakkan pada kedudukan dan peranan yang tepat supaya setiap orang dapat memberi sumbangan kepada agama, negara dan masyarakat.
Ilmunya itu bukan berada di dewan kuliah di universitas manapun. Sumber ilmu yang diperoleh oleh seorang pemimpin itu sebenarnya datang dari:
a. Al Quran dan Hadist.
b. Watak dan jiwa kepemimpinan yang terasuh sejak kecil
c. Latar belakang kehidupan dan pengalaman hidup di tengah-tengah masyarakat dan kehidupan pancaroba.
d. Pengalaman memimpin, cita-cita perjuangan dan hidupnya.
e. Bantuan ALLAH baik dari segi ilmu-ilmu yang diilhamkan atau setidak-tidaknya yang didorongkan.

3. Mendidik
Selain dari memiliki ide dan ilmu kepemimpinan yang tepat, pemimpin mesti mampu mendidik umat. Dia mampu menyampaikan ilmu pada rakyat baik ilmu Al Quran dan Hadist atau buah fikirannya. Pemimpin yang pandai tetapi rakyat tidak terdidik, tidak juga dapat menjayakan kepemimpinannya. Macam-macam keputusan dan aturannya tidak dapat dilaksanakan. Bila pembangunan insan tidak berjaya, pembangunan materiil juga tidak akan berjalan.
Apa yang perlu diingat oleh pemimpin ialah gagalnya kepemimpinan yang ada di dunia hari ini umumnya adalah karena adanya sifat jahat yang diperturutkan pada diri mereka. Terutama sifat-sifat ego, pemarah, bakhil, mementingkan diri, tidak ada belas kasihan, riya' dan sebagainya. Sifat-sifat ini kalau dikekalkan, orang cepat lari dari kita. Orang benci, kecil hati dan marah pada kita. Di depan kita mungkin mereka tunduk atau menunjukkan kepatuhan. Karena takutnya mereka pada kita (maklumlah kita memiliki kuasa, memiliki polisi dan tentara). Tetapi dalam hatinya dan di belakang kita mereka membicarakan keburukan kita. Segala kepandaian,kehebatan dan jasa kita tidak akan bernilai, kalau kita selalu menyakiti hati mereka. Kita akan tinggal sendirian dan dilupakan orang. Waktu masih hidup sudah terjadi, apalagi setelah mati. Bahkan mungkin hal itu akan menjadi modal musuh untuk menjatuhkan kita.
4. Bertaqwa
Pemimpin Islam mestilah seorang yang memiliki sifat-sifat takwa. Yakni orang yang sangat patuh dan taat pada ALLAH dan Rasul, lahir dan batin. Sangat takut dengan dosa dan sangat memperjuangkan hukum-hukum ALLAH dalam diri dan keluarga serta masyarakatnya. Orang seperti itulah, orang yang dekat dengan ALLAH. Dia redha dengan ALLAH, dan ALLAH pun redha padanya. Apa yang ia lakukan semuanya mendapat restu dari ALLAH.
Dalam Hadist Qudsi, ALLAH berfirman:
Takutilah olehmu firasat orang Mukmin karena ia memandang dengan cahaya ALLAH. (Riwayat At Tarmizi)
Orang-orang seperti itu kerjanya dibantu, dimudahkan dan diberkati oleh ALLAH. ALLAH menyatakan janjiNya ini dalam firmanNya:


Barang siapa yang bertakwa kepada ALLAH, ALLAH akan lepaskan ia dari masalah hidup dan memberi rezeki dari sumber yang tidak diduga. (Ath Thalaq: 2-3)

ALLAH menjadi pembela bagi orang-orang yang bertakwa. (Al Jasiyah: 19)

Jika penduduk satu kampung beriman dan bertakwa, Kami akan bukakan berkat dari langit dan bumi.(Al A'raf: 96)


Hai orang-orang yang beriman, bertakwalah kepada ALLAH dan ucapkanlah perkataan yang benar. Nanti ALLAH akan memperbaiki pekerjaanmu dan mengampuni dosamu. Dan siapa yang mematuhi ALLAH dan RasulNya, sesungguhuya dia akan memperoleh keberuntungan yang besar. (Al Ahzab: 70-71)
contoh bagaimana ALLAH menyelesaikan dan membantu kita terhadap musuh melalui takwa.
1. Sayidina Umar Al Khattab telah melepaskan tentaranya ke medan perang dengan berpesan,"Aku lebih takut dosa-dosamu daripada musuh-musuhmu. Karena kalau kamu berdosa, ALLAH akan biarkan kamu kepada musuh-musuhmu."
Dalam satu peperangan, tentara Islam tidak menang dan tidak kalah selama tiga bulan berperang. Bila Sayidina Umar tahu hal itu, ia pun pergi memeriksa tentaranya. Didapati mereka itu sudah tidak halus takwanya. Mereka lalai bersugi (membersihkan gigi) dan tidak meluruskan saf-saf shalat. Bila hal-hal tsb. diperbaiki, maka dengan mudah tentara Islam menang dalam perang tersebut.
Lihatlah, baru tidak bersugi dan tidak lurus saf shalat pun ALLAH hukum, apalagi kalau tidak shalat, buka aurat, riba, bergaul bebas, mengumpat, jatuh-menjatuhkan, tamak dan merebut kuasa?
2. Sebab itu Salahuddin Al Ayyubi tidak membenarkan tentaranya pergi ke medan perang jika mereka tidak bangun malam untuk shalat dan membaca Al Quran tetapi tidur sampai pagi. Walaupun hal-hal itu tidak wajib tetapi itulah lambang takwa. Siapa yang tidak melebihkan bakti pada ALLAH (overtime untuk ALLAH), ALLAH tidak memberi keistimewaan apa-apa padanya.
3. Muhammad Al Fateh, karena dia dan tentaranya orang bertakwa, maka sewaktu mau masuk ke pintu Kerajaan Rom, yang jalan airnya ditutup, kapal-kapalnya pun dapat belayar di atas daratan. Mungkin ALLAH belah bumi untuk pelayaran itu. Begitu besarnya bantuan ALLAH pada hamba-hambaNya yang bertakwa.
Itulah rahasia kejayaan pemimpin Islam. Yakni dalam menghadapi masalah yang tidak dapat diselesaikan oleh otak manusia, maka ALLAH sendiri menolong menyelesaikan di luar dugaan dan di luar akalnya. Serta diberikanNya jalan keluar yang mudah.Sebab ALLAH itu Maha Bijaksana lagi Maha Kuasa.
Sekian ceramah dari mohon maaf sebesar besarnya bila dalam penyampaiyan ceramah dari saya ada yang tidak berkenan saya mohon maaf karna kesempurnaan haya milik Allah dan kekurangan hanya milik manusia
Tumpak sado panjang kudana abruk abrukan lamun cerah tong panjang panjang benteng sing kuring tos buburukan
Buah manggu buah petey tamat euy
wasalmualaikum wr.wb