Sabtu, 07 Agustus 2010

Kajian Basis Data - Tugas Pengganti Ujian Tengah Semester

Manajemen Sistem Basis Data (Database Management System – DBMS) adalah perangkat lunak yang didesain untuk membantu dalam hal pemeliharaan dan utilitas kumpulan data dalam jumlah besar. DBMS dapat menjadi alternatif penggunaan secara khusus untuk aplikasi, semisal penyimpanan data dalam file dan menulis kode aplikasi yang spesifik untuk pengaturannya. Tujuan dari pengajaran mata kuliah basis data adalah untuk memberikan suatu pendahuluan mengenai sistem manajemen basis data, dengan penekanan pada baagimana cara mengorganisasi suatu informasi dalam DBMS, untuk memelihara informasi tersebut dan melakukan pengambilan informasi secara efektif, dan bagaimana cara mendesain suatu basis data dan menggunakan suatu DBMS secara efektif pula. Penggunaan DBMS untuk suatu aplikasi tergantung pada kemampuan dan dukungan DBMS yang beroperasi secara efisien. Sehingga agar bisa menggunakan DBMS dengan baik, perlu diketahui cara kerja dari DBMS tersebut. Pendekatan yang dilakukan untuk menggunakan DMBS secara baik, meliputi implementasi DBMS dan arsitektur secara mendetail untuk dapat memahami desain dari suatu basis data.

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.

Kelemahan-kelemahan DBMS antara lain :

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


Arsitektur Database Management System (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:

  • 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.
  • 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.
  • 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:

  • 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.
  • 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.
  • 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.


Model Data

Model data dapat dikelompokkan berdasarkan konsep pembuatan deskripsi struktur basis data, yaitu:

Ø Model data konsepsual (high level) menyajikan konsep tentang bagaiman user memandang atau memperlakukan data. Dalam model ini dikenalkan tiga konsep penyajian data yaitu:

o 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.

o Atribute (atribut) adalah keterangan-keterangan yang menjelaskan karakteristik dari suatu entitas seperti NIM, Nama, Fakultas, Jurusan untuk entitas Mahasiswa.

o Relationship (hubungan) merupakan hubungan atau interaksi antara satu entitas dengan yang lainnya, misalnya entitas pelanggan berhubungan dengan entitas barang yang dibelinya.

Ø Model data fiskal (low level) merupakan konsep bagaimana deskripsi detail data disimpan kedalam komputer dengan menyajikan informasi tentang format rekaman, urutan rekaman, dan jalur pengaksesan data yang dapat membuat pemcarian rekaman data lebih efisien.

Ø 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.


SQL (Structured Query Langguage)

Structured Query Language (SQL) adalah bahasa database relasional yang dibuat berdasarkan suatu standart. Bentuk dasar dari SQL adalah sebagai berikut :

SELECT [DISTINCT] select-list

FROM from-list

WHERE qualification

Setiap query dalam SQL harus memiliki klausa SELECT, yang menentukan kolom yang akan ditampilkan pada hasil, dan klausa FROM yang menentukan cross product table.

Klausa optional WHERE menentukan syarat-syarat seleksi pada table yang ditunjukkan oleh FROM. Berikut ini akan dibahas sintaksis query SQL dasar dengan lebih mendetail :

Ø from list pada klausa FROM adalah daftar nama table. Nama tabel dapat diikuti oleh nama alias; nama alias berguna ketika nama tabel yang sama muncul lebih dari sekali pada from list

Ø select-list adalah daftar nama kolom (termasuk ekspresinya) dari tabel-tabel yang tercantum pada form list. Nama kolom dapat diawali dengan nama alias dari tabel.

Ø Kualifikasi pada klausa WHERE merupakan kombinasi boolean atau pernyataan kata sambung logika dari kondisi yang menggunakan eksepresi yang melibatkan operator pembanding. Sedangkan ekspresi itu sendiri dapat berupa nama kolom, konstanta atau aritmatika dan string.

Ø Kata kunci distinct bersifat pilihan yang menghapus duplikat dari hasil query.

SQL menyediakan tiga konstruksi set-manipulation yang memperluas query dasar, yaitu UNION, INTERSECT dan EXCEPT. Juga operasi set yang lain seperti : IN (untuk memeriksa apakah elemen telah berada pada set yang ditentukan), ANY dan ALL (untuk membandingkan suatu nilaid engan elemen pada set tertentu), EXISTS (untuk memeriksa apakah suatu set kosong atau isi). Operator IN dan EXISTS dapat diawali dengan NOT. Fitur SQL yang lain yaitu NESTED QUERY, artinya query yang memiliki query lain di dalamnya, yang disebut dengan subquery. Nested query digunakan jika terdapat suatu nilai yang tidak diketahui (unknown values).

SQL mendukung lima operasi aggregat yang diterapkan pada sembarang kolom yaitu :

Ø COUNT : untuk menghitung cacah

Ø SUM : menghitung jumlah seluruh nilai

Ø AVG : menghitung rata-rata nilai

Ø MAX : mencari nilai paling besar

Ø MIN : mencari nilai paling kecil.

Kadangkala operasi aggregat diperlukan pada sekeompok grup dari baris pada relasi. Untuk menulis query semacam itu, dibutuhkan klausa GROUP BY. Dan penambahan klausa HAVING jika kita ingin menerapkan suatu kondisi terhadap data yang sudah dikelompokkan dengan GROUP BY.



STUDI KASUS :

Komputerisasi Sistem Pengolahan Persediaan Barang Dagang.

Data Flow Diagram













DFD Level 0




































DESAIN DATABASE


Tabel Bahan Baku

Field

Coloumn Name

Type

Length

Keterangan

1.

2.

3.

4.

Kode_BrgBaku*

Nama_BrgBaku

Satuan

Stok

nvarchar

nvarchar

nvarchar

int

5

20

10

4

Kode Barang Baku

Nama Barang Baku

Satuan Barang Baku

Stok Barang Baku

Tabel Barang Jadi

Field

Coloumn Name

Type

Length

Keterangan

1.

2.

3.

4.

Kode_BrgJadi*

Nama_BrgJadi

Satuan

Stok

nvarchar

nvarchar

nvarchar

int

5

20

10

4

Kode Barang Jadi

Nama Barang Jadi

Satuan Barang Jadi

Stok Barang Jadi

Tabel Suplier

Field

Coloumn Name

Data Type

Length

Keterangan

1.

2.

3.

4.

Kode_Suplier * Nama_Suplier Alamat

Telp

nvarchar nvarchar nvarchar nvarchar

5

20

30

12

Kode Suplier

Nama Suplier

Alamat Suplier

No. Telephon Suplier

Tabel Pelanggan

Field

Coloumn Name

Data Type

Length

Keterangan

1.

2.

3.

4.

Kode_Pelanggan * Nama_ Pelanggan Alamat

Telp

nvarchar nvarchar nvarchar nvarchar

5

20

30

12

Kode Pelanggan Nama Pelanggan Alamat Pelanggan No Telephon

Tabel Pembelian

Field

Coloumn Name

Data Type

Length

Keterangan

1.

2.

3.

4.

5.

6.

7.

8.

9.

No_Fak_Beli *

Tanggal

Kode_BrgBaku ** Kode_Suplier **

Jumlah_Beli

Harga_ Satuan

Total_Beli

Diskon

Total_Harga

nvarchar

datetime

nvarchar nvarchar

int

money

money

int

Money

5

8

5

5

4

8

8

4

8

Nomor Faktur Pembelian

Tanggal Pembelian Barang

Kode Barang Baku

Kode Suplier

Banyaknya Pembelian

Harga Satuan Barang

Total Pembelian

Diskon Pembelian

Total Harga Pembelian

Tabel Penjualan

Field

Coloumn Name

Data Type

Length

Keterangan

1.

2.

3.

4.

5.

6.

7.

8.

9.

No_Fak_Jual *

Tanggal

Kode_BrgJadi ** Kode_Pelanggan **

Jumlah_Jual

Harga_ Satuan

Total_Jual

Diskon

Total_Harga

Numeric

datetime

nvarchar nvarchar

int

money

money

int

Money

9

8

5

5

4

8

8

4

8

Nomor Faktur Penjualan

Tanggal Penjualan

Kode Barang Jadi

Kode Pelanggan

Jumlah Penjualan Barang

Harga Satuan Barang

Total Harga

Diskon

Total Harga Penjualan

Tabel Hutang

Field

Coloumn Name

Data Type

Length

Keterangan

1.

2.

3.

4.

5.

6.

7.

Tanggal_Hutang

Kode_Suplier **

No_Faktur

Kode_BrgBaku **

Total_Beli

Bayar

Hutang

Datetime

nvarchar

nvarchar

nvarchar

money

money

Money

8

5

5

5

8

8

8

Tanggal Hutang

Kode Suplier

Nomor Faktur Pembelian

Kode Barang Baku

Total biaya pembelian

Besar Pembayaran Hutang Dagang

Tabel Piutang

Field

Coloumn Name

Data Type

Length

Keterangan

1.

2.

3.

4.

5.

6.

7.

Tanggal_Piutang

Kode_Pelanggan **

No_Faktur

Kode_BrgJadi **

Total_Jual

Bayar

Piutang

datetime

nvarchar

nvarchar

nvarchar

money

money

money

8

5

5

5

8

8

8

Tanggal Piutang

Kode Pelanggan

No Faktur Jual

Kode Barang Jadi

Total Penjualan

Besar Pembayaran Piutang

Tabel Retur_Suplier

Field

Coloumn Name

Data Type

Length

Keterangan

1.

2.

3.

4.

5.

6.

Tanggal_Retur *

No_Fak_Beli

Tanggal

Kode_BrgBaku ** Kode_Suplier **

Jumlah

Datetime

nvarchar

datetime

nvarchar nvarchar

Int

8

5

8

5

5

4

Tanggal Retur

No Faktur Pembelian

Tanggal Pembelian

Kode Barang Baku

Kode Suplier

Jumlah Retur

Tabel Retur_Pelanggan

Field

Coloumn Name

Data Type

Length

Keterangan

1.

2.

3.

4.

5.

6.

Tanggal_Retur *

No_Fak_Jual

Tanggal

Kode_BrgJadi ** Kode_Pelanggan **

Jumlah

Datetime

nvarchar

datetime

nvarchar nvarchar

int

8

5

8

5

5

4

Tanggal Retur

No Faktur Penjualan

Tanggal Penjualan

Kode Barang Jadi

Kode Suplier

Jumlah Retur

Tabel Kembali_ReturPlg

Field

Coloumn Name

Data Type

Length

Keterangan

1.

2.

3.

4.

5.

Tanggal_kembali

Tanggal_Retur

Kode_BrgJadi **

Nama_BrgJadi

Jumlah

Datetime

Datetime

nvarchar

nvarchar

int

8

8

5

10

4

Tanggal Kembali Retur

Tanggal Retur

Kode Barang Jadi

Nama Barang Jadi

Jumlah Retur Kembali

Tabel Kembali_ReturSupl

Field

Coloumn Name

Data Type

Length

Keterangan

1.

2.

3.

4.

5.

Tanggal_kembali

Tanggal_Retur

Kode_BrgBaku**

Nama_BrgBaku

Jumlah

Datetime

Datetime

nvarchar

nvarchar

int

8

8

5

10

4

Tanggal Kembali Retur

Tanggal Retur

Kode Barang Jadi

Nama Barang Jadi

Jumlah Retur Kembali



RELASI TABEL