KA1064 PERANCANGAN BASIS DATA MODUL PRAKTIKUM Hanya dipergunakan di lingkungan Telkom Applied Science School
Departemen Teknologi Informasi Telkom Applied Science School 2015
Daftar Penyusun
DAFTAR PENYUSUN 1. Versi 1 : 2014 02 : Arita Witanti, S.T. 2. Versi 2 : 2015 02 : Irna Yuniar, S.T.,M.A.B. Magdalena Karismariyanti, S.T., M.B.A.
Hali
Daftar Isi
Daftar Isi Daftar Penyusun............................................................................................................................................i Daftar Isi....................................................................................................................................................... ii Mind Map Kajian ER Diagram ......................................................................................................................1 1
Bab I Entitas dan Atribut.......................................................................................................................1
2
Bab II Relationship/relasi....................................................................................................................14
3
Bab III Spesialisasi-Generalisasi dan Agregasi.....................................................................................29
4
Bab IV Memetakan ER-Diagram ke dalam tabel, Skema Relasi, dan Diagram Relasi Antar Tabel .....42
5
Bab V Key dan Functional Dependencies ...........................................................................................53
6
Bab VI Normalisasi 1st NF sampai dengan BCNF................................................................................63
7
Bab VII SQL (DDL dan DML Sederhana) ..............................................................................................83
8
Bab VIII Single Row Function ..............................................................................................................83
9
Bab IX Join Dua Tabel..........................................................................................................................83
10
Bab X Join Tiga Tabel......................................................................................................................83
11
Bab XI Presentasi Progress Tugas Besar.........................................................................................83
12
Bab XII Presentasi Final Tugas Besar..............................................................................................83
13
Daftar Pustaka................................................................................................................................83
H a l ii
Entitas dan Atribut
MIND MAP KAJIAN ER DIAGRAM
1
BAB I ENTITAS DAN ATRIBUT
1.1 IDENTITAS Kajian ER Diagram Topik 1. Entitas dan Atribut Referensi 1. Bagui, S., R. Earp; Database Design Using Entity Relationship Diagrams. Auerbach Publications, 2003. 2. Sakkirajan, Suathi; Fundamental of Relational Database Management Systems. Tamil Nadu, India: Springer, 2007. 3. Basis Data Kompetensi Utama 1. Mampu mengetahui dan memahami symbol dan terminology dalam E-R diagram 2. Mengetahui secara umum bagaimana E-R model dari suatu bisnis proses tertentu 3. Mengerti tentang entitas, entitas lemah 4. Mampu mengidentifikasi dengan benar entitas yang dibutuhkan dari suatu bisnis proses tertentu 5. Mengerti apa yang disebut dengan atribut dan bagaimana symbolnya 6. Mengerti semua jenis atribut dan simbolnya 7. Mampu mengidentifikasi atribut suatu entitas dengan benar sesuai dengan kebutuhan bisnis proses tertentu 8. Mampu membedakan kebutuhan entitas, atribut atau nilai dari suatu atribut tertentu
Hal1
Entitas dan Atribut Lama Kegiatan Praktikum 1. Pertemuan Terbimbing : 1 x 120 menit 2. Kegiatan Mandiri : 2 x 120 menit Parameter Penilaian 1. Tes Awal 30% 2. Jurnal : Hasil Pengamatan 30% 3. Tugas Akhir 40%
Hal2
Entitas dan Atribut 1.2 PERTANYAAN PENDAHULUAN Kerjakan tugas pendahuluan ini, jika sudah selesai, kumpulkan kepada asisten anda. Waktu pengerjaan maksimal 15 menit. Kerjakan dengan tulisan tangan boleh bolpen atau pensil. 1. 2. 3. 4. 5. 6.
Jelaskan apa yang dimaksud dengan entitas! Jelaskan apa yang dimaksud dengan atribut! Jelaskan apa yang dimaksud dengan atribut kunci! Apakah hubungan antara entitas, atribut dan ER diagram ? Sebutkan jenis-jenis atribut dan simbolnya! Perhatikan gambar dibawah ini ! Lalu tolong tuliskan mana sajakah yang termasuk entitas dan atribut ! #Id_distributor No_tlpn alamat Ongkos kirim Nama_distributor Nama_produk
Produk
N
Memasok
N
Distributor
Jumlah Tgl Kirim #Id_produk
1.3
PRAKTIK
Kasus Ananda Pada bagian ini, akan dipelajari mengenai 1. Cara menentukan entitas 2. Cara menemukan atribut dan nilainya 1.3.1.1 Soal Bagian 1 Sebuah perusahaan yang bergerak dibidang bakery, bernama Ananda Brownis, menjual berbagai dua jenis kue yaitu kue basah dan kue kering. Kue-kue ini memiliki harga beragam mulai dari 20.000 sampai 50.000 rupiah. Perbedaan kue basah dan kue kering terletak pada jangka waktu expired-nya dimana kue basah 3 hari sedangkan kue kering dapat bertahan hingga 3 bulan. Berikut ini makanan yang dijual di perusahaan ini.
Hal3
Entitas dan Atribut Jenis Kue Kue Basah
Kue Kering
Kode Kue ORIG BABZ BLUE CHCR COMA GREE PINK SRKY TRMS KTBK PNBT BLCK BLKJ BAKR BDUO CHRL CHST SWST
Nama Kue Brownies Original Brownies Banana Bizz Brownies Blueberry Brownies Cheese Cream Brownies Choco Marble Brownies Green Marble Brownies Pink Marble Brownies Sarikaya Pandan Brownies Tiramisu Marble Cake Ketan Bakar Peanut Butter Pisang Bolen Cokelat Pisang Bolen Keju Brownies Bakar Bangket Duo Cheese Roll Cheese Stick Sweet Stick
Harga Satuan 26.000,30.000,32.000,52.000,30.000,32.000,30.000,30.000,32.000,26.000,28.000,28.000,28.000,28.000,20.000,37.000,27.000,24.000,-
Bagian 2 Cara penjualan kue-kue ini dilakukan di outlet penjualan Ananda Brownis. Penjualan ke pembeli dilakukan secara tunai. Penjualan dilakukan di kasir. Kasir tidak perlu mencatat setiap pembeli yang datang. Kasir mengeluarkan bukti penjualan berupa nota. Dalam nota tersebut terdapat nomor nota yang berbeda untuk setiap kali transaksi, tanggal, barang, dan jumlah beli, beberapa waktu tertentu seperti hari besar terdapat diskon. Berikut contoh nota penjualan. NOTA PENJUALAN TUNAI
NOTA PENJUALAN TUNAI No.Nota Tgl
J0008 1 Januari 2013
Kode Barang Nama BLUE Blueberry CHCR Cheese Cream COMA Choco Marble
No.Nota Tgl Harga Satuan 32,000 52,000 30,000
Jumlah Sub Total 3 96,000 10 520,000 2 60,000
Total Penjualan 676,000 Discount 10% Total Bayar 608,400
J0009 1 Januari 2013
Kode Barang Nama ORIG Original BABZ Banana Bizz BLUE Blueberry
Harga Satuan 26,000 30,000 32,000
Jumlah Sub Total 4 104,000 4 120,000 4 128,000
Total Penjualan 352,000 Discount 10% Total Bayar 316,800
Hal4
Entitas dan Atribut NOTA PENJUALAN TUNAI No.Nota Tgl
NOTA PENJUALAN TUNAI
J0010 5 Januari 2013
Kode Barang Nama CHCR Cheese Cream CHRL Cheese Roll
No.Nota Tgl
Harga Satuan 52,000 37,000
J0011 25 Januari 2013
Jumlah Sub Total Kode Barang Nama 2 104,000 CHCR Cheese Cream 1 37,000 CHST Cheese Stick
Harga Satuan 52,000 27,000
Total Penjualan 141,000 Discount 0% Total Bayar 141,000
Jumlah Sub Total 2 104,000 1 27,000
Total Penjualan 131,000 Discount 0% Total Bayar 131,000
Bagian 3 Ananda Brownis membutuhkan pelaporan sesuai dengan standard akuntansi. Untuk itu, setiap transaksi akan dicatatkan dalam jurnal. Lima akun utama yaitu Harta, Kewajiban, Modal, Pendapatan, dan Beban. Akun-akun yang lain mengacu pada lima akun utama ini. berikut ini adalah beberapa akun dalam akuntansi. Kode Akun 1 11 111 2 3 4 41 411 412
Nama Akun Harta Harta Lancar Kas Kewajiban Modal Pendapatan Pendapatan usaha Penjualan Retur Penjualan Potongan 413 Penjualan 5 Beban
Header Akun 1 11
4 41 41 41
Metode akuntansi untuk pencatatan persediaan barang dagangan dan harga pokok penjualan yang digunakan oleh perusahaan ini adalah Metode Periodik Pada saat terjadi transaksi penjualan tunai dengan diskon, misalnya untuk no.nota j0008, jurnal yang terjadi adalah 111 Kas dan 413 Potongan Penjualan di debet; dan 411 Penjualan di kredit. NOTA PENJUALAN TUNAI No.Nota Tgl
J0008 1 Januari 2013
Kode Barang Nama BLUE Blueberry CHCR Cheese Cream COMA Choco Marble
10% x TotJual Harga Satuan 32,000 52,000 30,000
Jumlah Sub Total 3 96,000 10 520,000 2 60,000
Kas Potongan Penjualan Penjualan
608,400 67,600 676,000
Total Penjualan 676,000 Discount 10% Total Bayar 608,400
Hal5
Entitas dan Atribut Pada saat terjadi transaksi penjualan tunai tanpa diskon, misalnya untuk no.nota j0008, jurnal yang terjadi adalah 111 Kas di debet; dan 411 Penjualan di kredit. NOTA PENJUALAN TUNAI No.Nota Tgl
J0010 5 Januari 2013
Kode Barang Nama CHCR Cheese Cream CHRL Cheese Roll
Harga Satuan 52,000 37,000
Jumlah Sub Total 2 104,000 1 37,000
Kas
141,000 Penjualan
141,000
Total Penjualan 141,000 Discount 0% Total Bayar 141,000
Bagian 4 Kegiatan penjualan kue ala Ananda Brownis ini dilakukan di outlet penjualan. Ananda Brownis memiliki beberapa tempat penjualan (outlet) , yaitu: a. (Kode Outlet: ABR) AB Rancabolang, Jl. Rancabolang No. XX Bandung, Tlp: 022-70777077 b. (Kode Outlet: ABC) AB Cikawao, Jl. Cikawao No.II, Tlp: 022-41924192 c. (Kode Outlet: ABT) AB Ters. Jakarta, Jl.Ters. Jakarta No.V, Tlp : 022-41934193 d. (Kode Outlet: ABP) AB Paskal, Jl. Pasir Kaliki Ruko Paskal Hyper Square Blok A, Tlp : 022-4194 4194 e. (Kode Outlet: ABD) AB Djuanda, Jl. Ir. H. Djuanda No. XX, Tlp : 022-41954195 Setiap outlet perlu dievaluasi jumlah penjualannya. Dengan data tersebut, dapa digunakan sebagai pelaporan jumlah penjualan setiap outlet ke pemilik Ananda Brownis. Pada awalnya, cara melakukan rekapitulasi transaksi adalah dengan memindahkan data dalam nota penjualan ke dalam kolom-kolom pada format excel. Berikut contoh rekapitulasi transaksi. No.Nota J0008
Tgl 1 Januari 2013
J0009
1 Januari 2013
J0010
5 Januari 2013
J0011
25 Januari 2013
J0011
5 Februari 2013
Kode Barang BLUE
Harga Satuan 32,000
Jum -lah 3
Sub Total 96,000
Blueberry
CHCR COMA ORIG BABZ BLUE CHCR CHRL
Cheese Cream Choco Marble Original Banana Bizz Blueberry Cheese Cream Cheese Roll
52,000 30,000 26,000 30,000 32,000 52,000 37,000
10 2 4 4 4 2 1
520,000 60,000 104,000 120,000 128,000 104,000 37,000
CHCR CHST
Cheese Cream Cheese Stick
52,000 27,000
2 1
ORIG
Original
26,000
Nama
1
Total Penjualan 676,000
Disco unt 10%
352,000
10%
316,800
141,000
0%
141,000
104,000 27,000
131,000
0%
131,000
26,000
26,000
0%
26,000
Total Bayar 608,400
Hal6
Entitas dan Atribut
1.3.1.2 Langkah Penyelesaian Bagian 1 1. Penentuan Entitas dengan mengidentifikasi object atau kumpulan object yang ada. Adapun object yang bisa diidentifikasi adalah No Identifikasi Entitas Entitas/non entitas Ket Ananda Brownis Non entitas Ini adalah tema kasus bukan bagian entitas 1 Kue_basah Non entitas Keterangan tambahan soal 2 Kue_kering Non entitas Keterangan tambahan soal 3 4 Jenis_kue Entitas Kue Entitas 5 2. Setelah ditemukan entitas , analisalah lebih jauh atribut dan atribut kunci setiap entitas. Lalu analisis lebih jauh mengenai daftar atribut yang ada dalam data yang dibutuhkan. Perhatikan bahwa data yang berkaitan dengan entitas tersebut, jika perlu bisa ditambahkan. Sekaligus tentukan penamaan entitas, gunakan nama tanpa spasi untuk mempermudah proses transformasi ke tabel nantinya. Untuk nama atribut yang sama perjelas nama atributnya agar membedakan dengan atribut entitas lain. Jangan lupa menentukan apakah dia entitas kuat atau entitas lemah. No Nama entitas Kuat/lemah Atribut Atribut Kunci Jenis_kue Kuat Kode_jenis_kue, nama_jenis_kue, Kode_jenis_kue 1 jangka_expired 2 Kue Kuat Kode_kue, nama_kue, harga_kue 3. Lalu gambarkan dengan notasi entitas semua entitas yang sudah teridentifikasi
Jenis_kue
Kue
4. Selanjutnya gambarkan atribut pada entitas misal untuk Jenis_kue sbb dan wajib membubuhkan tanda pada atribut kunci : Nma_jenis_kue Jangka_expired Kode_jenis_kue
Jenis_kue
Hal7
Entitas dan Atribut Lakukan proses penempatan atribut dengan cara yang sama untuk entitas lain. 1.3.1.3 Solusi Lengkap Kode_Jenis_Kue
Nama_Jenis_Kue
Jangka_expired
Kode_Kue
Jenis_kue
Kue
Nama_kue
harga_kue
1.3.1.4 Pengamatan Bagian 2 1. Penentuan Entitas dengan mengidentifikasi object atau kumpulan object yang ada. No Identifikasi Entitas Entitas/non entitas Ket 1 2 3 4 5 2. Setelah ditemukan entitas , analisislah lebih jauh atribut dan atribut kunci setiap entitas. Jangan lupa menentukan apakah dia entitas kuat atau entitas lemah. No Nama entitas Kuat/lemah Atribut Atribut Kunci 1 2 3
3. Lalu gambarkan dengan notasi entitas semua entitas yang sudah teridentifikasi
4. Selanjutnya gambarkan atribut pada entitas dan wajib membubuhkan tanda pada atribut kunci :
Hal8
Entitas dan Atribut
Bagian 3 1. Penentuan Entitas dengan mengidentifikasi object atau kumpulan object yang ada. No Identifikasi Entitas Entitas/non entitas Ket 1 2 3 4 5 2. Setelah ditemukan entitas, analisislah lebih jauh atribut setiap entitas. Jangan lupa menentukan apakah dia entitas kuat atau entitas lemah. No Nama entitas Kuat/lemah Atribut Atribut Kunci 1 2 3
3. Lalu gambarkan dengan notasi entitas semua entitas yang sudah teridentifikasi
4. Selanjutnya gambarkan atribut pada entitas dan wajib membubuhkan tanda pada atribut kunci :
Hal9
Entitas dan Atribut Bagian 4 1. Penentuan Entitas dengan mengidentifikasi object atau kumpulan object yang ada. No Identifikasi Entitas Entitas/non entitas Ket 1 2 3 4 5 2. Setelah ditemukan entitas , analisalah lebih jauh atribut setiap entitas. Jangan lupa menentukan apakah dia entitas kuat atau entitas lemah. No Nama entitas Kuat/lemah Atribut Atribut Kunci 1 2 3
3. Lalu gambarkan dengan notasi entitas semua entitas yang sudah teridentifikasi
4. Selanjutnya gambarkan atribut pada entitas dan wajib membubuhkan tanda pada atribut kunci :
H a l 10
Entitas dan Atribut Jenis – Jenis Atribut Pada bagian ini, akan dipelajari mengenai : Jenis jenis atribut, simbol serta penulisannya. 1.3.2.1 Soal
Diketahui potongan ER berikut ini.
Amatilah setiap atributnya, kemudian kategorikan !
1.3.2.2 Pengamatan Setelah anda melakukan pengamatan maka isikan hasil pengamatan anda dibawah ini ! Manakah yang termasuk single value atribut, derived atribut,composite atribut dan multivaluate atribut ?
NAMA ATRIBUT
JENIS ATRIBUT
H a l 11
Entitas dan Atribut
1.4 TEST AKHIR Tentukanlah entitas dan atribut dari proses dibawah ini : Terdapat sebuah lembaga keuangan Suryo Finance. Salah satu layanan Suryo Finance kepada nasabah adalah modal usaha kecil. Setiap anggota yang meminjam akan mendapatkan kartu angsuran untuk mengontrol pembayaran setiap bulannya. Berikut adalah bentuk kartu kontrol angsuran suryo finance. Sebagai catatan bahwa angsuran pembayaran dapat dilakukan karena adanya transaksi peminjaman. Amatilah kemudian identifikasi entitas, entitas lemah, atribut, dan atribut kunci nya. Berikut adalah salah satu contoh kartu control angsuran Suryo Finance. SURYO FINANCE KARTU KONTROL ANGSURAN No.Member : No Pinjaman : Nama Member : Alamat : Total Pinjaman : Durasi pinjaman : Besar Angsuran : Tanggal
No bukti pembayaran
73083 P234 Warda Nimuh Cienteung Dayeuhkolot 12.000.000 24 bulan minimal 100.000 Jumlah Pembayaran
Petugas
Manager suryo finance Jundi suryo
Pengamatan 1. Penentuan Entitas dengan mengidentifikasi object atau kumpulan object yang ada. Adapun object yang bisa diidentifikasi adalah No Identifikasi Entitas Entitas/non entitas Ket 1 2 3 4 5 2. Setelah ditemukan entitas , analisalah lebih jauh atribut dan atribut kunci setiap entitas. Jangan lupa menentukan apakah dia entitas kuat atau entitas lemah.
H a l 12
Entitas dan Atribut No
Nama entitas
Kuat/lemah
Atribut
Atribut Kunci
1 2 3
3. Lalu gambarkan dengan notasi entitas semua entitas yang sudah teridentifikasi. Perhatikan dalam kasus ini terdapat entitas lemah.
Lain-lain 1. Kumpulkan jawaban anda kepada para asisten sebelum praktikum diakhiri. 2. Keterlambatan atas pengumpulan modul praktikum sanksinya adalah nilai modul praktikum ini nol (0).
H a l 13
Relationship/Relasi
2
BAB II RELATIONSHIP/RELASI
2.1 IDENTITAS Kajian ER- Diagram Topik 1. Tingkatan relasi 2. Kardinalitas 3. Atribut relasi Referensi 1. Bagui, S., R. Earp; Database Design Using Entity Relationship Diagrams. Auerbach Publications, 2003. 2. Sakkirajan, Suathi; Fundamental of Relational Database Management Systems. Tamil Nadu, India: Springer, 2007. 3. Basis Data Kompetensi Utama 1. Mampu memahami apa yang disebut dengan relasi dan kenapa antar entitas harus direlasikan 2. Mampu memahami dan menerapkan tingkatan relasi, baik itu binary, unary atau ternary relationship 3. Mampu mengidentifikasi dengan benar kardinalitas relasi antar entitas dari suatu bisnis proses tertentu 4. Mampu mengidentifikasi kebutuhan atribut pada relasi dari suatu bisnis proses tertentu Lama Kegiatan Praktikum 1. Pertemuan Terbimbing : 1 x 120 menit 2. Kegiatan Mandiri : 2 x 120 menit Parameter Penilaian 1. Tes Awal 30% 2. Jurnal Pengamatan 30% 3. Tugas Akhir 40%
H a l 14
Relationship/Relasi 2.2 PERTANYAAN PENDAHULUAN Kerjakan tugas pendahuluan ini, jika sudah selesai, kumpulkan kepada asisten anda. Waktu pengerjaan maksimal 15 menit. Tulis dengan tangan , gunakan pensil atau ballpoint berwarna. 1. 2. 3. 4.
Bagaimana simbol relasi dalam ER-Diagram ? Apa fungsi relasi dalam ER-Diagram ? Menurut anda, ada berapa kah relashionship degree /tingkat relasi, rebutkan ! Sebutkan termasuk manakah jenis kardinalitas relasi dibawah ini ? Maping kardinalitas
Gambar 1 Gambar 1 bagian a : Gambar 1 bagian b : 2.3
Gambar 2 Gambar 2 bagian a : Gambar 2 bagian b :
PRAKTIK
Tingkatan Relasi Pada bagian ini, akan dipelajari macam macam relasi dan kardinalitasnya. 2.3.1.1 Soal 1 Pada modul 1 telah kita pelajari kasus “Ananda Brownis”. Identifikasi kembali kasus tersebut dan tentukan relasinya. Bagian 1 Sebuah perusahaan yang bergerak dibidang bakery, bernama Ananda Brownis, menjual berbagai dua jenis kue yaitu kue basah dan kue kering. Kue-kue ini memiliki harga beragam mulai dari 20.000 sampai 50.000 rupiah. Perbedaan kue basah dan kue kering terletak pada jangka waktu expired-nya dimana kue basah 3 hari sedangkan kue kering dapat bertahan hingga 3 bulan. Berikut ini makanan yang dijual di perusahaan ini. Jenis Kue Kue Basah
Kode Kue ORIG BABZ BLUE CHCR
Nama Kue Brownies Original Brownies Banana Bizz Brownies Blueberry Brownies Cheese Cream
Harga Satuan 26.000,30.000,32.000,52.000,-
H a l 15
Relationship/Relasi Jenis Kue
Kue Kering
Kode Kue COMA GREE PINK SRKY TRMS KTBK PNBT BLCK BLKJ BAKR BDUO CHRL CHST SWST
Nama Kue Brownies Choco Marble Brownies Green Marble Brownies Pink Marble Brownies Sarikaya Pandan Brownies Tiramisu Marble Cake Ketan Bakar Peanut Butter Pisang Bolen Cokelat Pisang Bolen Keju Brownies Bakar Bangket Duo Cheese Roll Cheese Stick Sweet Stick
Harga Satuan 30.000,32.000,30.000,30.000,32.000,26.000,28.000,28.000,28.000,28.000,20.000,37.000,27.000,24.000,-
2.3.1.2 Langkah Penyelesaian 1. Gambarkan kembali entitas, atribut, dan atribut kunci berdasarkan soal diatas yang telah dikerjakan pada modul 1. Kode_Jenis_Kue
Nama_Jenis_Kue
Kode_Kue
Jenis_kue
Kue
Jangka_expired
Nama_kue
harga_kue
2. Gambarkan relasi yang telah teridenfikasi. Terdapat relasi dan keterkaitan data antara Jenis_Kue dan Kue hal ini dapat terlihat bahwa setiap kue termasuk ke dalam salah satu Jenis_Kue. Gunakan kata kerja untuk memberi nama relasi. Kode_Jenis_Kue
Nama_Jenis_Kue
Kode_Kue
Jenis_kue
memiliki
Kue
Jangka_expired
Nama_kue
harga_kue
3. Penentuan kardinalitas identifikasi frase yang menunjukan kardinalitas atau identifikasi berdasarkan data dalam tabel. Perhatikan jenis_kue: Kue_Basah. Satu Kenis_kue, yaitu Kue_Basah memiliki berapa kue ? Banyak (simbol n) Kode_Jenis_Kue
Nama_Jenis_Kue
Jangka_expired
Kode_Kue
Jenis_Kue
1
n memiliki
Kue
Nama_kue
harga_kue
H a l 16
Relationship/Relasi Satu Kue, yaitu Brownies Original termasuk ke dalam berapa Jenis_kue? Satu Kode_Jenis_Kue
Kode_Kue
Nama_Jenis_Kue
Jenis_Kue
1
n memiliki
1
Kue
Nama_kue
1
Jangka_expired
harga_kue
Ambil nilai maksimal dari dari setiap kemungkinan kardinalitas, sehingga didapat kardinalitas sebagai berikut: Kode_Jenis_Kue
Kode_Kue
Nama_Jenis_Kue
Jenis_Kue
1
n memiliki
Kue
Nama_kue
Jangka_expired
harga_kue
Bagian 2 Cara penjualan kue-kue ini dilakukan di outlet penjualan Ananda Brownis. Penjualan ke pembeli dilakukan secara tunai. Penjualan dilakukan di kasir. Kasir tidak perlu mencatat setiap pembeli yang datang. Kasir mengeluarkan bukti penjualan berupa nota. Dalam nota tersebut terdapat nomor nota yang berbeda untuk setiap kali transaksi, tanggal, barang, dan jumlah beli, beberapa waktu tertentu seperti hari besar terdapat diskon. Berikut contoh nota penjualan. NOTA PENJUALAN TUNAI
NOTA PENJUALAN TUNAI No.Nota Tgl
J0008 1 Januari 2013
Kode Barang Nama BLUE Blueberry CHCR Cheese Cream COMA Choco Marble
No.Nota Tgl Harga Satuan 32,000 52,000 30,000
Jumlah Sub Total 3 96,000 10 520,000 2 60,000
J0009 1 Januari 2013
Kode Barang Nama ORIG Original BABZ Banana Bizz BLUE Blueberry
Total Penjualan 676,000 Discount 10% Total Bayar 608,400
NOTA PENJUALAN TUNAI
J0010 5 Januari 2013
Kode Barang Nama CHCR Cheese Cream CHRL Cheese Roll
No.Nota Tgl
Harga Satuan 52,000 37,000
Jumlah Sub Total 4 104,000 4 120,000 4 128,000
Total Penjualan 352,000 Discount 10% Total Bayar 316,800
NOTA PENJUALAN TUNAI No.Nota Tgl
Harga Satuan 26,000 30,000 32,000
J0011 25 Januari 2013
Jumlah Sub Total Kode Barang Nama 2 104,000 CHCR Cheese Cream 1 37,000 CHST Cheese Stick
Total Penjualan 141,000 Discount 0% Total Bayar 141,000
Harga Satuan 52,000 27,000
Jumlah Sub Total 2 104,000 1 27,000
Total Penjualan 131,000 Discount 0% Total Bayar 131,000
H a l 17
Relationship/Relasi 2.3.1.3 Pengamatan Gambarkan entitas, atribut, atribut kunci, relasi, dan kardinalitas dari soal diatas pada kotak yang telah disediakan. Sebagai catatan, entitas, atribut, dan atribut kunci dapat menggunakan hasil identifikasi yang telah dikerjakan pada modul 1.
Bagian 3 Ananda Brownis membutuhkan pelaporan sesuai dengan standard akuntansi. Untuk itu, setiap transaksi akan dicatatkan dalam jurnal. Lima akun utama yaitu Harta, Kewajiban, Modal, Pendapatan, dan Beban. Akun-akun yang lain mengacu pada lima akun utama ini. berikut ini adalah beberapa akun dalam akuntansi. Kode Akun 1 11 111 2 3 4 41 411 412
Nama Akun Harta Harta Lancar Kas Kewajiban Modal Pendapatan Pendapatan usaha Penjualan Retur Penjualan Potongan 413 Penjualan 5 Beban
Header Akun 1 11
4 41 41 41
Metode akuntansi untuk pencatatan persediaan barang dagangan dan harga pokok penjualan yang digunakan oleh perusahaan ini adalah Metode Periodik Pada saat terjadi transaksi penjualan tunai dengan diskon, misalnya untuk no.nota j0008, jurnal yang terjadi adalah 111 Kas dan 413 Potongan Penjualan di debet; dan 411 Penjualan di kredit.
H a l 18
Relationship/Relasi NOTA PENJUALAN TUNAI No.Nota Tgl
J0008 1 Januari 2013
Kode Barang Nama BLUE Blueberry CHCR Cheese Cream COMA Choco Marble
10% x TotJual Harga Satuan 32,000 52,000 30,000
Jumlah Sub Total 3 96,000 10 520,000 2 60,000
Kas Potongan Penjualan Penjualan
608,400 67,600 676,000
Total Penjualan 676,000 Discount 10% Total Bayar 608,400
Pada saat terjadi transaksi penjualan tunai tanpa diskon, misalnya untuk no.nota j0008, jurnal yang terjadi adalah 111 Kas di debet; dan 411 Penjualan di kredit. NOTA PENJUALAN TUNAI No.Nota Tgl
J0010 5 Januari 2013
Kode Barang Nama CHCR Cheese Cream CHRL Cheese Roll
Harga Satuan 52,000 37,000
Jumlah Sub Total 2 104,000 1 37,000
Kas
141,000 Penjualan
141,000
Total Penjualan 141,000 Discount 0% Total Bayar 141,000
2.3.1.4 Pengamatan 1. Gambarkan entitas, atribut, atribut kunci, relasi, dan kardinalitas dari soal diatas pada kotak yang telah disediakan. Sebagai catatan, entitas, atribut, dan atribut kunci dapat menggunakan hasil identifikasi yang telah dikerjakan pada modul 1.
H a l 19
Relationship/Relasi Bagian 4 Kegiatan penjualan kue ala Ananda Brownis ini dilakukan di outlet penjualan. Ananda Brownis memiliki beberapa tempat penjualan (outlet) , yaitu: a. (Kode Outlet: ABR) AB Rancabolang, Jl. Rancabolang No. XX Bandung, Tlp: 022-70777077 b. (Kode Outlet: ABC) AB Cikawao, Jl. Cikawao No.II, Tlp: 022-41924192 c. (Kode Outlet: ABT) AB Ters. Jakarta, Jl.Ters. Jakarta No.V, Tlp : 022-41934193 d. (Kode Outlet: ABP) AB Paskal, Jl. Pasir Kaliki Ruko Paskal Hyper Square Blok A, Tlp : 022-4194 4194 e. (Kode Outlet: ABD) AB Djuanda, Jl. Ir. H. Djuanda No. XX, Tlp : 022-41954195 Setiap outlet perlu dievaluasi jumlah penjualannya. Dengan data tersebut, dapa digunakan sebagai pelaporan jumlah penjualan setiap outlet ke pemilik Ananda Brownis. Pada awalnya, cara melakukan rekapitulasi transaksi adalah dengan memindahkan data dalam nota penjualan ke dalam kolom-kolom pada format excel. Berikut contoh rekapitulasi transaksi. No.Nota
Tgl
J0008
1 Januari 2013
J0009
1 Januari 2013
J0010
5 Januari 2013
J0011
25 Januari 2013
J0011
5 Februari 2013
Kode Barang BLUE CHCR COMA ORIG BABZ BLUE CHCR CHRL CHCR CHST ORIG
Nama Blueberry Cheese Cream Choco Marble Original Banana Bizz Blueberry Cheese Cream Cheese Roll Cheese Cream Cheese Stick Original
Harga Satuan 32,000 52,000 30,000 26,000 30,000 32,000 52,000 37,000 52,000 27,000 26,000
Jumlah 3 10 2 4 4 4 2 1 2 1 1
Sub Total 96,000 520,000 60,000 104,000 120,000 128,000 104,000 37,000 104,000 27,000 26,000
Total Penjualan 676,000
Disco unt 10%
352,000
10%
316,800
141,000
0%
141,000
131,000
0%
131,000
26,000
0%
26,000
Total Bayar 608,400
2.3.1.5 Pengamatan 1. Gambarkan entitas, atribut, atribut kunci, relasi, dan kardinalitas dari soal diatas pada kotak yang telah disediakan. Sebagai catatan, entitas, atribut, dan atribut kunci dapat menggunakan hasil identifikasi yang telah dikerjakan pada modul 1.
H a l 20
Relationship/Relasi 2. Jika ingin ditambahkan entitas karyawan yang terdaftar dari masing-masing outlet, dimana entitas karyawan ini memiliki atribut, nik,nama dan alamat serta kode manager. Sesuaikan hasil pengamatan nomor 1. Gambarkan lengkap beserta relasi dan kardinalitasnya.
3. Terapkan lah unary relationship untuk menggambarkan relasi baru yaitu manager (karyawan) yang membawahi karyawan lain. Gambarkan hanya entitas yang terlibat pada kotak di bawah ini.
H a l 21
Relationship/Relasi 2.3.1.6 Pengamatan Berdasarkan studi kasus “Ananda Brownis” dari soal bagian 1 sampai dengan 4, silahkan gabungkan hasil analisis dari masing-masing bagian sehingga terbentuk satu ER-Diagram lengkap studi kasus “ananda Brownis”.
H a l 22
Relationship/Relasi Identifikasi Relasi 2.3.2.1 Soal 2 Pada modul 1 telah kita pelajari ‘Suryo Finance’. Identifikasi kembali kasus tersebut dan tentukan relasinya. Berikut adalah studi kasus ‘Suryo Finance’: Terdapat sebuah lembaga keuangan Suryo Finance. Salah satu layanan Suryo Finance kepada nasabah adalah modal usaha kecil. Setiap anggota yang meminjam akan mendapatkan kartu angsuran untuk mengontrol pembayaran setiap bulannya. Berikut adalah bentuk kartu kontrol angsuran suryo finance. Sebagai catatan bahwa angsuran pembayaran dapat dilakukan karena adanya transaksi peminjaman. Amatilah kemudian identifikasi entitas, entitas lemah, atribut, dan atribut kunci nya. Berikut adalah salah satu contoh kartu control angsuran Suryo Finance. SURYO FINANCE KARTU KONTROL ANGSURAN No.Member : No Pinjaman : Nama Member : Alamat : Total Pinjaman : Durasi pinjaman : Besar Angsuran : Tanggal
No bukti pembayaran
73083 P234 Warda Nimuh Cienteung Dayeuhkolot 12.000.000 24 bulan minimal 100.000 Jumlah Pembayaran
Petugas
Manager suryo finance Jundi suryo
2.3.2.2 Pengamatan Gambarkan entitas, atribut, atribut kunci, relasi, dan kardinalitas dari soal diatas pada kotak yang telah disediakan. Sebagai catatan, entitas, atribut, dan atribut kunci dapat menggunakan hasil identifikasi yang telah dikerjakan pada modul 1.
H a l 23
Relationship/Relasi
2.4 TEST AKHIR Bagian 1 Terdapat sebuah UKM (Unit Kegiatan Mahasiswa) dilingkungan kampus bernama ‘MARKAZ SOSIAL’ bergerak dibidang kegiatan sosial ke sekitar lingkungan kampus. UKM ini memiliki program sosial. Adapun contoh program sosial yang sudah diprogramkan adalah semur (sembako murah), tanam pohon, advokasi pendidikan, dan layanan kesehatan gratis. Setiap program yang dilakukan memerlukan dana yang tidak sedikit sehingga dibutuhkan perencanaan anggaran yang matang. Setiap awal tahun UKM selalu membuat RAB (Rencana Anggaran Biaya) dari setiap program yang akan dilaksanakan. Berikut adalah contoh RAB untuk beberapa program yang dilaksanakan oleh UKM.
H a l 24
Relationship/Relasi Rencana Anggaran Biaya UKM Markaz Sosial No Program Nama Program Kategori Program TGL Pelaksanaan Program NO.RAB 101 102 103
: P024 : Pemilihan Pengurus 2013 : Internal : 03-Mar-13
Nama Anggaran Sewa peralatan dan perlengkapan Dokumentasi Promosi Total Anggaran Program
Total Anggaran Rp. 2.500.000,Rp. 50.000,Rp. 500.000,Rp. 3.050.000,-
Rencana Anggaran Biaya UKM Markaz Sosial No Program Nama Program Kategori Program TGL Pelaksanaan Program NO.RAB 202 203 204
: P025 : Sembako Murah 2013 : Eksternal : 03-April-13
Nama Anggaran Akomodasi Konsumsi Beli sembako Total Anggaran Program
Total Anggaran Rp. 350.000,Rp. 100.000,Rp. 2.500.000,Rp. 2.950.000,-
Pengamatan Gambarkan entitas, atribut, atribut kunci, relasi, dan kardinalitas dari soal diatas pada kotak yang telah disediakan.
H a l 25
Relationship/Relasi Bagian 2 Untuk setiap anggaran yang telah direncanakan dalam RAB akan direalisasikan ke dalam beberapa kegiatan pengeluaran. Berikut adalah contoh rincian pendataan pengeluaran terhadap anggaran yang telah direncanakan. Setiap realisasi pengeluaran menjadi tanggung jawab satu anggota UKM. Setiap anggota UKM akan dicatat nomor keanggotaan, nama, alamat serta nomor telepon. NO. RAB 101
103
Nama Anggaran
No. Realisasi
Tgl Realisasi Pengeluaran
Ket. Realisasi Pengeluaran
Biaya
Sewa Peralatan dan R01 Perlengkapan R02 R03
2-Maret-2013
Sewa kursi
Rp. 500.000
Anggota Penanggung Jawab Aliando
2-Maret-2013 1-Maret-2013
Rp. 100.000 Rp.1.500.000
Frodo Aliando
Promosi
R04
15-Feb-2013
Rp. 240.000
Kenshi
R05
12-Feb-2013
Sewa Audio Sewa Panggung Cetak spanduk Cetak famplet
Rp. 120.000
Kenshi
Pengamatan Gambarkan entitas, atribut, atribut kunci, relasi, dan kardinalitas dari soal diatas pada kotak yang telah disediakan.
H a l 26
Relationship/Relasi Bagian 3 Pembina ukm ‘MARKAZ SOSIAL’ membutuhkan pelaporan sesuai dengan standard akuntansi. Untuk itu, setiap transaksi akan dicatatkan dalam jurnal. Lima akun utama yaitu Harta, Kewajiban, Modal, Pendapatan, dan Beban. Akun-akun yang lain mengacu pada lima akun utama ini. berikut ini adalah beberapa akun dalam akuntansi. Kode Akun 1 11 111 2 3 4 41 411 412 5
Nama Akun Harta Harta Lancar Kas Kewajiban Modal Pendapatan Pendapatan organisasi Donasi Iuran Beban
51
Pengeluaran anggaran
Header Akun 1 11
4 41 41
5
Pada saat terjadi realisasi pengeluaran akan melakukan pencatatan jurnal akuntansi. Berikut contoh pencatatan jurnal akuntansi: Tgl 2-Maret-2013 2-Maret-2013 1-Maret-2013 15-Feb-2013 12-Feb-2013
Kode Akun 51 111 51 111 51 111 51 111 51 111
Nama Akun Pengeluaran Anggaran Kas Pengeluaran Anggaran Kas Pengeluaran Anggaran Kas Pengeluaran Anggaran Kas Pengeluaran Anggaran Kas
Debet 500.000
Kredit
Keterangan Sewa Kursi
500.000 100.000
Sewa Audio 100.000
1.500.000
Sewa Panggung 1.500.000
240.000
Cetak spanduk 240.000
120.000
Cetak famplet 120.000
Pengamatan Gambarkan entitas, atribut, atribut kunci, relasi, dan kardinalitas dari soal diatas pada kotak yang telah disediakan.
H a l 27
Relationship/Relasi
Pengamatan Berdasarkan studi kasus “Ananda Brownis” dari soal bagian 1 sampai dengan 4, silahkan gabungkan hasil analisis dari masing-masing bagian sehingga terbentuk satu ER-Diagram lengkap studi kasus “ananda Brownis”.
Lain-lain 1. Kumpulkan jawaban anda kepada para asisten sebelum praktikum diakhiri. 2. Keterlambatan atas pengumpulan modul praktikum sanksinya adalah nilai modul praktikum ini nol (0).
H a l 28
Spesialisasi-Generalisasi dan Agregasi
3
BAB III SPESIALISASI-GENERALISASI DAN AGREGASI
3.1 IDENTITAS Kajian ER-Diagram Topik 1. Spesialisasi - generalisasi 2. Agregasi Referensi 1. Bagui, S., R. Earp; Database Design Using Entity Relationship Diagrams. Auerbach Publications, 2003. 2. Sakkirajan, Suathi; Fundamental of Relational Database Management Systems. Tamil Nadu, India: Springer, 2007. 3. Basis Data Kompetensi Utama 1. Mampu memahami kebutuhan dan penerapan spesialisasi dan generalisasi 2. Mampu memahami kebutuhan dan penerapan generalisasi 3. Mampu mengidentifikasi dan menerapkan dengan benar penggunaan spesialisasi dan generalisasi dari suatu bisnis proses tertentu 4. Mampu mengidentifikasi dan menerapkan dengan benar penggunaan agregasi dari suatu bisnis proses tertentu Lama Kegiatan Praktikum 1. Pertemuan Terbimbing : 1 x 120 menit 2. Kegiatan Mandiri : 2 x 120 menit Parameter Penilaian 1. Tes Awal 30% 2. Jurnal Pengamatan 30% 3. Tugas Akhir 40%
H a l 29
Spesialisasi-Generalisasi dan Agregasi 3.2 PERTANYAAN PENDAHULUAN Kerjakan tugas pendahuluan ini, jika sudah selesai, kumpulkan kepada asisten anda. Waktu pengerjaan maksimal 20 menit. Kerjakan dengan tulisan tangan dan ballpoint berwarna. 1. Apakah yang anda ketahui tentang generalisasi-spesialisasi? 2. Gambarkan dengan konsep generalisasi dan spesialisasi entitas entitas berikut ini a. Entitas : Karyawan , karyawan tetap, karyawan kontrak b. Customer: Retail,distributor,reseller. 3. Apakah yang anda ketahui tentang agregasi ? Berikan satu contoh potongan gambar ER yang mengandung agregasi ! 3.3
PRAKTIK
Spesialisasi-Generalisasi Pada bagian ini dipelajari mengenai penerapan spesialisasi-generalisasi. 3.3.1.1 Soal operator telekomunikasi Terdapat permasalahan sebagai berikut: Sebuah perusahaan operator mempunyai beberapa layanan, diantaranya prabayar dan pasca bayar. Kedua layanan ini memiliki kesamaan data yang dicatat, yaitu kodetipe layanan dan nama layanan. Perbedaannya layanan pasca bayar mempunyai abonemen sedangkan pra bayar tidak. Perusahaan ini memiliki banyak pelanggan. Setiap pelanggan ketika mendaftarkan satu nomor hp nya akan diminta noktp, nama dan alamat. Pelanggan boleh memilih salah satu tipe layanan, apakah pra bayar atau pasca bayar. Setiap Pelanggan bebas menggunakan pulsa nya untuk melakukan berbagai macam aktivitas yang berhubungan dengan pemanfaatan pulsa. Aktivitas tersebut dapat berupa sms, penggunaan data, penggunaan voice. Setiap aktivitas tersebut terdapat pencatatan data yang berbeda-beda. Untuk aktivitas sms data yang dicatat adalah idsms dan tarifsms. Aktivitas data yang dicatat adalah iddata, tarifdata, dan quota. Untuk aktivitas voice data yang dicatat adalah idvoice, jenispanggilan, dan waktu. Satu pelanggan dapat melakukan ketiga ativitas tersebut dan satu pelanggan dapat menggunakan aktivitas yang sama berulang kali. buatlah ER diagram diatas gunakan konsep generalisasi - spesialisasi 3.3.1.2 Langkah Penyelesaian 1. Penentuan atribut entitas relasi No Nama entitas Atribut 1 Pelanggan Nohp,no_ktp,nama,alamat 2 Tipe layanan Kodetipelayanan 3. Pascabayar Kodetipelayanan,abonemen 4. Prabayar Kodetipelayanan 5. Voice Idvoice,jenispanggilan,waktu 6. Sms Idsms,tarifsms 7. Data Iddata,tarifdata,quota
Relasi/genspec Binary Genspec Genspec Genspec Binary Binary Binary
H a l 30
Spesialisasi-Generalisasi dan Agregasi 2. Penggambaran relasi genspec Setelah teridenfikasi semua entitas,relasi dan atribut maka buatlah ER diagram, gambarlah dengan tools atau tulisan tangan. Pelanggan n
Memilih
Prabayar
1 Tipe layanan
IS A
PascaBayar
3. Lanjutkan dengan menggambar relasi entitas ,dan relasi yang lain. Jangan lupa menambahkan kardinalitas relasi. Voice memakai
n
n n Pelanggan n
n memakai
SMS
Memilih
Prabayar
1
n memakai
Data
Tipe layanan
IS A
PascaBayar
4. Lengkapi dengan atributnya . 3.3.1.3 Solusi Lengkap #Id_voice
Jenis _panggilan #No_hp waktu
Voice
No_ktp
memakai
n
n
nama
n Pelanggan
#idsms
alamat
n
n memakai
SMS
Tarif_per_sms
Memilih
Prabayar
#Id_data
1 IS A
n memakai
Tipe layanan
Data
Tarif _data
quota
#Kode_tipe_layanan
PascaBayar
Abonemen
H a l 31
Spesialisasi-Generalisasi dan Agregasi 3.3.1.4 Pengamatan Lakukan pengamatan pada ER Diagram dan kerjakan soal dibawah ini 1. Apabila ditambahkan satu tipe layanan bernama ‘combo’ dimana pelanggan bisa melakukan switch sesuai keinginan apakah akan berada pada mode prabayar atau pascabayar bagaimana cara menggambarkannya ? Gambarkan hanya entitas yang berubah atas jawaban dari hasil pengamatan
2. Untuk setiap pemakaian data ,voice dan sms maka harus dicatat informasi tanggal dan status pemakaian , tambahkan atribut untuk mencover kebutuhan tersebut ! Gambarkan hanya entitas yang terpengaruh dari soal ini.
3.3.1.5 Soal Ananda Brownis Berikut adalah soal Ananda Brownis seperti yang dikerjakan pada modul 1 dan 2 dengan modifikasi soal pada beberapa bagian. Bagian 1 Sebuah perusahaan yang bergerak dibidang bakery, bernama Ananda Brownis, menjual berbagai dua jenis kue yaitu kue basah dan kue kering. Kue-kue ini memiliki harga beragam mulai dari 20.000 sampai 50.000 rupiah. Perbedaan kue basah dan kue kering terletak pada jangka waktu expired-nya dimana kue basah 3 hari sedangkan kue kering dapat bertahan hingga 3 bulan. Berikut ini makanan yang dijual di perusahaan ini.
H a l 32
Spesialisasi-Generalisasi dan Agregasi Jenis Kue Kue Basah
Kue Kering
Kode Kue ORIG BABZ BLUE CHCR COMA GREE PINK SRKY TRMS KTBK PNBT BLCK BLKJ BAKR BDUO CHRL CHST SWST
Nama Kue Brownies Original Brownies Banana Bizz Brownies Blueberry Brownies Cheese Cream Brownies Choco Marble Brownies Green Marble Brownies Pink Marble Brownies Sarikaya Pandan Brownies Tiramisu Marble Cake Ketan Bakar Peanut Butter Pisang Bolen Cokelat Pisang Bolen Keju Brownies Bakar Bangket Duo Cheese Roll Cheese Stick Sweet Stick
Harga Satuan 26.000,30.000,32.000,52.000,30.000,32.000,30.000,30.000,32.000,26.000,28.000,28.000,28.000,28.000,20.000,37.000,27.000,24.000,-
3.3.1.6 Solusi Lengkap Kode_Jenis_Kue
Nama_Jenis_Kue
Kode_Kue
Jenis_Kue
1
Jangka_expired
n memiliki
Kue
Nama_kue
harga_kue
3.3.1.7 Soal Ananda Brownis Lanjutan Bagian 2 Cara penjualan kue-kue ini dilakukan di outlet penjualan Ananda Brownis. Penjualan ke pembeli dilakukan secara tunai dan kredit. Penjualan kredit hanya berlaku untuk penjualan diatas 5 juta rupiah. Pada penjualan tunai maupun kredit data yang dicatat adalah nomor nota, tanggal transaksi penjualan, barang (kue) yang dibeli, jumlah beli dan total penjualan. Namun terdapat perbedaan pencatatan data pada penjualan kredit dan tunai. Terdapat penambahan pencatatan data waktu jatuh tempo dan ketentuan pembayaran. Untuk penjualan tunai terdapat data diskon yang tidak terdapat dalam penjualan kredit. Khusus untuk penjualan kredit, data mengenai pelanggan harus dicatat. Data pelanggan yang dicatat antara lain adalah kode pelanggan, nama, alamat, nomor telpon, dan nomor ktp. Satu pelanggan dapat tercatat pada lebih dari satu transaksi penjualan kredit. Satu nota penjualan kredit hanya berlaku untuk satu pelanggan. Penjualan tunai dan kredit menghasilkan bukti penjualan berupa nota. Berikut contoh nota penjualan tunai dan kredit.
H a l 33
Spesialisasi-Generalisasi dan Agregasi NOTA PENJUALAN TUNAI No.Nota Tgl
NOTA PENJUALAN TUNAI
J0008 1 Januari 2013
No.Nota Tgl
Kode Barang Nama BLUE Blueberry CHCR Cheese Cream COMA Choco Marble
Harga Satuan 32,000 52,000 30,000
Jumlah Sub Total 3 96,000 10 520,000 2 60,000
J0009 1 Januari 2013
Kode Barang Nama ORIG Original BABZ Banana Bizz BLUE Blueberry
Total Penjualan 676,000 Discount 10% Total Bayar 608,400
NOTA PENJUALAN TUNAI
J0010 5 Januari 2013
No.Nota Tgl
Kode Barang Nama CHCR Cheese Cream CHRL Cheese Roll
Harga Satuan 52,000 37,000
Jumlah Sub Total 4 104,000 4 120,000 4 128,000
Total Penjualan 352,000 Discount 10% Total Bayar 316,800
NOTA PENJUALAN TUNAI No.Nota Tgl
Harga Satuan 26,000 30,000 32,000
J0011 25 Januari 2013
Jumlah Sub Total Kode Barang Nama 2 104,000 CHCR Cheese Cream 1 37,000 CHST Cheese Stick
Total Penjualan 141,000 Discount 0% Total Bayar 141,000
Harga Satuan 52,000 27,000
Jumlah Sub Total 2 104,000 1 27,000
Total Penjualan 131,000 Discount 0% Total Bayar 131,000
NOTA PENJUALAN KREDIT No.Nota Tgl Kode Pelanggan Nama Pelanggan
: J0015 : 28 Januari 2013 : P02 : Nori
Kode Barang BAKR CHRL CHST
Nama Brownies Bakar Cheese Roll Cheese Stick
Harga Satuan 28,000 37,000 27,000
Jumlah
Subtotal 2,800,000 3,700,000 2,700,000
Total Penjualan
9,200,000
100 100 100
Waktu Jatuh Tempo : 28 Maret 2013 Ketentuan Pembayaran:
3.3.1.8 Pengamatan Gambarkan entitas, atribut, atribut kunci, relasi, dan kardinalitas dari soal diatas pada kotak yang telah disediakan. Identifikasi superclass dan subclass dengan menggunakan generalisasi-spesialisasi.
H a l 34
Spesialisasi-Generalisasi dan Agregasi
Bagian 3 Pada saat terjadi pembayaran untuk penjualan kredit akan menghasilkan bukti transaksi berupa kuitansi pembayaran. Pada kuitansi pembayaran data yang tercatat adalah nomor kuitansi, nomor nota penjualan, tgl bayar, jumlah bayar, sisa bayar, dan tanggal jatuh tempo. KUITANSI PEMBAYARAN
KUITANSI PEMBAYARAN No.Kuitansi No.Nota
No.Kuitansi No.Nota
: KW01 : J0015
Jumlah Bayar : Rp. 5,000,000,Terbilang : Lima juta rupiah Sisa Bayar : Rp. 5,000,000,Tanggal jatuh tempo : 28 April 2013 Bandung, 20 Maret 2013 Penerima pembayaran: Ttd Melati
: KW10 : J0015
Jumlah Bayar : Rp. 4,200,000,Terbilang : Empat juta dua ratus ribu rupiah Sisa Bayar : Rp. 0,Tanggal jatuh tempo : Bandung, 20 Maret 2013 Penerima pembayaran: Ttd Melati
3.3.1.9 Pengamatan Gambarkan entitas, atribut, atribut kunci, relasi, dan kardinalitas dari soal diatas pada kotak yang telah disediakan.
H a l 35
Spesialisasi-Generalisasi dan Agregasi
Agregasi Kasus ini merupakan pengembangan dari kasus gen-spec pada soal operator telekomunikasi. Akan dipelajari penerapan agregasi untuk memecahkan kasus pada soal. 3.3.2.1 Soal Lanjutan soal no 1, ditemukan tambahan fakta terkait dengan perusahaan operator diatas yang harus dimasukkan dalam penyusunan diagram ER. Pelanggan yang bisa memakai layanan voice, sms dan data hanyalah pelanggan yang sudah melakukan pembayaran tipe layanan baik yang prabayar, pasca bayar. 3.3.2.2 Langkah Penyelesaian 1. Penentuan kembali atribut entitas data yang berubah No Nama entitas Atribut 1 Pelanggan Nohp, no_ktp, nama, alamat 2 Tipe layanan Kodetipelayanan 3. Pascabayar Kodetipelayanan, abonemen 4. Prabayar Kodetipelayanan
Relasi/genspec Agregasi Genspec Genspec Genspec
2. Gambarkan ulang ER diagram dengan penyesuaian agregasi diatas, potongan bagian agregasi
H a l 36
Spesialisasi-Generalisasi dan Agregasi
Pelanggan n
membayar
Prabayar
1 Tipe layanan
IS A
combo
PascaBayar
3. Lalu Gambarkan semua entitas ,relasi yang terkait dan kardinalitas serta atributnya.
3.3.2.3 Solusi Lengkap
#Id_voice
Jenis_panggilan #No_hp waktu
n Voice
memakai
No_ktp
n nama
Pelanggan
n
#idsms
alamat
n
n memakai
SMS
Tarif _per _sms
membayar
Prabayar
#Id_data
1 combo
Tipe layanan
IS A
n
n memakai
Data
Tarif_data
quota #Kode_tipe_ layanan
PascaBayar
Abonemen
H a l 37
Spesialisasi-Generalisasi dan Agregasi 3.3.2.4 Soal Ananda Brownis Lanjutan Bagian 4 Untuk meningkatkan pelayanan, Ananda brownis memberlakukan retur (pengembalian barang) untuk kue yang telah terjual dan terjadi kerusakan pada segel. Retur dapat dilakukan selambat-lambatnya dua hari dari tanggal pembelian dengan syarat harus menunjukkan nota penjualan. Data yang dicatat pada saat terjadi retur antara lain adalah nomor retur, tanggal retur, nomor nota penjualan, nama barang yang di retur, dan jumlah yang diretur. Berikut contoh pencatatan retur kue yang telah terjual. BUKTI RETUR No.Retur Tanggal Retur No.Nota Kode Barang CHRL CHST
: R02 : 1 Maret 2013 : J0015 Nama Barang Cheese Roll Cheese Stick
Jumlah Retur 2 1
3.3.2.5 Pengamatan Gambarkan entitas, atribut, atribut kunci, relasi, dan kardinalitas dari soal diatas pada kotak yang telah disediakan.
3.3.2.6 Pengamatan Berdasarkan studi kasus “Ananda Brownis” dari soal bagian 1 sampai dengan 4, silahkan gabungkan hasil analisis dari masing-masing bagian sehingga terbentuk satu ER-Diagram lengkap studi kasus “ananda Brownis” pada modul ini.
H a l 38
Spesialisasi-Generalisasi dan Agregasi
3.4 TEST AKHIR Terdapat perpustakaan bernama ‘Suka Baca’ yang memiliki dua jenis koleksi perpustakaan. Koleksi yang dimiliki oleh perpustakaan ini antara lain adalah koleksi buku dan koleksi majalah. Terdapat kesamaan pencatatan data pada kedua jenis koleksi tersebut. Kesamaan pencatatannya adalah kode_koleksi, tanggal penerimaan koleksi, judul buku, harga, jumlah eksemplar, dan penerbit. Namun terdapat perbedaan pencatatan data dari kedua koleksi tersebut. Pada jenis koleksi buku dicatat pengarang sedangkan pada koleksi majalah dicatat volume tahun, periode bulan, dan nama agen. Perpustakaan ‘Suka Baca’ adalah perpustakaan umum yang meminjamkan koleksinya kepada warga sekitar. Untuk bisa melakukan peminjaman, warga harus terdaftar sebagai member tetap perpustakaan. Seorang warga dapat melakukan peminjaman koleksi berulang kali dengan syarat sudah mengembalikan koleksi yang dipinjam sebelumnya. Berikut adalah bentuk kartu membernya.
H a l 39
Spesialisasi-Generalisasi dan Agregasi KARTU MEMBER PERPUSTAKAAN ‘SUKA BACA’ Id_member Nama Alamat No.ktp Tempat/Tgl Lahir Jenis_Kelamin
: M101 : Nono : Pasar MInggu : 12345 : Paris/01 Januari 1994 : Laki-laki Manajer Perpustakaan ‘Suka Baca’ Dadang Markidang
Perpustakaan ini memiliki karyawan yang bertugas, salah satu tugasnya adalah mencatat apabila terjadi peminjaman koleksi perpustakaan. Jumlah maksimal peminjaman koleksi adalah tiga. Berikut adalah Bukti peminjaman buku. BUKTI PEMINJAMAN PERPUSTAKAAN ‘SUKA BACA’ PEMINJAMAN No.Pinjam Tgl ID Koleksi 1. B101 2. M101 3. B202
: P101 : 12 Januari 2015 Judul Koleksi Matahari Terbit Majalah Kesehatan Habis Gelap Terjadilah Hujan
MEMBER ID_member Nama
: M101 : Nono
Buku-buku tersebut WAJIB dikembalikan maksimal 3 hari setelah waktu peminjaman. Petugas Cecep Gorbacep NIP. CEP
Perpustakaan ini memiliki ketentuan dalam hal pengembalian koleksi. Koleksi yang telah dipinjam dalam satu transaksi peminjaman koleksi boleh dikembalikan satu persatu (tidak secara bersamaan). Sehingga untuk satu transaksi pinjam memiliki lebih dati satu transaksi pengembalian koleksi. Berikut adalah contoh bukti pengembalian koleksi. BUKTI PENGEMBALIAN PERPUSTAKAAN ‘SUKA BACA’ PENGEMBALIAN No.Kembali No.Pinjam Tgl Kembali
ID Koleksi 1. B101
: K101 : P101 : 14 Januari 2015
MEMBER ID_member Nama
: M101 : Nono
Judul Koleksi Matahari Terbit Petugas Cecep Gorbacep NIP. CEP
H a l 40
Spesialisasi-Generalisasi dan Agregasi Pengamatan Berdasarkan studi kasus “Perpustakaan Suka Baca” Buatlah ER diagram dengan menggunakan konsep Generalisasi-spesialisa dan Agregasi . (clue : temukan 1 genspec dan 1 agregasi) dari soal bagian 1 sampai dengan 4, silahkan gabungkan hasil analisis dari masing-masing bagian sehingga terbentuk satu ER-Diagram lengkap studi kasus “ananda Brownis” pada modul ini.
Lain-lain 3. Kumpulkan jawaban anda kepada para asisten sebelum praktikum diakhiri. 4. Keterlambatan atas pengumpulan modul praktikum sanksinya adalah nilai modul praktikum ini nol (0).
H a l 41
Memetakan ER-Diagram ke Dalam Tabel, Skema Relasi, dan Diagram Relasi Antar Tabel
4
BAB IV MEMETAKAN ER-DIAGRAM KE DALAM TABEL, SKEMA RELASI, DAN DIAGRAM RELASI ANTAR TABEL
4.1 IDENTITAS Kajian ER-Diagram Topik 1. Memetakan ER-Diagram ke Dalam Tabel 2. Skema Relasi 3. Diagram Relasi Antar Tabel Referensi 1. Bagui, S., R. Earp; Database Design Using Entity Relationship Diagrams. Auerbach Publications, 2003. 2. Sakkirajan, Suathi; Fundamental of Relational Database Management Systems. Tamil Nadu, India: Springer, 2007. 3. Basis Data Kompetensi Utama 1. Menguasai seluruh aturan pemetaan dari komponen-komponen E-R diagram menjadi tabel dan diterapkan ke dalam relational database 2. Mampu memetakan E-R diagram menjadi tabel-tabel dengan benar 3. Mampu membuat skema relasi dengan benar dari E-R diagram tertentu 4. Mampu membuat diagram relasi antar tabel dengan benar dari E-R diagram tertentu. Lama Kegiatan Praktikum 1. Pertemuan Terbimbing : 1 x 120 menit 2. Kegiatan Mandiri : 2 x 120 menit Parameter Penilaian 1. Tes Awal 30% 2. Jurnal Pengamatan 30% 3. Tugas Akhir 40%
H a l 42
Memetakan ER-Diagram ke Dalam Tabel, Skema Relasi, dan Diagram Relasi Antar Tabel 4.2 PERTANYAAN PENDAHULUAN Kerjakan satu pekan sebelum praktikum dan kumpulkan maksimal satu jam sebelum praktikum . Dalam kertas dan tulisan tangan.
1. Apa itu primary key dan apa itu foreign key , berikan contoh transformasi primary key dan foreign 2.
3. 4. 5. 4.3
key dari ER ke table? Buatlah resume aturan transformasi dari ER ke tabel dengan tulisan tangan meliputi aturan : a. Transformasi entitas kuat,entitas lemah b. Transformasi composite,multivalued,derived atribut c. Transformasi dari kardinalitas relasi one to one,one to many, dan many to many d. Transformasi generalisasi-specialisasi dan agregasi e. Transformasi unary dan ternary relashionship Apakah yang anda ketahui tentang skema relasi ? Apa yang anda ketahui tentang diagram relationship? Apakah terdapat perbedaan aturan transformasi ER-Diagram ke skema relasi dengan transformasi ke tabel ? berikan contoh sederhana ! PRAKTIK
1. 2. 3.
Transformasi ER ke Tabel, Skema Relasi, dan Diagram Relationsihp Pada bagian ini akan dipelajari transformasi ER ke Tabel untuk berbagai jenis ER yang mengandung: Entitas dan berbagai jenis atribut Relasi binary, unary ,ternary dan kardinalitas Gen-spec dan agregasi Membuat skema relasi Membuat diagram relasi antar tabel ERD 1 – Kasus Kursus
4.3.2.1 Soal Perhatikan ER diagram berikut ini dan selesaikan tugas di bawah ini: 1. Buatlah tabel sesuai dengan ER-Diagram 2. Buatlah skema relasi sesuai dengan ER-Diagram 3. Buatlah diagram relasi antar tabel sesuai dengan ER-Diagram
H a l 43
Memetakan ER-Diagram ke Dalam Tabel, Skema Relasi, dan Diagram Relasi Antar Tabel alamat nama Tgl_lahir kompetensi No_telp
nama_kategori
No_telp
Id_Pengajar
keterangan Id_kategori
Tenaga_Pengajar 1
Kategori Kursus 1
Tgl_daftar
Mengajar
Jadwal
nama_kursus
Id_kursus
Lokasi
memiliki
Kapasitas Status_pembayaran
biaya
Id_Pendaftaran
keterangan n
Id_ruang
n
Kursus
1
n
mendaftar
Pendaftaran_kursus
n
menempati
1
Ruang_Kursus
n alamat
Pendidikan_terakhir
nama
Tgl_lahir
Id_peserta
memilih
No_telp
Peserta_kursus
1
4.3.2.2 Pembahasan 5. Berikut adalah hasil tabel yang terbentuk berdasarkan ER-Diagram diatas: a. Kategori_kursus Id_kategori Nama_kategori Keterangan b. Kursus Id_kursus Nama_kursus keterangan Biaya @Id_kategori Pada tabel diatas, kolom id_kategori muncul sebagai foreign key karena adanya relasi satu ke banyak dengan entitas kategori_kursus.
H a l 44
Memetakan ER-Diagram ke Dalam Tabel, Skema Relasi, dan Diagram Relasi Antar Tabel c. Tenaga_pengajar Id_pengajar Nama alamat Tgl_lahir Pada tabel ini untuk atrbut kompetensi dan nomor telpon tidak dibuat menjadi kolom karena atribut tersebut merupakan atribut multivalue sehingga harus dibuat tabel baru. d. No_telp_tenaga_pengajar @Id_pengajar No_telp Tabel ini muncul karena no_telp adalah atribut multivalue sehingga harus dibuat sebagai tabel baru. e. Kompetensi_tenaga_pengajar @Id_pengajar Kompetensi Tabel ini muncul karena kompetensi adalah atribut multivalue sehingga harus dibuat sebagai tabel baru. f. Peserta_kursus Id_peserta Nama Alamat Tgl_lahir Pendidikan_terakhir Pada tabel ini sama dengan tenaga_pengajar, untuk atribut no_telp tidak dibuat menjadi kolom karena atribut tersebut merupakan atribut multivalue sehingga harus dibuat tabel baru. g. No_telp_peserta_kursus @Id_peserta No_telp Tabel ini muncul karena no_telp adalah atribut multivalue sehingga harus dibuat sebagai tabel baru. h. Ruang_kursus Id_ruang Lokasi
Jadwal
Kapasitas
i.
Pendaftaran_kursus Id_pendaftaran Tgl_da Status_pem @id_pe @id_peng @id_kursus @id_ruang ftar bayaran serta ajar Pada tabel ini terdapat tiga kolom sebagai foreign key yang muncul akibat adanya relasi dengan entitas tenaga_pengajar, ruang_kursus, peserta_kursus, dan kursus. 6.
Berikut adalah skema relasi berdasarkan ER-Diagram kasus diatas: Kategori_kursus(Id_kategori, nama_kategori, keterangan) Kursus(Id_kursus, nama_kursus, keterangan, biaya, @id_kategori) Tenaga_pengajar(id_pengajar, nama_alamat, tgl_lahir) No_telp_tenaga_pengajar(@id_pengajar, no_telp) Kompetensi_tenaga_pengajar(@id_pengajar, kompetensi) Peserta_kursus(id_peserta, nama, alamat, tgl_lahir, pendidikan_terakhir) No_telp_peserta_kursus(@id_peserta, no_telp) Ruang_kursus(id_ruang, lokasi, jadwal, kapasitas) Pendaftaran_kursus(id_pendaftaran, tgl_daftar, status_pembayaran, @id_peserta, @id_pengajar, @id_kursus, @id_ruang)
H a l 45
Memetakan ER-Diagram ke Dalam Tabel, Skema Relasi, dan Diagram Relasi Antar Tabel 7.
Berikut adalah diagram relasi antar tabel berdasarkan ER-Diagram Kursus:
4.3.2.3 Soal Perhatikan ER diagram berikut ini dan selesaikan tugas di bawah ini: 1. Buatlah tabel sesuai dengan ER-Diagram 2. Buatlah skema relasi sesuai dengan ER-Diagram C1 D1 C2 D2 C3
D
C
D3 E1
1
1
D4
E2 R3
R2 E
A1
R11
F1 A2 F
ISA
n
n
F2
n
A
m
R1
B1
B
B
F3 n
n G1
L1
m
G
R5
R4
L
L2
G2
H
H2
R61
1
H1
R6
1
n
R81
L3
m R8
I
M1 n
I1
1
H3
I2
M
M2
J1 n
I3 R7
J2
hobby I5
M3 I31
I4
J
I6
I32
J3 n
I33 K1
Tanggungan K
I34 K2
H a l 46
Memetakan ER-Diagram ke Dalam Tabel, Skema Relasi, dan Diagram Relasi Antar Tabel 4.3.2.4 Solusi 1. Mulailah dari entitas, transformasikan semua entitas menjadi tabel. Maka disana akan ditemui 9 tabel hasil entitas tunggal yaitu A,B,C,D,H,I,J,M,L, untuk entitas yang mendapatkan relasi one to many maka foreign key ikut ke yang kardinalitas lebih tinggi (ikut ke n) 1 tabel hasil entitas lemah yaitu K 3 tabel hasil entitas generalisasi-spesialisasi yaitu E,F,G 2. Lanjutkan dengan transformasi semua relasi termasuk spesialisasi, maka akan didapatkan 1 tabel hasil spesialisasi yaitu R1 1 tabel hasil relasi many to many yaitu R6 1 tabel hasil relasi ternary yaitu R8 3. Teruskan dengan memperhatikan transformasi atribut dihasilkan 1 tabel hasil multivalued atribut yaitu I5 Total ada 17 tabel 4.3.2.5 Pengamatan 1. Gambarkan semua tabel yang sudah di uraikan pada bagian solusi. Perhatikan pemetaan ER – diagram ke tabel dengan memperhatikan aturan pemetaannya.
H a l 47
Memetakan ER-Diagram ke Dalam Tabel, Skema Relasi, dan Diagram Relasi Antar Tabel
H a l 48
Memetakan ER-Diagram ke Dalam Tabel, Skema Relasi, dan Diagram Relasi Antar Tabel
2. Skema relasi sesuai dengan pemetaan ER-Diagram menjadi tabel dibuat pada kotak di bawah ini.
H a l 49
Memetakan ER-Diagram ke Dalam Tabel, Skema Relasi, dan Diagram Relasi Antar Tabel 4.4 TEST AKHIR Terdapat ER-Diagram berikut ini untuk menangani pengadaan barang pada suatu organisasi: Goods
price
1 Goods_id
N
N
Consist of
1
1 Requirements
amount date
price
GRdet_id
Shipping_terms
Consist of
PO_id
N
Purchase_Orders_de N tail
N Consist of
1
Supplier_id
Podet_id
Reqdet_id
Requirements _detail
Req_id
address
Current_stock
Consist of
Req_status amount
Name_description
N
Consist of
PO_status
Consist of
company_name
Suppliers
contact
Supplier_name
Accounting_transaction
PO_date Delivery_date
N
Consist of
Dr/cr
ISA
N
Account
Account_id
name
PO_status
Payment_term
amount
amount
Transaction_id
1 Purchase Orders
Delivery_date
Transaction_date
amount
1 Good_receipts_ detail
Consist of
N
amount
Good_receipts
1
N
Consist of
N
Invoice_verification IV_status
Consist of
GR_status
1
N
IV_amount
Consist of
N
Payments total
description
1 PIC
Storage_Location Storage_id
location
contacts
Pengamatan 1. Buatlah skema relasi berdasarkan ER-Diagram diatas.
H a l 50
Memetakan ER-Diagram ke Dalam Tabel, Skema Relasi, dan Diagram Relasi Antar Tabel 2.
Pengamatan Gambarkan Diagram relasi antar tabel dari ER-Diagram pengadaan barang pada kasus diatas.
H a l 51
Memetakan ER-Diagram ke Dalam Tabel, Skema Relasi, dan Diagram Relasi Antar Tabel
Lain-lain 1. Kumpulkan jawaban anda kepada para asisten sebelum praktikum diakhiri. 2. Keterlambatan atas pengumpulan modul praktikum sanksinya adalah nilai modul praktikum ini nol (0).
H a l 52
Key dan Functional Dependency
5
BAB V KEY DAN FUNCTIONAL DEPENDENCIES
5.1 IDENTITAS Kajian Normalisasi Topik 1. Super key,Kandidat Key, Primary Key 2. Identifikasi Functional Dependencies,Partial dan Transitif Functional Dependencies Referensi 1. Bagui, S., R. Earp; Database Design Using Entity Relationship Diagrams. Auerbach Publications, 2003. 2. Sakkirajan, Suathi; Fundamental of Relational Database Management Systems. Tamil Nadu, India: Springer, 2007. 3. Basis Data Kompetensi Utama 1. Menguasai konsep super key, candidate key dan primary key 2. Mampu mengidentifikasi dengan benar super key, candidate key dan primary key dari suatu tabel tertentu 3. Menguasai konsep functional dependency, partial functional dependency dan transitive functional dependency 4. Mampu mengidentifikasi functional dependency, partial dependency dan transitive functional dependency dengan benar dari suatu tabel tertentu. Lama Kegiatan Praktikum 1. Pertemuan Terbimbing : 1 x 120 menit 2. Kegiatan Mandiri : 2 x 120 menit Parameter Penilaian 1. Tes Awal 30% 2. Jurnal Pengamatan 30% 3. Tugas Akhir 40%
H a l 53
Key dan Functional Dependency 5.2 PERTANYAAN PENDAHULUAN Jawablah dikertas kerjakan dengan tulisan tangan . Kumpulkan sebelum praktikum 1. Apakah yang dimaksud dengan: a. Superkey b. Candicate key c. Primary key 2. Apakah yang dimaksud dengan: a. Functional Dependency b. Partial Functional Dependency c. Transitive Functional Dependency 3. Tuliskan rumus dari a. Partial Functional Dependency b. Transitive Functional Dependency 5.3 PRAKTIK Pada bagian ini akan diberikan kasus data tidak normal dari real world. Dengan sejumlah langkah penyelesaian menganalisasi keys dan dependencies Soal I Diketahui sebuah tabel berikut ini. Table JualBeli Barang NoFaktur F-006
TglFaktur 14-Feb-02
F-007
15-Feb-02
F-008
15-Feb-02
F-009
15-Feb-02
KdSupplier NmSupplier KdBarang NmBarang S-001 Andi PS-001 Pensil Warna SP-005 Spidol S-002 Enya PS-001 Pensil Warna PS-002 Pensil Hitam PS-003 Pensil HB S-003 Mandy PS-002 Pensil Hitam SP-005 Spidol S-001 Andi PS-001 Pensil Warna
Harga Rp.500 Rp.3.000 Rp.500 Rp.1.000 Rp.1.500 Rp.1.000 Rp.3.000 Rp.500
Analisislah 1. Superkey,candidate key dan primary key nya 2. Tentukan Full Functional Dependency, Partial Functional Dependency dan Transitive Functional Dependency nya.
H a l 54
Key dan Functional Dependency
1.
2.
3. 4.
5.
Langkah Penyelesaian dan solusi Identifikasi Superkey Superkey adalah tupel yang unik, berisi satu atau sekumpulan atribut dari entitas, jika ditulis semua jumlah superkey dari tabel diatas bisa lebih dari 20, yang ditulis disini hanyalah sampai tiga kombinasi saja. Semua field/kolom adalah superkey (tglfaktur, nofaktur, kdsupplier, nmsupplier, kdbarang, nmbarang, harga) Identifikasi satu field/kolom yang dapat membedakan tuple/baris satu dengan yang lain. Tidak ada yang memenuhi karena semua ada kesamaan Identifikasi kombinasi dua field/kolom yang dapat membedakan tuple/baris satu dengan yang lain (nofaktur, kdbarang) (nofaktur, nmbarang) Identifikasi kombinasi tiga field/kolom yang dapat membedakan tuple/baris satu dengan yang lain. (Tglfaktur, Nofaktur, kdbarang ) (kdsupplier, Nofaktur, kdbarang ) (nmsupplier, Nofaktur, kdbarang ) (tglfaktur, nofaktur, nmbarang) (kdsupplier, nofaktur, nmbarang) (nmsupplier, nofaktur, nmbarang), dsb. Identifikasi candidate key Key yang paling minimal adalah yang terdiri dari dua kolom , yaitu: (nofaktur, kdbarang) (nofaktur, nmbarang) Identifikasi Primary key (nofaktur, kdbarang) karena dianggap paling uniq dan tidak boleh null. Identifikasi functional dependency FD 1 (nofaktur) (tglfaktur) FD 2 (nofaktur) (kdsupplier) FD 3 (nofaktur) (nmsupplier) FD 4 (kdsupplier) (nmsupplier) FD 5 (kdbarang) (nmbarang, harga) FD 6 (nofaktur,kdbarang) (tgl, faktur, kdsupplier, nmsupplier, nmbarang, harga) Identifikasi Full Functional Dependency FD 1 (nofaktur) (tglfaktur) obyek determinan (tglfaktur) tergantung seluruhnya pada determinan (nofaktur) dan obyek determinan (tglfaktur) tidak tergantung sebagian pada determinan (nofaktur) karena determinan (nofaktur) bukan determinan gabungan. FD 2 (nofaktur) (kdsupplier) obyek determinan (kdsupplier) tergantung seluruhnya pada determinan (nofaktur) dan obyek determinan (kdsupplier) tidak tergantung sebagian pada determinan (nofaktur) karena determinan (nofaktur) bukan determinan gabungan.
H a l 55
Key dan Functional Dependency FD 3 (nofaktur) (nmsupplier) obyek determinan (nmsupplier) tergantung seluruhnya pada determinan (nofaktur) dan obyek determinan (nmsupplier) tidak tergantung sebagian pada determinan (nofaktur) karena determinan (nofaktur) bukan determinan gabungan. FD 4 (KdSupplier) (Nmsupplier) obyek determinan (nmsuppllier) tergantung seluruhnya pada determinan (kdsupplier) dan obyek determinan (nmsupplier) tidak tergantung sebagian pada determinan (kdsupplier) karena determinan (kdsupplier) bukan determinan gabungan. FD 5 (KdBarang) (NmBarang, Harga) obyek determinan (nmbarang, harga) tergantung seluruhnya pada determinan (kdbarang) dan obyek determinan (nmbarang, harga) tidak tergantung sebagian pada determinan (kdbarang) karena determinan (kdbarang) bukan determinan gabungan. 6. Identifikasi Partial Functional Dependency FD 6 (nofaktur, kdbarang) (tgl, faktur, kdsupplier, nmsupplier, nmbarang, harga) FD 1,2,3 (nofaktur) (tglfaktur, kdsupplier, nmsupplier) Terdapat partial functional dependency : (tglfaktur, kdsupplier, nmsupplier) tergantung sebagian pada (nofaktur, kdbarang) FD 6 (nofaktur, kdbarang) (tgl, faktur, kdsupplier, nmsupplier, nmbarang, harga) FD 5 (kdbarang) (nmbarang, harga) Terdapat partial functional dependency : (nmbarang, harga) tergantung sebagian pada (nofaktur, kdbarang) 7. Identifikasi Transitive Functional Dependency FD 2,3 (nofaktur) (kdsupplier, nmsupplier) FD 4 (kdsupplier) (nmsupplier) Terdapat transitive functional dependency : (nmsupplier) tergantung kepada (nofaktur) melalui (kdsupplier) Soal Ananda Brownis Lakukan pengamatan untuk mengidentifikasi: 1. Super key, candidate key, dan primary key 2. Full functional dependency, partial functional dependency, dan transitive functional dependency No.Nota
Tgl
J0008
1 Januari 2013
J0009
1 Januari 2013
J0010
5 Januari 2013
J0011
25 Januari 2013
J0011
5 Februari 2013
Kode Barang BLUE CHCR COMA ORIG BABZ BLUE CHCR CHRL CHCR CHST ORIG
Nama Blueberry Cheese Cream Choco Marble Original Banana Bizz Blueberry Cheese Cream Cheese Roll Cheese Cream Cheese Stick Original
Harga Satuan 32,000 52,000 30,000 26,000 30,000 32,000 52,000 37,000 52,000 27,000 26,000
Jum -lah 3 10 2 4 4 4 2 1 2 1 1
Sub Total 96,000 520,000 60,000 104,000 120,000 128,000 104,000 37,000 104,000 27,000 26,000
Total Penjualan 676,000
Disco unt 10%
Total Bayar 608,400
352,000
10%
316,800
141,000
0%
141,000
131,000
0%
131,000
26,000
0%
26,000
H a l 56
Key dan Functional Dependency 5.3.3.1 Pengamatan 1. Catat hasil pengamatan super key (minimal 5) dari kasus Ananda Brownis pada kotak di bawah ini:
2. Catat hasil pengamatan candidate key dari kasus Ananda Brownis pada kotak di bawah ini:
3. Catat hasil pengamatan primary key dari kasus Ananda Brownis pada kotak di bawah ini:
H a l 57
Key dan Functional Dependency 4. Catat hasil pengamatan full functional dependency (FFD) dari kasus Ananda Brownis pada kotak di bawah ini. Full functional dependency yang wajib dibuat adalah semua kombinasi FFD dengan determinan terdiri dari satu kolom, dua kolom dan semua kolom :
5. Catat hasil pengamatan partial functional dependency dari kasus Ananda Brownis pada kotak di bawah ini:
H a l 58
Key dan Functional Dependency
6. Catat hasil pengamatan transitive functional dependency dari kasus Ananda Brownis pada kotak di bawah ini:
5.4 1. 2.
TEST AKHIR Temukan superkey,candidate key dan primary key dari tabel berikut ini Tentukan full functional dependency, partial functional dependency, dan transitive functional dependency
H a l 59
Key dan Functional Dependency No_Bukti Tgl_Bukti Id_Petugas Nm_Petugas ID_Dokt Nm_Dokt Gol_Dokt NB002 1-Apr-12 WWN Wawan DDK Didik Umum NB003
1-Apr-12 WWN
Wawan
INA
Melina
Umum
NB004
1-Apr-12 WWN
Wawan
FLD
Faldi
Spesialis Kulit
NB005
1-Apr-12 WWN
Wawan
HNI
Hani
Spesialis Kandungan
NB006
2-Apr-12 MLI
Meli
RST
Restu
Spesialis Kandungan
Biaya_Periksa KD_Obat Biaya_Obat Total 20,000 OBL201 12,500 57,000 ATB102 24,500 20,000 OBL201 12,500 62,500 OBD302 30,000 50,000 ATB102 24,500 94,500 OBL321 20,000 75,000 VTM012 60,000 210,000 ATB222 30,000 OBD223 45,000 75,000 VTM012 60,000 165,000 ATB222 30,000
1. Catat hasil pengamatan super key (minimal 5) dari kasus Ananda Brownis pada kotak di bawah ini:
2. Catat hasil pengamatan candidate key dari kasus Ananda Brownis pada kotak di bawah ini:
3. Catat hasil pengamatan primary key dari kasus Ananda Brownis pada kotak di bawah ini:
4. Catat hasil pengamatan full functional dependency dari kasus Ananda Brownis pada kotak di bawah ini. Full functional dependency yang wajib dibuat adalah semua kombinasi FFD dengan determinan terdiri dari satu kolom, dua kolom dan semua kolom :
H a l 60
Key dan Functional Dependency
5. Catat hasil pengamatan partial functional dependency dari kasus Ananda Brownis pada kotak di bawah ini:
H a l 61
Key dan Functional Dependency 6. Catat hasil pengamatan transitive functional dependency dari kasus Ananda Brownis pada kotak di bawah ini:
7. Temukan superkey,candidate key dan primary key dari tabel berikut ini Jadwal kursus IT
5.5
LAIN-LAIN 1. Kumpulkan jawaban anda kepada para asisten sebelum praktikum diakhiri. 2. Keterlambatan atas pengumpulan modul praktikum sanksinya adalah nilai modul praktikum ini nol (0).
H a l 62
Normalisasi 1NF sampai BCNF
6
BAB VI NORMALISASI 1ST NF SAMPAI DENGAN BCNF
6.1 IDENTITAS Kajian Normalisasi Topik Normalisasi 1st NF sampai dengan BCNF Referensi 1. Bagui, S., R. Earp; Database Design Using Entity Relationship Diagrams. Auerbach Publications, 2003. 2. Sakkirajan, Suathi; Fundamental of Relational Database Management Systems. Tamil Nadu, India: Springer, 2007. 3. Basis Data Kompetensi Utama 1. Menguasai konsep normalisasi dan tujuan dilakukan normalisasi 2. Mampu mengidentifikasi kemungkinan adanya insert, update dan delete anomaly dari suatu tabel tertentu 3. Menguasai konsep bentuk normal 1st NF, 2nd NF, 3rd NF dan BCNF 4. Mampu melakukan normalisasi bentuk normal 1st NF, 2nd NF, 3rd NF dan BCNF dengan benar dari suatu tabel tertentu. Lama Kegiatan Praktikum 1. Pertemuan Terbimbing : 1 x 120 menit 2. Kegiatan Mandiri : 2 x 120 menit Parameter Penilaian 1. Tes Awal 30% 2. Jurnal Pengamatan 30% 3. Tugas Akhir 40%
H a l 63
Normalisasi 1NF sampai BCNF 6.2 PERTANYAAN PENDAHULUAN Jawablah di kertas dan tulis dengan tulisan tangan. Kumpulkan sebelum praktikum pada asisten anda. 1. Apakah yang dimaksud dengan a. Anomaly pada basis data b. Normalisasi c. Null value 2. Sebutkan dan jelaskan langkah-langkah normalisasi dari 1NF sampai BCNF 6.3
PRAKTIK
Soal I 1. Identifikasi insert anomaly, update anomaly, dan delete anomaly pada tabel di bawah ini! 2. Lakukan proses normalisasi dari 1NF sampai dengan BCNF pada tabel di bawah ini! Laporan Tagihan Pembelian Barang dari Supplier NoFaktur F-006
TglFaktur KdSupplier 14-Feb-02 S-001
F-007
15-Feb-02
S-002
F-008
15-Feb-02
S-003
F-009
15-Feb-02
S-001
NmSupplier KdBarang NmBarang Andi PS-001 Pensil Warna SP-005 Spidol Enya PS-001 Pensil Warna PS-002 Pensil Hitam PS-003 Pensil HB Mandy PS-002 Pensil Hitam SP-005 Spidol Andi PS-001 Pensil Warna
Harga Rp.500 Rp.3.000 Rp.500 Rp.1.000 Rp.1.500 Rp.1.000 Rp.3.000 Rp.500
6.3.1.1 Langkah Penyelesaian 1. Identifikasi Anomaly pada tabel: a. Insert Anomaly Pada tabel tersebut memungkinkan terjadi insert anomaly. Insert anomaly pada tabel tsb. mungkin terjadi apabila terdapat kebutuhan untuk menambah/insert data barang baru namun belum terdapat transaksi faktur pembelian kepada supplier sehingga terdapat null value pada beberapa kolom. Hal ini tergambar dari contoh 1. Insert anomaly pada tabel tsb. mungkin juga terjadi apabila terdapat kebutuhan untuk menambah/insert supplier baru namun belum terdapat transaksi faktur pembelian dan data barang yang dibeli sehingga terdapat null value pada beberapa kolom. Hal ini tergambar dari contoh 2. Contoh 1: Terdapat barang baru dengan kode barang “PS-007” dengan nama barang “Pensil Tinta Hitam” dengan harga “Rp. 2000”, maka jika hanya data kode barang, nama barang, dan harga yang diinput ke dalam tabel akan terjadi insert anomaly karena terdapat null value pada kolom nofaktur, tglfaktur, kdsupplier, dan nmsupplier.
H a l 64
Normalisasi 1NF sampai BCNF Contoh 2: Terdapat supplier baru dengan kode supplier “S-004” dengan nama supplier “Parmadi”, maka jika hanya data kdsupplier dan nmsupplier yang diinput ke dalam tabel akan terjadi insert anomaly karena terdapat null value pada kolom nofaktur, tglfaktur, kdbarang, nmbarang, dan harga. b. Update Anomaly Pada tabel tersebut memungkinkan terjadi update anomaly. Update anomaly pada tabel tsb. mungkin terjadi apabila terdapat data nama barang diubah pada salah satu transaksi faktur dan tidak dilakukan perubahan nama barang dengan kode yang sama pada transaksi faktur lainnya sehingga terdapat ketidakkonsistenan data pada tabel. Hal ini tergambar dalam contoh 1. Update anomaly pada tabel tsb. juga mungkin terjadi apabila terdapat data nama supplier yang diubah pada salah satu transaksi faktur dan tidak dilakukan perubahan nama supplier dengan kode yang sama pada transaksi faktur lainnya. Sehingga terdapat ketidakkonsistenan data pada tabel. Hal ini tergambar dalam contoh 2. Contoh 1: Terjadi perubahan nama barang pada baris pertama, yaitu kode barang PS-001 semula nama barang “Pensil Warna” diubah / di-update menjadi “Pensil Warna-warni” namun untuk kode barang PS-001 pada baris ketiga dan baris kedelapan tidak dilakukan perubahan nama barang menjadi “Pensil Warna-warni”. Hal ini termasuk ke dalam update anomaly karena terdapat ketidakkonsistenan data pada kode barang PS-001, kode barang sama namun nama barang berbeda. Contoh 2: Terjadi perubahan nama supplier pada baris pertama, kode supplier S-001 semula nama suppliernya “Andi” diubah / di-update menjadi “Andi Jaya” namun untuk kode supplier S-001 pada baris kedelapan tidak dilakukan perubahan nama supplier menjadi “Andi Jaya”. Hal ini termasuk ke dalam update anomaly karena terdapat ketidakkonsistenan data pada kode supplier S-001, kode supplier sama namun nama supplier berbeda. c. Delete Anomaly Pada tabel tersebut memungkinkan terjadi delete anomaly. Delete anomaly pada tabel tsb. memungkinkan terjadi apabila terdapat salah satu baris data dari transaksi faktur dihapus, sehingga menghilangkan informasi yang tidak ingin dihapus. Hal ini dapat tergambar dari contoh berikut. Contoh: Terdapat penghapusan data untuk transaksi nomor faktur F-007, sehingga data pada baris ketiga, keempat dan kelima dihapus. Hal ini termasuk ke dalam delete anomaly karena informasi mengenai kode barang PS-003 dengan nama barang “Pensil HB” akan ikut hilang akibat dari penghapusan pada transaksi F-007. Hal ini karena data mengenai barang PS-003 dengan nama barang “Pensil HB” hanya terdapat pada baris kelima. Selain itu delete anomaly juga terjadi karena informasi mengenai kode supplier S-002 dengan nama supplier “Enya” ikut hilang akibat dari penghapusan pada transaksi F-007. Hal ini terjadi karena data mengenai supplier S-002 dengan nama Supplier “Enya” hanya terdapat pada baris ketiga saja.
H a l 65
Normalisasi 1NF sampai BCNF 2. Lakukan normalisasi pada tabel: Pembuktian 1st NF: Syarat: a. Tidak ada kolom multivalue b. Tidak ada kolom dengan domain yang sama Analisis: a. Tidak terdapat kolom multivalue b. Tidak terdapat kolom dengan domain yang sama Kesimpulan: Pada tabel tidak terdapat kolom multivalued an tidak terdapat kolom dengan domain yang sama, sehingga tabel sudah memenuhi bentuk 1st NF. Pembuktian 2nd NF: Syarat: a. Memenuhi 1st NF b. Tidak ada partial FD Analisis: a. Tabel telah memenuhi 1st NF b. Pembuktian partial FD: Langkahnya adalah: 1. Tentukan salah satu candidate key yang potensial untuk menjadi primary key (lihat modul 5). Primary key nya adalah (nofaktur, kdbarang). 2. Jika primary key merupakan composite key (primary key terdiri dari dua kolom), maka mungkin terjadi partial FD. Tentukan FD dari masing-masing kolom pembentuk primary key. FD1: (nofaktur) (tglfaktur, kdsupplier, nmsupplier ) FD2: (kdbarang) (nmbarang, harga) 3. Tentukan Partial FD berdasarkan langkah kedua. Partial FD terjadi pada (tglfaktur, kdsupplier, nmsupplier) bergantung secara parsial terhadap (nofaktur, kdbarang) dan Partial FD terjadi pada (nmbarang, harga) yang bergantung secara parsial terhadap (nmbarang, harga) 4. Tentukan ful FD terhadap (nofaktur, kdbarang). Tidak ada full FD terhadap (nofaktur, kdbarang) Kesimpulan: Tabel belum memenuhi 2nd NF karena masih memiliki partial FD. Perlu dilakukan dekomposisi terhadap tabel. Dekomposisi dilakukan sesuai dengan hasil analisis partial FD dan full FD dari primary key. Pastikan data dalam tabel tidak ada yang redundan (data tidak boleh sama) • Berdasarkan FD1: (nofaktur) (tglfaktur, kdsupplier, nmsupplier) terdapat tabel dekomposisi: Tabel1: Faktur nofaktur Tglfaktur kdsupplier Nmsupplier F-006 14-Feb-02 S-001 Andi F-007 15-Feb-02 S-002 Enya
H a l 66
Normalisasi 1NF sampai BCNF F-008 F-009
15-Feb-02 15-Feb-02
S-003 S-001
Mandy Andi
• Berdasarkan FD2: (kdbarang) (nmbarang, harga) terdapat tabel dekomposisi: Tabel2: Barang KdBarang PS-001 SP-005 PS-001 PS-002 PS-003 PS-002 SP-005 PS-001
NmBarang Pensil Warna Spidol Pensil Warna Pensil Hitam Pensil HB Pensil Hitam Spidol Pensil Warna
Harga Rp.500 Rp.3.000 Rp.500 Rp.1.000 Rp.1.500 Rp.1.000 Rp.3.000 Rp.500
Semula data terdapat 8 baris, hilangkan data yang redundan (data yang sama), sehingga hasil akhir tabel 2: Barang adalah berikut ini. KdBarang PS-001 SP-005 PS-002 PS-003 •
NmBarang Pensil Warna Spidol Pensil Hitam Pensil HB
Harga Rp.500 Rp.3.000 Rp.1.000 Rp.1.500
Berdasarkan hasil analisis tidak ada full FD dari primary key (nofaktur, kdsupplier) maka tabel yang terbuat, hanya untuk primary key nya saja (nofaktur, kdsupplier), yaitu tabel 3: detail_faktur_barang. NoFaktur F-006 F-006 F-007 F-007 F-007 F-008 F-008 F-009
KdBarang PS-001 SP-005 PS-001 PS-002 PS-003 PS-002 SP-005 PS-001
Pembuktian 3rd NF: Pembuktian 3rd NF dilakukan pada tabel hasil dekomposisi. Tabel1: Faktur Nofaktur Tglfaktur kdsupplier F-006 14-Feb-02 S-001 F-007 15-Feb-02 S-002
Nmsupplier Andi Enya
H a l 67
Normalisasi 1NF sampai BCNF F-008 F-009
15-Feb-02 15-Feb-02
S-003 S-001
Mandy Andi
Syarat: a. Memenuhi 2nd NF b. Tidak ada transitive FD. Analisis: a. Pada tabel 1: Faktur yang menjadi primary key adalah (nofaktur). Tabel 1: Faktur sudah memenuhi 2 nd NF karena primary key tabel tersebut bukan merupakan composite key sehingga tidak memiliki partial FD. b. Pembuktian transitive FD : Langkahnya adalah: 1. Tentukan FD dari semua kolom. FD1: (nofaktur) (tglfaktur, kdsupplier, nmsupplier) FD2: (kdsupplier) (nmsupplier) 2. Tentukan transitive FD berdasarkan langkah satu. Terdapat transitive FD, yaitu (nmsupplier) terdapat ketergantungan secara transitif terhadap nofaktur melalui (kdsupplier). Kesimpulan: Tabel belum memenuhi 3rd NF karena masih memiliki transitive FD. Perlu dilakukan dekomposisi terhadap tabel. Dekomposisi dilakukan sesuai dengan hasil analisis transitive FD. Pastikan data dalam tabel tidak ada yang redundan (data tidak boleh sama). Berdasarkan FD2: (kdsupplier) (nmsupplier) terdapat tabel hasil dekomposisi berikut ini. Tabel 1-1: Supplier kdsupplier Nmsupplier S-001 Andi S-002 Enya S-003 Mandy S-001 Andi Semula data terdapat 4 baris, hilangkan data yang redundan (data yang sama), sehingga hasil akhir tabel 1-1: Supplier adalah berikut ini. Tabel 1-1: Supplier kdsupplier Nmsupplier S-001 Andi S-002 Enya S-003 Mandy Berdasarkan FD1: (nofaktur) (tglsupplier, kdsupplier, nmsupplier) terdapat tabel hasil dekomposisi berikut ini. Tabel 1-2: Faktur nofaktur Tglfaktur kdsupplier F-006 14-Feb-02 S-001
H a l 68
Normalisasi 1NF sampai BCNF F-007 F-008 F-009
15-Feb-02 15-Feb-02 15-Feb-02
S-002 S-003 S-001
Pembuktian 3rd NF dilakukan pada tabel hasil dekomposisi. Tabel 1-1: Supplier kdsupplier Nmsupplier S-001 Andi S-002 Enya S-003 Mandy Syarat: a. Memenuhi 2nd NF b. Tidak ada transitive FD. Kesimpulan: Tabel 1-1: Supplier telah memenuhi 2nd NF karena primary key dari tabel tersebut adalah (kdsupplier) bukan merupakan composite key. Tabel juga tidak memiliki transitive FD karena hanya memiliki 2 kolom. Berdasarkan pernyataan diatas, tabel 1-1: Supplier telah memenuhi bentuk 3rd NF. Pembuktian 3rd NF dilakukan pada tabel hasil dekomposisi. Tabel 1-2: Faktur nofaktur Tglfaktur Kdsupplier F-006 14-Feb-02 S-001 F-007 15-Feb-02 S-002 F-008 15-Feb-02 S-003 F-009 15-Feb-02 S-001 Syarat: a. Memenuhi 2nd NF b. Tidak ada transitive FD. Kesimpulan: Tabel 1-2: Faktur telah memenuhi 2nd NF karena primary key dari tabel tersebut adalah (nofaktur) bukan merupakan composite key. Tabel juga tidak memiliki transitive FD karena hanya terdapat satu functional dependency. Berdasarkan pernyataan diatas, tabel 1-2: Faktur telah memenuhi bentuk 3 rd NF. Pembuktian 3rd NF dilakukan pada tabel hasil dekomposisi. Tabel 2: Barang KdBarang PS-001 SP-005 PS-002 PS-003
NmBarang Pensil Warna Spidol Pensil Hitam Pensil HB
Harga Rp.500 Rp.3.000 Rp.1.000 Rp.1.500
H a l 69
Normalisasi 1NF sampai BCNF Syarat: a. Memenuhi 2nd NF b. Tidak ada transitive FD. Kesimpulan: Tabel 2: Barang telah memenuhi 2nd NF karena primary key dari tabel tersebut adalah (KdBarang) bukan merupakan composite key. Tabel juga tidak memiliki transitive FD karena hanya terdapat satu functional dependency dan tidak terdapat data yang redundan. Berdasarkan pernyataan diatas, tabel 2: Barang telah memenuhi bentuk 3rd NF. Pembuktian 3rd NF dilakukan pada tabel hasil dekomposisi. Tabel 3: Detail_Faktur_Barang NoFaktur F-006 F-006 F-007 F-007 F-007 F-008 F-008 F-009
KdBarang PS-001 SP-005 PS-001 PS-002 PS-003 PS-002 SP-005 PS-001
Syarat: a. Memenuhi 2nd NF b. Tidak ada transitive FD. Kesimpulan: Tabel 3: Detil_Faktur_Barang telah memenuhi 2nd NF dan tidak ada transitif FD karena tabel hanya memiliki dua kolom. Berdasarkan pernyataan tersebut, tabel 3: Detil_faktur_barang telah memenuhi bentuk 3 rd NF. Pembuktian BCNF: Tabel 1-1: Supplier Kdsupplier S-001 S-002 S-003
Nmsupplier Andi Enya Mandy
Syarat: a. memenuhi 3rd NF, dan b. Untuk semua Functional Dependency, ruas kiri dari Functional Dependency tersebut adalah superkey Analisis: a. Tabel sudah memenuhi 3rd NF b. Tentukan candidate key dan tentukan functional dependency Candidate key: (KdSupplier)
H a l 70
Normalisasi 1NF sampai BCNF FD1: (KdSupplier) (NmSupplier) Berdasarkan FD, ruas kiri adalah (KdSupplier). Dalam tabel 1-1: Supplier (KdSupplier) merupakan primary key sehingga dapat disimpulkan ruas kiri adalah superkey. Kesimpulan: Tabel 1-1: Supplier sudah memenuhi 3rd NF dan ruas kiri dari FD yang ada dalam tabel sudah merupakan superkey sehingga tabel 1-1: Supplier sudah memenuhi BCNF. Pembuktian BCNF dilakukan pada tabel hasil dekomposisi. Tabel 1-2: Faktur nofaktur Tglfaktur Kdsupplier F-006 14-Feb-02 S-001 F-007 15-Feb-02 S-002 F-008 15-Feb-02 S-003 F-009 15-Feb-02 S-001 Syarat: a. memenuhi 3rd NF, dan b. Untuk semua Functional Dependency, ruas kiri dari Functional Dependency tersebut adalah superkey Analisis: a. Tabel sudah memenuhi 3rd NF b. Tentukan candidate key dan tentukan functional dependency Candidate key: (NoFaktur) FD1: (NoFaktur) (TglFaktur, KdSupplier) Berdasarkan FD, ruas kiri adalah (NoFaktur). Dalam tabel 1-2: Faktur (NoFaktur) merupakan primary key sehingga dapat disimpulkan ruas kiri adalah superkey. Kesimpulan: Tabel 1-2: Faktur sudah memenuhi 3rd NF dan ruas kiri dari FD yang ada dalam tabel sudah merupakan superkey sehingga tabel 1-2: Faktur sudah memenuhi BCNF. Pembuktian BCNF dilakukan pada tabel hasil dekomposisi. Tabel 2: Barang KdBarang PS-001 SP-005 PS-002 PS-003
NmBarang Pensil Warna Spidol Pensil Hitam Pensil HB
Harga Rp.500 Rp.3.000 Rp.1.000 Rp.1.500
Syarat: a. memenuhi 3rd NF, dan b. Untuk semua Functional Dependency, ruas kiri dari Functional Dependency tersebut adalah superkey Analisis: a. Tabel sudah memenuhi 3rd NF b. Tentukan candidate key dan tentukan functional dependency
H a l 71
Normalisasi 1NF sampai BCNF Candidate key: (KdBarang) FD1: (KdBarang) (NmBarang, Harga) Berdasarkan FD, ruas kiri adalah (KdBarang). Dalam tabel 2: Barang(KdBarang) merupakan primary key sehingga dapat disimpulkan ruas kiri adalah superkey. Kesimpulan: Tabel 2: Barang sudah memenuhi 3rd NF dan ruas kiri dari FD yang ada dalam tabel sudah merupakan superkey sehingga tabel 2: Barang sudah memenuhi BCNF. Pembuktian BCNF dilakukan pada tabel hasil dekomposisi. Tabel 3: Detail_Faktur_Barang NoFaktur F-006 F-006 F-007 F-007 F-007 F-008 F-008 F-009
KdBarang PS-001 SP-005 PS-001 PS-002 PS-003 PS-002 SP-005 PS-001
Syarat: a. memenuhi 3rd NF, dan b. Untuk semua Functional Dependency, ruas kiri dari Functional Dependency tersebut adalah superkey Analisis: a. Tabel sudah memenuhi 3rd NF b. Tentukan candidate key dan tentukan functional dependency Candidate key: (NoFaktur, KdBarang) dan tidak memiliki FD. Kesimpulan: Tabel 3: Detil_Faktur_Barang sudah memenuhi 3rd NF dan tabel tidak memiliki functional dependency karena tabel hanya terdiri dari dua kolom dan candidate key merupakan composite key sehingga tabel 3: Detil_Faktur_Barang sudah memenuhi bentuk normal BCNF. 6.3.1.2 Solusi lengkap Solusi lengkap hasil normalisasi Tabel1: Faktur nofaktur F-006 F-007 F-008 F-009
Tglfaktur kdsupplier 14-Feb-02 S-001 15-Feb-02 S-002 15-Feb-02 S-003 15-Feb-02 S-001
Nmsupplier Andi Enya Mandy Andi
H a l 72
Normalisasi 1NF sampai BCNF Tabel2: Barang KdBarang PS-001 SP-005 PS-002 PS-003
NmBarang Pensil Warna Spidol Pensil Hitam Pensil HB
Harga Rp.500 Rp.3.000 Rp.1.000 Rp.1.500
Tabel 3: detail_faktur_barang. NoFaktur F-006 F-006 F-007 F-007 F-007 F-008 F-008 F-009
KdBarang PS-001 SP-005 PS-001 PS-002 PS-003 PS-002 SP-005 PS-001
Soal Ananda Brownis Lakukan pengamatan untuk mengidentifikasi: 1. Insert, update, dan delete anomaly 2. Lakukan proses normalisasi dari mulai 1st NF sampai dengan BCNF Laporan Penjualan Ananda Brownis No.Nota
Tgl
J0008
1 Januari 2013
J0009
1 Januari 2013
J0010
5 Januari 2013
J0011
25 Januari 2013
J0011
5 Februari 2013
Kode Barang BLUE CHCR COMA ORIG BABZ BLUE CHCR CHRL CHCR CHST ORIG
Nama Blueberry Cheese Cream Choco Marble Original Banana Bizz Blueberry Cheese Cream Cheese Roll Cheese Cream Cheese Stick Original
Harga Satuan 32,000 52,000 30,000 26,000 30,000 32,000 52,000 37,000 52,000 27,000 26,000
Jum -lah 3 10 2 4 4 4 2 1 2 1 1
Sub Total 96,000 520,000 60,000 104,000 120,000 128,000 104,000 37,000 104,000 27,000 26,000
Total Penjualan 676,000
Disco unt 10%
Total Bayar 608,400
352,000
10%
316,800
141,000
0%
141,000
131,000
0%
131,000
26,000
0%
26,000
H a l 73
Normalisasi 1NF sampai BCNF 6.3.2.1 Pengamatan 1. A. Paparkan penjelasan kemungkinan terjadinya insert anomaly beserta contoh dari tabel laporan penjualan Ananda Brownis pada kolom berikut.
B. Paparkan penjelasan kemungkinan terjadinya update anomaly beserta contoh dari tabel laporan penjualan Ananda Brownis pada kolom berikut.
H a l 74
Normalisasi 1NF sampai BCNF C. Paparkan penjelasan kemungkinan terjadinya delete anomaly beserta contoh dari tabel laporan penjualan Ananda Brownis pada kolom berikut.
2. A. Tuliskan syarat untuk memenuhi bentuk normal 1st NF dan buktikan jika tabel Laporan Penjualan Ananda Brownis telah memenuhi bentuk normal pertama. Jika tabel belum memenuhi syarat, lakukan dekomposisi pada tabel
H a l 75
Normalisasi 1NF sampai BCNF B. Tuliskan syarat untuk memenuhi bentuk normal 2nd NF dan buktikan jika tabel Laporan Penjualan Ananda Brownis telah memenuhi bentuk normal kedua. Jika tabel belum memenuhi syarat, lakukan dekomposisi pada tabel. Tabel yang didekomposisi tuliskan isi datanya.
H a l 76
Normalisasi 1NF sampai BCNF C. Tuliskan syarat untuk memenuhi bentuk normal 3rd NF dan buktikan jika tabel Laporan Penjualan Ananda Brownis telah memenuhi bentuk normal ketiga. Lakukan proses pembuktian 3 rd NF untuk tabel hasil dekomposisi dari proses sebelumnya. Tabel yang didekomposisi tuliskan isi datanya.
H a l 77
Normalisasi 1NF sampai BCNF
H a l 78
Normalisasi 1NF sampai BCNF D. Tuliskan syarat untuk memenuhi bentuk normal BCNF dan buktikan jika tabel Laporan Penjualan Ananda Brownis telah memenuhi bentuk normal BCNF. Lakukan proses pembuktian BCNF untuk tabel hasil dekomposisi dari proses sebelumnya. Tabel yang didekomposisi tuliskan isi datanya.
H a l 79
Normalisasi 1NF sampai BCNF 6.4 TEST AKHIR Diketahui tabel berikut ini, buatlah langkah-langkah normalisasi, sehingga tabel tersebut menjadi normal BCNF. Diketahui studi kasus "KoCiPoliTel" Laporan Simpanan Anggota
no_simpan tgl_simpan no_anggota TR01 1-Jan-13 ID01
nm_anggota Cecep Gorbacep
ahli_waris Centilia; Alayia
TR02
1-Jan-13 ID02
Tika Indah
Bedjo Benjamin
TR11
1-Feb-13 ID01
Cecep Gorbacep
Centilia; Alayia
TR21 TR22
1-Mar-13 ID01 2-Mar-13 ID03
Cecep Gorbacep Bruno Black
Centilia; Alayia -
kd_jenis_s impanan PKK WJB WJB SKR WJB SKR WJB PKK WJB SKR
nm_simpanan subtotal total_simpan Simpanan Pokok 250,000 270,000 Simpanan Wajib 20,000 Simpanan Wajib 20,000 40,000 Simpanan Sukarela 20,000 Simpanan Wajib 20,000 25,000 Simpanan Sukarela 5,000 Simpanan Wajib 20,000 20,000 Simpanan Pokok 250,000 290,000 Simpanan Wajib 20,000 Simpanan Sukarela 20,000
H a l 80
Normalisasi 1NF sampai BCNF
H a l 81
Normalisasi 1NF sampai BCNF
6.5
LAIN-LAIN 1. Kumpulkan jawaban anda kepada para asisten sebelum praktikum diakhiri. 2. Keterlambatan atas pengumpulan modul praktikum sanksinya adalah nilai modul praktikum ini nol (0).
H a l 82
SQL dan DML Sederhana
7
BAB VII SQL (DDL DAN DML SEDERHANA)
7.1 IDENTITAS Kajian SQL (DDL dan DML) Topik 1. Create, Alter dan Drop 2. Insert, Update, dan Delete 3. Select….From…Where Referensi 1. Bagui, S., R. Earp; Database Design Using Entity Relationship Diagrams. Auerbach Publications, 2003. 2. Sakkirajan, Suathi; Fundamental of Relational Database Management Systems. Tamil Nadu, India: Springer, 2007. 3. Basis Data Kompetensi Utama 1. Memahami apa yang dimaksud dengan SQL, DDL dan DML 2. Mampu mengkategorikan perintah SQL ke dalam DDL atau DML 3. Mampu membuat table yang memiliki constraint primary key dan foreign key 4. Mampu melakukan perubahan terhadap table yang sudah ada 5. Memahami konsep on delete cascade 6. Mampu menambah data dalam table 7. Mampu melakukan update data table 8. Mampu menghapus data dalam table 9. Mampu menggunakan klausa select sederhana Lama Kegiatan Praktikum 1. Pertemuan Terbimbing : 1 x 120 menit 2. Kegiatan Mandiri : 2 x 120 menit Parameter Penilaian 1. Tes Awal 40% 2. Jurnal Pengamatan 30% 3. Tugas Akhir 30%
H a l 83
SQL dan DML Sederhana 7.2 PERTANYAAN PENDAHULUAN Kerjakan dikertas dan jawab dalam tulisan tangan , kumpulkan pada asisten sebelum praktikum dimulai 1. Apakah yang dimaksud dengan a. SQL (Structured Query Language) b. DDL (Data Definition Language) c. DML (Data Manipulation Language)
2. Perintah apa sajakah yang termasuk dalam DDL
3. Apa itu MySQL
4. Bagaimanakah perintah dasar dari insert, berikan satu contoh
5. Bagaimanakah perintah dasar dari update, berikan satu contoh
6. Bagaimanakah perintah dasar dari delete, berikan satu contoh
7. Jika ingin menampilkan semua isi data, perintah select seperti apa yang seharusnya digunakan.
H a l 84
SQL dan DML Sederhana
7.3
PRAKTIK
Soal 1 Diketahui sebuah ER Diagram dan Diagram relasi antar tabel untuk Kasus Ananda Brownis Penjualan sbb:
H a l 85
SQL dan DML Sederhana Implementasikan skema tersebut ke dalam tabel fisik menggunakan DBMS MySQL, gunakan constraint yang benar saat pembuatan tabel Langkah Penyelesaian 1. Terlebih dahulu kita buat database baru bernama AnandaPenjualan dengan perintah sebagai berikut: Create database AnandaPenjualan; 2. Lalu kita gunakan database AnandaPenjualan perintah: Use AnadaPenjualan; 3. Kemudian kita create table, perhatikan urutan pembuatan tabel. Pembuatan tabel dimulai dari tabel yang tidak memiliki foreign key. Urutan pembuatan tabel adalah tabel Jenis_Kue dan Outlet. Selanjutnya pembuatan tabel yang memiliki foreign key yang mengacu pada tabel yang telah dibuat sebelumnya, yaitu tabel Kue, Penjualan, dan Detail_Kue. Tabel akun terdapat foreign key yang mengacu pada primary key dari tabel dirinya sendiri sehingga dibutuhkan perintah ALTER untuk membuat foreign key pada tabel akun. Setelah tabel akun dibuat, tabel jurnal dapat dibuat dengan mengacu pada tabel akun. Gunakan constraint primary key dan foreign key. Berikut perintah untuk membuat tabel Jenis_Kue: CREATE TABLE jenis_Kue( kode_jenis_kue varchar(4), nama_jenis_kue varchar(25), jangka_expired varchar(25), CONSTRAINT pk_jenis_kue PRIMARY KEY (kode_jenis_kue)); Berikut perintah untuk membuat tabel Outlet: CREATE TABLE outlet( kode_outlet varchar(3), nama_outlet varchar(25), alamat varchar(50), telp varchar(15), CONSTRAINT pk_outlet PRIMARY KEY (kode_outlet)); Berikut perintah untuk membuat tabel Kue: CREATE TABLE Kue( kode_kue varchar(4), nama_kue varchar(25), harga_satuan int, kode_jenis_kue varchar(4), CONSTRAINT pk_kue PRIMARY KEY (kode_kue),
H a l 86
SQL dan DML Sederhana CONSTRAINT fk_kue_jenis FOREIGN KEY jenis_kue(kode_jenis_kue) ON DELETE CASCADE ON UPDATE CASCADE);
(kode_jenis_kue)
REFERENCES
Berikut perintah untuk membuat tabel Penjualan: CREATE TABLE penjualan( no_nota varchar(4), tgl_jual date, total_jual int, discount int, total_bayar int, kode_outlet varchar(3), CONSTRAINT pk_penjualan PRIMARY KEY (no_nota), CONSTRAINT fk_penjualan_outlet FOREIGN KEY (kode_outlet) REFERENCES outlet(kode_outlet) ON DELETE CASCADE ON UPDATE CASCADE); Berikut perintah untuk membuat tabel Detail_jual: CREATE TABLE detail_jual( no_nota varchar(4), kode_kue varchar(4), jumlah int, harga_satuan int, subtotal int, CONSTRAINT pk_detail_jual PRIMARY KEY (no_nota,kode_kue), CONSTRAINT fk_detail_penjualan FOREIGN KEY (no_nota) REFERENCES penjualan(no_nota) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT fk_detail_kue FOREIGN KEY (kode_kue) REFERENCES kue(kode_kue) ON DELETE CASCADE ON UPDATE CASCADE); Berikut perintah untuk membuat tabel Akun: CREATE TABLE akun ( kode_akun varchar(4), nama_akun varchar(50), header_akun varchar(4), CONSTRAINT pk_kode_akun PRIMARY KEY(kode_akun)); Untuk pembuatan foreign key pada kolom header_akun yang ada dalam tabel Akun dan mengacu pada primary key di tabel Akun, maka dilakukan perintah ALTER sebagai berikut: ALTER TABLE akun ADD CONSTRAINT fk_no_akun FOREIGN KEY (header_akun) REFERENCES akun (kode_akun) ON DELETE CASCADE ON UPDATE CASCADE);
H a l 87
SQL dan DML Sederhana Berikut perintah untuk membuat tabel jurnal_penjualan: CREATE TABLE jurnal_penjualan( no_nota varchar(4), kode_akun varchar(4), posisi_dr_cr varchar(6), nominal int, CONSTRAINT pk_kode_akun PRIMARY KEY(kode_akun,no_nota), CONSTRAINT fk_jurnal_jual FOREIGN KEY (no_nota) REFERENCES penjualan (no_nota) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT fk_jurnal_akun FOREIGN KEY (kode_akun) REFERENCES akun (kode_akun) ON DELETE CASCADE ON UPDATE CASCADE); Pengamatan Diketahui terdapat ER Diagram dan diagram relasi antar tabel untuk studi Kasus Ananda Brownis Pembelian: Discount Harga_satuan
Satuan
Total_jual
Nama_Bhn_Baku
subtotal
Kode_Bhn_Baku
Total_bayar
Tgl_beli
jumlah
Kode_Pemasok
No_Nota
n
m Bahan_Baku
Nama_Pemasok
Jatuh_Tempo
1
m
Terdiri_dari
Pembelian
n
m
memasok
1 No_Kuitansi
n Terdiri_dari
melakukan
Jumlah
Pemasok
Pelunasan Total_bayar
n Kode_Kue
m
Tgl_pelunasan
Posisi_dr_cr Nama_kue
Makanan
dicatat nominal
harga_satuan
1 n
n mengacu
dicatat
Akun
m
Posisi_dr_cr Kode_akun nominal Nama_akun
H a l 88
SQL dan DML Sederhana Diagram relasi antar tabel:
DDL 1.
Buat basis data dengan nama AnandaPembelian[3digitnimterakhir]
2.
Buat tabel dengan nama kue dengan kolom sebagai berikut. Kue Kode_Kue varchar(4) Nama_Kue Varchar(25)
3.
Tambahkan kolom Harga_satuan dengan tipe data integer pada tabel kue
4.
Ubah kolom kode_kue menjadi primary key dengan nama primary key pk_kue pada tabel kue
H a l 89
SQL dan DML Sederhana 5.
Buat tabel dengan nama bahan_baku dengan kolom sebagai berikut. Bahan_Baku Kode_Bhn_Baku Varchar(3) Nama_Bhn_Baku Varchar(25) Satuan Varchar(25) Buat tabel dengan nama BOM dengan kolom sebagai berikut. BOM PK Kode_Kue Varchar(4) PK Kode_Bhn_Baku Varchar(3) Jumlah Int PK
6.
7.
8.
9.
Ubah kolom berikut ini menjadi foreign key dengan nama foreign key fk_kode_kue untuk kolom kode_kue dan fk_kode_bhn_baku untuk kolom kode_bhn_baku pada tabel BOM BOM FK Kode_Kue Varchar(4) FK Kode_Bhn_Baku Varchar(3) Jumlah Int Tambahkan kolom keterangan dengan tipe data varchar(100) pada tabel BOM
Ubah kolom keterangan semula tipe data varchar(100) menjadi tipe data text pada tabel BOM
10. Hapus kolom keterangan dari tabel BOM
11. Buat tabel dengan nama Pembelian dengan kolom sebagai berikut. Buatlah foreign key dengan nama fk_kode_pemasok pada kolom kode_pemasok di tabel Pembelian yang mengacu pada tabel pemasok. Pembelian PK No_nota Tgl_beli Total_jual Discount Total_Bayar Jatuh_tempo FK Kode_Pemasok
Varchar(4) Date Int Int Int Date Varchar(3)
H a l 90
SQL dan DML Sederhana 12. Tuliskan error yang muncul pada layar Anda! Tuliskan apa penyebab error tersebut terjadi!
13. Buatlah tabel dengan nama Pemasok dengan kolom sebagai berikut. PK
Kode_Pemasok Nama_pemasok
Pemasok Varchar(3) Varchar(25)
14. Buat tabel dengan nama Pembelian dengan kolom sebagai berikut. Buatlah foreign key dengan nama fk_kode_pemasok pada kolom kode_pemasok di tabel Pembelian yang mengacu pada tabel pemasok. Pembelian PK No_nota Tgl_beli Total_jual Discount Total_Bayar Jatuh_tempo FK Kode_Pemasok
Varchar(4) Date Int Int Int Date Varchar(3)
15. Buat tabel dengan nama detail_beli dengan kolom sebagai berikut (perhatikan foreign key yang harus dibuat dengan mengacu pada gambar diagram relasi antar tabel): Detail_beli FK FK
Kode_Bhn_baku No_nota Jumlah Subtotal Harga_satuan
Varchar(3) Varchar(4) Int Int int
16. Ubah tabel Detail_beli dengan menambahkan primary key dengan nama pk_detailbeli yang terdiri dari kolom kode_bhn_baku dan no_nota
17. Buatlah tabel Pembayaran dengan kolom sebagai berikut: Pembayaran PK No_kuitansi Total_bayar
Varchar(4) Int
H a l 91
SQL dan DML Sederhana
FK
Tgl_bayar No_nota
Date Varchar(4)
18. Buatlah tabel Akun dengan kolom sebagai berikut: Akun PK Kode_Akun Nama_akun FK Header_akun
Varchar(4) Varchar(50) Varchar(4)
19. Buatlah tabel Jurnal_Pembelian dengan kolom sebagai berikut: Jurnal_pembelian PK, FK Kode_akun PK, FK No_nota Posisi_dr_cr nominal
Varchar(4) Varchar(4) Varchar(6) Int
20. Buatlah tabel JurnalPembayaran dengan kolom sebagai berikut: Jurnal_pembayaran PK, FK No_kuitansi PK, FK Kode_akun Posisi_dr_cr nominal
Varchar(4) Varchar(4) Varchar(6) Int
H a l 92
SQL dan DML Sederhana DML 21. Masukkan data berikut ke dalam tabel kue. Tabel Kue Kode_kue Nama_kue Harga_satuan ORIG Brownies Original 26000 BABZ Brownies Banana Bizz 30000 BLUE Brownies Blueberry 32000 CHCR Brownies Cheese Cream 52000 22. Masukkan data berikut ke dalam tabel BOM. Tabel BOM Kode_kue ORIG ORIG
Bhn_baku CO1 CO2
Jumlah 300 75
23. Pesan error apa yang muncul pada nomor 22? Tuliskan penyebab error yang muncul!
24. Masukkan data berikut ke dalam tabel bahan_baku: Tabel Bahan_baku Kode_bhn_baku CO1 CO2 CO3 ME1 GR1
Nama_bhn_baku Cokelat Masak Hitam Cokelat Bubuk Cokelat Mentega Garam
satuan Gram On Gram On Gram
25. Masukkan data berikut ke dalam tabel BOM: Kode_kue Bhn_baku Jumlah ORIG CO1 300 ORIG CO2 7 ORIG ME1 5 BABZ CO1 350 BABZ ME1 1 BLUE CO1 250 26. Ubah data pada tabel kue untuk kue yang bernama ‘Brownies Cheese Cream’ diubah menjadi ‘Brownies Cheeze’
H a l 93
SQL dan DML Sederhana 27. Ubah data pada tabel bahan_baku untuk bahan baku yang memiliki satuan ‘on’ diubah menjadi ‘ons’
28. Ubah data pada tabel BOM untuk baris data yang mengandung Bhn_baku ‘CO1’ atau ‘CO2’ diubah menjadi CO3.
29. Hapus data pada tabel BOM yang memiliki kode_kue ORIG yang memiliki jumlah kurang dari 100
30. Hapus data pada tabel BOM untuk data yang memiliki kode_kue ‘BABZ’ yang memiliki kode_bhn_baku ‘ME1’
31. Tampilkan seluruh data yang ada pada tabel kue
32. Tampilkan data nama kue dan harga satuan pada tabel kue
33. Tampilkan data kode bahan baku untuk kode kue ‘ORIG’
H a l 94
SQL dan DML Sederhana 7.4 TEST AKHIR Terdapat diagram relasi antar tabel sebagai berikut: PK
no_simpan tgl_simpan total_simpan
simpanan char(5) date integer(11)
FK FK
detail_simpanan no_simpan char(5) kd_jns_simpan char(3) subtotal integer(5)
PK
jenis_simpanan kd_jns_simpan char(3) nm_jns_simpan varchar(25)
Soal Tipe 1 DDL 1.
Buat basis data dengan nama kocipolitel_3digitnimterakhir
2.
Buat tabel dengan nama jenis_simpanan dengan kolom sebagai berikut.
jenis_simpanan kd_jns_simpan char(3) nm_jns_simpan varchar(25)
3.
Tambahkan kolom keterangan dengan tipe data varchar dengan panjang 100 pada tabel jenis_simpanan
4.
Ubah kolom kd_jns_simpan menjadi primary key dengan nama primary key pk_kd_jns_simpan pada tabel jenis_simpanan
5.
Buat tabel dengan nama simpanan dengan kolom sebagai berikut.
PK
6.
no_simpan tgl_simpan total_simpan
simpanan char(5) date integer(11)
Buat tabel dengan nama detail_simpanan dengan kolom sebagai berikut.
detail_simpanan no_simpan char(5) kd_jns_simpan char(3) subtotal integer(5)
H a l 95
SQL dan DML Sederhana 7.
Ubah kolom berikut ini menjadi foreign key dengan nama foreign key fk_no_simpan untuk kolom no_simpan dan fk_kd_jns_simpan untuk kolom kd_jns_simpan pada tabel detail_simpanan
FK FK
detail_simpanan no_simpan char(5) kd_jns_simpan char(3) subtotal integer(5)
8.
Ubah kolom keterangan dengan dari tipe data varchar(100) menjadi tipe data text pada tabel jenis_simpanan
9.
Hapus kolom keterangan dari tabel jenis_simpanan
DML 10. Masukkan data berikut. Tabel Jenis_Simpanan kd_jns_simpan nm_simpanan PKK Simpanan Pokok WJB Simpanan Wajib SKR Simpanan Sukarela
11. Masukkan data berikut. Tabel Simpanan no_simpan tgl_simpan TR01 2013-01-01 TR21 2013-03-01
no_anggota ID01 ID01
total_simpan 270,000 20,000
12. Masukkan data berikut. Tabel Detail_Simpanan no_simpan kd_jns_simpan TR01 PKK TR01 WJB TR21 WJB
subtotal 250,000 20,000 20,000
H a l 96
SQL dan DML Sederhana 13. Ubah data pada kolom kd_jns_simpan dari tabel detail_simpanan yang dengan no_simpan TR01 dan subtotal simpanan kurang dari 50000 menjadi SKR
14. Hapus data dari tabel simpanan yang memiliki total simpanan lebih dari sama dengan 250000
DDL 15. Hapus foreign key dengan nama fk_kd_jns_simpan dari kolom kd_jns_simpan pada tabel detail_simpanan
16. Hapus primary key dengan nama pk_kd_jns_simpan dari kolom kd_jns_simpan pada tabel jenis_simpanan
17. Hapus tabel tabel jenis_simpanan
18. Tampilkan seluruh data yang ada dalam tabel Jenis_simpanan
19. Tampilkan data dari tabel Detail_simpanan yang memiliki kd_njs_simpan ‘WJB’
20. Tampilkan data dari tabel simpanan yang memiliki total simpan lebih dari 200.000
7.5
LAIN-LAIN 1. Kumpulkan jawaban anda kepada para asisten sebelum praktikum diakhiri. 2. Keterlambatan atas pengumpulan modul praktikum sanksinya adalah nilai modul praktikum ini nol (0).
H a l 97
Single Row Function
8
BAB VIII SINGLE ROW FUNCTION
8.1 IDENTITAS Kajian 1.SQL (DDL dan DML) Topik 1. Operator, nilai, dan penggunaan klausa select …from….where…order by 2. Fungsi yang terdefinisi dalam SQL Referensi 1. Bagui, S., R. Earp; Database Design Using Entity Relationship Diagrams. Auerbach Publications, 2003. 2. Sakkirajan, Suathi; Fundamental of Relational Database Management Systems. Tamil Nadu, India: Springer, 2007. 3. Basis Data Kompetensi Utama 1. Mampu menguasai operator yang digunakan di SQL 2. Memahami fungsi-fungsi yang terdefinisi dalam SQL 3. Mampu menggunakan fungsi dalam SQL 4. Mampu menggunakan klausa GROUP BY dan memahami kegunaannya 5. Mampu menggunakan klausa HAVING dan memahami kegunaannya Lama Kegiatan Praktikum 1. Pertemuan Terbimbing : 1 x 120 menit 2. Kegiatan Mandiri : 2 x 120 menit Parameter Penilaian 1. Tes Awal 30% 2. Jurnal Pengamatan 30% 3. Tugas Akhir 40%
H a l 98
Single Row Function 8.2
PERTANYAAN PENDAHULUAN Jawablah soal berikut dengan tulisan tangan dan kumpulkan sebelum praktikum dimulai 1. Sebutkan operator apa saja yang dapat diterapkan dalam query . 2. Apa kegunaan operator like dan between 3. Apa kegunaan group by ,berikan contoh sederhana 4. Apa kegunaan having? Berikan contoh sederhana
H a l 99
Single Row Function
8.3
PRAKTIK
Soal dan Solusi Studi Kasus Ananda Brownis Penjualan Berikut adalah ER Diagram dan Diagram relasi antar tabel untuk studi kasus Ananda Brownis Penjualan:
H a l 100
Single Row Function Berikut adalah data (isi tabel) yang ada dalam studi kasus Ananda Brownis Penjualan: Tabel Jenis_kue
Kue
Outlet
Penjualan
H a l 101
Single Row Function Detail_jual
Akun
H a l 102
Single Row Function Jurnal_penjualan
H a l 103
Single Row Function Instruksi Query 1. Tampilkan seluruh data yang ada dalam tabel SELECT * FROM outlet; Outlet
2. Tampilkan data transaksi penjualan yang terjadi di SELECT * FROM penjualan WHERE kode_outlet=’ABC’; kode outlet ‘ABC’
3. Tampilkan nama jenis kue dan jangka expired nya
SELECT nama_jenis_kue, jangka_expired FROM jenis_kue;
4. Tampilkan nama kue dan harganya khusus untuk SELECT nama_kue, harga_satuan kue dengan harga diatas 30.000 FROM kue WHERE harga_satuan > 30000
5. Tampilkan nama kue beserta harganya khusus SELECT nama_kue, harga_satuan FROM kue untuk kue yang memiliki harga antara 30000 WHERE harga_satuan >=30000 sampai dengan 40000 AND harga_satuan <=40000 Atau SELECT nama_kue, harga_satuan FROM kue WHERE harga_satuan BETWEEN 30000 AND 40000
6. Tampilkan kode akun dan nama akun untuk akun yang memiliki header_akun 2 atau 21
SELECT kode_akun, nama_akun FROM akun WHERE header_akun =2 OR header_akun =21
H a l 104
Single Row Function
7. Tampilkan data nama kue, id_kategori, harga, dan harga setelah diskon 10% . Namun data yang ditampilkan hanyalah yang memiliki id_kategori ‘KUBA’.
SELECT nama_kue, kode_jenis_kue, harga, harga*0.9 FROM jenis_kue WHERE kode_jenis_kue=’KUBA’
8. Tampilkan harga satuan kode yang paling mahal
SELECT max(harga_satuan) FROM kue;
nama_kue, 9. Tampilkan nama kue dan harga satuannya untuk SELECT max(harga_satuan) kue yang paling mahal FROM kue;
10. Tampilkan kode_kue yang pernah terjual dengan SELECT DISTINCT(kode_kue) FROM detail_jual; menghilangkan data yang sama (duplikat)
11. Urutkan data outlet berdasarkan nama outlet dari SELECT * FROM outlet ‘Z-A’ (menurun) ORDER BY (nama_outlet) desc
H a l 105
Single Row Function
12. Tampilkan kode_jenis_kue beserta dengan jumlah kue yang termasuk ke dalam masing-masing kode_jenis_kue tersebut.
SELECT kode_jenis_kue, COUNT(kode_jenis_kue) FROM kue GROUP BY (kode_jenis_kue)
13. Tampilkan kode_jenis_kue beserta dengan jumlah kue yang termasuk ke dalam masing-masing kode_jenis_kue tersebut dengan nama kolom ‘Jumlah Barang’ .
SELECT kode_jenis_kue, COUNT(kode_jenis_kue)AS ‘Jumlah Barang’ FROM kue GROUP BY (kode_jenis_kue)
14. Tampilkan kode_jenis_kue beserta dengan jumlah kue yang termasuk ke dalam masing-masing kode_jenis_kue tersebut namun data yang ditampilkan hanya kode_jenis_kue yang memiliki jumlah kue lebih dari 10
SELECT kode_jenis_kue, COUNT(kode_jenis_kue) FROM kue GROUP BY (kode_jenis_kue) HAVING COUNT(kode_jenis_kue)>10
15. Tampilkan nama bulan yang terdapat transaksi penjualan dengan nama kolom ‘Bulan’ dengan menghilangkan data yang sama (duplikat)
SELECT DISTINCT (MONTHNAME(tgl_jual)) AS Bulan FROM penjualan;
16. Tampilkan data nama jenis kue dengan tampilan SELECT UPPER(nama_jenis_kue) FROM jenis_kue; huruf kapital semua
H a l 106
Single Row Function
Pengamatan Berikut terdapat ER Diagram Toko Sukses Selalu.
n Posisi _dr_cr
nominal
Diagram Relasi Antar Tabel Toko Elektronik Sukses Selalu PK
id_pelanggan no_ktp nama alamat no_telp pekerjaan
pelanggan char(12) char(16) varchar(25) varchar(50) text varchar(20)
id_pegawai no_ktp nama alamat no_telp posisi
char(10) char(16) varchar(25) varchar(50) text varchar(20)
PK
FK FK
id_nota tgl_nota total id_pelanggan id_pegawai
pegawai PK
PK|FK id_bayar tgl_bayar jumlah_bayar sisa_piutang FK id_nota FK id_pegawai
nota_penjualan char(5) date integer(10) char(12) char(10)
pembayaran char(5) da te
integer(10) integer(10) char(5) char(10)
PK|FK id_nota PK|FK id_barang jumlah subtotal
PK
id_trans tgl_trans jml_trans
da te
integer(10)
PK
FK
PK|FK id_nota PK|FK id_barang PK|FK id_retur jumlah subtotal
PK|FK id_retur tgl_retur total_retur transaksi char(5)
detail_penjualan char(5) char(50) integer(5) integer(11)
PK|FK no_akun PK|FK id_trans posisi_dr_cr nominal
detail_retur char(5) char(50) char(5) integer(5) integer(11)
barang char(50) varchar(25) integer(8) integer(11) char(3)
id_barang nama harga stok id_kategori
PK
id_kategori nama_kategori keterangan
PK
no_akun nm_akun header_akun
kategori_barang char(3) varchar(25) text
retur char(5) da te
integer(10) Jurnal char(5) char(5) varchar(6) integer
FK
Akun char(5) varchar(100) char(5)
Data dalam Database Toko Sukses Selalu Pelanggan id_pelanggan 1111111111 8924234423 8935353535 8911223344
no_ktp
3372026404830000 3372026404832420 3372026404112233
nama Pelanggan Tidak Terdaftar Jeko Boy Domino
alamat
Jl.Bojong Soang Bandung Jl.Sukabirus Bandung Jl.Moch.Toha Bandung
no_telp
022734412234 098987654321 02254321
pekerjaan
swasta mahasiswa wirausaha
H a l 107
Single Row Function Pegawai
id_pegawai 201301001 201301002 201302001 201302009
no_ktp 3372026404830000 3372026404777777 3372026404987654 3372026404135792
nama Jeko Budi Wawan Wati
Kategori_barang id_kategori nama_kategori ELK Elektronik BZR Bazar SFL Softline GPK Grocery Perawatan Kecantikan GMK Grocery Makanan Minuman PSG Pasar Segar Barang id_barang UA-22F5000 KLV-24EX430 24LN4100 32LN5100 DH-6330P ES-FL8605-WW NA-F852 MUG-ZDK MUG-SHO MUG-ANI KNWTPUMP KC-105 STELLA70GR HITLEMON ATTSOFT ATTCMAX INDOMIE UHT125ML UHT1000ML
alamat Jl.Bojong Soang Bandung Jl.Sukapura Bandung Jl.Sukabirus Bandung Jl. Telekomunikasi Bandung
total 45675 52800 38500 3492000 8817300 2863600 297000
posisi kasir kasir kasir supervisor
keterangan Elektronik Perlengkapan Rumah Tangga Pakaian Siap Pakai Perawatan dan kecantikan Makanan dan Minuman Sayur, buah dan daging
Nama LED TV Samsung 22 inch LED TV SONY 24 Inch LED TV LG 24 Inch LED TV LG 32 Inch HOME THEATHER LG WASHING MACHINE SHARP 6KG WASHING MACHINE PANASONIC 8.5KG MUG ZODIAK MUG SHIO MUG ANIMAL KENMASTER WATER PUMP KOMPOR MINI PORTABLE STELLA ALL IN ONE 70 GR HIT AEROSOL LEMON 600ML ATTACK SOFTENER 800GR ATTACK CLEAN MAXIMIZER 800GR INDOMIE ALL VARIAN ULTRAMILK 125ML ULTRAMILK 1000ML
Nota_penjualan id_nota tgl_nota 86856 2013-05-01 86857 2013-05-01 86858 2013-05-01 86859 2013-05-01 86860 2013-06-01 86861 2013-07-01 86862 2013-07-01
no_telp 022734412234 08988776655 089899999 14000
id_pelanggan 1111111111 8924234423 8924234423 8935353535 8911223344 8924234423 8924234423
harga 1900000 1999600 2036900 3492000 2461700 2863600 2590000 19900 19900 19900 27500 124900 7200 24150 14325 14325 1500 1800 11350
stok 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
id_kategori ELK ELK ELK ELK ELK ELK ELK BZR BZR BZR BZR BZR BZR BZR BZR BZR GMK GMK GMK
id_pegawai 201301001 201301001 201301002 201301002 201301002 201301002 201302001
H a l 108
Single Row Function Detail_penjualan
id_nota 86856 86856 86856 86857 86857 86858 86858 86858 86859 86860 86860 86860 86861 86862 86862 Transaksi id_trans BYR1 BYR2 BYR3 BYR4 BYR5 BYR6 BYR7 BYR8 BYR9 BYR10 BYR11 RTR1 RTR2 Pembayaran id_bayar BYR1 BYR2 BYR3 BYR4 BYR5 BYR6 BYR7 BYR8 BYR9 BYR10 BYR11
id_barang STELLA70GR HITLEMON ATTSOFT HITLEMON ATTSOFT MUG-ZDK INDOMIE UHT125ML 32LN5100 32LN5100 DH-6330P ES-FL8605-WW ES-FL8605-WW INDOMIE UHT125ML tgl_trans 2013-05-01 2013-05-01 2013-05-01 2013-05-01 2013-06-01 2013-06-01 2013-07-01 2013-08-01 2013-09-01 2013-07-01 2013-07-01 2013-05-01 2013-07-02
jumlah 1 1 1 1 2 1 10 2 1 1 1 1 1 90 90
subtotal 7200 24150 14325 24150 28650 19900 15000 3600 3492000 3492000 2461700 2863600 2863600 135000 162000
jml_trans 45675 52800 38500 3000000 492000 4408650 2204325 2000000 204325 363600 47000 10500 43650
sisa_piutang 0 0 0 492000 0 47000 2204325 204325 0 2500000 250000
id_nota 86856 86857 86858 86859 86859 86860 86860 86860 86860 86861 86862
id_pegawai 201301001 201301001 201301002 201301002 201301001 201301002 201301001 201301001 201301001 201301002 201302001
H a l 109
Single Row Function retur Id_retur RTR1 RTR2 Detail_retur id_nota 86858 86862 86857
id_barang INDOMIE INDOMIE HITLEMON
id_retur RTR1 RTR2 RTR2
jumlah 7 13 1
Akun no_akun 1 11 111 112 113 114 115 116 2 21 211 3 311 3112 4 41 411 412 413 414 5 511 512 513 514
Aktiva Aktiva Lancar Kas Piutang Dagang Persediaan Barang Dagangan Sewa Dibayar Dimuka (10/12) Asuransi Dibayar Dimuka (09/12) Perlengkapan Hutang Hutang Lancar Utang Dagang Modal Modal Tn X Prive Tn. X Pendapatan Pendapatan Usaha Penjualan Harga Pokok Penjualan Retur Penjualan Potongan Penjualan Beban Beban Listrik Beban Air Beban Telepon Beban Gaji
jurnal no_akun 111 411 111 411 111 411 111 112
id_trans BYR1 BYR1 BYR2 BYR2 BYR3 BYR3 BYR4 BYR4
nm_akun
posisi_dr_cr debet kredit debet kredit debet kredit debet debet
subtotal 10500 19500 24150
header_akun 1 11 11 11 11 11 11 2 21 3 311 4 41 41 41 41 5 5 5 5
nominal 45675 45675 52800 52800 38500 38500 3000000 492000
H a l 110
Single Row Function 411 111 112 111 112 411 111 112 111 112 111 112 111 112 411 111 112 411 413 111 413 111
BYR4 BYR5 BYR5 BYR6 BYR6 BYR6 BYR7 BYR7 BYR8 BYR8 BYR9 BYR9 BYR10 BYR10 BYR10 BYR11 BYR11 BYR11 RTR1 RTR1 RTR2 RTR2
kredit debet kredit debet debet kredit debet kredit debet kredit debet kredit debet debet kredit debet debet kredit debet kredit debet kredit
3492000 492000 492000 4408650 4408650 8817300 2204325 2204325 2000000 2000000 204325 204325 363600 2500000 2863600 47000 250000 297000 10500 10500 43650 43650
H a l 111
Single Row Function Instruksi Query 1. Tampilkan seluruh data yang ada dalam tabel pelanggan
2. Tampilkan seluruh data yang ada dalam tabel pegawai
3. Tampilkan seluruh data yang ada dalam tabel kategori barang
4. Tampilkan data pegawai yang memiliki posisi kasir
5. Tampilkan data barang yang memiliki id_kategori ‘ELK’
6. Tampilkan nama barang beserta dengan harga nya
7. Tampilkan nama barang beserta harganya khusus untuk barang yang memiliki harga diatas 2 juta
8. Tampilkan nama barang beserta harganya khusus untuk barang yang memiliki harga antara 1 juta sampai dengan 3 juta
H a l 112
Single Row Function
9. Tampilkan data barang yang termasuk ke dalam id_kategori ‘ELK’ atau ‘GMK’
10. Tampilkan data nama barang dan id_kategori yang termasuk ke dalam id_kategori ‘ELK’ beserta dengan harganya setelah diskon 10%
11. Tampilkan harga barang yang paling mahal 12. Tampilkan nama barang beserta harga barang untuk barang yang paling mahal
13. Tampilkan data barang yang tidak termasuk ke dalam id_kategori ‘ELK’ atau ‘BZR’
14. Tampilkan id_barang yang pernah terjual dengan menghilangkan data duplikat
15. Urutkan data kategori barang dari ‘Z-A’ (menurun)
H a l 113
Single Row Function
16. Tampilkan id_kategori beserta dengan jumlah barang per masing-masing kategori
17. Tampilkan id_kategori beserta dengan jumlah barang per masing-masing kategori dengan nama kolom nya adalah ‘Jumlah Barang’
18. Tampilkan id_kategori beserta dengan jumlah barang per masing-masing kategori dimana yang ditampilkan adalah id_kategori yang jumlah barangnya lebih dari 5
19. Tampilkan nama bulan yang terdapat transaksi penjualan dengan nama kolom ‘Bulan’ dengan menghilangkan data yang duplikat
20. Tampilkan data nama barang dengan tampilan huruf kapital semua Berdasarkan ER Diagram, diagram relasi antar tabel beserta isi data dalam basis data Toko Elektronik Sukses Selalu. Tampilkan informasi berikut: Pengamatan Instruksi Query 1. Tampilkan data barang yang termasuk kategori ‘ELK’ yang memiliki harga kurang dari 2 juta dari harga termurah sampai dengan yang termahal
H a l 114
Single Row Function 2. Tampilkan nama barang berupa ‘TV’ beserta harganya yang memiliki harga lebih dari 2 juta
3. Tampilkan data pegawai yang memiliki posisi bukan kasir 4. Tampilkan data penjualan yang memiliki total jual Antara 2 juta sampai dengan 4 juta
5. Tampilkan data penjualan yang memiliki total penjualan paling tinggi
8.4
TEST AKHIR Masih dengan menggunakan skema toko Sukses Selalu jawablah pertanyaan berikut dengan mencari query yang sesuai : Instruksi Query 1. Tampilkan data id_pegawai yang pernah melakukan pencatatan transaksi penjualan dengan menghilangkan data yang duplikat
2. Tampilkan id_nota beserta dengan jumlah barang yang dijual dalam setiap masing-masing nota dengan nama kolom ‘Jumlah_Barang’
3. Tampilkan id_nota, total beserta dengan total jika didiskon sebanyak 25% dengan nama kolom
H a l 115
Single Row Function ‘setelah_diskon’ khusus penjualan diatas 2 juta
untuk
4. Tampilkan nama bulan yang terdapat transaksi penjualan dengan nama kolom ‘Bulan’ beserta dengan total penjualan nya perbulan dengan nama kolom ‘total_perbulan’
5. Tampilkan data nama pegawai dan alamatnya dengan tampilan huruf capital pada seluruh tulisan diurutkan dari huruf awal ‘A-Z’
8.5
LAIN-LAIN 1. Kumpulkan jawaban anda kepada para asisten sebelum praktikum diakhiri. 2. Keterlambatan atas pengumpulan modul praktikum sanksinya adalah nilai modul praktikum ini nol (0).
H a l 116
Join Dua Tabel
9
BAB IX JOIN DUA TABEL
9.1 IDENTITAS Kajian 1.SQL (DDL dan DML) Topik 1. Join 2. Alias Referensi 1. Bagui, S., R. Earp; Database Design Using Entity Relationship Diagrams. Auerbach Publications, 2003. 2. Sakkirajan, Suathi; Fundamental of Relational Database Management Systems. Tamil Nadu, India: Springer, 2007. 3. Basis Data Kompetensi Utama 1. Memahami mengenai konsep JOIN 2. Mampu menggunakan jenis-jenis JOIN dan penggunaannya 3. Mampu menggunakan alias nama table- Mampu menggunakan alias nama table Lama Kegiatan Praktikum 1.Pertemuan Terbimbing : 1 x 120 menit 2.Kegiatan Mandiri : 2 x 120 menit Parameter Penilaian 1. Tes Awal 30% 2. Jurnal Pengamatan 30% 3. Tugas Akhir 40%
H a l 117
Join Dua Tabel 9.2
PERTANYAAN PENDAHULUAN 1. Apakah kegunaan alias pada sintaks sql
2. Apakah perbedaan self,inner,outer,left ,right join yang ada ketahui
9.3
PRAKTIK
Soal dan Solusi Studi Kasus Ananda Brownis Penjualan Berikut adalah ER Diagram dan Diagram relasi antar tabel untuk studi kasus Ananda Brownis Penjualan: Kode_Jenis_Kue
Kode_Kue
Nama_Jenis_Kue
JenisKue
n
1
memiliki
Makanan
n
Jangka_expired
Nama_kue
harga_satuan
Harga_satuan
mencatat
jumlah
No_Nota subtotal
Tgl_jual
1 mengacu
m n
m
n Akun
dicatat
Penjualan
n Posisi_dr_cr
Total_jual
Discount
Total_bayar
Kode_akun melakukan nominal
Kode_Outlet
Nama_akun
Nama_outlet
1 Outlet
alamat
telp
H a l 118
Join Dua Tabel Berikut adalah data (isi tabel) yang ada dalam studi kasus Ananda Brownis Penjualan: Tabel Jenis_kue
Outlet
Kue
H a l 119
Join Dua Tabel Penjualan
Detail_jual
Akun
H a l 120
Join Dua Tabel Jurnal_penjualan
Berdasarkan ER Diagram, diagram relasi antar tabel beserta isi data dalam basis data Ananda Brownis Penjualan. Tampilkan informasi berikut: Instruksi Query 1. Tampilkan nama kue dan nama jenis kue SELECT nama_kue, nama_jenis_kue FROM kue a JOIN jenis_kue b dari seluruh data kue yang tersimpan ON a.kode_jenis_kue=b.kode_jenis_kue
2. Tampilkan nama kue yang belum pernah SELECT no_nota, nama_kue FROM kue a terjual LEFT JOIN detail_jual b ON a.kode_kue = b.kode_kue WHERE no_nota IS NULL;
H a l 121
Join Dua Tabel
Soal dan Solusi Berikut terdapat ER Diagram Toko Sukses Selalu. Total_nota alamat
Id_barang
pekerjaan
Nama_barang Tgl_nota
nama
No_ktp
Harga Id_Nota
Subtotal
Jumlah
Stok Id_pelanggan
No_telp
Pelanggan
1
n mendapatkan
Id_pegawai
Nota_penjualan n
n
n
n
Barang
Terdiri dari
1
membayar
n n
No_ktp
Jumlah nama
Pegawai
1
mencatat membayar
alamat
memiliki
Subtotal
1
1
No_telp No_telp
n
posisi
mendata
n
Pembayaran
Kategori_Barang
n
Id_kategori
Retur
nama_kategori
keterangan
no_akun
ISA
Sisa _piutang
nm_akun
Id_trans
Transaksi
m
n
dicatat
1
Akun
Tgl_trans
dikelompokkan
n Posisi _dr_cr
nominal
jml_trans
Diagram Relasi Antar Tabel Toko Elektronik Sukses Selalu PK
id_pelanggan no_ktp nama alamat no_telp pekerjaan
pelanggan char(12) char(16) varchar(25) varchar(50) text varchar(20)
id_pegawai no_ktp nama alamat no_telp posisi
char(10) char(16) varchar(25) varchar(50) text varchar(20)
PK
FK FK
id_nota tgl_nota total id_pelanggan id_pegawai
pegawai PK
PK|FK id_bayar tgl_bayar jumlah_bayar sisa_piutang FK id_nota FK id_pegawai
nota_penjualan char(5) date integer(10) char(12) char(10)
pembayaran char(5) da te
integer(10) integer(10) char(5) char(10)
PK|FK id_nota PK|FK id_barang jumlah subtotal
PK
id_trans tgl_trans jml_trans
da te
integer(10)
PK
FK
PK|FK id_nota PK|FK id_barang PK|FK id_retur jumlah subtotal
PK|FK id_retur tgl_retur total_retur transaksi char(5)
detail_penjualan char(5) char(50) integer(5) integer(11)
PK|FK no_akun PK|FK id_trans posisi_dr_cr nominal
detail_retur char(5) char(50) char(5) integer(5) integer(11)
id_barang nama harga stok id_kategori
PK
id_kategori nama_kategori keterangan
PK
no_akun nm_akun header_akun
barang char(50) varchar(25) integer(8) integer(11) char(3)
kategori_barang char(3) varchar(25) text
retur char(5) da te
integer(10) Jurnal char(5) char(5) varchar(6) integer
FK
Akun char(5) varchar(100) char(5)
H a l 122
Join Dua Tabel
Data dalam Database Toko Sukses Selalu Pelanggan id_pelanggan
no_ktp
1111111111 8924234423 8935353535 8911223344
3372026404830000 3372026404832420 3372026404112233
nama Pelanggan Tidak Terdaftar Jeko Boy Domino
alamat
no_telp
Jl.Bojong Soang Bandung Jl.Sukabirus Bandung Jl.Moch.Toha Bandung
022734412234 098987654321 02254321
pekerjaan
swasta mahasiswa wirausaha
Pegawai
id_pegawai 201301001 201301002 201302001 201302009
no_ktp 3372026404830000 3372026404777777 3372026404987654 3372026404135792
nama Jeko Budi Wawan Wati
Alamat Jl.Bojong Soang Bandung Jl.Sukapura Bandung Jl.Sukabirus Bandung Jl. Telekomunikasi Bandung
no_telp 022734412234 08988776655 089899999 14000
posisi kasir kasir kasir supervisor
Kategori_barang id_kategori ELK BZR SFL GPK GMK PSG
nama_kategori Elektronik Bazar Softline Grocery Perawatan Kecantikan Grocery Makanan Minuman Pasar Segar
Keterangan Elektronik Perlengkapan Rumah Tangga Pakaian Siap Pakai Perawatan dan kecantikan Makanan dan Minuman Sayur, buah dan daging
Barang id_barang UA-22F5000 KLV-24EX430 24LN4100 32LN5100 DH-6330P ES-FL8605-WW NA-F852 MUG-ZDK MUG-SHO MUG-ANI KNWTPUMP KC-105 STELLA70GR HITLEMON ATTSOFT ATTCMAX INDOMIE UHT125ML UHT1000ML
Nama LED TV Samsung 22 inch LED TV SONY 24 Inch LED TV LG 24 Inch LED TV LG 32 Inch HOME THEATHER LG WASHING MACHINE SHARP 6KG WASHING MACHINE PANASONIC 8.5KG MUG ZODIAK MUG SHIO MUG ANIMAL KENMASTER WATER PUMP KOMPOR MINI PORTABLE STELLA ALL IN ONE 70 GR HIT AEROSOL LEMON 600ML ATTACK SOFTENER 800GR ATTACK CLEAN MAXIMIZER 800GR INDOMIE ALL VARIAN ULTRAMILK 125ML ULTRAMILK 1000ML
harga 1900000 1999600 2036900 3492000 2461700 2863600 2590000 19900 19900 19900 27500 124900 7200 24150 14325 14325 1500 1800 11350
stok 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
id_kategori ELK ELK ELK ELK ELK ELK ELK BZR BZR BZR BZR BZR BZR BZR BZR BZR GMK GMK GMK
H a l 123
Join Dua Tabel Nota_penjualan id_nota 86856 86857 86858 86859 86860 86861 86862
tgl_nota 2013-05-01 2013-05-01 2013-05-01 2013-05-01 2013-06-01 2013-07-01 2013-07-01
total 45675 52800 38500 3492000 8817300 2863600 297000
id_pelanggan 1111111111 8924234423 8924234423 8935353535 8911223344 8924234423 8924234423
id_pegawai 201301001 201301001 201301002 201301002 201301002 201301002 201302001
Detail_penjualan
id_nota 86856 86856 86856 86857 86857 86858 86858 86858 86859 86860 86860 86860 86861 86862 86862
id_barang STELLA70GR HITLEMON ATTSOFT HITLEMON ATTSOFT MUG-ZDK INDOMIE UHT125ML 32LN5100 32LN5100 DH-6330P ES-FL8605-WW ES-FL8605-WW INDOMIE UHT125ML
jumlah 1 1 1 1 2 1 10 2 1 1 1 1 1 90 90
subtotal 7200 24150 14325 24150 28650 19900 15000 3600 3492000 3492000 2461700 2863600 2863600 135000 162000
Transaksi id_trans BYR1 BYR2 BYR3 BYR4 BYR5 BYR6 BYR7 BYR8 BYR9 BYR10 BYR11 RTR1 RTR2
tgl_trans 2013-05-01 2013-05-01 2013-05-01 2013-05-01 2013-06-01 2013-06-01 2013-07-01 2013-08-01 2013-09-01 2013-07-01 2013-07-01 2013-05-01 2013-07-02
jml_trans 45675 52800 38500 3000000 492000 4408650 2204325 2000000 204325 363600 47000 10500 43650
Pembayaran id_bayar BYR1 BYR2 BYR3
sisa_piutang 0 0 0
id_nota 86856 86857 86858
id_pegawai 201301001 201301001 201301002
H a l 124
Join Dua Tabel BYR4 BYR5 BYR6 BYR7 BYR8 BYR9 BYR10 BYR11
492000 0 47000 2204325 204325 0 2500000 250000
86859 86859 86860 86860 86860 86860 86861 86862
201301002 201301001 201301002 201301001 201301001 201301001 201301002 201302001
retur Id_retur RTR1 RTR2 Detail_retur id_nota 86858 86862 86857
id_barang INDOMIE INDOMIE HITLEMON
id_retur RTR1 RTR2 RTR2
jumlah 7 13 1
Subtotal 10500 19500 24150
Akun no_akun 1 11 111 112 113 114 115 116 2 21 211 3 311 3112 4 41 411 412 413 414 5 511 512 513 514
nm_akun Aktiva Aktiva Lancar Kas Piutang Dagang Persediaan Barang Dagangan Sewa Dibayar Dimuka (10/12) Asuransi Dibayar Dimuka (09/12) Perlengkapan Hutang Hutang Lancar Utang Dagang Modal Modal Tn X Prive Tn. X Pendapatan Pendapatan Usaha Penjualan Harga Pokok Penjualan Retur Penjualan Potongan Penjualan Beban Beban Listrik Beban Air Beban Telepon Beban Gaji
header_akun 1 11 11 11 11 11 11 2 21 3 311 4 41 41 41 41 5 5 5 5
H a l 125
Join Dua Tabel Jurnal no_akun 111 411 111 411 111 411 111 112 411 111 112 111 112 411 111 112 111 112 111 112 111 112 411 111 112 411 413 111 413 111
id_trans BYR1 BYR1 BYR2 BYR2 BYR3 BYR3 BYR4 BYR4 BYR4 BYR5 BYR5 BYR6 BYR6 BYR6 BYR7 BYR7 BYR8 BYR8 BYR9 BYR9 BYR10 BYR10 BYR10 BYR11 BYR11 BYR11 RTR1 RTR1 RTR2 RTR2
posisi_dr_cr debet kredit debet kredit debet kredit debet debet kredit debet kredit debet debet kredit debet kredit debet kredit debet kredit debet debet kredit debet debet kredit debet kredit debet kredit
nominal 45675 45675 52800 52800 38500 38500 3000000 492000 3492000 492000 492000 4408650 4408650 8817300 2204325 2204325 2000000 2000000 204325 204325 363600 2500000 2863600 47000 250000 297000 10500 10500 43650 43650
Pengamatan Berdasarkan ER Diagram, diagram relasi antar tabel beserta isi data dalam basis data Toko Elektronik Sukses Selalu. Tampilkan informasi berikut: 1. Tampilkan nama pelanggan beserta dengan data transaksi penjualan nya yang terdiri dari id nota, tanggal transaksi penjualan, dan total
H a l 126
Join Dua Tabel 2. Tampilkan nama barang beserta dengan nama kategori barang dari seluruh data barang yang tersimpan
3. Tampilkan nama pegawai yang belum pernah melakukan pencatatan nota penjualan 4. Tampilkan nama pelanggan beserta dengan total seluruh penjualan pada bulan Mei dengan nama kolom “total_penjualan” untuk pelanggan bernama Jeko 5. Tampilkan nama pelanggan beserta dengan total seluruh penjualan per masing-masing pelanggan dengan nama kolom “total_penjualan”
6. Tampilkan nama pelanggan, nama bulan, beserta total seluruh penjualan per masing-masing pelanggan per bulan diurutkan berdasarkan nama pelanggan dari ‘A-Z’
H a l 127
Join Dua Tabel 7. Tampilkan nama pelanggan beserta dengan total seluruh penjualan per masing-masing pelanggan dengan nama kolom “total_penjualan” hanya untuk total penjualan yang lebih dari 3,3 juta
8. Tampilkan nama barang yang belum pernah terjual
9. Tampilkan nama barang beserta dengan jumlah unit barang yang pernah terjual untuk barang bernama ‘Indomie All Varian’ 10. Tampilkan nama barang beserta dengan total unit yang pernah terjual dengan nama kolom total_unit untuk masingmasing barang tersebut. Diurutkan dari total_unit terbesar sampai dengan terkecil
9.4 TEST AKHIR Tentukan query untuk kasus diabawah ini : 1. Tampilkan nama barang beserta dengan total unit yang pernah terjual dengan nama kolom total_unit untuk masing-
H a l 128
Join Dua Tabel masing barang tersebut. Hanya barang dengan total unit lebih dari 50 yang ditampilkan. Diurutkan dari total_unit terbesar sampai dengan terkecil
2. Tampilkan nama barang yang pernah di retur beserta dengan total jumlah retur per barang dengan nama kolom “total_unit”
3. Tampilkan nama barang, harga beserta nama kategorinya khusus untuk barang yang termasuk ke dalam kategori “Elektronik” yang memiliki harga lebih dari 2 juta
4. Tampilkan nama pegawai beserta tanggal khusus untuk pegawai yang bertugas untuk mencatat penjualan pada tanggal 1 Mei 2013 dengan memnghiilangkan data yang duplikat
5. Tampilkan nama akun beserta dengan nama header akunnya
H a l 129
Join Dua Tabel 6. Tampilkan nama akun beserta nama header akunnya dan disertakan akun yang tidak memiliki header akun
7. Tampilkan nama kategori beserta dengan jumlah jenis barang per masing-masing nama kategori dimana yang ditampilkan adalah nama kategori yang jumlah barangnya lebih dari 5
8. Tampilkan melakukan terbesar
9.5
nama pelanggan pembelian dengan
yang total
LAIN-LAIN 1. Kumpulkan jawaban anda kepada para asisten sebelum praktikum diakhiri. 2. Keterlambatan atas pengumpulan modul praktikum sanksinya adalah nilai modul praktikum ini nol (0).
H a l 130
Join Tiga Tabel
10 BAB X JOIN TIGA TABEL 10.1 IDENTITAS Kajian 1.SQL (DDL dan DML) Topik Join tiga tabel atau lebih Referensi 1. Bagui, S., R. Earp; Database Design Using Entity Relationship Diagrams. Auerbach Publications, 2003. 2. Sakkirajan, Suathi; Fundamental of Relational Database Management Systems. Tamil Nadu, India: Springer, 2007. 3. Basis Data Kompetensi Utama 1. Memahami mengenai konsep JOIN 2. Mampu menggunakan jenis-jenis JOIN dan penggunaannya Lama Kegiatan Praktikum 1.Pertemuan Terbimbing : 1 x 120 menit 2.Kegiatan Mandiri : 2 x 120 menit Parameter Penilaian 1. Tes Awal 30% 2. Jurnal Pengamatan 30% 3. Tugas Akhir 40%
H a l 131
Join Tiga Tabel 10.2 PERTANYAAN PENDAHULUAN 3. Bagaimana bentuk umum urutan perintah SQL untuk menampilkan data jika didalamnya terdapat perintah untuk mengelompokkan data, mengurutkan data, join 3 tabel, dengan mensyaratkan data yang ditampilkan dengan melibatkan grouping function! Lengkapi perintah di bawah. SELECT …… ………………
4. Perintah apa yang digunakan untuk mengurutkan data?
5. Perintah apa yang digunakan untuk mengelompokkan data?
10.3 PRAKTIK Soal dan Solusi Studi Kasus Ananda Brownis Penjualan Berikut adalah ER Diagram dan Diagram relasi antar tabel untuk studi kasus Ananda Brownis Penjualan: Kode_Jenis_Kue
Kode_Kue
Nama_Jenis_Kue
JenisKue
n
1
memiliki
Makanan
n
Jangka_expired
Nama_kue
harga_satuan
Harga_satuan
mencatat
jumlah
No_Nota subtotal
Tgl_jual
1 mengacu
m n
m
n Akun
dicatat
Penjualan
n Posisi_dr_cr
Total_jual
Discount
Total_bayar
Kode_akun melakukan nominal
Kode_Outlet
Nama_akun
Nama_outlet
1 Outlet
alamat
telp
H a l 132
Join Tiga Tabel
Berikut adalah data (isi tabel) yang ada dalam studi kasus Ananda Brownis Penjualan: Tabel Jenis_kue
Outlet
Kue
H a l 133
Join Tiga Tabel
Penjualan
Detail_jual
H a l 134
Join Tiga Tabel
Akun
Jurnal_penjualan
H a l 135
Join Tiga Tabel
Berdasarkan ER Diagram, diagram relasi antar tabel Penjualan. Tampilkan informasi berikut: Instruksi 1. Tampilkan no_nota, nama kue dan nama jenis kue yang terjual
2. Tampilkan no_nota , nama kue, dan nama jenis kue yang terjual khusus untuk kue yang mengandung nama Brownies
beserta isi data dalam basis data Ananda Brownis Query SELECT no_nota, nama_kue, nama_jenis_kue FROM detail_jual a JOIN kue b ON a.kode_kue = b.kode_kue JOIN jenis_kue c ON c.kode_jenis_kue = b.kode_jenis_kue;
SELECT no_nota, nama_kue, nama_jenis_kue FROM detail_jual a JOIN kue b ON a.kode_kue = b.kode_kue JOIN jenis_kue c ON c.kode_jenis_kue = b.kode_jenis_kue WHERE nama_kue LIKE ‘Brownies%’;
H a l 136
Join Tiga Tabel
Soal dan Solusi Berikut terdapat ER Diagram Toko Sukses Selalu. Total_nota alamat
Id_barang
pekerjaan
Nama_barang Tgl_nota
nama
No_ktp
Harga Id_Nota
Subtotal
Jumlah
Stok Id_pelanggan
No_telp
Pelanggan
1
n mendapatkan
Id_pegawai
Nota_penjualan n
n
n
n
Barang
Terdiri dari
1
membayar
n n
No_ktp
Jumlah nama
Pegawai
1
mencatat membayar
alamat
memiliki
Subtotal
1
1
No_telp No_telp
n
posisi
mendata
n
Pembayaran
Kategori_Barang
n
Id_kategori
Retur
nama_kategori
keterangan
no_akun
ISA
Sisa _piutang
nm_akun
Id_trans
Transaksi
m
n
dicatat
1
Akun
Tgl_trans
dikelompokkan
n Posisi _dr_cr
nominal
jml_trans
Diagram Relasi Antar Tabel Toko Elektronik Sukses Selalu PK
id_pelanggan no_ktp nama alamat no_telp pekerjaan
pelanggan char(12) char(16) varchar(25) varchar(50) text varchar(20)
id_pegawai no_ktp nama alamat no_telp posisi
char(10) char(16) varchar(25) varchar(50) text varchar(20)
PK
FK FK
id_nota tgl_nota total id_pelanggan id_pegawai
pegawai PK
PK|FK id_bayar tgl_bayar jumlah_bayar sisa_piutang FK id_nota FK id_pegawai
nota_penjualan char(5) date integer(10) char(12) char(10)
pembayaran char(5) da te
integer(10) integer(10) char(5) char(10)
PK|FK id_nota PK|FK id_barang jumlah subtotal
PK
id_trans tgl_trans jml_trans
da te
integer(10)
PK
FK
PK|FK id_nota PK|FK id_barang PK|FK id_retur jumlah subtotal
PK|FK id_retur tgl_retur total_retur transaksi char(5)
detail_penjualan char(5) char(50) integer(5) integer(11)
PK|FK no_akun PK|FK id_trans posisi_dr_cr nominal
detail_retur char(5) char(50) char(5) integer(5) integer(11)
id_barang nama harga stok id_kategori
PK
id_kategori nama_kategori keterangan
PK
no_akun nm_akun header_akun
barang char(50) varchar(25) integer(8) integer(11) char(3)
kategori_barang char(3) varchar(25) text
retur char(5) da te
integer(10) Jurnal char(5) char(5) varchar(6) integer
FK
Akun char(5) varchar(100) char(5)
H a l 137
Join Tiga Tabel Data dalam Database Toko Sukses Selalu Pelanggan id_pelanggan
no_ktp
1111111111 8924234423 8935353535 8911223344
3372026404830000 3372026404832420 3372026404112233
nama Pelanggan Tidak Terdaftar Jeko Boy Domino
alamat
no_telp
Jl.Bojong Soang Bandung Jl.Sukabirus Bandung Jl.Moch.Toha Bandung
022734412234 098987654321 02254321
pekerjaan
swasta mahasiswa wirausaha
Pegawai
id_pegawai 201301001 201301002 201302001 201302009
no_ktp 3372026404830000 3372026404777777 3372026404987654 3372026404135792
nama Jeko Budi Wawan Wati
Alamat Jl.Bojong Soang Bandung Jl.Sukapura Bandung Jl.Sukabirus Bandung Jl. Telekomunikasi Bandung
no_telp 022734412234 08988776655 089899999 14000
posisi kasir kasir kasir supervisor
Kategori_barang id_kategori ELK BZR SFL GPK GMK PSG
nama_kategori Elektronik Bazar Softline Grocery Perawatan Kecantikan Grocery Makanan Minuman Pasar Segar
Keterangan Elektronik Perlengkapan Rumah Tangga Pakaian Siap Pakai Perawatan dan kecantikan Makanan dan Minuman Sayur, buah dan daging
Barang id_barang UA-22F5000 KLV-24EX430 24LN4100 32LN5100 DH-6330P ES-FL8605-WW NA-F852 MUG-ZDK MUG-SHO MUG-ANI KNWTPUMP KC-105 STELLA70GR HITLEMON ATTSOFT ATTCMAX INDOMIE UHT125ML UHT1000ML
Nama LED TV Samsung 22 inch LED TV SONY 24 Inch LED TV LG 24 Inch LED TV LG 32 Inch HOME THEATHER LG WASHING MACHINE SHARP 6KG WASHING MACHINE PANASONIC 8.5KG MUG ZODIAK MUG SHIO MUG ANIMAL KENMASTER WATER PUMP KOMPOR MINI PORTABLE STELLA ALL IN ONE 70 GR HIT AEROSOL LEMON 600ML ATTACK SOFTENER 800GR ATTACK CLEAN MAXIMIZER 800GR INDOMIE ALL VARIAN ULTRAMILK 125ML ULTRAMILK 1000ML
harga 1900000 1999600 2036900 3492000 2461700 2863600 2590000 19900 19900 19900 27500 124900 7200 24150 14325 14325 1500 1800 11350
stok 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
id_kategori ELK ELK ELK ELK ELK ELK ELK BZR BZR BZR BZR BZR BZR BZR BZR BZR GMK GMK GMK
H a l 138
Join Tiga Tabel Nota_penjualan id_nota 86856 86857 86858 86859 86860 86861 86862
tgl_nota 2013-05-01 2013-05-01 2013-05-01 2013-05-01 2013-06-01 2013-07-01 2013-07-01
total 45675 52800 38500 3492000 8817300 2863600 297000
id_pelanggan 1111111111 8924234423 8924234423 8935353535 8911223344 8924234423 8924234423
id_pegawai 201301001 201301001 201301002 201301002 201301002 201301002 201302001
Detail_penjualan
id_nota 86856 86856 86856 86857 86857 86858 86858 86858 86859 86860 86860 86860 86861 86862 86862
id_barang STELLA70GR HITLEMON ATTSOFT HITLEMON ATTSOFT MUG-ZDK INDOMIE UHT125ML 32LN5100 32LN5100 DH-6330P ES-FL8605-WW ES-FL8605-WW INDOMIE UHT125ML
jumlah 1 1 1 1 2 1 10 2 1 1 1 1 1 90 90
subtotal 7200 24150 14325 24150 28650 19900 15000 3600 3492000 3492000 2461700 2863600 2863600 135000 162000
Transaksi id_trans BYR1 BYR2 BYR3 BYR4 BYR5 BYR6 BYR7 BYR8 BYR9 BYR10 BYR11 RTR1 RTR2
tgl_trans 2013-05-01 2013-05-01 2013-05-01 2013-05-01 2013-06-01 2013-06-01 2013-07-01 2013-08-01 2013-09-01 2013-07-01 2013-07-01 2013-05-01 2013-07-02
jml_trans 45675 52800 38500 3000000 492000 4408650 2204325 2000000 204325 363600 47000 10500 43650
Pembayaran id_bayar BYR1 BYR2
sisa_piutang 0 0
id_nota 86856 86857
id_pegawai 201301001 201301001
H a l 139
Join Tiga Tabel BYR3 BYR4 BYR5 BYR6 BYR7 BYR8 BYR9 BYR10 BYR11
0 492000 0 47000 2204325 204325 0 2500000 250000
86858 86859 86859 86860 86860 86860 86860 86861 86862
201301002 201301002 201301001 201301002 201301001 201301001 201301001 201301002 201302001
retur Id_retur RTR1 RTR2 Detail_retur id_nota 86858 86862 86857
id_barang INDOMIE INDOMIE HITLEMON
id_retur RTR1 RTR2 RTR2
jumlah 7 13 1
Subtotal 10500 19500 24150
Akun no_akun 1 11 111 112 113 114 115 116 2 21 211 3 311 3112 4 41 411 412 413 414 5 511 512 513 514
nm_akun Aktiva Aktiva Lancar Kas Piutang Dagang Persediaan Barang Dagangan Sewa Dibayar Dimuka (10/12) Asuransi Dibayar Dimuka (09/12) Perlengkapan Hutang Hutang Lancar Utang Dagang Modal Modal Tn X Prive Tn. X Pendapatan Pendapatan Usaha Penjualan Harga Pokok Penjualan Retur Penjualan Potongan Penjualan Beban Beban Listrik Beban Air Beban Telepon Beban Gaji
header_akun 1 11 11 11 11 11 11 2 21 3 311 4 41 41 41 41 5 5 5 5
H a l 140
Join Tiga Tabel jurnal no_akun 111 411 111 411 111 411 111 112 411 111 112 111 112 411 111 112 111 112 111 112 111 112 411 111 112 411 413 111 413 111
id_trans BYR1 BYR1 BYR2 BYR2 BYR3 BYR3 BYR4 BYR4 BYR4 BYR5 BYR5 BYR6 BYR6 BYR6 BYR7 BYR7 BYR8 BYR8 BYR9 BYR9 BYR10 BYR10 BYR10 BYR11 BYR11 BYR11 RTR1 RTR1 RTR2 RTR2
posisi_dr_cr debet kredit debet kredit debet kredit debet debet kredit debet kredit debet debet kredit debet kredit debet kredit debet kredit debet debet kredit debet debet kredit debet kredit debet kredit
nominal 45675 45675 52800 52800 38500 38500 3000000 492000 3492000 492000 492000 4408650 4408650 8817300 2204325 2204325 2000000 2000000 204325 204325 363600 2500000 2863600 47000 250000 297000 10500 10500 43650 43650
Pengamatan 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)
H a l 141
Join Tiga 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)
H a l 142
Join Tiga 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 masingmasing 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 masingmasing barang setiap hari nya dengan syarat data yang ditampilkan adalah barang yang memiliki total jumlah barang terjual perharinya lebih besar dari
9. Tampilkan nama barang beserta nama pelanggan yang pernah membeli barang
H a l 143
Join Tiga Tabel tersebut khusus untuk barang dengan merk SHARP atau LG diurutkan berdasarkan nama barang dari ‘A-Z’.(JOIN 4 tabel)
10. Tampilkan tanggal penjualan, id_nota yang pernah tercatat, nama pelanggan yang melakukan transaksi, nama pegawai yang mencatat penjualan, dan detail nama barang beserta jumlah barang terjual dari setiap nota
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.
H a l 144
Join Tiga Tabel
10.4 TEST AKHIR Tentukan query untuk kasus diabawah ini : 1. Tampilkan nama barang, nama kategori barang beserta dengan total unit yang pernah terjual dengan nama kolom total_unit untuk masing-masing barang tersebut. Hanya barang dengan total unit lebih dari 50 yang ditampilkan. Diurutkan dari total_unit terbesar sampai dengan terkecil
2. Tampilkan nama barang yang pernah di retur, nama kategori barang, beserta dengan total jumlah retur per barang dengan nama kolom “total_unit” 3. Tampilkan nama barang beserta dengan nama kategori barang untuk barang yang belum pernah terjual
H a l 145
Join Tiga Tabel
4. Tampilkan nama barang, nama kategori beserta dengan total unit yang pernah terjual dengan nama kolom total_unit untuk masing-masing barang tersebut. Diurutkan dari total_unit terbesar sampai dengan terkecil
H a l 146
Join Tiga Tabel 11 BAB XI PRESENTASI PROGRESS TUGAS BESAR 11.1 IDENTITAS Kajian ER Diagram Topik ER Diagram dan Daigram Relasi Antar tabel, Skema Relasi Referensi 1. Bagui, S., R. Earp; Database Design Using Entity Relationship Diagrams. Auerbach Publications, 2003. 2. Sakkirajan, Suathi; Fundamental of Relational Database Management Systems. Tamil Nadu, India: Springer, 2007. 3. Basis Data Kompetensi Utama 1. Mampu membuat ER Diagram berdasarkan studi kasus dunia nyata 2. Mampu membuat Diagram Relasi Antar Tabel dan skema relasi dari ER Diagram Lama Kegiatan Praktikum 1. Pertemuan Terbimbing : 1 x 120 menit 2. Kegiatan Mandiri : 2 x 120 menit Parameter Penilaian 1. Kompleksitas (30%) 2. Kelengkapan isi laporan termasuk dengan kerapihan laporan (30%) 3. Teknik Presentasi (10%) 4. Kemampuan Tanya jawab (30%)
H a l 147
Join Tiga Tabel 11.2 KETENTUAN TUGAS BESAR 1. Kelompok maksimal 3 orang. 2. Asisten dapat membagi jumlah kelompok yang dikelola. 3. Kasus nyata melampirkan bukti transaksi (struk, nota, faktur, formulir). 4. Usulan tema sebagai berikut: - Penjualan barang - Penjualan jasa (sewa menyewa, servis kendaraan, penjualan tiket, event organizer:weding organizer, studio foto, travel, penginapan, tour and travel, dsb.) - Inventaris barang (menangani barang perusahaan beserta lokasi dan perpindahan barang) - Simpan pinjam - Penggajian 5. Jumlah entitas yang terbentuk minimal 5. 6. ER Diagram wajib mampu menangani jurnal umum akuntansi. 7. Buat laporan yang berisi latar belakang perusahaan, deskripsi bisnis proses yang ditangani secara detil, ER Diagram yang diusulkan, skema relasi, dan diagram relasi antar tabel.
H a l 148
Join Tiga Tabel
12 BAB XII PRESENTASI FINAL TUGAS BESAR 12.1 IDENTITAS Kajian SQL Topik DDL, DML dan SELECT Referensi 1. Bagui, S., R. Earp; Database Design Using Entity Relationship Diagrams. Auerbach Publications, 2003. 2. Sakkirajan, Suathi; Fundamental of Relational Database Management Systems. Tamil Nadu, India: Springer, 2007. 3. Basis Data Kompetensi Utama 1. Mampu mengimplementasikan ER Diagram ke dalam basis data di DBMS 2. Mampu menampilkan data baik dari satu sumber tabel atau lebih. Lama Kegiatan Praktikum 1. Pertemuan Terbimbing : 1 x 120 menit 2. Kegiatan Mandiri : 2 x 120 menit Parameter Penilaian 1. Kompleksitas (30%) 2. Kelengkapan isi laporan termasuk dengan kerapihan laporan (30%) 3. Teknik Presentasi (10%) 4. Kemampuan Tanya jawab (30%)
H a l 149
Join Tiga Tabel 12.2 KETENTUAN TUGAS BESAR 1. Membuat DDL sesuai dengan ER Diagram yang telah dibuat berdasarkan studi kasus nyata dan studi kasus lapangan. 2. Membuat DML, yaitu insert minimal 20 buah data untuk setiap tabel yang terbuat. 3. Membuat laporan yang didalamnya adalah laporan yang dibuat pada saat progress tugas besar ditambahkan dengan perintah DDL dan DML yang dibuat.
H a l 150
Daftar Pustaka
13 DAFTAR PUSTAKA 1. Sumathi, S. and Sakkirajan, S. Fundamental of Relational Database Management Systems. India : Springer, 2007. 2. Bagui, Sikha and Earp, Richard. Database Design Using Entity-Relationship Diagrams. Florida : Auerbach Publications, 2003. 3. Silberschatz, Korth and Sudarshan. Database System Concepts Fourth Edition. 2004. 4. Ramakrishnan, Raghu and Gehrke, Johannes. Database Management Systems Second Editions . s.l. : McGraw Hill, 2000. 5. Sumathi, S and Esakkirajan, S. Fundamental of Relational Database Management Systems. Verlag Berlin Heidelberg : Springer, 2007. 1860-9503. 6. Welling, Luke and Thomson, Laura. MySQL Tutorial A Concise Introduction to The Fundamentals of Working with MySQL. Indianapolis : Pearson Education, Inc., 2004.
H a l 151