Kamis, 14 Januari 2010

SISTEM BASIS DATA RELASIONAL


Oleh

Wiyli Yustanti, S.Si, M.Kom

Jurusan Teknik Elektro

Fakultas Teknik Universitas Negeri Surabaya

 

1.      Tujuan

a.       Peserta dapat menjelaskan tentang konsep basis data

b.      Peserta dapat membuat model ER Diagram

c.       Peserta dapat melakukan mapping ER Diagram kedalam basis data

d.      Peserta dapat membuat query untuk mengolah basis data

e.       Peserta dapat membuat aplikasi sistem basis data

 

2.      Materi

A.    Pendahuluan

Saat ini hampir semua perusahaan/unit usaha beralih ke komputer untuk menangani bisnisnya. Semua data-data yang dimiliki perusahaan tidak lagi disimpan dalam bentuk kertas-kertas melainkan disimpan didalam komputer. Data-data yang disimpan didalam komputer meliputi dokumen-dokumen, surat-surat, maupun data transaksi yang dilakukan perusahaan.. Data-data tersebut disimpan dalam file-file terpisah dengan ekstensi seperti .doc, .xls, dan lain-lain. Dari sekian banyak data ternyata ada beberapa data yang sebenarnya saling berhubungan namun disimpan dalam file-file yang sama sekali berbeda, meskipun sebenarnya data-data ini dipakai untuk keperluan yang sama. Dengan perkembangan teknologi yang terjadi saat ini data-data yang saling berhubungan tersebut disimpan dalam suatu sistem yang disebut dengan basis data/database untuk mempermudah pengelolaanya. Adapun contoh penerapan basis data adalah dengan mencoba mencermati pertanyaan-pertanyaan yang mungkin sering kita jumpai di lingkungan kita, misalnya :

  • Berapa jumlah siswa yang mengikuti mata diklat Sistem Basis Data ?
  • Siapa saja nama siswa dari kelas A1?
  • Berapa nilai rata-rata yang diperoleh oleh ssiwa kelas 1 ?
  • Siapa saja dosen yang mengajar mata diklat pemrograman basis data ?
  • Siapa saja yang mendapatkan nilai A untuk mata diklat Matematika di kelas A1 ?

Untuk menjawab pertanyaan tersebut kita perlu waktu yang lama jika data tersebut disimpan dalam file-file yang terpisah ataupun bahkan jika masih disimpan dalam bentuk kertas-kertas (manual), tetapi bisa jadi jawaban atas pertanyaan-pertanyaan tersebut akan dapat diperoleh dalam hitungan detik jika kita melibatkan basis data/database.  Contoh tersebut hanya merupakan salah satu contoh penerapan database. Kemudian, contoh lain dapat kita simak pada kasus berikut :

Perusahaan Panama Motor merupakan perusahaan yang cukup terkenal di bidang penjualan sepeda motor secara kredit. Usaha ini sudah berjalan hampir 9 tahun dengan pelanggan yang sangat banyak. Sesekali Pak Ridwan, pemiliknya, mendapat pertanyaan dari para pelanggan via telepon, seperti, ” Halo Pak Ridwan. Masih ingat saya ? Saya pak Budi, saya mau melunasi kredit saya besok pagi, berapa yang harus saya bayar?, termasuk dendanya, karena saya sudah dua bulan ini tidak mengangsur berhubung ada keperluan di luar kota.” Tentu saja pak Ridwan tidak dapat menjawab pertanyaan pak Budi dengan segera. Ia harus menyampaikan pertanyaan itu ke salah seorang staffnya dan kemudian staff tersebut harus membuka laci, mencari kartu piutang, menghitung angsuran yang belum dibayar, dendanya sampai besok pagi dan juga potongan pelunasannya. Serentetan pekerjaan ini sudah tentu memakan waktu dan menuntut ketelitian perhitungan. Seringkali juga pak Ridwan ingin tahu bagaimana komposisi keterlambatan pembayaran piutangnya dan staffnya baru bisa menyajikannya setelah beberapa hari.

Lalu terlintas pada benak pak Ridwan, ”Seandainya saya dengan cepat bisa tahu informasi hutang pelanggan, tentu akan lebih baik. Saya bisa memperoleh informasi piutang seluruh debitur dengan cepat, tanpa perlu meminta bantuan staff saya. Saya cukup menghadap ke komputer dan segera memperoleh informasi yang saya butuhkan.”

Pak Ridwan bukanlah seorang pemrogram dan tidak tahu sama sekali bahasa pemrograman. Oleh karena itu beliau meminta tolong seorang pakar komputer. Yang beliau ungkapkan adalah pemikiran-pemikiran yang sering muncul dalam benaknya, termasuk untuk mencari tahu nilai yang harus dibayarkan seseorang yang hendak melunasi hutangnya. Berdasarkan kebutuhan pak Ridwan, sang pakar membuat suatu program komputer, yang biasa disebut sebagai program aplikasi atau aplikasi saja. Program tersebut mempunyai banyak kemampuan termasuk mencetak faktur pembayaran angsuran. Program in melibatkan database untuk menyimpan data-data seperti data pelanggan, data penjualan, data pembayaran angsuran, jenis motor yang dijual dan sebagainya.

 

B.     Konsep/Isi

1)      Sistem Basis Data

Dari studi kasus pada perusahaan Panama Motor diatas muncul pertanyaan di benak kita Apa sih yang disebut dengan basis data/database?. Untuk menjawab pertanyaan tersebut mari kita simak penjelasan berikut.Database dapat diibaratkan sebagai sebuah lemari arsip yang didalamnya terdapat rak-rak untuk menyimpan berkas-berkas seperti berkas pegawai, berkas pelanggan, berkas penjualan dan lain sebagainya. Untuk mempercepat proses pencarian pemilik akan melakukan pengurutan berkas. Selain itu untuk mendapatkan data di tiap kelompok maka pemilik akan mengelompokkan berkas/datanya. Misal pemilik ingin mengetahui berapa orang jumlah pegawai di tiap bagian/divisi, maka pemilik akan mengelompokkan data pegawai berdasarkan divisinya dan kemudian menghitung jumlahnya. Ilustrasi database dengan lemari dapat digambarkan pada gambar 1 dengan tabel 1.

Meskipun database dapat diilustrasikan seperti lemari, namun perlu diingat bahwa ada beberapa perbedaan yang terjadi antara penyimpanan konvensional (dengan lemari) dengan penyimpanan digital dalam database. Perbedaan itu antara lain meliputi bahwa di lemari data pelanggan (NoPelanggan, nama, alamat) dapat terdapat di data pegawai dan di data penjualan, sementara di database yang ada di data pelanggan adalah NoPelanggan, nama, dan alamat, sementara di data penjualan yang ada hanya Nopelanggan saja. Berkas yang disimpan di lemari adalah berkas secara fisik (kertas dan data) sementara di database yang disimpan adalah datanya saja

Adapun beberapa definisi basis data menurut berbagai referensi adalah :

a.       Basis data merupakan mekanisme yang digunakan untuk menyimpan informasi atau data. Informasi adalah sesuatu yang kita gunakan sehari-hari untuk berbagai alasan. Dengan basisdata, pengguna dapat menyimpan data secara terorganisasi. Setelah data disimpan, informasi harus mudah diambil. Kriteria dapat digunakan untuk mengambil informasi. Cara data disimpan dalam basis data menentukan seberapa mudah mencari informasi berdasarkan banyak kriteria. Data pun harus mudah ditambahkan kedalam basisdata, dimodifikasi dan dihapus. (Stephen dan Plew,2000).

b.      Kemudian, definisi lain diambil dalam buku Silberschatz,dkk (2002) yang mendefinisikan basis data sebagai kumpulan data yang berisi informasi yang sesuai untuk sebuah perusahaan. Sistem manajemen basis data (DBMS) adalah kumpulan data yang saling berhubungan dan kumpulan program untuk mengakses data. Tujuan utama sistem manajemen basis data adalah menyediakan cara menyimpan dan mengambil informasi basis data secara mudah dan efisien.

c.       Ramakrishnan dan Gehrke (2003) merupakan kumpulan data, umumnya mendeskripsikan aktivitas satu organisasi atau lebih yang berhubungan. Misalnya, basis data universitas mungkin berisi informasi mengenai mahasiswa, fakultas, mata kuliah, ruang kuliah, proses registrasi mahasiswa dan sebagainya.

 

Gambar 1. Ilustrasi Gambar Lemari Arsip Perusahaan Panama Motor

 

Tabel 1. Tabel ilustrasi database dengan lemari

No

Istilah di lemari

Istilah di Database

1.

Lemari

Database

2.

Rak

Tabel

3.

Arsip (isi data)

Record (baris)

4.

Item data (contoh : nip)

Field (kolom)

 

            Secara sederhana, basis data dibentuk oleh dua kata yaitu, basis dan data. Basis kurang lebih dapat diartikan sebagai markas atau gudang, tempat bersarang/berkumpul. Sedangkan data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan, peristiwa, konsep, keadaan dan sebagainya, yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, suara atau kombinasinya. Dengan demikian basis data sendiri dapat didefinisikan dalam sejumlah sudut pandang seperti :

a.       Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah.

b.      Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redundansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan.

c.       Kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronik.

Basis data dan lemari arsip sesungguhnya memiliki prinsip kerja dan tujuan yang sama. Prinsip utamanya adalah pengaturan data/arsip. Sedangkan tujuan utamanya adalah kemudahan dan kecepatan dalam pengambilan data/arsip. Perbedaanya hanya terletak pada media penyimpanan yang digunakan.Jika lemari arsip menggunakan lemari dari besi atau kayu, sedangkan basis data menggunakan media penyimpanan elektronik seperti disk atau hardisk. Perbedaan media ini yang selanjutnya melahirkan perbedaan – perbedaan lain yang menyangkut jumlah dan jenis metoda/cara yang dapat digunakan dalam upaya penyimpanan. Yang sangat ditonjolkan dalam basis data adalah pengaturan/pemilahan/pengelompokan /pengorganisasian data yang akan kita simpan sesuai fungsi/jenisnya. Pemilahan/ pengelompokan ini dapat berbentuk sejumlah file/tabel terpisah atau dalam bentuk pendefinisian kolom-kolom/field-dield data dalam setiap tabel.

Sistem adalah sebuah tatanan (keterpaduan) yang terdiri atas sejumlah komponen fungsional (dengan satuan fungsi/tugas khusus) yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses/pekerjaan tertentu. Sebuah kendaraan dapat mewakili sebuah sistem yang terdiri atas komponen starter (untuk memulai pengapian), komponen pengapian (untuk pembakaran BBM yang membuat torak bekerja), komponen penggerak/torak (untuk menggerakkan roda), komponen pengereman (untuk memperlambat/mengehntikan gerakan torak), komponen pelistrikan ( unutk mengaktifkan speedometer, lampu dan lain-lain) yang secara bersama-sama melaksanakan fungsi kendaraan secara umum, yakni sebagai sarana transportasi.

Basis data hanyalah sebuah objek yang pasif/mati. Ia ada karena ada pembuatnya. Ia tidak akan pernah berguna jika tidak ada pengelola/penggeraknya. Yang menjadi pengelola/penggeraknya secara langsung adalah program/aplikasi (software). Gabungan keduanya yakni basis data dan pengelolanya) menghasilkan sebuah system. Karena itu, secara  umum sebuah system basis data merupakan system yang terdiri atas kumpulan  file (table) yang saling berhubungan (dalam  sebuah basis data di sebuah system komputer) dan sekumpulan program (DBMS) yang memungkinkan beberapa pemakai dan/atau program lain untuk mengakses dan memanipulasi file-file(table-tabel) tersebut.Sebuah sistem basis data , secara lengkap terdiri darikomponen-komponen utama sebagai berikut :

a.         Perangkat Keras (Hardware)

Perangkat keras yang biasanya terdapat dalam sebuah sistem basis data adalah :

a)         komputer (satu untuk sistem yang stand alone atau lebih dari satu untuk sistem jaringan)

b)        memori sekunder yang online (hardisk)

c)         memori sekunder yang offline (removable disk) untuk keperluan backup data

d)        media/perangkat komunikasi (untuk sistem jaringan)

b.      Sistem Operasi (Operating System)

Sistem operasi merupakan program yang mengaktifkan/memfungsikan sistem komputer, mengnendalikan seluruh sumber daya (resource) dalam komputer dan melakukan operasi-operasi dasar dalam komputer. Sistem operasi yang banyak digunakan seperti : MS-DOS,  MS-Windows 98,XP,NT, Linux, Unix, Macintosh dan sebagainya.

c.       Basis Data (Databases)

Database adalah kumpulan data-data dalam bentuk tabel-tabel yang saling berhubungan yang disimpan dalam media perangkat keras komputer (contohnya harddisk) yang dapat diambil lagi sebagai informasi. Elemen-elemen penyusun database antara lain :

a)      Tabel, merupakan kumpulan record dengan format field yang sama. Satu tabel biasanya merepresentasikan data satu objek maupun satu kejadian yang terjadi dalam sebuah sistem. Contoh tabel pegawai menyimpan data-data mengenai objek pegawai, tabel transaksi pembelian menyimpan data-data mengenai kejadian pembelian, dsb.

b)      Field / kolom, merupakan bagian terkecil dari tabel yang digunakan untuk menyimpan item informasi. Contoh field NIP digunakan untuk menyimpan item informasi yang berupa nomor induk pegawai. Field nama digunakan untuk menyimpan nama pegawai, Field tanggal_transaksi digunakan untuk menyimpan item tanggal transaksi yang dilakukan pada suatu transaksi, dsb.

c)      Record/baris, merupakan sekumpulan field yang berhubungan erat, yang menggambarkan satu informasi.

d)     Primary key/kunci primer adalah suatu field yang nilainya unik dan digunakan sebagai kunci yang membedakan record satu dengan record lainnya. Contoh tabel pegawai primary keynya adalah Field NIP dalam artian antara data pegawai satu dengan pegawai yang lain NIPnya tidak akan pernah sama sehingga NIP adalah unik dan digunakan sebagai primary key. Primary key suatu tabel bisa terdiri dari satu field, gabungan dua field atau lebih.

e)      Relationship/ hubungan, merupakan hubungan antara satu tabel dengan tabel yang lain.

f)       Query, digunakan untuk menyaring dan menampilkan data yang memenuhi kriteria tertentu dari satu tabel atau lebih. Query dapat dibuat dengan menggunakan bahasa SQL maupun dengan desain query.

g)      DBMS, singkatan dari DataBase Manajemen Sistem yang merupakan kumpulan program untuk membuat dan merawat/mengelola database. Misalnya Oracle, Foxpro, Visual Foxpro, dBase, dsb.

h)      Sistem Database, merupakan gabungan database dengan manajemen database.

 

Gambar 2.  Sistem Basis Data

 

DATABASE

 

Tabel 1

 

Tabel 2

 

Tabel 3

 

Tabel 4

 

Tabel 5

 

Tabel 6

 

 

 

 

 

 

 

 


   Gambar 3. Representasi Database

 

Gambar  3 menggambarkan tentang struktur database yang terdiri dari beberapa tabel. Dalam RDB (Relational Database) antara satu tabel dengan tabel yang lain berhubungan. Contoh menggambaran tabel, field dan record dapat dilihat pada Gambar 3. berikut.

Field

Record

 


NIP

NAMA

ALAMAT

KODE_UNIT_KERJA

131025899

Istianah

Jl. Bulaksari 17 Surabaya

3

132589756

Abdul Muizz

Jl. Rambutan 23 Sidoarjo

2

457891256

Imanuel

Jl. Ketintang Barat 10 Surabaya

2

895798974

Insan Abadi

Relationship

Jl. Manggarai 15 Jombang

1

 

 

                                      

KODE_UNIT_KERJA

NAMA_UNIT_KERJA

1

Keuangan

2

Tata Usaha

3

Personalia

 

Gambar.4 Ilustrasi table, record dan field

d.      Sistem (Aplikasi/Perangkat Lunak) Pengelola Basis Data (DBMS)

Pengelolaan basis data secara fisik tidak dilakukan oleh pemakai secara langsung, tetapi ditangani oleh sebuah perangkat lunak (sistem) yang khusus. Perangkat lunak inilah (disebut DBMS) yang akan menentukan bagaimana data diorganisasi, disimpan, diubah dan diambil kembali. Ia juga menerapkan mekanisme pengamanan data, pemakaian data secara bersama, pemaksaan keakuratan/konsistensi data, dan sebagainya. Perangkat lunak yang termasuk dalam DBMS seperti dBase III+, Fox Base, MS-Acces, Borland-Paradox, Borland Interbase, MS-SQL Server, Oracle, Informix, Sybase dan sebagainya. Dalam Sistem Manajemen Data baik di perusahaan yang menggunakan komputer maupun yang tidak menggunakan komputer terdapat 3 operasi dasar yang harus dilakukandan dikelola dengan baik, yaitu :

a)      Data Entry (pemasukan data). Sistem harus menyediakan suatu struktur untuk menyimpan data. Sistem harus mengijinkan pemeriksaan, perubahan, dan koreksi terhadap data, dalam rangka memelihara validitas informasi. Sebagai contoh  formulir pendaftaran adalah struktur data yang dibuat dengan kertas dan tinta. Hasil pemasukan data disimpan dalam database.

b)      Data Organization (pengolahan data). Setelah data tersimpan dalam sistem diperlukan program dengan fungsi-fungsi yang powerfull untuk mengorganisasi dan mengubah data. Termasuk didalamnya, pengurutan data, pemilihan data dan perhitungan matematis.

c)      Report Generation (Pembuatan laporan). Dari waktu ke waktu, informasi dalam database perlu disusun dan disimpulkan. Hasil penyusunan kesimpulan ini dituangkan dalam laporan. Isi laporan biasanya meliputi seluruh database, tidak hanya sebagian. Informasi untuk laporan dihasilkan dengan menggunakan query. Selain itu informasi dalam laporan seringkali ditransformasikan dalam beberapa cara. Laporan tidak hanya merefleksikan isi database, tetapi juga memperlihatkan analisanya. Pembuatan neraca adalah salah satu contoh report generation.

 

 

 

 

e.       Pemakai (User)

Ada beberapa jenis/tipe pemakai  terhadap suatu sistem basis data yang dibedakan berdasarkan cara mereka berinteraksi terhadap sistem.

a)      Programmer Aplikasi. Pemakai yang berinteraksi dengan basis data melalui bahasa pemrograman pengolahan basis data ( Data Manipulation Language), yang disertakan dalam program yang ditulis dalam bahasa pemrograman induk (Pascal, C++, Basic dan lain-lain).

b)      User Mahir (Causal User). Pemakai yang berinteraksi dengan system tanpa menulis modul program. Mereka menyatakan dengan query ( unutk akses data ) dengan bahasa query yang telah disediakan oleh suatu DBMS.

c)      User Umum (End User/Naive User). Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan suatu program aplikasi permanen (executable program) yang telah ditulis/disediakan sebelumnya.

d)     User Khusus (Specialized User). Pemakai yang menulis aplikasi basis data non konvensional, tetapi unutk keperluan-keperluan khush, seperti aplikasi AI (Artificial Intelligent), Sistem Pakar, Pengolahan Citra, dan lain-lain, yang bias saja mengakses basis data dengan/tanpa DBMS yang bersangkutan.

Untuk sebuah sistem basis data yang stand alone, maka pada suatu saat hanya ada satu pemakai yang dapat bekerja. Sedang untuk sistem basis data dalam jaringan, maka pada suatu saat ada banyak pemakai yang dapat berhubungan (menggunakan) basis data yang sama. Pilihan untuk stand alone (single user) atau jaringan (multi user) tergantung pada kebutuhan pemakai, perangkat keras yang tersedia, sistem operasi yang digunakan, serta DBMS yang dipilih.

f.       Aplikasi (perangkat lunak) lain bersifat optional

Aplikasi lain ini bersifat optional, artinya, ada tidaknya tergantung pada kebutuhan kita. DBMS yang kita gunakan lebih berperan dalam pengorganisasian data dalam basis data, sementara bagi pemakai basis data (khususnya yang menjadi end-user/naive user) dapat dibuatkan/disediakan program khusus/lain untuk melakukan pengisian, pengubahan dan pengambilan data. Program ini ada yang sudah disediakan bersama dengan DBMS-nya, ada juga yang harus dibuat sendiri dengan menggunakan aplikasi lain yang khusus untuk itu (development tools).

 

2)      ER Diagram

Salah satu tujuan dari DBMS adalah unutk menyediakan fasilitas/antar muka (interface) dalam melihat/menikmati data (user friendly/user oriented) kepada pemakai/user. Untuk itu, sistem tersebut akan menyembunyikan detail tentang bagaimana data disimpan dan dipelihara. Karena itu , seringkali data yang terlihat oleh pemakai sebenarnya berbeda dengan yang tersimpan secara fisik. Abstraksi data merupakan tingkatan/level dalam bagaimana melihat data dalam sebuah sistem basis data. Level dari abstraksi data secara visual dapat diperhatikan pada gambar 5.

 

 

 

 

 


Gambar 5. Level Abstraksi Data

Ada tiga level abstaksi data yaitu :

a.       Level Fisik (Physical Level)

Merupakan level terendah dan menggambarkan bagaimana data sebenarnya disimpan. Tingkatan fisik menggambarkan secara rinci struktur data tingkat rendah yang kompleks. User melihat data sebgai gabungan dari struktur dan datanya sendiri. Pada level ini berurusan dengan data sebagai teks, angka atau bahkan melihatnya sebagai himpunan bit data (deskripsi record), alokasi ruang penyimpanan untuk data dan indeks, penempatan record data, teknik kompresi dan enkripsi data.

b.      Level Logika/Konseptual ( Logical/Conceptual Level)

Merupakan level berikutnya dalam abstraksi data yang menggambarkan data apa yang sebenarnya (secara fungsional) disimpan dalam basis data dan hubungannya dengan data yang lain (relationship data). Berisi struktur logika databse yang hanya dapat dilihat oleh administrator database (DBA). Pemakai pada level ini dapat mengetahui misal data pegawai disimpan dalam beberapa tabel seperti tabel pribadi, tabel pendidikan, tabel pekerjaan, tabel keluarga dan sebagainya. Tingkat konseptual ini menyatakan entitas, atribut dan relasinya, konstrain-konstrain terhadap data, informasi semantiks data, informasi kemanan dan integritas data.

c.       Level Pandangan (View Level)

Merupakan level tertinggi dari abstraksi data yang hanya menunjukkan sebagian dari basis data. Banyak pemakai dalam system basis data tidak akan terlibat dengan semua data/informasi yang ada/disimpan. Para pemakai umumnya hanya membutuhkan sebagian data/informasi dalam basis data yang kemunculannya diatur oleh aplikasi end-user. Misalnya data hari yang disimpan dalam bentuk kode ( 1 untuk senin, 2 untuk selasa dan seterusnya) yang kemudian ditampilkan bukan dalam bentuk kode 1,2,3 dan seterusnya, akan tetapi sudah dalam bentuk Senin, Selasa, Rabu dan seterusnya.

Untuk mengimplementasikan konsep level abstraksi data didalam sistem basis data, salah satu pendekatan yang dilakukan adalah melalui penggambaran model relasi data didalam sebuah diagram yang disebut Entity Relationship Diagram ( ER-Diagram). ER Diagram menggambarkan data pada tingkatan level logika (konseptual). Database dapat dianggap sebagai kumpulan relasi atau entitas. Istilah-istilah yang perlu dipahami terlebih dahulu untuk membuat sebuah model konseptual dalam bentuk ER Diagram dapat dilihat pada tabel 2 dibawah ini.

 

Tabel 2. Simbol – simbol pada ER- Diagram

Nama Objek

Simbol

 

 

Entity

 

 

Weak Entity

( Entiti Lemah)

 

 

Relationship (relasi)

Identifying Relationship

( relasi dengan entiti lemah)

Attribute

Key Attribute

(atribut kunci)

Multivalue attribute

Composite Attribute

Derived Attribute

E1

R

E2

Total Participation dari E2 pada relasi  R

E1

R

E2

N

Cardinality ratio

1 : N untuk E1 : E2 didalam relasi R

R

E

(min,max)

Structural constraint (min, max) on participation dari E pada relasi R

 

 

Entitas adalah “sesuatu” atau “objek” di dunia nyata yang dapat dibedakan dari objek lain, sebagai contoh adalah kursi, orang tertentu, buku dan sebagainya. Entitas bisa berupa objek kongkrit  ( orang, buku) dan bisa juga berupa objek abstrak (pinjaman, jadwal). Setiap entitas memiliki atribut, sebagai gambaran misalnya entitas orang memiliki nama dan alamat. Himpunan Entitas (Entity Set) adalah sSekelompok entitas yang sejenis dan berada dalam lingkup yang sama. Entitas menunjuk kepada pada individu suatu objek sedangkan himpunan entitas menunjuk pada rumpun (family) dari individu tersebut, contoh semua orang yang memiliki rekening di Bank (nasabah), semua pelanggan, mahasiswa atau dokter. Untuk memperjelas gambaran entitas perhatikan gambar 6.

 

 

 

Gambar 6. Himpunan Entitas Cutomer

 

 

Setiap Entitas memiliki atribut yang mendeskripsikan karakteristik (properti) dari Entitas tersebut sebagai contoh :

Customer = (Customer-Id, Customer-Name, Customer-Street, Customer-City)

 

Setiap Atribut akan memiliki nilai (values). Sedangkan batas-batas nilai yang diperbolehkan bagi suatu atribut disebut sebagai Domain (Value Set). Ada beberapa jenis atribut yaitu :

a.       Simple dan Composite attributes

·         Atribut Simple : Atribut sederhana yang tidak dapat dibagi dalam beberapa bagian

·         Atribut Komposit : Atribut yang dapat dibagi lagi dalam beberapa bagian, contoh atribut nama dapat  terdiri dari nama depan dan nama belakang

b.      Single-valued dan multi-valued attributes

·         Atribut Single-valued : Atribut yang memiliki paling banyak satu nilai untuk setiap baris data

·         Multi-valued attributes : Atribut yang dapat diisi dengan lebih satu nilai tetapi jenisnya sama. Contoh : Nomor Telp, Alamat

c.       Derived attributes

·         Atribut Turunan : Atribut yang diperoleh dari pengolahan dari atribut lain yang berhubungan. Contoh : Umur, IP

 

Relasi adalah hubungan antara beberapa entitas

Contoh :

Hayes

depositor

A-102

Entitas customer

Relasi

Entitas account

 

Himpunan relasi adalah kumpulan semua relasi yang merupakan relasi matematik antara       n ≥ 2 entitas,dari himpunan-himpunan entitas yang ada :

{(e1, e2, … en) | e1 Î E1, e2 Î E2, …, en Î En}

dimana :          (E1, E2,…, E3) adalah entitas

(e1, e2, …, en) adalah relasi

Contoh :(Hayes, A-102) Î depositor

 

Gambar 7. Himpunan Relasi Borrower

 

Derajat Relasi menunjukan banyaknya himpunan entitas yang saling berelasi. Himpunan relasi melibatkan dua himpunan entitas disebut Binary (atau ber-derajat 2). Secara umum himpunan relasi dalam sistem basis data adalah binary. Himpunan relasi memungkinkan untuk melibatkan dua himpunan entitas. Relasi antara lebih dari dua entitas jarang terjadi. Sebagai contoh : Jika employee suatu Bank boleh memiliki pekerjaan (Job) pada beberapa cabang (Branch) dengan pekerjaan yang berbeda pada cabang yang berbeda. Maka akan terjadi relasi ternary (berderajat-3) antara himpunan entitas employee, Job dan Branch. Selain derajat relasi, juga terdapat istilah yang disebut sebagai pemetaan kardinalitas relasi. Pemetaan kardinalitas relasi menggambarkan banyaknya jumlah maksimum entitas dapat berelasi dengan entitas pada himpunan entitas yang lain.Paling banyak digunakan dalam menjelaskan himpunan relasi biner.  Untuk Himpunan relasi biner pemetaan kardinalitasnya

dapat merupakan salah satu dari tipe2 berikut :

1. Satu ke Satu (One to one)

2. Satu ke Banyak (One to many)

3. Banyak ke Satu (Many to one)

4. Banyak ke Banyak (Many to many)

Gambar 8. Tipe Relasi Himpunan

 

Untuk relasi ini beberapa elemen di A dan B boleh tidak dipetakan terhadap entitas manapun.

           

Untuk menggambarkan simbol tipe relasi didalam sebuah ER-Diagram, perhatikan gambar dibawah ini.

 

One to One

 

 

Gambar 9. Relasi One to One

Makna dari relasi ini adalah bahwa satu orang dosen hanya diperbolehkan mengepalai satu jurusan. Begitu juga sebaliknya satu jurusan hanya boleh dikepalai oleh satu orang dosen.

 

Many to Many

 

Gambar 10. Relasi Many to Many

 

Relasi diatas memiliki arti bahwa seorang mahasiswa dapat mengikuti banyak mata kuliah dan sebaliknya sebuah mata kuliah bisa diikuti oleh banyak mahasiswa.

 

Penulisan  atribut sebuah entiti dapat juga ditulis didalam notasi kamus data seperti berikut

ini :

 

 

 

 

 

 

 

 

 


Gambar 11. ER- Diagram dan Kamus Data

 

Kamus Data

·         Mahasiswa = {Nim, Nama_mhs, Alamat_mhs, Tgl_lahir}

·         Kuliah = {Kode_kul, nama_kul, sks, semester}

·         Dosen = {nama_dos, alamat_dos}

·         Mempelajari = {nim, kode_kul, indek_nilai}

·         Mengajar = {kode_kul, nama_dos, waktu, Tempat}

 

 

Relasi Himpunan entitas tidak harus dalam bentuk yang berbed label “mengepalai”, “mempelajari” dan “ mengikuti” disebut Roles (peran), yang menspesifikasi bagaimana entitas mahasiswa berinteraksi melalui relasi mempelajari terhadap entitas mata kuliah. Peran dalam ER diagram diindikasikan dengan memberikan label (nama) pada garis yang menghubungkan relasi dengan entitas. Label peran bersifat optional dan digunakan untuk mengklarifikasi semantik suatu relasi.

 

Penggunaan key merupakan cara untuk membedakan suatu entitas didalam himpunan entitas dengan entitas lain. Secara konsep, Masing-masing entitas (nilainya) berbeda, perbedaannya terlihat pada isi dari masing-masing atributnya. Oleh karena itu, dibutuhkan suatu atribut yang memiliki nilai yang menjadi pembeda dengan entitas lain.Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua row dalam relasi secara unik. Ada 3 macam key yang dapat diterapkan pada suatu relasi :

a.       Super Key,merupakan satu atau lebih atribut (kumpulan atribut) yang dapat membedakan satiap baris data dalam sebuah relasi secara unik.

b.      Candidate Key,merupakan kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah relasi secara unik

c.       Primary Key,merupakan salah satu dari candidate key yang terpilih. Pemilihan primary key dari sejumlah candidate key umumnya didasari oleh :

·          Key tersebut lebih sering (lebih natural) untuk dijadikan sebagai acuan

·          Key tersebut lebih ringkas

·          Jaminan keunikan key tersebut lebih baik

 

Sebagai ilustrasi :

Customer = (Customer-Id, Customer-Name, Customer-Street,Customer-City)

Super Key :

        Customer-Id, Customer-Name, Customer-Street, Customer-City

        Customer-Id, Customer-Name, Customer-Street

        Customer-Id, Customer-Name

        Customer-Id

Candidate Key :

        Customer-Id

Primary Key :

        Customer-Id

 

Himpunan entitas yang tidak memiliki primary key disebut himpunan entitas lemah. Keberadaan entitas lemah bergantung pada eksistensinya dalam sebuah relasi terhadap entitas

lainnya.Identifikasi relasinya menggunakan simbol double diamond. Diskriminator (atau key parsial) dari himpunan entitas lemah adalah atribut-atribut yang dapat membedakan entitas-entitas yang ada di himpunan entitas lemah. Primary key dari himpunan entitas lemah dibentuk dari primary key himpunan entitas (kuat) dimana enititas lemah bergantung, serta diskriminator dari entitas lemah itu sendiri. Penggambaran himpunan entitas lemah menggunakan dobel persegi panjang.Diskriminator dari himpunan entitas lemah digambarkan

menggunakan garis bawah yang terputus-putus. Sebagai contoh perhatikan gambar 12.

 

Loan

Loan - payment

Payment

Loan_number

ammount

payment_number

Payment_date

Payment_ammount

 

 

 

 

 

 

 

 


Gambar 12. Himpunan entitas lemah

 

 

payment-number merupakan diskriminator himpunan entitas payment dan primary key untuk payment  adalah  (loan-number, payment-number). Primary key dari entitas kuat tidak secara

eksplisit tersimpan dalam entitas lemah,karena hal tersebut secara implisit merupakan identifikasi relasi. Jika loan-number secara eksplisit tersimpan,payment mungkin merupakan entitas kuat, tapi kemudian relasi antara payment dan loan akan diduplikasikan oleh relasi secara implisit oleh atribut loan-number common to payment and loan.

 

Dalam mendesain Entity Relasionship pemetaan kardinalitas akan berpengaruh terhadap bagaimana data tersebut akan digambarkan. Untuk memahami dengan lebih jelas bagaimana membuat ER-Diagram, berikut ini akan diberikan sebuah contoh kasus .

 

1.      COMPANY terdiri dari sejumlah DEPARTMENTS. Setiap departments mempunyai satu nama yang unik, nomor yang unik, dan seorang pegawai (employee) ada yang bertindak sebagai manajer dari department. Tanggal mulai kerja dari manager juga dicatat dalam database ( tanggal pengangkatan sebagai manager). Suatu department dapat tersebar disejumlah lokasi.

2.      Suatu DEPARTMENT dapat memgendalikan sejumlah PROJECT. Setiap project mempunyai satu nama yang unik, nomor yang unik dan satu lokasi tertentu.

3.      Data pegawai (EMPLOYEE) yang perlu dicatat berupa nama, social security number (SSN), address, salary,sex dan birthdate.

4.      Seorang pegawai ditempatkan di suatu department tetapi dapat bekerja di sejumlah project yang tidak harus dikendalikan oleh department dimana pegawai tersebut ditempatkan.

5.      Jumlah jam perminggunya dari pegawai yang bekerja pada suatu project perlu dicatat, selain itu perlu juga dicatat supervisor langsung dari setiap pegawai.

6.      Untuk tujuan atau keperluan asuransi pegawai, maka perlu dicatat anggota keluarga dari setiap pegawai. Data yang dicatat berupa nama anggota keluarga, sex, birthdate dan hubungan keluarga (relationship).

Informasi diatas didapatkan dari proses analisis kebutuhan data di sebuah perusahaan (Company). Hasil ER-Diagram dari kasus diatas adalah :

 

 

Gambar 13. ER- Diagram dari Basis Data Company

 

3)      Transformasi ER-Diagram

Setelah diperoleh model relasi dari sebuah konsep basis data, maka langkah selanjutnya adalah melakukan tranformasi ( mapping) dari model menjadi sebuah tabel yang siap dibuat didalam perangkat lunak untuk menyimpan basis data. Secara umum, langkah-langkah untuk melakukan transformasi adalah sebagai berikut :

a.       Untuk setiap entitas skema relasi R yang menyertakan seluruh Simple Atribute dan Simple Attribute dari Composite Attribute yang ada, pilih salah satu atribut kunci sebagai Primary Key..

b.      Untuk setiap Entitas Lemah, buatlah skema relasi R dengan mengikutsertakan seluruh Simple Attribute. Tambahkan Primary Key dari entitas kuatnya (Owner Entity type) yang akan digunakan sebagai Primary Key bersama-sama Partial Key dari Entitas Lemah.

c.       Untuk setiap relasi binary 1:1, tambahkan Primary Key dari sisi yang lebih ”ringan” ke sisi (entitas) yang lebih ”berat”. Suatu sisi dianggap lebih ”berat” timbangannya apabila mempunyai partisipasi total. Tambahkan juga Simple Attribute yang terdapat pada relasi tersebut ke sisi yang lebih ”berat”. Apabila kedua partisipasi adalah sama total atau sama-sama partial, maka kedua entitas tersebut boleh digabung menjadi satu skema relasi.

d.      Untuk setiap relasi binary 1:N yang tidak melibatkan entitas lemah, tentukan mana sisi yang lebih ”berat”. Sisi dianggap lebih ”berat” timbangannya adalah sisi-N. Tambahkan Primary Key dari sisi yang ”ringan” ke skema relasi sisi yang lebih ”berat”. Tambahkan juga seluruh simple attribute yang terdapat pada relasi biner tersebut.

e.       Untuk setiap relasi binary M:N, buatlah skema relasi baru R dengan atribut seluruh simple attribute yang terdapat pada relasi biner tersebut. Tambahkan primary key yang terdapat pada kedua sisi ke skema relasi R. Kedua Foreign Key yang didapat dari kedua sisi tersebut digabung menjadi satu membentuk Primary Key dari skema relasi R.

f.       Untuk setiap Multivalued Attribute, buatlah skema relasi R yang menyertakan atribut dari multivalue tersebut. Tambahkan Primary Key dari relasi yang memiliki multivalued tersebut. Kedua atribut tersebut membentuk Primary Key dari skema relasi R.

g.      Untuk setiap relasi n-ary dengan n>2, buatlah skema relasi R yang menyertakan seluruh Primary Key dari entitas yang ikut serta. Sejumlah n Foreign Key tersebut akan membentuk Primary Key untuk skema relasi R. Tambahkan seluruh Simple Attribute yang terdapat pada relasi n-ary tersebut.

 

Selanjutnya sebagai contoh akan dilakukan mapping dari gambar 13. Hasil mappingnya adalah sebagai berikut :

Gambar 14. Mapping ER- Diagram Basis Data Company

 

4)      Normalisasi

Suatu rancangan database disebut jelek jika data yang sama tersimpan di beberapa tempat (file atau record), ketidakmampuan untuk menghasilkan informasi tertentu dan terjadi kehilangan informasi. Misal suatu skema relasi :

 

CABANG (nama_cabang,aset,kota)

PINJAM (nama_cabang,nomor_hutang,nama_customer,jumlah)

 

Alternatif rancangan untuk skema database tersebut adalah :

UTANG (nama_cabang, aset, kota,nomor_hutang,nama_customer, jumlah)

 

Rancangan ini akan mengakibatkan terjadinya perulangan Informasi (data redundancy) yaitu pada attribute asset dan kota. Infomasi yang berulang hanya memboroskan ruang penyimpanan dan menyulitkan pada waktu proses updating data. Alternatif lain dari rancangan database berikut :

 

PINJAM (nama_cabang, nomor_utang, nama_customer,jumlah)

TABUNG(nama_cabang, nomor_tabungan, nama_customer,saldo)

 

Adalah :

PIN_TAB(nama_cabang,nama_customer,nomor_utang,jumlah,nomor_tabungan,saldo)

 

Dengan rancangan database seperti di atas akan timbul NULL VALUE, yaitu jika seseorang hanya pinjam saja atau jika hanya menabung saja.

 

Kehilangan informasi bisa terjadi bila pada waktu merancang database kita melakukan proses dekomposisi yang keliru. Misalnya suatu skema relasi :

 

UTANG (nama_cabang, aset, kota, nomor_hutang, Nama_customer,jumlah)

 

Dekomposisi menjadi dua buah skema relasi:

 

JUML(jumlah, nama_customer)

PINJ(nama_cabang, nomor_hutang,jumlah)

 

Diberikan query “Dapatkan nama cabang dimana Ali melakukan transaksi hutang”. Apa yang terjadi dengan informasi yang dihasilkan? Mengapa hasilnya seperti itu?. Tujuan normalisasi adalah mengeliminasi duplikasi informasi, memudahkan pengubahan struktur tabel, memperkecil pengaruh perubahan struktur database dan lain-lain. Bentuk normalisasi yang sering digunakan adalah 1st NF, 2nd NF, 3rd NF, dan BCNF

 

1st Normal Form (1NF)

Suatu relasi (tabel) R disebut 1st NF jika dan hanya jika semua attribute value-nya atomic (tidak boleh ada attribute yang composit & multivalue). 1NF berbentuk tabel yang bersifat flat dan tidak repeating group, multivalued dan composite atribut dan seringkali terjadi duplikasi.

 

Syarat 1NF:   Dari bentuk unnormalize ke normal pertama (1NF).

 

 

 

 

 

 

Contoh :

 

 

                        Bentuk Tabel Asal                                          Bentuk 1NF

 

 

Gambar 15. Normalisasi 1 NF

 

Sebuah tabel dikatakan memiliki bentuk tidak normal apabila :

a.       Mempunyai penggandaan field yang sejenis

Contoh : Tabel dibawah adalah tabel siswa mengambil mata kuliah (MK)

SISWA

 

Tabel siswa diatas mempunyai 3 field yang sejenis, yaitu MK1,MK2 dan MK3. Sehingga tabel diatas adalah termasuk tabel tidak normal (unnormalized).

 

b.      Elemen datanya memungkinkan untuk null (tidak berisi)

Contoh :

Ini adalah tabel yang mencatat no SIM dari siswa yang mempunyai SIM

SISWA_SIM

 

Tampak dalam tabel diatas bahwa elemen data dari no SIM si-Amin dan si-Bayu adalah null atau tidak berisi nilai. Sehingga tabel di atas adalah termasuk unnormalized.

 

Suatu tabel dikatakan berada pada bentuk normal I jika ia tidak berada pada bentuk unnormalized table. Jadi disini akan terjadi proses pentransformasi dari tabel bentuk unnormalized ke bentuk normal I. Prosesnya dinamakan normalisasi I (1NF).

Contoh :

Kalau tabel pada contoh (a) diatas kita normalisasi I, maka hasilnya akan didapatkan seperti ini :

SISWA

 

Kalau pada contoh (b) diatas kita normalisasi I, maka hasilnya akan didapatkan seperti ini :

 SISWA                                                                      SIM

 

2nd Normal Form (2NF)

            Bentuk normal tahap kedua (2NF) terpenuhi jika pada sebuah tabel, semua atribut yang tidak termasuk dalam primary key memiliki keterganungan fungsional terhadap primary key secara penuh. Sebuah tabel dikatakan tidak memenuhi 2BF jika ketergantungannya hanya bersifat parsial ( hanya tergantung pada sebagian dari primary key).

 

Syarat 2st Normal Form (2NF):

a.       Memenuhi kriteria tabel Normal I (1NF)

b.      Di dalam tabel tersebut tidak ada redudansi /pengulangan data.

c.       Field-field yang bukan PK adalah dependent (bergantung) pada PK.

 

Contoh :

 

Bentuk tabel sehari-hari :

 

 

Bentuk 2NF

 

Gambar 16. Normalisasi 2 NF

 

3rd Normal Form (3NF)

Suatu relasiR disebut normal ke tiga (3rd NF) jika berada dalam bentuk normal ke dua (2nd NF) dan tidak  dijumpai adanya ketergantungan transitif (transitive dependency). Kebergantungan transitif (transitive dependency) adalah ketergantungan fungsional antara 2 (atau lebih) atribut bukan key (kunci).

 

Syarat 3NF:

a.       Harus berada dalam bentuk normal ke dua (2NF).

b.      Ketergantungan field-field yang bukan PK adalah harus secara mutlak (full-dependent). Artinya harus tidak ada transitive dependency (ketergantungan secara transitif).

 

Contoh :

Tabel di atas sudah masuk dalam bentuk Normal II. Akan tetapi kita lihat bahwa field Nama dan Nilai di atas fulldependent terhadap NRP yang bertindak sebagai PK. Berbeda dengan field Keterangan di atas yang dependent kepada NRP akan tetapi tidak mutlak. Ia lebih dekat ketergantungannya dengan field Nilai. Karena field Nilai dependent kepada NRP dan field Keterangan dependent kepada Nilai, maka field Keterangan juga dependant kepada NRP. Ketergantungan yang demikian ini yang dinamakan transitive-dependent (dependent secara transitif atau samar/tidak langsung). Oleh karena jika dilakukan normalisasi III maka hasilnya adalah sebagai berikut :

 

                         

 

Contoh lain untuk normalisasi bentuk ke 3 (3NF) adalah :

Tabel Bentuk Normal Ke Dua (2NF) , dengan ketergantungan fungsional pada tanda panah: PENJUALAN

 

 


 

 

Pada tabel diatas, kita lihat terdapat ketergantungan transitif, yaitu wilayah yang secara fungsional bergantung pada Nama_Sales, sedang Nama_Sales bergantung pada No_Pelanggan. Sehingga terdapat beberapa anomali pembaharuan pada relasi Penjualan diatas:

a.       Anomali Penyisipan (Insert): Pada saat memasukkan data tenaga penjualan baru,maka data No_Pelanggan dan data lain juga harus dimasukkan.

b.      Anomali Penghapusan (Delete): Pada saat dilakukan penghapusan No_Pelanggan = 2522, maka informasi tentang tenaga penjualan juga akan ikut terhapus.

c.       Anomali Modifikasi (Update): Pada saat dilakukan update data tenaga penjual, maka harus dilakukan peng-update-an pada semua baris (row) pada tabel, hal ini sangat tidak efisien.

 

Hasil normalisasi kedalam bentuk 3 NF adalah :

 

 

 

 

 

 

 

 

Gambar 17. Normalisasi 3 NF

Boyce-Codd Normal Form (BCNF)

Secara praktis, tujuan rancangan database adalah cukup sampai pada 3NF. Akan tetapi untuk kasus-kasus tertentu kita bisa mendapatkan rancangan yang lebih baik lagi apabila bisa mencapai ke BCNF. BCNF ditemukan oleh R.F. Boyce dan E.F. Codd. Suatu relasi R dikatakan dalam bentuk BCNF: jika dan hanya jika setiap atribut kunci (Key) pada suatu relasi adalah kunci kandidat (candidate key). Kunci kandidat (candidate key) adalah atribut-atribut dari entitas yang mungkin dapat digunakan sebagai kunci (key) atribut.

BCNF hampir sama dengan 3NF, dengan kata lain setiap BCNF adalah 3NF.

 

Contoh :

 

Bentuk tabel dalam 2 NF

 

 

Bentuk tabel dalam BCNF

 

 

 

Gambar 18. Normalisasi BCNF

 

 

5)      Aljabar Relasional

Operator dasar didalam aljabar relasional terdiri atas 5 (lima) operasi, yaitu: SELECT, PROJECT, CARTESIAN PRODUCT, UNION dan SET-DIFFERENCE.

 

a.      SELECT (sF)

F adalah ekspresi yang terdiri dari operand atau atribut, operator pembanding, operator logika ( ˄ (and), ˅ (or), ¬ (not) ).

Bentuk Umum      : sF (R)

Artinya                  : Himpunan tupel (baris) R yang memenuhi kondisi F

 

Contoh :

 

 

b.      PROJECTION (π)

Merupakan simbol pemilihan dari atribut. Predikatnya adalah atribut terpilih. Sebagai contoh  adalah :

                                                     

 

 

 

 

 

c.       CARTESIAN PRODUCT (X)

Jika R dan S adalah relasi dengan jumlah atribut (arity) K1 dan K2,maka R X S adalah  himpunan tupel dengan arity (K1 + K2). Berikut ini adalah gambaran operasi cartesian product.

 

 

 

 

 

 

 


d.      UNION ( )

R  S merupakan himpunan tupel-tupel yang ada pada kedua relasi R dan S.- R dan S mempunyai arity yang sama dan atribut S ke-i harus sama dengan atribut ke-i dari R.

 

 

e.       SET-DIFFERENCE ( - )

R – S adalah himpunan tupel-tupel pada R, tetapi tidak di S.

 

 

 

 

Selain operator dasar diatas, didalam sistem basis data juga terdapat operator tambahan yang akan digunakan untuk melakukan proses pengolahan data didalam basis data. Operasi tambahan tersebut adalah  INTERSECTION, JOIN dan DIVISION.

 

 

f.       INTERSECTION ()

Operasi ini donotasikan dengan: R S. Hasilnya adalah berisi nilai yang memenuhi baik pada tupel (baris) R danS (sebagai irisan). Bisa dicari dari operasi dasar: R – ( R - S).

 

 

 

g.      JOIN – THETA JOIN (     θ)

Operasi JOIN dinotasikan dengan , yang digunakan untuk menggabungkan tuple-tuple dari dua relasi menjadi single tuples.- JOIN sering disebut juga THETA-JOIN.- Untuk menyederhanakan SELECTION pada hasil CARTESIAN PRODUCT.

Notasi JOIN:

Skema mirip dengan Cross Product, hanya diberikan kondisi tertentu.- Lebih sedikit tupel yang dihasilkan, dibandingkan dengan menggunakan operator Cross-Product, karena komputasinya lebih efisien.

 

 

 

 

h.      JOIN – EQUI JOIN   

Kasus khusus dari condition join dimana kondisi c hanya berisi kesamaan (nilai yang sama dari kedua relasi). Skema hasil hampir sama dengan cross-product, tapi hanya berisi

satu copy field yang mempunyai kesamaan dari field yang sudah ditentukan.Natural join adalah Equi-join pada semua fields.

 

 

i.        DIVISION (/)

Tidak mendukung operator primitif, tapi sangat berguna untuk mengekspresikan query seperti ini : Cari semua pelaut (sailors) yang telah memesan semua kapal boat (boats).

 

 

Misal A memiliki 2 fields yaitu x dan y; sedangkan B hanya memiliki 1 field yaitu y.

 

 

Misal. A/B berisi semua tuple x (sailors) dimana untuk setiap tuple y (boat) dalam B, terdapat tuple xy dalam A. Pada umumnya, x dan y dapat menjadi anggota fields; y adalah daftar fields dalam B, dan x   y adalah daftar fields dari A.

Contoh :

 

 

6)      Structure Query Language (SQL)

DBMS merupakan perantara bagi pemakai dengan basis data yang tersimpan dalam hardisk. Cara berinteraksi/berkomunikasi antara pemakai dengan basis data tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu dapat disebut sebagai bahasa basis data yang terdiir dari sejumlah perintah (statement) yang diformulasikan dan dapat diberikan user dan dikenali/diproses oleh DBMS untuk melakukan suatu aksi/pekerjaan tertentu. Contoh-contoh bahasa basis data adalah SQL, dBase, QUEL dan sebagainya. Sebuah bahasa basis data biasanya dapat dipilah kedalam 2 bentuk yaitu :

a.       Data Definition language (DDL), Struktur/skema basis data yang menggambarkan/ mewakili desain basis data secara keseluruhan dispesifikasikan dengan bahasa khusus yang disebut DDL. Dengan bahasa inilah dapat membuat table baru, membuat indeks, mengubah table, menentukan struktur penyimpanan ytabel dan sebagainya. Hasil dari kompilasi perintah DDL adalah kumpulan table yang disimpan dalam file khusus yang disebut kamus data (data dictionary). Kamus data nerupakan suatu metadata(superdata) yaitu data yang mendeskripsikan data sesungguhnya. Kamus data ini akan selalu diakses dalam suatu operasi basis data sebelum suatu file data yang sesungguhnya diakses. Contoh :

 

create table rekening

(no_rekening char(10),

 saldo integer)

 

b.      Data Manipulation Language (DML), merupakan bentuk bahasa basis data yang berguna unutk melakukan manipulasi dan pengambilan data pada suatu basis data.  Manipulasi dapat berupa :

·         Penyisipan/penambahan data baru kedalam suatu basis data

·         Penghapusan data dari suatu basis data

·         Pengubahan data dari suatu basis data

·         Pengambilan informasi yang disimpan dalam suatu basis data

Pada level fisik harus didefinisikan algoritma yang memungkinkan pengaksesan yang efisien terhadap data. Pada level yang lebih tinggi, yang dipentingkan bukan hanya efisiensi akses, tetapi juiga efisiensi interaksi antara manusia (pemakai) dengan system (kemudahan permintaan akses). DML merupakan bahasa yang bertujuan untuk memudahkan pemakai unutk mengakses data sebagaimana direpresentasikan oleh model data. Ada 2 jenis DML yaitu :

·         Prosedural, yang mensyaratkan agar pemakai menentukan data apa yang diinginkan serta bagaimana cara mendapatkannya.

·         Nonprosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutjan bagaimana cara mendapatkannya.

Dalam DML ini dikenal dengan istilah query, yaitu pernyataan meminta pengguna mengambil informasi. Bagian DML yang terlibat dalam pengambilan informasi disebut bahasa query. Istilah bahasa query sering disamakan dengan istilah bahasa manipulasi data. Sebagai contoh, perhatikan bahasa berikut ini :

 

Select mhs_nrp, mhs_nama  From  mahasiswa Where mhs_nama like "M*"

 

Bahasa user yang meminta pada database untuk menyediakan suatu data yang diperlukan adalah tipe bahasa khusus yang disebut dengan Structured Query Language, atau disingkat dengan SQL atau "sequel." SQL adalah bahasa fungsional, yaitu suatu bahasa yang memungkinkan user untuk menentukan tipe dari sesuatu yang ingin mereka dapatkan. Bahasa fungsional tersebut tidak sama dengan bahasa pemrograman yang lain semisal C++ atau COBOL. Bahasa-bahasa tersebut disebut sebagai bahasa ‘prosedural’ karena membutuhkan penulisan program atau prosedur untuk mendapatkan suatu informasi.Sebaliknya, SQL secara eksplisit mendefinisikan hasil akhir yang diinginkan, sedangkah metode untuk mendapatkan data tersebut dilakukan sendiri oleh database. Pemilihan data dapat dilakukan dengan menggunakan contoh kode seperti berikut :

 

SELECT *  FROM emp WHERE empid = 39334;

 

Statement SQL diatas meminta untuk menyediakan semua data dari table EMP dimana nilai yang diminta ada pada kolom EMPID yang berisi nilai 39334.Beberapa SQL command atau perintah SQL yang harus diketahui adalah :

  • CREATE DATABASE, untuk membuat sebuah database.
  • DROP DATABASE, untuk menghapus sebuah database.
  • CREATE TABLE, untuk membuat sebuah table.
  • ALTER TABLE, untuk memodifikasi sebuah table.
  • DROP TABLE, untuk menghapus sebuah table.
  • SELECT, untuk menampilkan data dari database.
  • UPDATE, untuk memodifikasi data dari database.
  • INSERT INTO, untuk menambah data di database.
  • DELETE, untuk menghapus data dari database.

 

Sedangkan perintah SQL untuk tingkat lanjut ada cukup banyak. Command tingkat lanjut ini berguna untuk mengolah data dengan cara yang lebih rumit dan kompleks.

 

 

 

CREATE DATABASE COMMAND

 

Sebelum bekerja dengan database, anda harus membuat dulu sebuah database yang akan menjadi obyek pekerjaan anda.

Syntaxnya :

CREATE DATABASE database_name

 

Setelah membuat database dengan command seperti di atas, tidak secara otomatis database anda berisi tabel-tabel. Database anda dalam keadaan kosong. Anda harus membuat tabel-tabel seperti yang akan dijelaskan pada bagian selanjutnya.

 

DROP DATABASE COMMAND

 

Jika anda ingin menghapus sebuah database, gunakan perintah berikut ini :

DROP DATABASE database_name

 

Jika anda menggunakan perintah di atas, maka seluruh database dan tabel yang ada di dalamnya akan terhapus.

 

Catatan : untuk Access, anda tidak diperbolehkan menggunakan perintah DROP DATABASE. Jika anda menggunakan perintah ini, aplikasi anda akan kacau. Jika anda ingin menghapus database dari Access, anda bisa menghapus file mdb yang telah dibuat oleh Access.

 

CREATE TABLE COMMAND

 

Selanjutnya anda dapat membuat table dengan perintah berikut :

 

CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
.......
)

 

Contohnya :

 

CREATE TABLE Person 
(
LastName varchar,
FirstName varchar,
Address varchar,
Age int
)

 

Anda juga bisa membatasi ukuran masing-masing field utnuk menghasilkan file database yang lebih kecil :

 

CREATE TABLE Person 
(
LastName varchar(30),
FirstName varchar,
Address varchar,
Age int(3) 
)

 

Untuk tipe datanya, anda dapat melihat lagi di bagian pertama materi kuliah ini.

 

ALTER TABLE COMMAND

 

Perintah ALTER TABLE dapat anda gunakan jika anda ingin memodifikasi struktur table yang anda buat. Artinya, jika anda ingin menambahkan sebuah atau beberapa field baru dalam tabel yang sudah anda buat, atau anda ingin menghapus satu atau beberapa field yang sudah anda buat, anda dapat menggunakan perintah ini.

 

Syntaxnya :

Untuk menambah field baru :
 
ALTER TABLE table_name 
ADD column_name datatype (size)
 
Untuk menghapus field yang sudah ada :
 
ALTER TABLE table_name 
DROP COLUMN column_name

 

DROP TABLE COMMAND

 

Untuk menghapus sebuah table, perintahnya seperti berikut ini :

DROP TABLE table_name

 

Catatan : Perlu diingat, bahwa jika anda menghapus sebuah table, maka seluruh data yang ada di dalamnya akan ikut terhapus.

 

 

SELECT COMMAND

 

Untuk menampilkan data dari sebuah database, anda dapat menggunakan perintah SELECT. Bentuk baku dari perintah ini adalah :

 

SELECT column_name_1, column_name_2, dst
FROM table_name

 

Jika anda ingin menampilkan semua data dalam sebuah table tanpa memilih salah satu field, maka anda dapat menggunakan perintah berikut :

 

SELECT * FROM table_name

 

SELECT DISTINCT STATEMENT

 

SELECT DISTINCT Statement digunakan untuk menampilkan data dari satu atau beberapa field (column) dari sebuah tabel. Namun perbedaan antara SELECT dengan SELECT DISTINCT terletak pada hasilnya.

 

Perhatikan contoh table ORDERS berikut ini :

 

Company

OrderNumber

Sega

3412

W3Schools

2312

Trio

4678

W3Schools

6798

 

Jika anda menggunakan perintah SELECT seperti ini :

 

SELECT Company FROM Orders

 

maka hasil yang didapat akan seperti ini :

 

Company

Sega

W3Schools

Trio

W3Schools

 

Tapi jika anda menggunakan perintah SELECT DISTINCT seperti ini :

 

SELECT DISTINCT Company FROM Orders

 

Maka hasilnya akan seperti ini :

 

Company

Sega

W3Schools

Trio

 

Perhatikan bahwa dengan perintah SELECT, data “W3Schools” akan ditampilkan 2 kali sesuai data yang ada, sedangkan dengan perintah SELECT DISTINCT, maka data “W3Schools” hanya ditampilkan 1 kali. Jadi perintah SELECT DISTINCT tidak akan menghasilkan data yang identik atau kembar.

 

 

WHERE CLAUSE

 

Anda juga dapat menambahkan sebuah kondisi pada perintah SELECT untuk menampilkan data yang lebih spesifik.

Syntax baku dari perintah WHERE adalah :

 

SELECT column FROM table
WHERE column operator value

 

di mana operator yang dimaksud adalah :

 

Operator

Description

=

Equal

<> atau !=

Not equal

> 

Greater than

< 

Less than

>=

Greater than or equal

<=

Less than or equal

BETWEEN

Between an inclusive range

LIKE

Search for a pattern

 

Perhatikan table PERSONS di bawah ini :

 

LastName

FirstName

Address

City

Year

Hansen

Ola

Timoteivn 10

Sandnes

1951

Svendson

Tove

Borgvn 23

Sandnes

1978

Svendson

Stale

Kaivn 18

Sandnes

1980

Pettersen

Kari

Storgt 20

Stavanger

1960

 

Jika anda menggunakan perintah SELECT dengan atribut WHERE seperti berikut ini :

 

SELECT * FROM Persons WHERE City='Sandnes'

 

Maka hasilnya akan ditampilkan seperti ini :

 

LastName

FirstName

Address

City

Year

Hansen

Ola

Timoteivn 10

Sandnes

1951

Svendson

Tove

Borgvn 23

Sandnes

1978

Svendson

Stale

Kaivn 18

Sandnes

1980

 

Perhatikan, bahwa yang ditampilkan adalah data yang berasal dari kota “Sandnes” sesuai dengan kondisi yang diberikan pada perintah di atas. Perhatikan untuk tulisan tanda petik (“) yang digunakan, berikut ini penulisan yang benar:

 

Untuk nilai berupa text :
 
Syntax yang benar :
SELECT * FROM Persons WHERE FirstName='Tove'
 
Syntax yang salah :
SELECT * FROM Persons WHERE FirstName=Tove
 
Untuk nilai berupa angka :
 
Syntax yang benar :
SELECT * FROM Persons WHERE Year>1965
 
Syntax yang salah :
SELECT * FROM Persons WHERE Year>'1965'

 

LIKE CLAUSE

 

Statemen LIKE dapat anda tambahkan pada perintah SELECT untuk memberikan suatu kondisi yang menyerupai sesuatu.

Syntax bakunya adalah :

 

SELECT column FROM table_name
WHERE column LIKE conditions

 

Dalam perintah ini, digunakan tanda “%” untuk menunjukkan sesuatu yang belum diketahui.

 

Perhatikan contoh berikut ini :

 

SELECT * FROM Persons
WHERE FirstName LIKE 'O%'

 

Perintah di atas ini akan menampilkan semua data yang FirstName-nya berawalan dengan huruf “O”.

 

SELECT * FROM Persons
WHERE FirstName LIKE '%a'

 

Sedangkan contoh di atas akan menghasilkan semua data yang FirstName-nya berakhiran dengan huruf “a”.

 

SELECT * FROM Persons
WHERE FirstName LIKE '%la%'

 

Sedangkan perintah di atas ini akan menghasilkan semua data yang FirstName-nya memiliki huruf “la” di tengahnya.

 

 

ORDER BY STATEMENT

 

Statement ORDER BY digunakan untuk mengurutkan tampilan data berdasarkan satu atau beberapa field secara urut dari awal ke akhir (ascending) atau dari akhir ke awal (descending).

 

Syntaxnya adalah sebagai berikut :

 

SELECT column_1, column_2, dst FROM table_name
ORDER BY column_1, column_2, dst ASC/DESC

 

Atau anda juga dapat menggabungkannya dengan clause yang lain, seperti WHERE dan LIKE seperti berikut ini :

 

SELECT column_1, column_2, dst FROM table
WHERE column_2 LIKE conditions ORDER BY column_1 ASC

 

Perhatikan contoh table ORDERS berikut ini :

 

Company

OrderNumber

Sega

3412

ABC Shop

5678

W3Schools

2312

W3Schools

6798

 

Misalnya anda punya perintah seperti ini :

 

SELECT Company, OrderNumber FROM Orders
ORDER BY Company

 

Maka hasilnya akan seperti ini :

 

Company

OrderNumber

ABC Shop 

5678

Sega

3412

W3Schools

6798

W3Schools

2312

 

Perhatikan, bahwa jika anda tidak memberikan tanda ASC atau DESC, maka hasilnya akan ditampilkan secara ASC (urut dari awal ke akhir, atau dari kecil ke besar).

 

Anda juga dapat menggabungkan beberapa kondisi sekaligus. Perhatikan contoh berikut ini :

 

SELECT Company, OrderNumber FROM Orders
ORDER BY Company DESC, OrderNumber ASC

 

Hasilnya akan seperti ini :

 

Company

OrderNumber

W3Schools

2312

W3Schools

6798

Sega

3412

ABC Shop

5678

 

Perhatikan bahwa hasilnya menunjukkan bahwa di field company akan urut secara descending, dan di field ordernumber akan urut secara ascending.

 

AND dan OR STATEMENT

 

Statement AND atau OR dapat digunakan untuk menggabungkan 2 kondisi yang berbeda untuk dijalankan dalam perintah WHERE.

 

Perhatikan contoh table PERSONS berikut ini :

 

LastName

FirstName

Address

City

Hansen

Ola

Timoteivn 10

Sandnes

Svendson

Tove

Borgvn 23

Sandnes

Svendson

Stephen

Kaivn 18

Sandnes

 

 

 

Misalnya anda mempunyai perintah seperti ini :

 

SELECT * FROM Persons
WHERE FirstName='Tove'
AND LastName='Svendson'

 

Maka hasilnya akan seperti ini :

 

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

 

Atau anda punya contoh perintah seperti ini :

 

SELECT * FROM Persons
WHERE firstname='Tove'
OR lastname='Svendson'

 

Maka hasil yang akan ditampilkan adalah seperti ini :

 

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

Svendson

Stephen

Kaivn 18

Sandnes

 

Anda juga dapat menggabungkan statement AND dan OR secara bersamaan, misalnya :

 

SELECT * FROM Persons WHERE
(FirstName='Tove' OR FirstName='Stephen')
AND LastName='Svendson'

 

Maka hasilnya akan seperti ini :

 

LastName

FirstName

Address

City

Svendson

Tove

Borgvn 23

Sandnes

Svendson

Stephen

Kaivn 18

Sandnes

 

 

UPDATE COMMAND

 

Perintah UPDATE digunakan untuk memodifikasi data (record) yang ada dalam sebuah table.

Syntaxnya :

 

UPDATE table_name
SET column_name = new_value
WHERE column_name = old_value

 

Perhatikan contoh table PERSONS berikut ini :

 

LastName

FirstName

Address

City

Nilsen

Fred

Kirkegt 56

Stavanger

Rasmussen

Ani

Storgt 67

 

 

Misalnya anda punya perintah seperti ini :

 

UPDATE Person SET FirstName = 'Nina'
WHERE LastName = 'Rasmussen'

 

Maka hasilnya adalah seperti ini :

 

LastName

FirstName

Address

City

Nilsen

Fred

Kirkegt 56

Stavanger

Rasmussen

Nina

Storgt 67

 

 

Perhatikan bahwa record yang sebelumnya adalah “Ani” berubah menjadi “Nina” setelah perintah dijalankan.

 

 

INSERT INTO COMMAND

 

Perintah INSERT INTO digunakan untuk menambahkan data baru pada sebuah table, bukan untuk memodifikasi data dalam salah satu field saja.

 

Syntaxnya :

 

INSERT INTO table_name (column1, column2, dst)
VALUES (column1_value, column2_value, dst)

 

Perhatikan table PERSONS di bawah ini :

 

LastName

FirstName

Address

City

Pettersen

Kari

Storgt 20

Stavanger

 

Untuk menambahkan data yang baru, anda dapat menggunakan perintah INSERT INTO. Berikut contohnya :

 

INSERT INTO Persons (LastName, FirstName, Address, City)
VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes')

 

Atau perintah seperti ini :

 

INSERT INTO Persons 
VALUES ('Hetland', 'Camilla', 'Hagabakka 24', 'Sandnes')

 

Perhatikan bahwa karena isi field berupa text, maka value yang ada diberi tanda petik (‘ ‘) yang menandakan text atau string. Hasilnya adalah sebagai berikut :

 

LastName

FirstName

Address

City

Pettersen

Kari

Storgt 20

Stavanger

Hetland

Camilla

Hagabakka 24

Sandnes

 

Anda juga dapat menambahkan data pada field tertentu saja, namun tetap membuat baris yang baru (bukan mengganti data yang lama).

 

Perhatikan table PERSONS berikut ini :

 

LastName

FirstName

Address

City

Pettersen

Kari

Storgt 20

Stavanger

Hetland

Camilla

Hagabakka 24

Sandnes

 

 

Misalnya anda punya perintah seperti ini :

 

INSERT INTO Persons (LastName, Address)
VALUES ('Rasmussen', 'Storgt 67')

Maka hasilnya adalah :

 

LastName

FirstName

Address

City

Pettersen

Kari

Storgt 20

Stavanger

Hetland

Camilla

Hagabakka 24

Sandnes

Rasmussen

 

Storgt 67

 

 

Perhatikan bahwa data yang baru tidak menggantikan posisi data yang lama, melainkan menempati baris yang baru dengan 2 field yang dikosongkan isinya.

 

DELETE COMMAND

 

Perintah DELETE digunakan untuk menghapus data dari sebuah table. Fungsi menghapus ini akan dijalankan berdasarkan kondisi yang diberikan. Karena itu perlu anda ingat untuk selalu memberikan sebuah kondisi agar data yang terhapus benar-benar data yang ingin anda hapus.

 

Perintah ini tidak bisa menghapus hanya isi field tertentu saja. Seluruh field dalam satu rangkaian baris akan dihapus jika kondisi yang ditetapkan terpenuhi.

 

Syntaxnya :

 

DELETE FROM table_name
WHERE column_name = value

 

Perhatikan contoh table PERSONS berikut ini :

 

LastName

FirstName

Address

City

Nilsen

Fred

Kirkegt 56

Stavanger

Rasmussen

Nina

Stien 12

Stavanger

 

Misalnya anda punya perintah seperti ini :

 

DELETE FROM Person WHERE LastName = 'Rasmussen'

 

Maka hasilnya akan seperti ini :

 

LastName

FirstName

Address

City

Nilsen

Fred

Kirkegt 56

Stavanger

 

Perhatikan bahwa seluruh data milik Rasmussen akan dihapus.

Jika anda ingin menghapus semua baris yang ada, anda dapat menggunakan perintah berikut ini :

DELETE FROM table_name
atau
DELETE * FROM table_name

 

Maka seluruh data dalam table itu akan terhapus semuanya.

C.      Rangkuman Materi

            Basis data dibentuk oleh dua kata yaitu, basis dan data. Basis kurang lebih dapat diartikan sebagai markas atau gudang, tempat bersarang/berkumpul. Sedangkan data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang, hewan, peristiwa, konsep, keadaan dan sebagainya, yang direkam dalam bentuk angka, huruf, simbol, teks, gambar, suara atau kombinasinya. Dengan demikian basis data sendiri dapat didefinisikan dalam sejumlah sudut pandang seperti (1).Himpunan kelompok data (arsip) yang saling berhubungan yang diorganisasi sedemikian rupa agar kelak dapat dimanfaatkan kembali dengan cepat dan mudah, (2).Kumpulan data yang saling berhubungan yang disimpan secara bersama sedemikian rupa dan tanpa pengulangan (redundansi) yang tidak perlu, untuk memenuhi berbagai kebutuhan dan (3).Kumpulan file/tabel/arsip yang saling berhubungan yang disimpan dalam media penyimpanan elektronik.

Basis data juga dapat dianggap sebagai kumpulan relasi atau entitas, sehingga untuk menggambarkan sebuah sistem basis data, data dibuat sebuah model diagram yang disebut sebagai Entity Relationship Diagram (ER-Diagram). Didalam ER-Diagram terdapat simbol-simbol yang terlibat didalam proses basis data yaitu entitas, relasi, atribut dan nilai dari suatu atribut.

Setelah memahami konsep basis data dan cara membuat model basis data relasional melalui ER-Diagram, selanjutnya dilakukan proses tranformasi ER-Diagram ke dalam tabel (model fisik dari basis data). Proses transformasi ini harus memperhatikan aturan mapping yang ditentukan oleh jenis relasi antar entitas. Hasil tranformasi yang benar akan menghasilkan tabel yang telah memenuhi syarat-syarat normalisasi.

Cara berinteraksi/berkomunikasi antara pemakai dengan basis data tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu dapat disebut sebagai bahasa basis data yang terdiri dari sejumlah perintah (statement) yang diformulasikan dan dapat diberikan user dan dikenali/diproses oleh DBMS untuk melakukan suatu aksi/pekerjaan tertentu. Bahasa ini disebut dengan bahasan Structure Query Language (SQL). Syntax SQL ada dua jenis, yaitu SQL untuk Data Definition Language (DDL) dan sebagai Data Manipulation Language (DML).

 

 

3.      Kegiatan

Berikut ini diberikan gambaran sistem kepegawaian perusahaan konveksi Maju Mulia adalah suatu perusahaan yang bergerak dalam bidang konveksi dan berdomisili di daerah Banyuwangi, Jawa Timur. Perusahaan ini membuat baju seragam yang kemudian dipasarkan ke berbagai daerah lain di Jawa Timur. Perusahaan ini mempunyai banyak tenaga penjahit. Para pegawai ada yang menjahit di konveksi ini dan ada yang menjahit di rumah masing-masing. Pegawai akan mendapatkan upah sesuai dengan banyaknya jahitan yang dikerjakan. Ada beberapa tipe seragam dan harganya lain-lain. Pegawai menerima gajinya ketika pekerjaan yang dikerjakan selesai. Konveksi Maju Mulia memerlukan suatu aplikasi yang dapat menangani penggajian pegawainya.Adapun proses-proses yang harus ditangani dalam sistem penggajian ini adalah :

a.       Pencatatan data pegawai.

b.      Pencatatan jenis-jenis seragam

c.       Pencatatan pengambilan jahitan oleh pegawai

d.      Pengembalian Jahitan

e.       Penggajian.

 

f.       Laporan yang harus dibuat adalah :

g.      Laporan Daftar Pegawai

h.      Laporan Pengambilan dan pengembalian jahitan per pegawai

i.        Slip Gaji

 

Lakukan kegiatan berikut :

1.      Buat database db_kepegawaian dengan menggunakan Microsoft Acces dengan tabel – tabel yang harus dibuat adalah sebagai berikut :

Tabel Pegawai :

Nama Field

Tipe

Lebar

Keterangan

Peg_NIP

Text

8

Untuk menyimpan NIP Pegawai

Peg_nama

Text

50

Untuk menyimpan nama Pegawai

Peg_alamat

Text

50

Untuk menyimpan alamat Pegawai

Peg_JK

Text

1

Untuk menyimpan Jenis Kelamin Pegawai, berisi L atau P

Peg_TglMasuk

Date/Time

 

Untuk menyimpan Tgl pegawai mulia bekerja

Peg_noTelp

Text

15

Untuk menyimpan NO Telp Pegawai

 

Tabel Seragam :

Nama Field

Tipe

Lebar

Keterangan

Srg_kode

Text

4

Menyimpan Kode Seragam

Srg_nama

Text

50

Menyimpan Nama Seragam

Srg_jenis

Text

50

Menyimpan Jenis seragam

Srg_upahPerPotong

Currency

 

Menyimpan nilai nominal upah perpotong

 

Tabel Ambil_Jahitan :

Nama Field

Tipe

Lebar

Keterangan

Ambil_kode

Text

50

Menyimpan Kode Pengambilan

Ambl_NIP

Text

8

Menyimpan NIP pegawai yang mengambil jahitan

Ambil_Tgl

Date/Time

 

Menyimpan tanggal pengambilan

 

Tabel Pengambilan_Detail

Nama Field

Tipe

Lebar

Keterangan

Det_kode

Text

50

Menyimpan kode pengambilan detail

Det_kodeAmbil

Text

50

Menyimpan kode pengambilan

Det_kodeSrg

Text

4

Menyimpan kode seragam yang diambil

Det_jumlah

Number

 

Menyimpan jumlah seragam yang diambil

Det_tglKembali

Date/Time

 

Menyimpan tgl pengembalian jahitan

 

2.      Buatlah relationship yang mungkin dari tabel- tabel tersebut

3.      Isilah tabel – tabel tersebut dengan beberapa record

4.      Buatlah query yang dibutuhkan untuk membuat data input dan laporan yang sesuai dengan data yang diperlukan perusahaan

 

4.      Latihan

 

1.      Perhatikan gambar ER-D dibawah ini.  Model ER-D dibawah ini merupakan model untuk system perbankan.Jelaskan setepat mungkin proses yang dapat digambarkan oleh ER-D.

 

 

 

 

 

 

 

 

 

 

2.      Berdasarkan gambar ER-D diatas :

a.       Sebutkan semua entity yang terdapat dalam ER-Diagram tersebut

b.      Apakah ada Weak Entity ? Jika ada, sebutkan nama entitinya dan partial key-nya

c.       Sebutkan semua relasi pada entity lemah yang ada dan beri nilai (min, max) untuk setiap relasi itu.

d.      Bagaimana hasil maping dari ER-Diagram tersebut kedalam skema relasi.

3.      Perhatikan skema relasi dari aplikasi basis data  katalog dari sebuah Toko Buku ABC.

BUKU( ID#, Judul, P#, J#)

JENIS_BUKU( J#,Harga,Diskon%)

PENGARANG(P#,Nama)

Diasumsikan bahwa setiap buku memiliki diskon yang berbeda-beda. Harga merupakan harga satuan dari setiap buku.Total merupakan totalbiaya order.

  1. Jika BUKU, JENIS_BUKU dan PENGARANG dilakukan JOIN ( digabungkan). Maka bagaimana hasil dari skema relasi (table) yang baru ?
  2. Tunjukkan Fungsi Dependencies ( ketergantungan antara atribut dengan keynya) dari jawaban a.
  3. Termasuk kedalam bentuk normal berapa jawaban a ? ( 1NF atau 2 NF atau 3NF?)
  4. Jelaskan mengapa jawaban c, berikan asumsi-asumsi yang menjelaskan jawaban c.

4.      Diagram Perhatikan ER- Diagram dari model relasi dalam Microsoft Acces berikut.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SELECT Mahasiswa.Mhs_nrp, Mahasiswa.Mhs_nama, Mahasiswa.Mhs_angkatan, Mahasiswa.Mhs_kelas

FROM Mahasiswa

WHERE (((Mahasiswa.Mhs_nrp)=[Masukkan NRP : ]));

  Bagaimana Hasil dari Syntax Query Berikut :

a.        

 

SELECT *

FROM dosen

WHERE (((dosen.Dsn_nama) Like "V*"));

 

b.       

SELECT dosen.Dsn_Nip AS [Dosen Wali], Count(Mahasiswa.Mhs_nrp) AS [Jumlah Mahasiswa]

FROM dosen INNER JOIN Mahasiswa ON dosen.Dsn_Nip = Mahasiswa.Mhs_NipWali

GROUP BY dosen.Dsn_Nip

ORDER BY Count(Mahasiswa.Mhs_nrp) DESC;

SELECT Mahasiswa.Mhs_nama, DaftarMataKuliah.DMK_Matkul, DaftarPesertaKuliah.DPK_Nihuruf

FROM DaftarMataKuliah INNER JOIN (DaftarJadwalPelajaran INNER JOIN (Mahasiswa INNER JOIN      

            DaftarPesertaKuliah ON Mahasiswa.Mhs_nrp = DaftarPesertaKuliah.DPK_NrpPeserta) ON

            DaftarJadwalPelajaran.Djp_kodejadwal = DaftarPesertaKuliah.DPK_KodeJadwal) ON

            DaftarMataKuliah.DMK_KodeMatKul = DaftarJadwalPelajaran.DJP_KodeMK

WHERE (((Mahasiswa.Mhs_nama)="Lahuri"));

 

c.        

 

d.         

 

 

 

 


5.      Referensi

Elmasri & Navathe (2000), “Fundamentals of Database Systems 3rd ed”, Addison-Wesley

 

1 komentar:

  1. gan boleh minta softcopy file dalam bentuk ms word?
    tlg gan kirim ke email saya sandiwbo.sw@gmail.com
    terimakasih sebelumnya

    BalasHapus