• Tidak ada hasil yang ditemukan

MODUL 10 : IMPLEMENTASI ERD DALAM SQL

N/A
N/A
Protected

Academic year: 2021

Membagikan "MODUL 10 : IMPLEMENTASI ERD DALAM SQL"

Copied!
12
0
0

Teks penuh

(1)

1 | P a g e L a b o r a t o y o f E n t e r p r i s e A p p l i c a t i o n

MODUL 10 : IMPLEMENTASI ERD DALAM SQL

TUJUAN PRAKTIKUM

1. Mampu memahami dan merancang struktur basis data dengan SQL

2. Mampu membuat struktur tabel-tabel basis data berdasarkan rancangan ERD 3. Mampu mengimplementasikan tabel-tabel tersebut dengan SQL

4. Mampu menampilkan data satu table atau lebih

MATERI PRAKTIKUM

Basis data dapat diimplementasikan berdasarkan E-R diagram yang telah dibuat. Implementasi database bisa:

1. Secara manual (dengan perintah SQL ‘CREATE TABLE’)

2. Secara semi-manual dengan bantuan client berbasis GUI (MySQL Front, PgAdmin, phpMyAdmin, dll.)

A. Entity dan Relationships Macam Relationships :

1. One-to-One : menggunakan notasi 1:1

a. Satu record di entity pertama berhubungan dengan hanya satu record di entity kedua, dan demikian pula sebaliknya.

b. Entity mana saja bisa menjadi tabel utama, sesuai dengan situasi/kebutuhan/analisis.

c. Primary Key (PK) dari tabel utama menjadi Foreign Key (FK) di tabel kedua. 2. One-to-Many (atau Many-to-One) : menggunakan notasi 1:n

a. Jika A terhadap B mempunyai one-to-many relationship (atau B terhadap A mempunyai many-to-one relationship): satu record di A bisa berhubungan dengan banyak record di B, tetapi satu record di B berhubungan dengan hanya satu record di A.

(2)

2 | P a g e L a b o r a t o y o f E n t e r p r i s e A p p l i c a t i o n

b. Entity di sisi One dalam hubungan One-to-Many menjadi tabel utama, dan entity di sisi Many menjadi tabel kedua.

c. PK dari tabel utama menjadi FK di tabel kedua.

d. Di contoh sebelumnya, A menjadi tabel utama dan B menjadi tabel kedua. Maka, ada FK di B yang merupakan PK di A.

3. Many-to-Many : menggunakan notasi m:n

a. Jika A terhadap B mempunyai many-to-many relationship: satu record di A bisa berhubungan dengan banyak record di B, dan demikian pula sebaliknya.

b. Dalam implementasi database, harus ada sebuah tabel perantara di antara A dan B. A dan B menjadi tabel utama, dan tabel perantara menjadi tabel kedua. c. PK dari A menjadi FK di tabel perantara (tabel kedua), dan PK dari B juga

menjadi FK di tabel kedua. Gabungan semua FK di tabel kedua menjadi Composite PK untuk tabel kedua.

d. A terhadap tabel perantara mempunyai 1:n relationship. e. B terhadap tabel perantara juga mempunyai 1:n relationship.

B. Tahap Pembuatan Tabel

1. Membuat semua tabel yang paling utama (yang tidak memiliki FK).

2. Membuat semua tabel yang berhubungan langsung (atau memiliki relationship) dengan tabel yang dibuat di tahap sebelumnya. Mulailah secara urut dari tabel dengan jumlah FK yang paling sedikit ke yang paling banyak.

3. Ulangi tahap 2 sampai semua tabel selesai dibuat.

C. Implementasi Manual

Contoh untuk menentukan Primary Key (PK):

CREATE TABLE dosen (nip INTEGER PRIMARY KEY, nama_dosen VARCHAR(45), alamat_dosen VARCHAR(255));

CREATE TABLE ruang (kode_ruang VARCHAR(20) PRIMARY KEY, lokasi_ruang VARCHAR(255), kapasitas_ruang INTEGER);

(3)

3 | P a g e L a b o r a t o y o f E n t e r p r i s e A p p l i c a t i o n

Contoh untuk menentukan Foreign Key (FK):

CREATE TABLE mahasiswa(nim INTEGER PRIMARY KEY, nip INTEGER REFERENCES dosen (nip), nama_mhs VARCHAR(45), alamat_mhs VARCHAR(255))

Contoh untuk banyak FK:

CREATE TABLE mata_kuliah(kode_mk INTEGER PRIMARY KEY, nip INTEGER REFERENCES dosen (nip), kode_ruang VARCHAR(20)

REFERENCES ruang (kode_ruang), nama_mk VARCHAR(45),

deskripsi_mk VARCHAR(255));

Contoh untuk menentukan composite PK:

CREATE TABLE mhs_ambil_mk(nim INTEGER REFERENCES mahasiswa (nim), kode_mk INTEGER REFERENCES mata_kuliah(kode_mk), PRIMARY KEY(nim, kode_mk));

D. Referential Integrity

1. Integritas database mengacu pada hubungan antar tabel melalui Foreign Key yang bersangkutan.

2. Pada insert, record harus dimasukkan di tabel utama dahulu, kemudian baru di tabel kedua.

3. Pada delete, record harus dihapus di tabel kedua dahulu, kemudian baru di tabel utama.

4. Secara default, kebanyakan DBMS yang ada akan menolak insert atau delete yang melanggar integritas database.

E. Advance Create Table Option 1. Default

Untuk menentukan nilai default kolom jika tidak ada data yang di-insert untuk kolom itu:

(4)

4 | P a g e L a b o r a t o y o f E n t e r p r i s e A p p l i c a t i o n

CREATE TABLE mahasiswa(nim integer PRIMARY KEY, nama_mhs varchar(45), fakultas varchar(5) DEFAULT ‘FKI’);

2. Not Null

• Untuk membatasi agar nilai kolom tidak boleh NULL:

CREATE TABLE ruang(kode_ruang varchar(20) PRIMARY KEY, lokasi_ruang varchar(255) NOT NULL, kapasitas_ruang integer NOT NULL);

• Jika kolom ditentukan NOT NULL, maka insert harus memasukkan nilai untuk kolom tersebut.

• Bisa menggunakan DEFAULT sehingga nilai kolom ditambahkan secara otomatis.

3. Unique

• Untuk memastikan bahwa nilai kolom unik:

CREATE TABLE mata_kuliah(kode_mk integer PRIMARY KEY, nama_mk varchar(45) UNIQUE);

• Untuk multikolom yang unik:

CREATE TABLE dosen(nip integer PRIMARY KEY, nama_dosen

varchar(45), alamat_dosen varchar(255), UNIQUE

(nama_dosen, alamat_dosen)); 4. Check

• Untuk membatasi nilai kolom, misalnya:

CREATE TABLE produk(kode_produk integer PRIMARY KEY, nama_produk varchar(45), harga integer, CHECK (harga <= 100000 AND kode_produk > 100 ));

• Check di atas membatasi bahwa harga harus maksimal Rp 100000, dan kode_produk harus di atas 100.

5. Penentuan Referential Integrity Contoh:

(5)

5 | P a g e L a b o r a t o y o f E n t e r p r i s e A p p l i c a t i o n

CREATE TABLE pemasok(kode_pemasok integer PRIMARY KEY, nama_pemasok varchar(45), kode_produk integer REFERENCES produk ON DELETE CASCADE ON UPDATE CASCADE);

Untuk contoh di atas, jika ada update atau delete di tabel utama, maka tabel kedua secara otomatis disesuaikan.

6. Action

• NO ACTION atau RESTRICT: update atau delete tidak dilakukan. Ini merupakan pilihan default.

• CASCADE: nilai kolom di tabel kedua disesuaikan dengan nilai kolom di tabel utama

• SET NULL: nilai kolom di tabel kedua dijadikan NULL

• SET DEFAULT: nilai kolom di tabel kedua dijadikan nilai DEFAULT (nilai DEFAULT harus ditentukan pada waktu pembuatan tabel).

7. Autoincrement

• Untuk fitur autoincrement, gunakan “serial”:

CREATE TABLE nasabah(id_nasabah serial PRIMARY KEY, nama_nasabah varchar(45));

• Untuk contoh di atas, id_nasabah tidak perlu di-insert, karena database secara otomatis akan menambahkannya secara urut.

• “serial” hanya bisa dari 1 sampai 232.

• Jika tidak cukup, gunakan “bigserial” yang bisa dar i 1 sampai 264.

• Jika kolom menggunakan “serial” atau “bigserial”, j angan sekali-kali memasukkan nilai kolom tersebut secara manual! Biarkan database menambahkannya sendiri secara urut!

• Penghapusan record tidak akan mempengaruhi urutan untuk serial dan bigserial. Nilai untuk kolom yang menggunakan serial/bigserial akan selalu bertambah 1, tidak akan pernah kembali mundur.

(6)

6 | P a g e L a b o r a t o y o f E n t e r p r i s e A p p l i c a t i o n PK id_pelanggan char(12) no_ktp nama no_telp char(16) text PK i d_nota total FK i d_pelanggan FK date char(12) PK id_barang stok char(50) integer(8) PK id_pegawai char(10) no_ktp char(16) nama alamat tgl_bayar char(5) da te jumlah char(5) char(5) integer(5) tgl_retur total _retur retur char(5) da te PK i d_trans char(5) da te nama_kategori varchar(25) text

INTRUKSI

Berikut terdapat ER Diagram Toko Sukses Selalu.

Diagram Relasi Antar Tabel Toko Elektronik Sukses Selalu

Jurnal PK|FK no_akun char(5) PK|FK i d_trans char(5) posisi_dr_cr varchar(6) nominal integer char(5) char(5) no_akun nm_akun Total_nota Id_barang alamat pekerjaan Nama_barang Tgl_nota

nama No_ktp Harga

Id_Nota Jumlah Subtotal

Stok Id_pelanggan No telp 1 mendapatkan membayar Id_pegawai No_ktp n Jumlah nama 1 mencatat membayar memiliki Subtotal alamat 1 1 N Noo ttelplp n n Id_kategori posisi mendata n nama_kategori

Sisa _piutang keterangan no_akun

nm_akun

Id_trans n

m 1

dicatat Akun dikelompokkan

Tgl_trans n Posisi _dr_cr nominal jml_trans n 1 n Terdiri dari n n n n IS A

(7)

7 | P a g e L a b o r a t o y o f E n t e r p r i s e A p p l i c a t i o n

Data dalam Database Toko Sukses Selalu

Pelanggan

id_pelanggan no_ktp nama alamat no_telp pekerjaa

n

1111111111 Tidak Terdaftar

8924234423 3372026404830000 Jeko Jl.Bojong Soang Bandung 022734412234 swasta

8935353535 3372026404832420 Boy Jl.Sukabirus Bandung 098987654321 mahasiswa

8911223344 3372026404112233 Domino Jl.Moch.Toha Bandung 02254321 wirausaha

Pegawai

id_pegawai no_ktp nama Alamat no_telp posisi

201301001 3372026404830000 Jeko Jl.Bojong Soang Bandung 022734412234 kasir

201301002 3372026404777777 Budi Jl.Sukapura Bandung 08988776655 kasir

201302001 3372026404987654 Wawan Jl.Sukabirus Bandung 089899999 kasir

201302009 3372026404135792 Wati Jl. Telekomunikasi Bandung 14000 supervisor

Kategori_barang

id_kategori nama_kategori Keterangan

ELK Elektronik Elektronik

BZR Bazar Perlengkapan Rumah Tangga

SFL Softline Pakaian Siap Pakai

GPK Grocery Perawatan Kecantikan Perawatan dan kecantikan GMK Grocery Makanan Minuman Makanan dan Minuman

PSG Pasar Segar Sayur, buah dan daging

Barang

id_barang Nama harga stok id_kate

gori UA-22F5000 LED TV Samsung 22 inch 1900000 100 ELK KLV-24EX430 LED TV SONY 24 Inch 1999600 100 ELK

24LN4100 LED TV LG 24 Inch 2036900 100 ELK

32LN5100 LED TV LG 32 Inch 3492000 100 ELK

DH-6330P HOME THEATHER LG 2461700 100 ELK

ES-FL8605-WW WASHING MACHINE SHARP

6KG 2863600 100 ELK

NA-F852 WASHING MACHINE

PANASONIC 8.5KG 2590000 100 ELK

MUG-ZDK MUG ZODIAK 19900 100 BZR

MUG-SHO MUG SHIO 19900 100 BZR

(8)

8 | P a g e L a b o r a t o y o f E n t e r p r i s e A p p l i c a t i o n

KNWTPUMP KENMASTER WATER PUMP 27500 100 BZR

KC-105 KOMPOR MINI PORTABLE 124900 100 BZR

STELLA70GR STELLA ALL IN ONE 70 GR 7200 100 BZR

HITLEMON HIT AEROSOL LEMON 600ML 24150 100 BZR

ATTSOFT ATTACK SOFTENER 800GR 14325 100 BZR

ATTCMAX ATTACK CLEAN MAXIMIZER

800GR 14325 100 BZR

INDOMIE INDOMIE ALL VARIAN 1500 100 GMK

UHT125ML ULTRAMILK 125ML 1800 100 GMK

UHT1000ML ULTRAMILK 1000ML 11350 100 GMK

Nota_penjualan

id_nota tgl_nota total id_pelanggan id_pegawai 86856 2013-05-01 45675 1111111111 201301001 86857 2013-05-01 52800 8924234423 201301001 86858 2013-05-01 38500 8924234423 201301002 86859 2013-05-01 3492000 8935353535 201301002 86860 2013-06-01 8817300 8911223344 201301002 86861 2013-07-01 2863600 8924234423 201301002 86862 2013-07-01 297000 8924234423 201302001 Detail_penjualan

id_nota id_barang jumlah subtotal

86856 STELLA70GR 1 7200 86856 HITLEMON 1 24150 86856 ATTSOFT 1 14325 86857 HITLEMON 1 24150 86857 ATTSOFT 2 28650 86858 MUG-ZDK 1 19900 86858 INDOMIE 10 15000 86858 UHT125ML 2 3600 86859 32LN5100 1 3492000 86860 32LN5100 1 3492000 86860 DH-6330P 1 2461700 86860 ES-FL8605-WW 1 2863600 86861 ES-FL8605-WW 1 2863600 86862 INDOMIE 90 135000 86862 UHT125ML 90 162000 Transaksi

id_trans tgl_trans jml_trans

BYR1 2013-05-01 45675

BYR2 2013-05-01 52800

(9)

9 | P a g e L a b o r a t o y o f E n t e r p r i s e A p p l i c a t i o n BYR4 2013-05-01 3000000 BYR5 2013-06-01 492000 BYR6 2013-06-01 4408650 BYR7 2013-07-01 2204325 BYR8 2013-08-01 2000000 BYR9 2013-09-01 204325 BYR10 2013-07-01 363600 BYR11 2013-07-01 47000 RTR1 2013-05-01 10500 RTR2 2013-07-02 43650 Pembayaran

id_bayar sisa_piutang id_nota id_pegawai

BYR1 0 86856 201301001 BYR2 0 86857 201301001 BYR3 0 86858 201301002 BYR4 492000 86859 201301002 BYR5 0 86859 201301001 BYR6 47000 86860 201301002 BYR7 2204325 86860 201301001 BYR8 204325 86860 201301001 BYR9 0 86860 201301001 BYR10 2500000 86861 201301002 BYR11 250000 86862 201302001 retur Id_retur RTR1 RTR2 Detail_retur

id_nota id_barang id_retur jumlah Subtotal

86858 INDOMIE RTR1 7 10500

86862 INDOMIE RTR2 13 19500

86857 HITLEMO

N RTR2 1 24150

Akun

no_akun nm_akun header_akun

1 Aktiva

11 Aktiva Lancar 1

111 Kas 11

112 Piutang Dagang 11

113 Persediaan Barang Dagangan 11

(10)

10 | P a g e L a b o r a t o y o f E n t e r p r i s e A p p l i c a t i o n

115 Asuransi Dibayar Dimuka (09/12) 11

116 Perlengkapan 11 2 Hutang 21 Hutang Lancar 2 211 Utang Dagang 21 3 Modal 311 Modal Tn X 3 3112 Prive Tn. X 311 4 Pendapatan 41 Pendapatan Usaha 4 411 Penjualan 41

412 Harga Pokok Penjualan 41

413 Retur Penjualan 41 414 Potongan Penjualan 41 5 Beban 511 Beban Listrik 5 512 Beban Air 5 513 Beban Telepon 5 514 Beban Gaji 5 jurnal

no_akun id_trans posisi_dr_cr nominal

111 BYR1 debet 45675 411 BYR1 kredit 45675 111 BYR2 debet 52800 411 BYR2 kredit 52800 111 BYR3 debet 38500 411 BYR3 kredit 38500 111 BYR4 debet 3000000 112 BYR4 debet 492000 411 BYR4 kredit 3492000 111 BYR5 debet 492000 112 BYR5 kredit 492000 111 BYR6 debet 4408650 112 BYR6 debet 4408650 411 BYR6 kredit 8817300 111 BYR7 debet 2204325 112 BYR7 kredit 2204325 111 BYR8 debet 2000000 112 BYR8 kredit 2000000 111 BYR9 debet 204325 112 BYR9 kredit 204325 111 BYR10 debet 363600 112 BYR10 debet 2500000 411 BYR10 kredit 2863600 111 BYR11 debet 47000

(11)

11 | P a g e L a b o r a t o y o f E n t e r p r i s e A p p l i c a t i o n 112 BYR11 debet 250000 411 BYR11 kredit 297000 413 RTR1 debet 10500 111 RTR1 kredit 10500 413 RTR2 debet 43650 111 RTR2 kredit 43650

Berdasarkan ER Diagram, diagram relasi antar tabel beserta isi data dalam basis data Toko Elektronik Sukses Selalu. Tampilkan informasi berikut:

1. Tampilkan data transaksi pembayaran yang pernah tercatat, yaitu data tanggal bayar, id_bayar, nama pegawai yang mencatat transaksi pembayaran, dan sisa piutang diurutkan berdasarkan tanggal bayar dari yg terlama ke terbaru kemudian diurutkan berdasarkan id_bayar secara ascending. (JOIN 3 tabel)

2. Tampilkan no_nota penjualan, tanggal nota dicatat, nama pelanggan yang bertransaksi, dan nama pegawai yang melakukan pencatatan transaksi penjualan.

3. Tampilkan no_nota penjualan, tanggal nota dicatat, nama pelanggan yang bertransaksi, dan nama pegawai yang melakukan pencatatan transaksi penjualan hanya untuk transaksi yang tgerjadi pada tanggal 1 Mei 2013.

4. Tampilkan tanggal transaksi pembayaran beserta dengan nama pegawai yang melakukan pencatatan pembayaran pada tanggal 1 Mei 2013. (JOIN 3 tabel)#

5. Tampilkan tanggal transaksi retur untuk data retur yang pernah tercatat, nama barang yang diretur, dan jumlah barang yang diretur. (JOIN 3 tabel)

6. Tampilkan tanggal penjualan yang pernah tercatat, nama barang yang terjual, dan nama kategori barang dengan menghilangkan data yang duplikat dan diurutkan berdasarkan tanggal dari yang terlama sampai dengan terbaru. (JOIN 4 tabel)

7. Tampilkan tanggal penjualan yang pernah tercatat nama barang yang terjual, dan nama kategori barang beserta dengan total jumlah barang yang terjual untuk masing- masing barang setiap hari nya.

8. Tampilkan tanggal penjualan yang pernah tercatat nama barang yang terjual, dan nama kategori barang beserta dengan total jumlah barang yang terjual untuk masing- masing barang setiap hari nya dengan syarat data yang ditampilkan adalah barang yang memiliki total jumlah barang terjual perharinya lebih besar dari

(12)

12 | P a g e L a b o r a t o y o f E n t e r p r i s e A p p l i c a t i o n

9. Tampilkan nama barang beserta nama pelanggan yang pernah membeli barang tersebut khusus untuk barang dengan merk SHARP atau LG diurutkan berdasarkan nama barang dari ‘A-Z’.(JOIN 4 tabel)

10. tersebut khusus untuk barang dengan merk SHARP atau LG diurutkan berdasarkan nama barang dari ‘A-Z’.(JOIN 4 tabel)

11. Tampilkan tanggal transaksi, id_trans, kode_akun, nama_akun, posisi_dr_cr, dan nominal yang pernah tercatat di tabel jurnal dengan diurutkan berdasarkan tgl transaksi, id_transaksi, posisi_dr_cr, dan id_akun.

Gambar

Diagram Relasi Antar Tabel Toko Elektronik Sukses Selalu

Referensi

Dokumen terkait

“Penegakan Hukum Tindak Pidana Pencurian Kendaraan Bermotor dengan Kekerasan (Pembegalan) yang Dilakukan Anak diBawah Umur (Studi Kasus Polrestabes Semarang)”.

Frase atributif adverbia T-H memiliki struktur T:Adv + H:Adv. Data frase atributif adverbia T-H yang ditemukan dalam bahasa Dondo adalah /yolroyo mbebengi/ ‘besok

Penelitian ini bertujuan untuk (1) mendeskripsikan bentuk implikatur dalam Percakapan talk show Hitam Putih di Trans 7, dan (2) mendeskripsikan fungsi implikatur

Kami dapat mengetahui persamaan dari setiap fungsi layer layer (core layer, distribution layer, dan access layer), mengetahui perbedaan dari setiap fungsi layerlayer (core

dibelajarkan melalui model pembelajaran kooperatif tipe Time Token berbantuan gambar berseri dengan kelompok yang dibelajarkan melalui pembelajaran konvensional pada

Sejalan dengan renstra Direktorat Jenderal Prasarana dan Sarana Pertanian tahun 2011 – 2014, program kerja Direktorat Pengelolaan Air Irigasi yaitu : 1)

Lahirnya Amtsilati bukan berarti menganggap lemah atau menghapuskan metode-metode tradisional yang selama ini telah berkembang dan digunakan di pesantren- pesantren, namun

Penelitian deskriptif tidak terhenti pada pengumpulan data, analisis data, dan kesimpulan melainkan penemuan makna penelitian merupakan fokus dari keseluruhan