1. TUJUAN PRAKTIKUM
2. PENGANTAR
Bagaimana merancang sebuah basis data dengan model relasional pada sebuah kasus
tertentu. Scope pembahasan dimulai dari problem statement, identifikasi data, identifikasi
entitas, identifikasi atribut setiap entitas, menyusun kembali entitas secara lengkap,
melakukan analisis hubungan antar entitas, membuat ERD (entity relationship diagram),
dan terakhir mentransformasi ERD ke dalam struktur tabel.
a. Problem Statement
Studi kasus yang akan diberikan pada pembahasan ini adalah tentang transaksi di sebuah
minimarket. Misalkan diberikan tampilan sebuah struk pembelian seorang
b. Identifikasi Entitas
Langkah pertama dalam perancangan basis data adalah identifikasi entitas apa saja yang
terdapat dalam kasus tersebut. Sebuah entitas bisa berwujud misalnya orang, benda, tempat,
atau juga bisa tidak berwujud misalnya transaksi, atau kegiatan. Entitas ini sifatnya harus
independen, artinya keberadaannya tidak bergantung entitas lain. Berdasarkan keterangan
data yang didapat sebelumnya (terdapat di dalam struk), dapat kita identifikasi beberapa
entitas sbb:
Transaksi Pembelian
Cabang Minimarket
Barang
Kasir
Member
Kantor Pusat
Transaksi Pembelian:
No. transaksi (No. Bon)
Total harga transaksi pembelian
Total diskon transaksi pembelian
Nilai voucher transaksi pembelian
Jumlah nominal tunai uang pada transaksi pembelian
Besarnya nominal uang kembalian pada transaksi pembelian
PPN transaksi pembelian
Tanggal dan waktu transaksi
Jumlah poin pada transaksi
Cabang Minimarket
Nama cabang minimarket
No. telp cabang minimarket
Alamat cabang minimarket
Barang
Nama barang
Harga satuan barang
Kasir
Nama kasir
Member
Nama member
Total poin member
Kantor Pusat
Nama kantor pusat
No NPWP kantor pusat
Alamat kantor pusat
Email kantor pusat
No. telp kantor pusat
Perhatikan! Untuk data berikut ini sementara tidak dimasukkan ke dalam atribut entitas
tertentu:
Hal ini disebabkan karena data tersebut bukan milik sebuah entitas tertentu, melainkan milik
beberapa entitas, Sebagai contoh misalnya ‘kuantitas setiap barang yang dibeli’ dalam sebuah
struk. Data ini melibatkan beberapa entitas, yaitu barang dan juga transaksi. Data ini
menunjukkan kuantitas barang yang dibeli pada sebuah transaksi, dengan kata lain data
kuantitas ini muncul ketika terjadi transaksi pembelian. Oleh karena itu data ini sifatnya tidak
murni milik sebuah entitas tertentu. Demikian pula untuk data subtotal harga dan diskonnya.
Lantas ketiga data di atas akan dikemanakan? Nanti akan tetap kita tambahkan di akhir
proses. OK??
Apabila dalam sebuah entitas belum tampak adanya atribut pengenal, maka bisa kita buat
sendiri.
TransaksiPembelian (NoTransaksi, TotalHarga, TotalDiskon, Voucher, NominalTunai,
Kembalian, PPN, TanggalWaktu, Poin)
Cabang (NoCabang, NamaCabang, NoTelpCabang, AlamatCabang)
Barang (NoBarang, NamaBarang, HargaSatuan)
Kasir (NoKasir, NamaKasir)
Member (NoMember, NamaMember, TotalPoin)
KantorPusat (NoPusat, NamaPusat, NPWP, AlamatPusat, EmailPusat, NoTelpPusat)
Keterangan: atribut pengenal ditandai dengan garis bawah (underlined)
Khusus pada entitas Cabang, Barang, Kasir, Member, dan KantorPusat, telah dibuat atribut
pengenal secara manual. Hal ini disebabkan karena di setiap entitas tersebut belum ada atribut
pembeda untuk setiap datanya. Sebagai contoh misalnya entitas Kasir. Di dalam ini hanya
ada nama kasir. Sebagaimana kita tahu bahwa nama seseorang bisa saja sama. Oleh karena
itu diberikan atribut pengenal NoKasir sebagai pembeda antar kasir.
Di dalam tahap ini, akan kita identifikasi dan analisis semua hubungan antar entitas yang ada.
Pada langkah ini, apabila terdapat hal-hal yang belum jelas dalam hal keterkaitan antar entitas
bisa dikonfirmasikan kepada klien.
Berikut ini beberapa entitas yang saling berhubungan dengan entitas lain, serta analisisnya:
TransaksiPembelian – Cabang
o Sebuah NoTransaksi dilakukan di satu NoCabang saja
o Sebuah NoCabang bisa melakukan beberapa NoTransaksi
TransaksiPembelian – Barang
o Sebuah NoTransaksi bisa terdiri dari beberapa NoBarang
o Sebuah NoBarang bisa terdapat di beberapa NoTransaksi
TransaksiPembelian – Kasir
o Sebuah NoTransaksi hanya dilayani oleh seorang kasir saja (satu NoKasir)
o Seorang kasir (satu NoKasir) bisa melayani beberapa NoTransaksi
TransaksiPembelian – Member
o Sebuah NoTransaksi hanya dilakukan untuk satu NoMember
o Satu NoMember dapat melakukan beberapa NoTransaksi
Cabang – KantorPusat
o Satu NoCabang hanya memiliki satu NoPusat
o Satu NoPusat bisa memiliki beberapa NoCabang
Hasil analisis hubungan antar entitas di atas nantinya akan menentukan jenis kardinalitas
hubungan antar entitas di dalam diagram ERD, apakah termasuk jenis one-to-many, one-to-
one, atau many-to-many.
f. Membuat ERD
Berdasarkan hasil analisis hubungan antar entitas, selanjutnya kita bisa menggambar entity
relationship diagram (ERD) nya. ERD yang dibuat ini nanti akan membantu kita dalam
menyusun struktur tabel di database sekaligus relasi antar tabelnya.
Untuk membuat ERD bisa menggunakan free online tool, misalnya draw.io
Gambar 2 adalah ERD yang dibuat berdasarkan hasil analisis hubungan antar entitas
sebelumnya.
Dalam melakukan transformasi ERD ke dalam bentuk relasi tabel yang nantinya akan
diimplementasikan di dalam DBMS, ada beberapa kaidah yang perlu diperhatikan, yaitu:
Keterangan:
Pada tabel Cabang, muncul field baru NoPusat sebagai Foreign Key yang mengacu pada field
NoPusat yang ada di tabel KantorPusat. Hal ini disebabkan karena entitas Cabang dan
KantorPusat memiliki hubungan one-to-many, dan kebetulan entitas Cabang adalah entitas
yang berkadinalitas many (perhatikan Gambar 2).
Pada tabel TransaksiPembelian, muncul beberapa field baru: NoCabang, NoMember,
NoKasir. Hal ini disebabkan karena entitas TransaksiPembelian juga memiliki
hubungan one-to-many dengan entitas Cabang, Member, dan Kasir. Kebetulan entitas
TransaksiPembelian adalah entitas berkadinalitas many pada setiap hubungannya (perhatikan
Gambar 2).
Tabel BarangTransaksi muncul disebabkan dari hasil hubungan many-to-many dari entitas
Barang dan TransaksiPembelian (lihat Gambar 2). Dalam hal ini gabungan field NoBarang
dan NoTransaksi sebagai Primary Key nya sekaligus sebagai Foreign Key.
Di dalam tabel BarangTransaksi muncul juga beberapa field: Quantity, SubTotalHarga, dan
Diskon. Field ini muncul untuk mengakomodasi data ketiganya yang belum masuk ke dalam
entitas tertentu sebelumnya, disebabkan karena ketiganya adalah atribut yang muncul dengan
melibatkan beberapa entitas yaitu Barang dan Transaksi Pembelian.
OK.. setelah kita dapatkan struktur relasi antar tabel barulah kita bisa mengaitkan dengan
dimensi modelling.
TUGAS
Pada sebuah studi kasus dibawah. Scope pembahasan dimulai dari problem statement,
identifikasi data, identifikasi entitas, identifikasi atribut setiap entitas, menyusun
kembali entitas secara lengkap, melakukan analisis hubungan antar entitas, membuat
ERD (entity relationship diagram), dan terakhir mentransformasi ERD ke dalam struktur
tabel.
REFERENSI
Rosihan Ari Yuana