Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

02/01/2018    Risman Hakim    188202    Website

Perbedaan Primary Key, Foreign Key dan Candidate Key - Setelah kemarin saya membahas mengenai join tabel pada SQL, kali ini saya akan melanjutkan pembahasan yang masih bersangkutan dengan SQL yakni key. Key pada SQL merupakan gabungan beberapa atribut dimana fungsinya adalah untuk membedakan semua basis data didalam tabel secara unik ataupun suatu cara untuk menghubungkan antara tabel satu dengan tabel yang lainnya.

Didalam SQL, key terbagi menjadi beberapa jenis diantaranya adalah sebagai berikut :

  • Primary Key
  • Foreign Key
  • Candidate Key
  • Super Key
  • Alternate Key
  • Composite Key

Dari semua key diatas, saya akan membahas apa saja perbedaan dari masing-masing key tersebut, namun kali ini saya akan membahas terlebih dahulu Perbedaan Primary Key, Foreign Key dan Candidate Key.

1. Primary Key

Primary Key merupakan sebuah aturan dimana fungsinya adalah untuk membedakan anatara baris satu dengan baris lainnya yang ada pada tabel dan bersifat unik.

Berikut adalah contoh primary key pada salah satu tabel.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Ada ketentuan yang harus diperhatikan ketika field yang menjadi primary key yakni :

Data tidak boleh sama atau ganda (unik)
Data tidak boleh bernilai null

Contoh sederhana penerapan primary key adalah seperti contoh diatas adalah id.

2. Foreign Key

Dari namanya kita bisa mengira bahwa foreign (tamu) key, merupakan suatu atribut untuk melengkapi hubungan yang menunjukan ke induknya, itu artinya field pada tabel merupakan kunci tamu dari tabel lain. Dan biasanya penggunaan foreign key akan sangat dibutuhkan ketikan kita menemukan banyak tabel dan ingin menghubungkan satu tabel dengan tabel lainnya.

Contohnya seperti pada gambar dibawah ini.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

3. Candidate Key

Yang terakhir dari pembahasan key pada SQL adalah candidate key, candidate key merupakan suatu atribut ataupun super key yang mengidentifikasi secara unik untuk kejadian spesifik dari entitas.

Berikut ini adalah contoh candidate key.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Baiklah, cukup sekian pembahasan mengenai Perbedaan Primary Key, Foreign Key dan Candidate Key, semoga bermanfaat sampai jumpa diartikel selanjutnya.

Artikel, MySQL

Dalam mata kuliah basis data, ada satu materi yang cukup berat, yaitu normalisasi tabel. Prinsip dasarnya adalah database relasional dimana ada aturan-aturan tertentu yang mengharuskan database designer mengikuti standar yang baku. Postingan berikut sedikit berdiskusi apa saja yang perlu diperhatikan dalam menormalisasi sebuah tabel.

Multivalue

Ini merupakan prinsip dasar database relasional dimana satu field/kolom dalam satu record tidak boleh berisi lebih dari satu item. Misalnya tabel transaksi pembelian barang, tidak boleh ada satu field, misalnya barang, yang berisi item-item barang yang dibeli. Di sini lah letak perbedaan basis data relasional dengan objek. Dalam basis data objek, isi field (diistilahkan dengan atribut) bisa multivalue dalam bentuk array.

Functional Dependency & Transitive Dependency

Dalam tabel transaksi terdapat dua ketergantungan yakni ketergantungan fungsi dan transitif. Jika Unnormalize Form (UNF) berisi field-field dalam transaksi (termasuk yg multivalue), dan 1NF yang berisi para kandidate key, 2NF berisi tabel-tabel yang mendukung ketergantungan fungsi, misalnya dalam pembelian barang, tabel yang terkait adalah tabel penjualan, detil penjualan dan barang.

Sementara itu ketergantungan yang sifatnya transitif, misalnya pelanggan, suplier, kasir/teler, dan lain-lain dipecah dalam 3NF. Ada level yang lebih rumit dan khusus, diberi nama Boyce-Code Normal Form (BCNF), biasanya terjadi ketika suatu field misalnya harga barang yang mengikuti wilayah cabang tertentu, padahal wilayah bukan merupakan primary key.

Surrogate Key

Dalam detil transaksi, misalnya detil pembelian, terkadang dibuat suatu surrogate key yang agar praktis dibuatkan/di-generate secara otomatis oleh sistem (increment). Mengapa harus dibuatkan surrogate key, silahkan simak video yang merupakan materi kuliah berikut. Semoga sedikit membantu.

Google Colab merupakan media pembelajaran pemrograman yang praktis karena baik bahasa pemrograman maupun mesin/harware disediakan oleh Google. Dengan mengandalkan laptop jadul atau handphone bisa dilaksanakan, asal memiliki koneksi internet. Bahasa yang digunakan adalah bahawa Python yang sangat cocok untuk machine learning. Bagaimana untuk pengolahan basis data?

SQLite

SQLite disediakan dalam satu library yang harus diinstal terlebih dahulu sebelum diimpor. Data diletakan baik dengan koneksi ke Google Drive atau diletakan secara temporal di folder pada Google Colab.

# CREATING THE TABLEimport sqlite3conn = sqlite3.connect(‘unisma.db’)print(“Opened database successfully”);conn.execute(”’CREATE TABLE IF NOT EXISTS data_siswa(nama text, matkul text, dosen text, nilai integer);”’)conn.commit()print(“Table created successfully”);

conn.close()

Setelah Tabel terbentuk, silahkan dimasukan data-datanya misalnya sebagai berikut. Pastikan terisi dengan baik.

# INSERTING VALUESconn = sqlite3.connect(‘unisma.db’)conn.execute(“INSERT INTO data_siswa VALUES(‘wahyu’, ‘matematika’, ‘malikus’, 72);”)conn.execute(“INSERT INTO data_siswa VALUES(‘budi’, ‘bahasa’, ‘amin’, 90);”)conn.execute(“INSERT INTO data_siswa VALUES(‘linda’, ‘matematika’, ‘malikus’, 91);”)conn.execute(“INSERT INTO data_siswa VALUES(‘wahyu’, ‘bahasa’, ‘amin’, 75);”)conn.execute(“INSERT INTO data_siswa VALUES(‘linda’, ‘bahasa’, ‘amin’, 90);”)conn.execute(“INSERT INTO data_siswa VALUES(‘budi’, ‘matematika’, ‘malikus’, 60);”)

conn.commit()

Untuk menggunakan query silahkan menggunakan instruksi SELECT untuk mengetahui isi dari data/tabel yang ada. Bahasa standar SQL dapat diterapkan pada SQLite. Tentu saja untuk implementasi diharapkan menggunakan Python di lokal komputer kita. Google colab cukup baik untuk media pembelajaran atau sebagai penguji algoritma yang akan diterapkan pada system.

conn.close()
conn = sqlite3.connect(‘unisma.db’)

cursor = conn.execute(

”’ SELECT nama                          FROM data_siswa

                          WHERE matkul=’matematika’;”’)


for row in cursor:
  print(row)
conn.close()

Hasil:

  • (‘wahyu’,)
  • (‘linda’,)

Untuk lebih jelasnya silahkan lihat video saya berikut, sekian semoga bisa membantu.

[basis.data|akuntansi|lab.software|per.15]

Dikenal dua pendekatan dalam merancang basis data yaitu top down dan buttom up. Top down biasanya dilakukan untuk sistem yang benar-benar baru, tidak pernah dilakukan transaksi sebelumnya walaupun secara manual. Atau jika ingin merombak sistem yang terdahulu yang tidak sesuai lagi dengan proses bisnis yang efisien. Sebagian besar e-commerce yang bermunculan saat ini (toko online maupun aplikasi taksi/ojek online) berbasis top down karena memang benar-benar baru.

Postingan ini khusus membahas metode buttom up yang lebih sederhana karena hanya mengkonversi transaksi manual menjadi terkomputerisasi juga online. Cara kerjanya menganalisa kebutuhan berdasarkan arsip-arsip manual yang ada misalnya nota penjualan, nota pembelian, dan laporan-laporan yang sebelumnya ada. Metode ini lebih sederhana dalam pengalihan sistem karena operator-operator tidak perlu belajar intensif karena proses yang ada tetap seperti sebelumnya, hanya mungkin perlu pelatihan penggunaan aplikasi sebagai pengganti sistem manual sebelumnya. Perhatikan sampel arsip nota penjualan di bawah ini. Bagaimana proses normalisasinya?

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Ada beberapa jenis normalisasi tabel yaitu unnormalize (UNF), normal pertama (1NF), normal kedua (2NF), dan normal ketiga (3NF). Ada bentuk normal lainnya karena adanya konstrain terhadap relasi yang dimiliki misalnya Boyce-Code Normal Form (BCNF), normal keempat (4NF) dan kelima (5NF).

Unnormalize Form (UNF)

Bentuk normal ini gunanya untuk mendata calon-calon atribut suatu tabel. Adanya perulangan (redundancy) dan multivalue (satu field berisi lebih dari satu isian) diijinkan. Jadi contoh di atas bentuk UNF-nya adalah:

penjualan = no_nota + kode_kasir + nama_kasir + kode_customer + nama_customer + alamat + {kode + nama_barang + harga + jumlah} + total

Primary key diberi symbol “@”. Perhatikan adanya multivalue di atas yang diberi simbol “{ }”. Tugas berikutnya untuk normal pertama adalah membuat tabel tersebut dapat dibuat dalam satu tabel tanpa melanggar konsep basis data relational. Note: untuk basis data non-relational (berbasis objek) multivalue dapat diterapkan.

First Normal Form (1NF)

Penghilangan multivalue dapat dilakukan dengan cara membuat kunci komposit antara barang dengan penjualan. Kandidatnya adalah kode barang + no_nota sebagai primary key-nya.

Penjualan = @no_nota + @kode + kode_kasir + nama_kasir + kode_customer + nama_customer + alamat + nama_barang + harga + jumlah + total

Walaupun terdapat redundansi, misalnya no_nota yang sama tetapi karena primary key menggunakan gabungan no_nota dan kode barang maka selama gabungan keduanya unik, tidak melanggar prinsip primary key. Terkadang beberapa kunci kandidat bisa diidentifikasi untuk proses lebih lanjut, misalnya kode_customer dan kode_kasir.

Second Normal Form (2NF)

Untuk normal kedua, syarat mutlaknya selain 1NF adalah ketergantungan fungsional (functional dependency) antara satu atribut dengan atribut lainnya. Perhatikan bentuk 1NF sebelumnya, keluarkan (bentuk tabel baru) jika ada atribut yang tergantung dengan salah satu primary key (no_nota saja atau kode barang saja). Tercatat ada beberapa antara lain:

  1. nama_barang, harga dan jumlah tergantung kode

  2. kode_customer, nama_customer, alamat dan total, kode kasir dan nama kasir tergantung no_nota.

Nama, harga dan jumlah tergantung kode barang begitu juga yang terlibat transaksi penjualan (pelanggan dan kasir) tergantung nota penjualan. Karena kedua ketergantungan parsial di atas (partial dependency) hanya tergantung pada salah satu kunci komposit primary key, maka harus dihilangkan agar memenuhi syarat 2NF.

  1. barang = @kode + nama_barang + harga

  2. penjualan =@no_nota + kode_kasir + nama_kasir + kode_customer + nama_customer + alamat + total

  3. detilpenjualan = @no_nota + @kode + jumlah

Perhatikan tidak ada atribut yang tergantung secara parsial.

Third Normal Form (3NF)

Bentuk 2NF jika masih terdapat ketergantungan secara transitif antara satu atribut dengan atribut lainnya harus dinormalkan agar bisa menjadi normal ketiga. Perhatikan tabel penjualan yang memiliki beberapa atribut non-key ternyata antara satu atribut tergantung dengan atribut lainnya:

  1. nama_kasir tergantung kode_kasir

  2. nama_customer dan alamat tergantung kode_customer

Oleh karena itu perlu dibuat dua tabel baru. Tabel penjualan hanya menyertakan kunci tamu (foreign key) saja dengan simbol “#” di depannya.

  1. kasir = @kode_kasir + nama_kasir

  2. Pelanggan = @kode_customer + nama_customer + alamat

  3. barang = @kode + nama_barang + harga

  4. penjualan =@no_nota + #kode_kasir + #kode_customer + total

  5. detilpenjualan = @no_nota + @kode + jumlah

Jika tidak ada lagi ketergantungan transitif pada tiap-tiap atribut non-key maka proses normalisasi ketiga telah selesai. Biasanya sampai 3NF saja jika tidak ada konstrain/batasan-batasan ketat atribut tertentu, misalnya harga barang yang tergantung dari pelanggan tertentu, dan lain-lain. Semoga ujian akhir nanti lancar.

Selain mendengar dari orang lain, saya mengalami sendiri konflik yang terjadi antara satu dosen (bahkan satu grup dosen) dengan yang lain. Korbannya sudah dipastikan mahasiswa, khususnya ketika menyelesaikan tahap akhir penyelesaian skripsi/tugas akhir mereka. Biasanya terjadi karena ego antar dosen selain tentu saja beda pemahaman terhadap suatu konsep dan aturan-aturan yang memang ada hak independen dari sisi pengajar dalam berfikir ilmiah. Untuk masalah ego memang sedikit rumit, apalagi ada unsur-unsur konflik pribadi antar dosen. Postingan ini sedikit menggambarkan kondisi ini dari pengalaman pribadi.

Persamaan Persepsi

Untuk bidang tertentu yang skripsinya mirip-mirip antara satu sama lain dengan metode-metode yang sudah baku, sebuah pertemuan yang mengundang para dosen sangat penting. Manfaatnya untuk membuat standar yang baku dan adil terhadap mahasiswa. Misalnya topik-topik apa saja yang masuk wilayah domain jurusan dengan bentuk laporan skripsinya. Hal ini agar tidak membuat siswa bingung karena oleh satu dosen di suruh begitu, oleh dosen pembimbing yg lain disalahkan, kan kasihan. Juga dengan pertemuan itu, diharapkan kemampuan pembimbing bisa bertambah, minimal tidak jomplang satu dengan lainnya, apalagi jika disertakan dengan pelatihan/seminar oleh dosen yang dianggap pakar di bidangnya. Atau bisa mengundang pakar dari institusi lain.

Standar Tingkat Kesulitan

Sudah pasti tingkat kesulitan antara mahasiswa D3, S1, S2 dan Doktoral berbeda. Repotnya beberapa dosen guna mengejar publikasi menyamakan level D3, S1 dan S2 terhadap mahasiswanya. Melihat mahasiswa D3 yang diminta menganalisa antara satu metode dengan metode lainnya oleh dosen pembimbing kasihan juga. Walaupun ada baiknya tetapi tidak sesuai dengan tujuan D3 yang memang ketika bekerja hanya diminta menyelesaikan pekerjaan dengan metode tertentu yang diperintahkan oleh atasannya, harus selesai dengan baik dan cepat. Jika ngotot dan protes kalau metodenya kalah dengan yang lain bakal dipecat nanti. Jadi fokus ke skill pada level vokasi diutamakan. Level S1 pun berbeda dengan S2 yang mencoba ada aspek analisa satu metode dengan lainnya. Bukan hanya apa yang harus dilakukan tetapi juga mengapa suatu konsep diperlukan dan lebih baik dari konsep dan metode lainnya. Untuk mahasiswa doktoral terlepas dari pertanyaan apa, mengapa dan bagaimana, aspek kebaruan sangat mutlak, walau pun sederhana/kecil. Silahkan membimbing mahasiswa doktoral jika ingin publikasinya banyak dan jangan memaksa mahasiswa S1 apalagi D3 untuk bisa mempublikasi di jurnal internasional yang memang dituntut state of the art.

Standar Internasional

Terkadang walaupun sudah ada persamaan persepsi antara satu dosen dengan lainnya, ketika implementasi di lapangan, ada hal-hal tertentu berbeda pemahamannya karena memang topik yang luas yang tidak bisa selalu disamakan. Jika terjadai ada baiknya menggunakan dasar dan rujukan yang baik dan benar. Untungnya saat ini sebagian besar sudah ada standarnya, misal UML, ERD, dan lainnya. Jadi tidak elok jika memaksakan metode sendiri (tidak standar). Salah satu contoh kasus di bawah ini, tentang ERD.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

ERD di atas merupakan standar dari Chen (1976) dan karena sekedar contoh, tidak semua atribut ditulis. Tetapi yang jelas ERD merupakan diagram konsep. Ada polemik mahasiswa yang menggambar diagram di atas disalahkan oleh pembimbing (biasanya praktisi/programmer) karena diagram di atas tidak bisa dijalankan di aplikasi. Tentu saja, karena itu masih konsep dan perlu konversi menjadi tabel, dan ada teorinya (weak entity, many to many, dan lainnya untuk dikonversi menjadi tabel). Silahkan menggunakan beragam standar/jenis model ERD lain (crow foot) atau dengan class diagram UML berstandar internasional. Baik perancang sistem maupun programmer harus bisa bekerja sama bukan malah mengagung2kan bidangnya apalagi menjelek-jelekan bidang lain. Mungkin itu sekadar contoh, semoga bisa menjadi bahan evaluasi bersama.

[s.basis.data|akuntansi|lab.soft|per.14]

Pertemuan ini mencoba membuat aplikasi berbasis web dengan PHP untuk memasukan data baru ke basis data. Sebagai informasi, semua file-file PHP diletakan di folder ..\xampp\htdocs\ sementara basis data diletakan pada folder ..\xampp\mysql\data.

Insert Data yang Melibatkan Satu Tabel

Postingan ini menggunakan data pertemuan yang lalu. Misalnya input data barang dengan form berupa tabel yang dibuat dengan mode HTML. Struktur dari file PHP nya dapat digambarkan sebagai berikut.

  • <Metode Form: POST, Action: simpan.php>

  • <Interface untuk Input-input Data>

  • <Interface Untuk Tombol Submit>

Struktur php di atas (misal diberi nama formbarang.php) membutuhkan file simpan.php untuk mengeksekusi isian yang telah diisi. Struktur simpan.php adalah kira-kira sebagai berikut:

  • <Membuat variabel $ untuk tiap input data dari formbarang.php>

  • <Membuat SQL insert data dengan VALUE dari variabel tersebut>

  • <Eksekusi SQL dan tutup koneksi>

Koneksi bisa dibuat di file simpan.php atau membuat satu file php khusus untuk koneksi. Untuk PHP 7 instruksi mysql diganti menjadi mysqli yang membutuhkan link koneksi tiap eksekusi. Silahkan browsing kode detail dari file php tersebut yang banyak tersebar di internet. Berikut contoh hasil eksekusinya.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Pastikan ketika tombol SIMPAN ditekan pada tabel barang data baru muncul. Berikutnya untuk form yang melibatkan dua tabel.

Insert Data yang Melibatkan 2 Tabel

Sebagai contoh adalah tabel pembelian yang melibatkan tabel pembelian dan tabel pemasok (suplier). Karena pelanggan harus sesuai dengan tabel. Kode suplier pada tabel pemasok merupakan kunci tamu (Foreign Key) di tabel pembelian. Struktur file pembelian.php adalah sebagai berikut:

  • <Membuat Form Methode :POST, Action: simpanbeli.php>

  • <Membuat SQL mengambil data suplier>

  • <Menyiapkan Array Javascript utk menampung hasil>

  • <Membuat pilihan dari data suplier>

  • <Menyimpan variabel $ array hasil pilihan>

  • <Interface submit / insert data>

  • <Fungsi Javascript mengisi input data berdasarkan $ array>

Form ini mirip sebelumnya tetapi sedikit rumit karena perlu menyiapkan data suplier sebagai pilihan dalam bentuk combo box. Ketika satu suplier dipilih, maka data lainnya seperti Nama, Alamat, dan Kontak muncul di interface input data. Untuk total diisi manual, biasanya total ini diinput otomatis dari form transaksi yang lebih detil (melibatkan data barang lebih dari satu). Karena sekedar contoh bagaimana menginput data yang melibatkan dua tabel, kiranya cukup sekedar demo. File simpanbeli.php diperlukan untuk menyimpan data pembelian. Berikut strukturnya:

  • <Membuat variabel $ untuk tiap input data dari pembelian.php>

  • <Membuat SQL insert data dengan VALUE dari variabel tersebut>

  • <Eksekusi SQL dan tutup koneksi>

Kode untuk tombol simpan mirip simpan data barang sebelumnya. Tinggal copas dan ganti variabel dengan variabel $ baru mengikuti nama dari input data di file php sebelumnya yang memanggil (pembelian.php). Testing apakah sudah berjalan dengan baik.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Untuk detil yang melibatkan pembelian lebih dari satu barang sehingga membutuhkan isian dinamis (muncul isian baru ketika ada penambahan) perlu dicoba, juga pembuatan aplikasinya pada android. Semoga bermanfaat.

Semester ini teknik kompilasi, information retrieval, algoritma, pengolahan citra dan basis data menjadi santapan sehari-hari (karena mengajar). Teknik kompilasi membahas teknik-teknik parsing suatu bahasa pemrograman. Ada informasi bahwa PHP versi 5 ke bawah sangat rentan dan mudah dimanipulasi parsing-nya. Dan yang terpenting PHP 5 akan dihentikan dukungannya per 31 Desember 2018 nanti. PHP sendiri saya gunakan sebagai praktek dalam mata kuliah sistem basis data. Berikut edaran dari Badan Siber dan Sandi Negara (BSSN) mengenai hal tersebut.

Yuk, Install Versi 7.x

Silahkan unduh PHP versi terbaru di SINI. Pada postingan ini saya mencoba menggunakan versi terbaru itu. Coba pilih versi 7.3 yang terbaru ketika postingan ini ditulis.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Ukuran XAMPP untuk PHP 7.3 ini cukup kecil, hanya sekitar seratusan mega byte. Isi dari XAMPP dapat dilihat saat proses instalasi. Oiya, gunakan login Administrator agar instalasi optimal, karena ada pesan / warning ketika tidak menggunakan login itu.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Intal XAMPP ini satu paket dalam Bitnamiyang mensuport paket Drupal, Joomla, Moodle dan WordPress. Lanjutakan dengan menekan Next> hingga proses instalasi selesai.

Testing XAMPP yang Baru

Dimulai dengan pemilihan bahasa, control panel XAMPP muncul ketika aplikasi pertama kali dijalankan. Hidupkan server database dan PHP untuk memulai aplikasi (wah .. ada Tomcat .. jadi trauma waktu S2 dulu). Seperti biasa windows minta konfirmasi apakah kedua server itu dihidupkan, tekan saja OK.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Coba saya migrasi beberapa file terdahulu (php dan mysql) untuk testing. Misalnya input data barang.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Ternyata tampilan XAMPP jika dijalankan localhost langsung menuju dashboard yang menginformasikan tentang versi 7.3 dari PHP ini.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Tampak berhasil insert satu data baru. Silahkan migrasi ke PHP versi 7 agar tenang dan nyaman, khususnya bagi admin web (sementara mungkin, karena serangan terus terjadi mencari kelemahan-kelemahan yang mungkin ada). Semoga bermanfaat.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Ketika acara FGD (dua dari kanan)

[basis.data|akuntansi|lab.software|pert.13]

Pada pertemuan sebelumnya dibuat satu tabel (tabel barang) dengan MySQL yang dihubungkan dengan form berbasis web (php). Tentu saja setiap basis data akan memiliki lebih dari satu tabel, misalnya tabel yang lain seperti detilpenjualan, penjualan, atau juga suplier. Untuk mudahnya kita buat satu tabel baru yakni tabel detilpenjualan yang terhubung dengan tabel barang. Relasinya kira-kira sebagai berikut:

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Membuat Tabel Suplier

Ada dua tabel master yaitu tabel barang dan tabel Suplier. Buat tabel suplier dengan script SQL berikut ini:

  • KdSuplier CHAR(10) NOT NULL,

  • NamaSuplier VARCHAR(20) NOT NULL,

  • Alamat VARCHAR(25) NOT NULL,

Jalankan dengan mengklik simbol SQL pada phpmyadmin (http://localhost/phpmyadmin/). Atau bisa juga dengan create lewat menu di phpmyadmin. Masukan satu buah record, misalnya:

  • INSERT INTO SUPLIER (KdSuplier, NamaSuplier, Alamat, Kontak) VALUES

  • (‘S001′,’Rahmadya’,’Bekasi’,’3332211′),

  • (‘S002′,’Ujang’,’Jakarta’,’123456′);

Pastikan kode SQL ketika dijalankan berhasil.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Membuat Tabel Penjualan

Tabel penjualan membutuhkan field-field: KdPenjualan, KdSuplier, dan Total. Sehingga memerlukan Foreign Key KdSuplier yang berasal dari tabel Suplier. Berikut kode SQL-nya:

  • KdPenjualan INT AUTO_INCREMENT NOT NULL,

  • KdSuplier CHAR(10) NOT NULL,

  • total DECIMAL(8,2) NOT NULL,

  • PRIMARY KEY (KdPenjualan),

  • FOREIGN KEY (KdSuplier) REFERENCES suplier(KdSuplier)

Perhatikan frasa on delete cascade dan on update cascade pada foreign key KdSuplier. Di sini artinya jika kode suplier dihapus atau diedit maka tabel penjualan juga berubah. Tapi jika ingin tidak berubah tidak perlu memasukan frasa tersebut.

Membuat Tabel DetilPenjualan

Tabel ini bermaksud mengakomodir relasi many to many dimana transaksi melibatkan jumlah barang yang lebih dari satu. KdPenjualan dan KdBarang menjadi primary key (komposit). Berikut kode SQL untuk tabel barang dan tabel DetilPenjualan.

Dan untuk tabel DetilPenjualan:

  • CREATE TABLE DETILPENJUALAN (

  • KdPenjualan INT AUTO_INCREMENT NOT NULL,

  • KdBarang CHAR(10) NOT NULL,

  • FOREIGN KEY (KdBarang) REFERENCES barang (KdBarang),

  • PRIMARY KEY (KdPenjualan,KdBarang)

Perhatikan kode di atas dimana PRIMARY KEY ada dua yaitu KdPenjualan dan KdBarang. Silahkan tambahkan ON DELETE CASCADE atau ON UPDATE CASCADE. Selamat mencoba.

[basis.data|akuntansi|lab.software|pert.12]

Basis data secara fisik dibuat dalam bentuk tabel-tabel. Tabel tersebut berasal dari analisis baik lewat Entity Relationship Diagram (ERD) maupun Diagram Alir Data (DAD). Beberapa kampus menerapkan ERD yang merupakan perancangan basis data secara konseptual dilanjutkan dengan mengkonversi ERD menjadi struktur penyimpanan logika (logical structured record). Caranya dengan menggunakan prosedur sebagai berikut:

  • Konversi multivalued menjadi satu tabel tambahan (tabel detail) dari relasi Many-to-Many

  • Konversi entity komposit menjadi tabel lookup baru

  • Konversi entitas lemah (weak entity) menjadi satu tabel baru

Sementara itu yang menggunakan DFD harus menjabarkan tabel yang ada setelah itu dilakukan proses normalisasi untuk menghindari anomali-anomali yang terjadi (insert, update, dan delete). Tetapi ERD pun tetap sebaiknya melakukan proses normalisasi file untuk memperkokoh hasil rancangan.

Format Normalisasi

Ada beragam format penulisan normalisasi file. Salah satu format yang cukup baik adalah format yang ditawarkan oleh Elmasri dkk dengan menggunakan bagan yang berisi judul tabel dan atribut-atributnya. Untuk atribut kunci ditandai dengan menggunakan garis bawah. Simbol panah menunjukan Functional Dependency (FD).

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Beberapa kampus menggunakan format tabel seperti class diagram tanpa operation/method dengan nama tabel serta atributnya menyusun ke bawah. Foreign key akan mengarah panahnya ke relasi tabel yang dimaksud. Jika primary key ditandai dengan satu *, foreign key ditandai dengan **.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Kedua cara di atas memiliki kesulitan dalam penggambarannya (dengan visio ataupun insert shape pada MS Word). Namun ada cara lain yang tanpa bagan yaitu dengan menggunakan teks langsung. Formatnya adalah:

  • <nama_tabel> = @<primary_key> + <field_1> + <field_2> + … atau:

  • <nama_tabel>(<primary_key>,<field_1>,<field_2>, …)

Dari sisi pengetikan sepertinya lebih mudah walaupun butuh penjelasan dengan kata-kata untuk foreign key-nya. Berikut adalah contohnya.

Contoh Normalisasi

Dikenal biasanya ada tiga bentuk normalisasi unnormalized, 1st Normal Form, 2nd Normal Form, dan 3rd Normal Form. Ada BCNF dan Normal kelima tetapi sangat jarang dijumpai di lapangan. Misalkan ada bentuk di bawah ini, yaitu suatu struk transaksi penjualan. Bagaimana normalisasinya?

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Unnormalized Form

Unnormalized Form (UNF) paling mudah membuatnya karena hanya mendata field-field yang ada saja. Untuk yang berulang/multi-valued dengan mengisi tanda kurung kurawal saja (bagian detil). Jadi UNF transaksi di atas kira-kira sebagai berikut:

  • Penjualan = KdPenjualan + KdPelanggan + namaPelanggan + Alamat + Kontak + Total + {KdBarang + nama +harga + Jumlah}

    Atau:

  • Penjualan (KdPenjualan, KdPelanggan, namaPelanggan, Alamat, Kontak, Total, {KdBarang, nama, harga, Jumlah})

Tentu saja untuk implementasi, UNF tidak bisa dibuat tabel, kecuali DBMS khusus berbasis object (atau XML).

First Normal Form

Bentuk 1st Normal Form (1NF) memiliki ciri tidak adanya redundansi dan multi-value. Dalam 1NF tidak ada field yang merupakan hasil kalkulasi (Calculated Field) yang tidak disimpan di basis data. Selain itu Candidate Key diperkenalkan di sini. Kunci kandidat diperoleh dengan meliha ketergantungan fungsional antara satu field dengan field lainnya, misalnya namaPelanggan, Alamat, dan Kontak dengan KdPelanggan dipilih KdPelanggan sebagai kunci kandidat.

Karena fokus 1st NF adalah menghilangkan multi-valued field (juga nested relation) maka kunci komposit dibentuk gabungan KdPenjualan dan KdBarang sehingga tidak ada multi-value pada barang yang dijual. Tabel penjualan di bawah ini sudah cukup menghindari multi-value pada suatu field.

  • Penjualan (KdPenjualan, KdBarang, nama, harga, Total, KdPelanggan, namaPelanggan, Alamat, Kontak)

Di sini Jumlah dihilangkan karena merupakan hasil kalkulasi dan tidak diinput ke basis data, sementara Total walaupun hasil kalkulasi tetapi tersimpan di basis data.

“Relation should have no multivalued attributes or nested relations.”

Second Normal Form

Bentuk normal kedua (2NF) mengharuskan dalam satu tabel memiliki ketergantungan fungsional secara penuh (Fully Functional Dependency). Dengan kata lain pada bentuk 2NF tidak diperbolehkan satu field secara fungsional bergantung pada salah satu kunci komposit. Dalam contoh ini: nama dan harga barang bergantung ke KdBarang dan tidak ke KdPenjualan, Total ke KdPenjualan tapi tidak ke KdBarang. Oleh karena itu perlu dibentuk tabel baru untuk mengakomodir hal tersebut.

  • Penjualan = @KdPenjualan + KdPelanggan + namaPelanggan + Alamat + Kontak + Total

  • DetilPenjualan = @KdPenjualan + @KdBarang

  • Barang = @KdBarang + nama + harga

Perhatikan di sini tidak ada atribut (di tabel Penjualan) yang bergantung ke salah satu kunci komposit (terhadap KdPenjualan saja atau KdBarang saja).

“For relations where primary key contains multiple attributes, no nonkey attribute should be functionally dependent on a part of the primary key.”

Third Normal Form

Biasanya transaksi sampai di normal ketiga yang mensyaratkan tidak boleh ada transitive dependency dimana satu field non-key bergantung dengan yang lain. Contohnya adalah namaPelanggan (juga alamat dan kontak) yang ternyata bergantung dengan KdPelanggan. Untuk mengingatnya, istilah “transitive” berasal dari kata transfer, yakni mentransfer dari primary key (KdPenjualan) ke namaPelanggan, Alamat, dan Kontak lewat KdPelanggan.

  • Pelanggan (KdPelanggan, namaPelanggan, Alamat, Kontak)

  • Penjualan (KdPenjualan, KdPelanggan, Total)

  • DetilPenjualan (KdPenjualan, KdBarang)

  • Barang (KdBarang, nama, harga)

Tampak seluruh field/atribut bergantung ke kunci masing-masing tabel. Aturan untuk 3NF adalah:

“Relation should not have a nonkey attribute functionally determined by another nonkey attribute (or by a set of nonkey attributes). That is, there should be no transitive dependency of a non-key attribute on the primary key.”

Sekian, semoga bermanfaat.

Reference:

Elmasri, R & Navathe. “Fundamentals of Database”. USA: Pearson. 2004

[basis.data|akuntansi|lab.software|pert.11]

Sambil membahas masalah normalisasi file, praktek basis data kali ini adalah membuat report pembelian dan penjualan. Sebagai informasi, pada pertemuan sebelumnya sudah dibahas pembuatan form pembelian yang melibatkan suplier, barang, dan detil pembelian. Atau lebih jelasnya dapat dilihat relasi antar tabel di bawah ini.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Mempersiapkan Report

Untuk membuat report baru tekan menu CREATE Report Wizard. Di sini menggunakan wizard agar lebih cepat dan mudah. Nanti jika akan dirubah, tinggal menekan Dezign View saja. Berikutnya masukan field-field yang akan muncul di report. Sebenarnya pilih saja sebanyak mungkin yang kira-kira dibutuhkan. Toh jika tidak dibutuhkan bisa dihapus dari report nantinya.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Di sini akan coba ditambahkan field-field pada tabel pembelian. Pastikan format sesuai dengan yang diinginkan sebagai berikut.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Lanjutkan dengan menekan Next> hingga report terbentuk. Berikutnya adalah menambahkan Total Pengeluaran terhadap seluruh pembelian yang telah dilakukan.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Membuat Total Pengeluaran

Sebelumnya masuk ke menu Report Design dengan mengklik kanan Report Penjualan dan memilih Design View.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Tambahkan satu Text Box untuk menampilkan total pengeluaran. Ganti teks dengan “Total Pengeluaran” setelah melebarkan bagian footer dengan mouse. Tekan bagian paling kanan Control Source pada property Data.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Masukan fungsi yang diperlukan, di sini menggunakan Sum yang artinya menjumlahkan suatu field (dalam hal ini Field Total). Tekan Ok untuk menguji report yang baru saja dibuat. Tampak total pengeluaran yang merupakan penjumlahan dari seluruh transaksi yang ada. Semoga bermanfaat, selamat mencoba.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

NOTE: Di sini harga hanya contoh, tentu saja harga jual harus dibedakan dengan harga beli agar diperoleh keuntungan.

[basis.data|akuntansi|lab.software|pert.12]

Untuk membuat contoh FORM input Barang dengan aplikasi berbasis web, dalam hal ini PHP dan basis data MySQL dibutuhkan komponen-komponen sebagai berikut:

  • Kode PHP untuk koneksi data (lihat post sebelumnya)

  • Kode PHP untuk tampilan awal

  • Kode PHP untuk input data

Di sini kode yang digunakan dibuat semudah mungkin dengan bentuk yang paling dasar agar mudah dipraktekan.

Membuat Basis Data dengan Tabel

Sebagai contoh kita buat satu database dengan satu contoh tabel, misalnya penjualan dengan tabel barang-nya. Pertama-tama buka http://localhost/phpmyadmin/ untuk mengakses basis data MySQL. Tentu saja dengan terlebih dahulu menghidupkan Apache Server. Buka SQL query dengan menekan tombol Edit di bagian atas.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Maka Anda akan masuk ke menu SQL yang siap diisi script di bawah ini:

  • create database penjualan;

Pastikan SQL berjalan dengan baik dengan indikasi “Your SQL query has been executed successfully” seperti gambar berikut:

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Refresh phpmyadmin untuk memastikan apakah satu buah basis data dengan nama penjualan sudah muncul dengan tabel barang yang juga terbentuk.

Membuat Kode PHP Untuk Koneksi Data

Diperlukan satu buah fungsi new mysqli dengan parameter berupa server, user, password, dan basis data.

  • $conn=new mysqli(‘localhost’,’root’,”,’penjualan’) or die (“Tidak Berhasil”);

Simpan dengan nama, misalnya koneksi.php yang akan dipanggil (dengan fungsi include) setiap akan mengakses basis data. Cek dengan menjalankan http://localhost/latihan/koneksi.php yang mana di laptop saya koneksi.php berada di folder latihan pada folder utama htdocs. Pastikan hanya muncul tulisan Ok yang berasal dari line 4 kode di atas tanpa ada warning (biasanya salah password atau kurang tutup kurung dan kesalahan syntax lainnya. Lagi-lagi, kode di atas dibuat seminim mungkin.

Membuat Kode PHP Untuk Tampilan Awal

Banyak teknik-teknik untuk membuat tampilan awal yang baik. Silahkan menggunakan aplikasi-aplikasi bantuan seperti Macromedia Dreamweaver, Microsoft Frontpage, dan lain-lain. Di sini kita gunakan yang paling dasar. Tapi tentu saja dengan tabel agar lebih rapi. Gunakan kode berikut yang disimpan dengan nama form.php.

Bentuk formnya kira-kira sebagai berikut dengan mengakses http://localhost/latihan/form.php.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Terakhir adalah membuat kode PHP agar data yang dimasukan pada form di atas masuk ke tabel barang di basis data penjualan.

Membuat Kode PHP Untuk Input Data

Isi dari kode input adalah menyiapkan variabel yang ditangkap dari form.php sebelumnya agar bisa dikirim ke tabel barang field-field yang harus diisi. Berikut kodenya:

Masukan data baru, misalnya kode, nama, dan harga berturut-turut B001, Oli, 150000. Tekan simpan dan pastikan indikator “Ok” muncul.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Buka http://localhost/phpmyadmin/ dan pastikan ada satu data baru di tabel barang. Sekian, selamat mencoba.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

[basis.data|akuntansi|lab.software|pert.10]

Ternyata untuk menghubungkan sebuah web-based application ke MySQL hanya membutuhkan empat langkah kode PHP. Namun tetap saja karena berupa script agak sedikit menyulitkan rekan-rekan non IT. Postingan kali ini sedikit berbagi bagaimana menghubungkan satu database ke PHP. Oleh karena itu buka basis data sembarang yang telah dibuat.

Membuat koneksi.php

File php yang dibuat misalnya bernama “koneksi.php” yang artinya script kode php untuk menghubungkan basis data dengan aplikasi web. Pertama-tama buka notepad/text editor untuk mengetik kode php. Ketik informasi bahwa bahasa yang digunakan adalah php dengan kode <?php dan di bagian akhir dengan kode ?>.

Berikutnya adalah $user = ‘root’; yang menginformasikan ke basis data tujuan nama user basis data, di sini contohnya adalah root. Sementara passwordnya dengan mengetik kode $pass = ‘ ‘; yang artinya tanpa dipassword. Simbol $ berarti sebuah variabel, dalam hal ini user dan pass. Berikutnya ketika basis data bisa masuk dibutuhkan nama basis data yang ada pada MySQL, misalnya beasiswa yang ada di MySQL saya. Kode yang digunakan $db = ‘beasiswa’;

Jika parameter (user, password dan nama database) sudah diisi, berikutnya adalah membuat kode koneksi baru dengan fungsi new mysqli. Karena ada dua kemungkinan (berhasil login atau tidak) maka dibutuhkan kode lainnya yaitu or die (“Tidak Berhasil Terkoneksi ke Database”); Listing lengkapnya adalah sebagai berikut:

  1. <?php
  2. $user=’root’;
  3. $pass=”;
  4. $db=’beasiswa’;
  5. $db=new mysqli(‘localhost’,$user,$pass,$db) or die (“Tidak Berhasil”);
  6. echo ‘Koneksi Berhasil’;
  7. ?>

Menguji Kode PHP

Letakan koneksi.php pada folder htdocs atau di folder lain asalkan induknya di folder tersebut. Kemudian buka browser dan masuk ke alamat http://127.0.0.1/koneksi.php. Baris keenam di kode atas hanya berfungsi memberi tahu jika koneksi berhasil.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Bagaimana jika koneksi tidak berhasil. Untuk contoh isi saja kode di baris ketiga dengan password asal. Maka browser akan memberitahukan pesan bahwa akses ditolak untuk user yang dimasukan. Sekian tips singkat ini, semoga bermanfaat.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

[s.basis.data|akuntansi|lab.soft|pert.9]

Diagram ERD di bawah ini menunjukan transaksi pembelian barang ke suplier dengan relasi many to many. Perlu diketahui bahwa ERD dalam perancangan basis data masuk dalam wilayah konsep. Banyak mahasiswa yang rancu dalam memahami perancangan dari sisi konsep dengan implementasinya berupa pentabelan (record structure).

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Secara teori (lihat buku Elmasri tentang basis data) ERD di atas harus dimodifikasi untuk pentabelannya mengingat dalam satu record di tabel pembelian di atas tidak bisa memiliki lebih dari satu isian, alias multi-valued. Namun perkembangan terkini kabarnya basis data objek bisa mengakomodir hal tersebut. Namun untuk database relasional perlu tambahan tabel yang dibahas di postingan ini. Ada sedikit polemik antara teori dengan praktek.

Komposit Primary Key

Dengan database management system (DBMS) sederhana, misalnya access, ERD di atas secara teoritis dibentuk relasi berikut:

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Bentuk Form transaksinya dengan Access kira-kira seperti di bawah ini:

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Dalam tabel detil nanti ada dua isian yaitu 6 + b001 dan 6 + b002. Jika KdBarang diisi barang yang sama, misalnya b001 semua, maka sistem akan menolak karena dalam tabel detil pembelian ada dua record yang sama (6+b001 dua kali). Karena seharusnya 6 + b001 diisi satu kali dengan jumlah dua (jika masing-masing tadi berjumlah satu). Bentuk record detilnya sebagai berikut, perhatikan tidak ada kombinasi KdPembelian dan Kdbarang yang sama dalam tabel tersebut.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Menambah Primary Key Baru

Komposit primary key tidak mengijinkan redundansi (dobel) kombinasi primary key (kode pembelian + kode barang), alias dua kode barang diinput dua kali di sub-form (sisi detail). Jadi harus menambah jumlah barang yang sama tersebut, misalnya kode barang kecap tidak boleh diinput dua kali (masing-masing berjumlah satu), tetapi cukup sekali dan jumlahnya 2. Padahal praktek di lapangan, misalnya di supermarket-supermarket dengan scan barcode tentu saja asal scan tidak perlu mengetahui apakah barang yang sama sudah discan sebelumnya. Solusinya terkadang dengan menambahkan satu kunci baru. Kasihan kasirnya ketika kode barang yang sama sebelumnya telah terscan, yang baru mau diinput menolaknya.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Jadi dari pada kasir diminta mengumpulkan jumlah kode barang yang sama kemudian ditotal, kasir bisa langsung menscan barang yang sama tersebut berkali-kali. Tabel transaksinya kira-kira berikut ini:

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Tentu saja dengan cara komposit primary key (KdPembelian+KdBarang) tanpa ID sistem akan menolak, tapi dengan cara ini barang yang sama akan diberikan ID yang berbeda. Tapi secara teori, primary key komposit dua kunci yang terlibat (KdPembelian dan KdBarang) masih tetap jadi dasar materi perkuliahan basis data. Sekian, semoga bermanfaat.

UPDATE: 28.12.2018

Ternyata metode dengan ID tambahan yang biasanya diimplementasikan di lapangan dikenal dengan istilah Surrogate Key.

[basis.data|akuntansi|lab.soft|u.t.s]

Form merupakan salah satu aplikasi untuk berinteraksi dengan basis data. Dalam penerapannya, pengguna tidak seharusnya mengisi data lewat Database Management System (DBMS) yang memang hanya level administrator yang boleh membukanya. Oleh karena itu perancangan Graphic User Interface (GUI) dalam bentuk form sangat menentukan tingkat user friendly dari aplikasi yang dibuat. Postingan ini kelanjutan dari post sebelumnya tentang pembuatan FORM. Di sini ada sedikit tambahan bagaimana dalam menginput data, khususnya isian berupa primary key harus sesuai dengan yang ada di basis data. Di bawah ini merupakan relasi mahasiswa yang mengambil perkuliahan pada tabel jadwal. Ketika mengisi KRS maka mahasiswa menjadwalkan perkuliahan lebih dari satu kelas.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Membuat Form

Anggap kita sudah membuat form transaksi KRS lewat Form Wizard yang disediakan oleh Ms Access. Pastikan mahasiswa menjadi form utama sementara kelas-kelas yang harus diambil adalah sub-formnya.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Mengkonversi Text Box Menjadi Combo Box

Pada bagian text box yang akan dirubah menjadi combo box klik kanan dan pilih Change to – pilih Combo box. Jika dijalankan lewat mode View (di pojok kiri atas pada menu home) akan tampak combo box di salah satu field, misalnya dalam contoh ini kode. Hanya saja masih kosong dan perlu diset lebih lanjut.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Mengeset Row Source

Untuk mengeset isian dari combo box dengan cara mengisi field pada tabel yang sesuai lewat Property. Jalankan property dengan mengklik kanan pada text box dan pilih form property. Cara yang lebih cepat adalah dengan menekan alt + enter.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Jalankan form yang baru saja dirancang, lalu coba combo box yang baru saja dibuat. Pastikan seluruh kode kelas yang ada di tabel tampak di combo box. Berbeda dengan List Box, combo box bisa mengisi tanpa memilih, alias menambah baru. Dengan combo box, kode kelas yang diisi pasti sudah terdaftar di tabel kelas. Demikian pula informasi tentang kelas tersebut langsung muncul di isian, misalnya nama dosen pengampu mata kuliah dan lain-lainnya. Sekian semoga bermanfaat.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

[basis.data|akuntansi|lab.soft|pert.7]

Beberapa alat bantu rekayasa perangkat lunak saat ini sudah mampu membangkitkan kode dari diagram yang digambar. Namun jika hanya ingin sekedar menggambar, dengan Microsoft Visio pun bisa dengan mudah dibuat. Salah satu diagram yang dibahas dalam perkuliahan sistem basis data adalah Entity Relationship Diagram (ERD). Diagram ini menggambarkan relasi antara satu entitas dengan entitas lainnya. Entitas di sini merupakan abstraksi dari sistem real ke dalam sistem basis data, misalnya informasi-informasi yang terkait dengan barang, pelanggan, atau pun yang dalam bentuk transaksi seperti transaksi penjualan, pembelian, pemesanan dan sejenisnya.

Memulai Penggambaran

Visio yang digunakan dalam postingan ini adalah Microsoft Visio 2013. Aplikasi ini terpisah dengan paket Microsoft Office lainnya (Word, Excel, Access, dan Outlook). Agak merepotkan karena perlu membeli lisensi software tersebut. Tetapi jika sudah ada, apa salahnya untuk dimanfaatkan. Pilih jenis Shape untuk basis data: Basic Shapes Software & Database Databasebe Chen’s Databae Notation. Di sini kita coba menggunakan jenis notasi Chen yang sudah digunakan sejak tahun 70-an, walau saat ini kalah pamor dengan Crow’s Foot Database.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Ada empat bentuk dasar yang tersedia antara lain: Entitas, Relationship, Attribute, dan konektor relationship. Misalkan kita ingin menambahkan dalam model sebuah entitas, katakanlah barang. Drug mouse dari Entity ke bidang kerja. Hasilnya adalah segiempat dengan warna biru. Untuk merubahnya tekan format yang transparan (3).

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Dobel klik pada Entity lalu isikan namanya. Atur ukuran huruf beserta warnanya agar mudah dibaca, karena default-nya adalah biru muda dan agak sulit dibaca. Untuk membuat Entity yang lain ada baiknya mongkopi dari yang sudah jadi karena tidak perlu mengeset huruf dan ukurannya lagi. Buat relasi barangmembeli suplier. Primary key, seperti biasa ditulis dengan garis bawah. Relasi gunakan bentuk Relationship Connector di jajaran Chen’s Database Notation dan BUKAN di bagian atas, karena nanti agak repot harus menghapus panahnya.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Gambar ERD di atas dikenal dengan istilah perancangan basis data secara konseptual (conceptual database planning). Secara konsep memang ERD di atas masuk akal, tetapi secara fisik tidak bisa diterapkan, khususnya di tabel pembelian (relasi membeli). Ketika barang dibeli dari suplier tertentu, berisi bisa lebih dari satu barang, padahal dalam tabel tidak bisa diterapkan satu field berisi lebih dari satu record. Oleh karena itu diperlukan konversi dari ERD ke Logical Record Structure (LRS) yang masuk dalam tahap perancangan basis data logikal. Biasanya muncul satu tabel baru bernama DetilPembelian untuk mengakomodir hubungan Many-to-Many.

[basis.data|akuntansi|lab.software|pert.6]

Setelah sistem basis data terbentuk, tugas berikutnya adalah membuat interface pengguna dengan basis data. Salah satu mata kuliah pendukung interface tersebut adalah interaksi manusia dan komputer. Bentuk real-nya adalah Graphic User Interface (GUI). Untuk contoh kita ambil Form Data Mahasiswa dari tabel mahasiswa di bawah ini.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Merancang Interface

Microsoft Access menyediakan sarana pembuatan GUI dalam bentuk form. Cara yang termudah dalam pembuatan form adalah lewat wizard yang dapat diakses lewat menu Create From Wizard. Terlebih dahulu sorot dengan mouse tabel mahasiswa di sisi MS Access.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Langkah pertama adalah pemilihan tabel yang dalam contoh kasus ini adalah tabel mahasiswa. Pilih saja seluruh field yang diminta oleh wizard. Lanjutkan dengan menekan Next.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Tabel ini hanya sekedar contoh, untuk disain yang terbaik sesuaikan dengan kebutuhan sistem yang akan dirancang. Tahapan-tahapan dalam pembuatan basis data dapat diketahui dari berbagai macam referensi tentang database design.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Selanjutnya adalah pemilihan bentuk form (columnar, tabular, datasheet, dan justified). Untuk kali ini akan dicoba bentuk yang Columnar karena bentuk ini bentuk yang sering dipakai dengan tombol kontrol di bawahnya (simpan, tambah, maju, mundur, dan sejenisnya).

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Akhiri dengan menekan tombol Finish yang kemudian memunculkan form yang dihasilkan. Untuk mendisain ulang dengan menambah kontrol, tekan di sisi kiri atas View Design View. Tambahkan di bagian Footnot GUI untuk menambahkan tombol kontrol New untuk menambah satu record.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari

Ada enam kontrol yang disediakan MS Access: Record Navigation, Record Operation, Form Operation, Report Operation, Application, dan Misceleneous. Lanjutkan dengan meneken Next karena jika menekan FINISH maka Access akan memberi simbul tambah dalam bentuk gambar. Dengan menekan Next maka kita bisa mengisi indikator di tombol tersebut sesuai dengan keinginan, misalnya “Tambah Data”. Tambahkan dengan tombol pasangan dari Tambah Data yaitu Save. Juga pilih kontrol Record Operation. Jalankan untuk menguji penambahan data yang baru saja dibuat. Selamat Mencoba.

Dalam sebuah tabel tidak terlepas dari sebuah primary key. primary key sendiri dipilih dari