UJIAN AKHIR SEMESTER MANAJEMEN BASIS DATA “Analisis Bisnis Pada PT. Buana Finance”
Oleh : Kelas A Hafiz Nuzal Djufri
-
5112100170
Dosen: Fajar Baskoro,S.Kom.,M.T.
Jurusan Teknik Infomatika - Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember (ITS) Surabaya 2015
Deskripsi Soal
Pada suatu perusahaan yang bergerak di bidang keuangan yang disebut Buana Finance. Buana merupakan salah satu perusahaan pembiayaan atau yang biasa disebut leasing yang kini mulai berkembang. Leasingumumnya membiayai pembelian kendaraan nasabah atau konsumen, dimana nasabah yang bersangkutan dapat membayar kendaraan nya secara bertahap sesuai dengan ketentuan dan perjanjian kontrak.
Informasi yang dicatat pada perusahaan leasing antara lain :
Nasabah
Vendor penyedia mobil
Bank sumber dana
Credit Marketing Officer
Sistem angsuran dan pembayaran
Banyak nya data yang hanya tersimpan pada database perusahaan inimemerlukan analisis kinerja penjualan. Dari analisis kinerja penjualan tersebut perusahaan dapat mengetahui berapa besar laba yang diperoleh bahkan kerugian. Untuk menganalisa kinerja penjualan diperlukan data historis dari kegiatan penjualan yang kemudian datanya diolah untuk menghasilkan informasi kinerja penjualan. Analisis kinerja penjualan sangat dibutuhkan karena dari situ lah dapat diketahui gambaran kondisi dari perusahaan sebenernya. Jika kinerja penjualan sedang menurun berarti perusahaan sedang dalam keadaan tidak sehat begitu pun sebaliknya jika kinerja penjualan naik berarti perusahaan dalam keadaan sehat.
Perusahaan dapat menganalisa dan mengetahui faktor-faktor yang dapat menjaga kinerja penjualan agar selalu dalam posisi sehat. Analisis dapat dilakukan dengan mengumpulkan data penjualan yang bersifta historis atau lampau dan kemudian melihat grafik kinerja penjualan. Terdapat banyak macam komponen terkait penjualan diantaranya, hubungan antara variasi produk yang dijual, jumlah produk yang dijual, waktu penjualan, promosi produk yang dijual, dan segmentasi pasar.
Dalam melakukan analisis perusahaan perlu memiliki data yang banyak secara kuantitas dan baik secara kualitas. Pihak manajemen perusahaan membutuhan teknologi yang membantu memahami analisis data yang akan dilakukan.
1. Buatlah daftar report yang perlu dibuat untuk menunjang kinerja buana finance beserta gambaran informasi yang bisa dihasilkan 2. Tentukan
tahapan-tahapan
metodologi
untuk
menghasilkan
report
yang
didefinisikan 3. Rancanglah system database transaksional dan database analysisnya (OLTP dan OLAP) dalam bentuk arsitektur basis data 4. Bonus – jawaban bisa dilengkapi dengan prototype implementasi
A. Asumsi –Asumsi
Leasing hanya memfasilitasi nasabah dan sebagai penanggung jawab peminjaman dari nasabah ke bank yang terkait (sesuai dengan kontrak kerjasama)
Kontrak kerjasama antar bank dengan leasing dalam bentuk pemberian metode pembayaran ke nasabah berupa pemberian bunga pinjaman.
Untuk setiap vendor terdapat banyak CMO yang ditugaskan oleh leasing.
CMO yang bekinerja rendah akan diberikan sanksi berupa pengurangan gaji ataupun pemecatan.
Setiap vendor akan direkapitulasi perdaerah bedasarkan bulan dan juga tahun untuk analsisi segemen pasar penjualan
Pengajian kinerja CMO dilakukan pertahun.
Nasabah dapat memilih bank yang ingin dia gunakan untuk bertransaksi.
Leasing akan melakukan evaluasi nasabah setiap bulan untuk melakukan aksi korporasi jika terdapat nasabah yang bermasalah.
Leasing akan mendata nasabah bedasarkan pendapatan dan riwayat pembelian untuk memetakan dan menargetkan pasar serta melakukan langkah langkah strategis.
Leasing akan melakukan evaluasi perbulan untuk melakukan kebijakan strategis terkait peningkatan kinerja.
Leasing membutuhkan data penggunaan bank kepercayaan nasabah untuk dilakukan negosiasi terkait pemberian bunga pinjaman ataupun langkah strategis untuk menguntungkan korporasi (leasing).
Sistem angsuran dan pembayaran merupakan kontrak antara bank dan leasing dalam bentuk model pembayaran nasabah.
Vendor yang memiliki kinerja yang terbaik akan mendapatkan hadiah dari leasing.
B. Daftar Report yang dibutuhkan 1. Report Rekapitulasi Pembelian Merupakan laporan perdaerah secara keseluruhan yang berisikan pembelian mobil yang menggunakan jasa Buana Finance setiap tahun. Adapun secara umum rekapitulasi ini berisikan data sebagai berikut :
Bulan Pembelian
Nama Daerah
Jumlah Pembelian
Jenis Mobil
Merek Mobil
Kategori harga mobil
2. Report Pembelian Perbulan Merupakan laporan pervendor secara keseluruhan dalam satu region yang berisikan pembelian mobil yang menggunakan jasa Buana Finance setiap bulan. Adapun secara umum rekapitulasi ini berisikan data sebagai berikut :
Nama Vendor
Jumlah Pembelian
Jenis Mobil
Merek Mobil
Kategori harga mobil
3. Report Penjualan Mobil Dealer Pertahun Merupakan laporan pervendor secara keseluruhan dalam satu region yang berisikan pembelian mobil yang menggunakan jasa Buana Finance setiap tahun. Adapun secara umum rekapitulasi ini berisikan data sebagai berikut :
Nama Vendor
Jumlah Pembelian
Jenis Mobil
Merek Mobil
Kategori harga mobil
4. Report Bank Pilihan Nasabah Merupakan laporan yang berisikan bank yang sering digunakan nasabah untuk melakukan transaksi pembelian mobil setiap bulan dalam kurun waktu 1 tahun. 5. Report Model Pembayaran Mobil Merupakan rekapitulasi dari pembelian bedasarkan model pembayaran yang dipilih oleh nasabah untuk setiap vendor per region daerah dalam kurun waktu satu bulan. Adapun secara umum laporan ini berisikan data sebagai berikut :
Nama Vendor
Metode Pembayaran
Lama Pembayaran
Besar % Uang Muka (Bedasarkan golongan yang sudah disepakati)
6. Report Rekapitulasi Model Pembayaran Mobil Merupakan rekapitulasi dari pembelian bedasarkan model pembayaran yang dipilih oleh nasabah untuk setiap daerah pertahunnya. Adapun secara umum rekapitulasi ini berisikan data sebagai berikut :
Nama Daerah
Metode Pembayaran
Lama Pembayaran
Besar % Uang Muka (Bedasarkan golongan yang sudah disepakati)
7. Report Nasabah bedasarkan Pendapatan Merupakan laporan yang berisikan data-data nasabah yang digolongkan bedasarkan besarnya pendapatan nasabah. Adapun secara umum laporan ini berisikan data sebagai berikut :
Nama Nasabah
Pekerjaan
Pendapatan
Alamat
Telepon
8. Report Nasabah bedasarkan Riwayat Pembelian Merupakan laporan yang berisikan data-data nasabah yang digolongkan bedasarkan besarnya pendapatan nasabah. Adapun secara umum laporan ini berisikan data sebagai berikut :
Nama Nasabah
Pekerjaan
Pendapatan
Alamat
Telepon
9. Report Riwayat Transaksi Perbulan
Merupakan laporan yang berisikan data-data transaksi bedasarkan pencatatan pada bulan terkait . Adapun secara umum laporan ini berisikan data sebagai berikut :
Nama Nasabah
Pekerjaan
Pendapatan
Alamat
Telepon
Tanggal pembelian
Mode Pembayaran
Tanggal pelunasan
10. Report Credit Marketing Officer Merupakan laporan yang berisikan data-data transaksi bedasarkan CMO yang menangani transaksi terkait . Adapun secara umum laporan ini berisikan data sebagai berikut :
Nama CMO
Pekerjaan
Pendapatan
Alamat
Telepon
11. Report Angsuran Pernasabah Merupakan laporan yang berisikan data-data angsuran masing-masing nasabah. Adapun secara umum laporan ini berisikan data sebagai berikut :
Nama Nasabah
CMO Terkait
Angsuran Ke
Tanggal pembayaran Angsuran
Denda
12. Report Nasabah Bermasalah Merupakan laporan yang berisikan data-data nasabah-nasabah yang mengalami masalah dalam pembayaran angsuran. Adapun secara umum laporan ini berisikan data sebagai berikut :
Nama Nasabah
CMO Terkait
Angsuran Ke
Denda
C. Tahapan-tahapan metodologi (temporal database) untuk menghasilkan report yang didefenisikan 1. Membuat tabel-tabel master 2. Membuat tabel transaksi (Temporal Database) pembelian yang terdapat didalamnya atribut yang berfungsi mencatat waktu transaksi dilaksanakan serta waktu pelunasan transaksi. 3. Membuat tabel angsuran (Temporal Database) yang terdapat didalamnya tanggal pembayaran angsuran dan tanggal jatuh tempo angsuran . 4. Membuat tabel Gudang mobil (Temporal Database)
yang terdapat didalamnya
tanggal masuk mobil (jika nanti mobil dinyatakan masuk dalam kategori bermasalah), tanggal mobil terjual (merupakan tanggal pengeluaran mobil dari masalah) 5. Untuk mendapatkan riwayat pembelian nasabah, maka dibutuhkan temporal database yakni pada atribut waktu transaksi dilakukan. Pada tabel Transaksi kita dapat mengetahui data nasabah yang terlibat pada transaksi yang dimaksud. Dengan dapat diketahuinya data nasabah, tentu kita dapat melakukan penyaringan untuk mencari transaksi-transaksi yang dilakukan oleh nasabah terkait sehingga dapat direkapitulasi
transaksi
bedasarkan
nasabah
dengan
menggunakan
query
SELECT,FROM, WHERE, JOIN, SUM dan GROUP BY. 6. Untuk mendapatkan riwayat transaksi yang dilakukan vendor penyedia mobil perbulannya, maka dibutuhkan temporal database yakni pada atribut waktu transaksi dilakukan. Pada tabel Transaksi kita dapat mengetahui data vendor yang melakukan transaksi yang dimaksud. Dengan dapat diketahuinya vendor penyedia, tentu kita dapat melakukan penyaringan untuk mencari transaksi-transaksi yang dilakukan vendor terkait sehingga dapat direkapitulasi transaksi bedasarkan vendor penyedia dengan menggunakan query SELECT,FROM, WHERE, JOIN, SUM dan GROUP BY. 7. Untuk mendapatkan riwayat transaksi yang dilakukan vendor penyedia mobil pertahunnya, maka dibutuhkan temporal database yakni pada atribut waktu transaksi dilakukan. Pada tabel Transaksi kita dapat mengetahui data vendor yang melakukan transaksi yang dimaksud. Dengan dapat diketahuinya vendor penyedia, tentu kita dapat melakukan penyaringan untuk mencari transaksi-transaksi yang
dilakukan vendor terkait sehingga dapat direkapitulasi transaksi bedasarkan vendor penyedia dengan menggunakan query SELECT,FROM, WHERE, JOIN, SUM dan GROUP BY. 8. Untuk mendapatkan riwayat transaksi yang dilakukan setiap daerah perbulannya dalam kurun waktu 1 tahun, maka dibutuhkan temporal database yakni pada atribut waktu transaksi dilakukan. Pada tabel Transaksi kita dapat mengetahui data vendor yang melakukan transaksi yang dimaksud. Pada data vendor yang melakukan transaksi, kita tentu bisa mendapatkan data tempat keberadaan vendor tersebut. Dengan dapat diketahuinya keberadaan vendor, tentu kita dapat melakukan penyaringan untuk mencari transaksi-transaksi yang dilakukan perdaerahnya dengan menggunakan query SELECT,FROM, WHERE, JOIN, SUM dan GROUP BY. 9. Untuk mendapatkan mendapatkan rekaputulasi data nasabah bedasarkan golongan pendapatan, maka dibutuhkan tabel nasabah. Adapaun untuk mendapatkan data yang diinginkan, maka hanya menggunakan query aljabar relasional standar seperti SELECT FROM dan WHERE pada tabel nasabah. 10. Untuk mendapatkan model pembayaran nasabah, maka dibutuhkan temporal database yakni pada atribut waktu transaksi dilakukan. Pada tabel Transaksi kita dapat mengetahui model pembayaran yang terlibat pada transaksi yang terkait. Dengan dapat diketahuinya data nasabah, tentu kita dapat melakukan penyaringan untuk mencari model-model pembayaran yang dilakukan oleh nasabah terkait sehingga dapat direkapitulasi transaksi bedasarkan nasabah dengan menggunakan query JOIN, SUM dan GROUP BY. 11. Untuk mendapatkan rekapitulasi model pembayaran nasabah, dengan menggunakan query database seperti yang dilakukan pada poin 8, akan tetapi penelusurannya bedasarkan daerah dan waktu transaksional (GROUP BY daerah). 12. Untuk mendapatkan mendapatkan rekaputulasi data transaksi perbulan, maka dibutuhkan tabel transaksi dan kelengkapan seputar transaksi. Adapun untuk mendapatkan data yang diinginkan, maka hanya menggunakan query aljabar relasional standar seperti SELECT FROM WHERE dan JOIN pada tabel transaksi. 13. Untuk mendapatkan rekapitulasi bank kepercayaan nasabah, maka dibutuhkan temporal database yakni pada atribut waktu transaksi dilakukan. Pada tabel Transaksi kita dapat mengetahui model pembayaran yang terlibat pada transaksi
yang terkait. Pada Model pembayaran terdapat bank yang digunakan pada pembayaran. Dengan dapat diketahuinya bank yang terkait pada model pembayaran, tentu kita dapat melakukan penyaringan untuk mencari rekapitulasi data penggunaan bank yang sering digunakan oleh nasabah dengan menggunakan query SELECT,FROM, WHERE, JOIN, SUM dan GROUP BY. 14. Untuk mendapatkan riwayat transaksi yang dilakukan CMO perbulannya, maka dibutuhkan temporal database yakni pada atribut waktu transaksi dilakukan. Pada tabel Transaksi kita dapat mengetahui data vendor yang melakukan transaksi yang dimaksud. Dengan dapat diketahuinya vendor penyedia, tentu kita dapat mengetahui CMO terkait dan melakukan penyaringan untuk mencari transaksitransaksi yang dilakukan CMO terkait sehingga dapat direkapitulasi transaksi bedasarkan menggunakan query SELECT,FROM, WHERE, JOIN, SUM dan GROUP BY. 15. Untuk mendapatkan riwayat angsuran nasabah maka membutuhkan tabel angsuran. Pada tabel angsuran kita dapat mengetahui data nasabah dan transaksi yang terkait dengan angsuran tersebut menggunakan query SELECT,FROM, WHERE, JOIN, SUM dan GROUP BY 16. Untuk mendapatkan rekapitulasi nasabah bermasalah, maka dibutuhkan temporal database yakni pada atribut waktu pembayaran angsuran dilakukan. Pada tabel angsuran kita dapat mengetahui data nasabah yang terlibat pada transaksi yang dimaksud. Dengan dapat diketahuinya data nasabah, tentu kita dapat melakukan penyaringan untuk menghimpun nasabah nasabah yang bermasalah dnegan menggunakan query SELECT,FROM, WHERE, JOIN, SUM dan GROUP BY.
D. Database Transaksional dan Database Analisis (OLTP dan OLAP) 1. Conceptual Data Model
Bank
CMO
No Id Bank
Number (6) <M> Nama Bank Variable characters (25) Alamat Bank Text (75) Telepon Number (15)
Id CMO Characters (6) <M> Nama CMO Variable characters (25) Alamat CMO Text (75) No Telp CMO Number (15) Tanggal Lahir CMO Date No KTP CMO Number (16)
Identifier_1 ... Gudang Mobil Id Mobil Characters (6) <M> Jenis Mobil Variable characters (25) Merek Mobil Variable characters (25) Tipe Mobil Variable characters (25) Tahun Pembuatan Date Tanggal Masuk Date Tanggal Terjuan Date Status Variable characters (12)
Model Pembayaran Id Model Characters (6) <M> Nama Model Variable characters (25) Jumlah Angsuran Money (15) Bunga Float (4)
Identifier_1 ... Nasabah
Identifier_1 ...
Id Nasabah Characters (6) <M> Nama Nasabah Variable characters (25) Alamat Nasabah Text (75) Telp Nasabah Number (15) Tanggal Lahir Nasabah Date No KTP Nasabah Number (16)
Transaksi
Meliputi Atas Melakukan
Golongan Pendapatan
Id Transaksi Characters (6) <M> Nama Transaksi Variable characters (25) Harga Sebelum Bunga Money (15) Harga Total Money (15) Jumlah Piutang Money (15)
Id Dealer Characters (6) <M> Nama Dealer Variable characters (25) Alamat Dealer Text (75) Telp Dealer Number (15) Nama Pemilik Variable characters (25) Alamat Pemilik Text (75) Telp Pemilik Number (15) Identifier_1 ...
Mengerjakan
Identifier_1 ... Meliputi
Bonus Terdiri atas
Id Golongan Characters (6) <M> Nama Golongan Variable characters (25) Besar Pendapatan Money (15) Identifier_1 ...
Terdiri
Dealer
Terdapat
Identifier_1 ... Digolongkan
Identifier_1 ...
Bekerja Sama
Angsuran No Angsuran Characters (6) <M> Nama Angsuran Variable characters (25) Jumlah Angsuran Money (15) Tanggal Jatuh Tempo Date Tanggal Pembayaran Date Jumlah Denda Money (15) Total Pembayaran Money (15)
Id Bonus Characters (6) <M> Nama Bonus Variable characters (25) Jenis Bonus Variable characters (25) Besaran Bonus Money (15) Tanggal Mulai Bonus Date Tanggal Selesai Bonus Date Identifier_1 ...
Identifier_1 ...
Catatan :
Pada Gambar diatas yang bertanda merah merupakan Tabel Transaksional
Entitas selain berwarna merah merupakan Tabel Master
2. Physical Data Model
Catatan:
Pada Gambar diatas yang bertanda merah merupakan Tabel Transaksional
Entitas selain berwarna merah merupakan Tabel Master
E. Implementasi Database 1. Tabel Golongan Pendapatan CREATE TABLE IF NOT EXISTS `mydb`.`Golongan Pendapatan` ( `Id Golongan` CHAR(6) NOT NULL, `Nama Golongan` VARCHAR(25) NULL, `Besar Pendapatan` DECIMAL(10,0) NULL, PRIMARY KEY (`Id Golongan`)) ENGINE = InnoDB;
2. Gudang Mobil CREATE TABLE IF NOT EXISTS `mydb`.`Gudang Mobil` (
`Id Mobil` CHAR(6) NOT NULL, `Jenis Mobil` VARCHAR(25) NULL, `Merek Mobil` VARCHAR(25) NULL, `Tipe Mobil` VARCHAR(25) NULL, `Tahun Pembuatan` DATE NULL, `Tanggal bermasalah` DATE NULL, `Tanggal dituntaskan` DATE NULL, `Status` VARCHAR(15) NULL, PRIMARY KEY (`Id Mobil`)) ENGINE = InnoDB;
3. Nasabah CREATE TABLE IF NOT EXISTS `mydb`.`Nasabah` ( `Id Nasabah` CHAR(6) NOT NULL, `Nama Nasabah` VARCHAR(25) NULL, `Alamat Nasabah` VARCHAR(75) NULL, `Telp Nasabah` DECIMAL(10,0) NULL,
`Tanggal Lahir Nasabah` DATE NULL, `No KTP Nasabah` DECIMAL(10,0) NULL, `Golongan Pendapatan_Id Golongan` CHAR(6) NOT NULL, PRIMARY KEY (`Id Nasabah`, `Golongan Pendapatan_Id Golongan`), INDEX `fk_Nasabah_Golongan Pendapatan1_idx` (`Golongan Pendapatan_Id Golongan` ASC),
CONSTRAINT `fk_Nasabah_Golongan Pendapatan1` FOREIGN KEY (`Golongan Pendapatan_Id Golongan`) REFERENCES `mydb`.`Golongan Pendapatan` (`Id Golongan`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB;
4. Model Pembayaran CREATE TABLE IF NOT EXISTS `mydb`.`Model Pembayaran` ( `Id Model` CHAR(6) NOT NULL, `Nama Model` VARCHAR(25) NULL, `Jumlah Angsuran` DECIMAL(10,0) NOT NULL, `Bunga` FLOAT NULL,
PRIMARY KEY (`Id Model`)) ENGINE = InnoDB;
5. Bank CREATE TABLE IF NOT EXISTS `mydb`.`Bank` ( `Id Mobil` CHAR(6) NOT NULL, `Nama Bank` VARCHAR(25) NULL, `Alamat Bank` VARCHAR(75) NULL, `Telepon` DECIMAL(10,0) NULL,
`Model Pembayaran_Id Model` CHAR(6) NOT NULL, PRIMARY KEY (`Id Mobil`, `Model Pembayaran_Id Model`), INDEX `fk_Bank_Model Pembayaran_idx` (`Model Pembayaran_Id Model` ASC), CONSTRAINT `fk_Bank_Model Pembayaran` FOREIGN KEY (`Model Pembayaran_Id Model`) REFERENCES `mydb`.`Model Pembayaran` (`Id Model`)
ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB;
6. CMO CREATE TABLE IF NOT EXISTS `mydb`.`CMO` ( `Id CMO` CHAR(6) NOT NULL, `Nama CMO` VARCHAR(25) NULL, `Alamat CMO` VARCHAR(75) NULL, `No Telp CMO` DECIMAL(10,0) NULL,
`Tanggal Lahir CMO` DATE NULL, `No KTP CMO` DECIMAL(10,0) NULL, `Dealer_Id Dealer` CHAR(6) NOT NULL, PRIMARY KEY (`Id CMO`, `Dealer_Id Dealer`), INDEX `fk_CMO_Dealer1_idx` (`Dealer_Id Dealer` ASC), CONSTRAINT `fk_CMO_Dealer1`
FOREIGN KEY (`Dealer_Id Dealer`) REFERENCES `mydb`.`Dealer` (`Id Dealer`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB;
7. Dealer CREATE TABLE IF NOT EXISTS `mydb`.`Dealer` ( `Id Dealer` CHAR(6) NOT NULL, `Nama Dealer` VARCHAR(25) NULL, `Alamat Dealer` VARCHAR(75) NULL, `Telp Dealer` VARCHAR(45) NULL,
`Nama Pemilik` VARCHAR(25) NULL, `Alamat Pemilik` VARCHAR(75) NULL, `Telp Pemilik` DECIMAL(10,0) NULL, PRIMARY KEY (`Id Dealer`)) ENGINE = InnoDB;
8. Transaksi CREATE TABLE IF NOT EXISTS `mydb`.`Transaksi` ( `Id Transaksi` CHAR(6) NOT NULL, `Nama Transaksi` VARCHAR(25) NULL, `Harga Sebelum Bunga` DECIMAL(10,0) NULL, `Harga Total` DECIMAL(10,0) NULL, `Jumlah Piutang` DECIMAL(10,0) NULL, `Model Pembayaran_Id Model` CHAR(6) NOT NULL, `Nasabah_Id Nasabah` CHAR(6) NOT NULL, `Nasabah_Golongan Pendapatan_Id Golongan` CHAR(6) NOT NULL, `Gudang Mobil_Id Mobil` CHAR(6) NOT NULL, PRIMARY KEY (`Id Transaksi`, `Model Pembayaran_Id Model`, `Nasabah_Id Nasabah`, `Nasabah_Golongan Pendapatan_Id Golongan`, `Gudang Mobil_Id Mobil`), INDEX `fk_Transaksi_Model Pembayaran1_idx` (`Model Pembayaran_Id Model` ASC), INDEX `fk_Transaksi_Nasabah1_idx` (`Nasabah_Id Nasabah` ASC, `Nasabah_Golongan Pendapatan_Id Golongan` ASC), INDEX `fk_Transaksi_Gudang Mobil1_idx` (`Gudang Mobil_Id Mobil` ASC), CONSTRAINT `fk_Transaksi_Model Pembayaran1` FOREIGN KEY (`Model Pembayaran_Id Model`) REFERENCES `mydb`.`Model Pembayaran` (`Id Model`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Transaksi_Nasabah1` FOREIGN KEY (`Nasabah_Id Nasabah` , `Nasabah_Golongan Pendapatan_Id Golongan`) REFERENCES `mydb`.`Nasabah` (`Id Nasabah` , `Golongan Pendapatan_Id Golongan`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_Transaksi_Gudang Mobil1` FOREIGN KEY (`Gudang Mobil_Id Mobil`) REFERENCES `mydb`.`Gudang Mobil` (`Id Mobil`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB;
9. Angsuran CREATE TABLE IF NOT EXISTS `mydb`.`Angsuran` ( `No Angsuran` CHAR(6) NOT NULL, `Nama Angsuran` VARCHAR(25) NULL, `Jumlah Angsuran` INT NULL, `Tanggal Jatuh Tempo` DATE NULL, `Tanggal Pembayaran` DATETIME NULL, `Total Pembayaran` DECIMAL(10,0) NULL, `Jumlah Denda` DECIMAL(10,0) NULL, `Transaksi_Id Transaksi` CHAR(6) NOT NULL, `Transaksi_Model Pembayaran_Id Model` CHAR(6) NOT NULL, `Transaksi_Nasabah_Id Nasabah` CHAR(6) NOT NULL, `Transaksi_Nasabah_Golongan Pendapatan_Id Golongan` CHAR(6) NOT NULL, PRIMARY KEY (`No Angsuran`, `Transaksi_Id Transaksi`, `Transaksi_Model Pembayaran_Id Model`, `Transaksi_Nasabah_Id Nasabah`, `Transaksi_Nasabah_Golongan Pendapatan_Id Golongan`), INDEX `fk_Angsuran_Transaksi1_idx` (`Transaksi_Id Transaksi` ASC, `Transaksi_Model Pembayaran_Id Model` ASC, `Transaksi_Nasabah_Id Nasabah` ASC, `Transaksi_Nasabah_Golongan Pendapatan_Id Golongan` ASC), CONSTRAINT `fk_Angsuran_Transaksi1` FOREIGN KEY (`Transaksi_Id Transaksi` , `Transaksi_Model Pembayaran_Id Model` , `Transaksi_Nasabah_Id Nasabah` , `Transaksi_Nasabah_Golongan Pendapatan_Id Golongan`) REFERENCES `mydb`.`Transaksi` (`Id Transaksi` , `Model Pembayaran_Id Model` , `Nasabah_Id Nasabah` , `Nasabah_Golongan Pendapatan_Id Golongan`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB;
10. Bonus CREATE TABLE IF NOT EXISTS `mydb`.`Bonus` ( `Id Bonus` CHAR(6) NOT NULL, `Nama Bonus` VARCHAR(25) NULL, `Jenis Bonus` VARCHAR(25) NULL, `Besaran Bonus` DECIMAL(10,0) NULL, `Tanggal Mulai Bonus` DATE NULL, `Tanggal Selesai Bonus` DATE NULL, `Transaksi_Id Transaksi` CHAR(6) NOT NULL, `Transaksi_Model Pembayaran_Id Model` CHAR(6) NOT NULL, `Transaksi_Nasabah_Id Nasabah` CHAR(6) NOT NULL, `Transaksi_Nasabah_Golongan Pendapatan_Id Golongan` CHAR(6) NOT NULL, PRIMARY KEY (`Id Bonus`, `Transaksi_Id Transaksi`, `Transaksi_Model Pembayaran_Id Model`, `Transaksi_Nasabah_Id Nasabah`, `Transaksi_Nasabah_Golongan Pendapatan_Id Golongan`), INDEX `fk_Bonus_Transaksi1_idx` (`Transaksi_Id Transaksi` ASC, `Transaksi_Model Pembayaran_Id Model` ASC, `Transaksi_Nasabah_Id Nasabah` ASC, `Transaksi_Nasabah_Golongan Pendapatan_Id Golongan` ASC),
CONSTRAINT `fk_Bonus_Transaksi1` FOREIGN KEY (`Transaksi_Id Transaksi` , `Transaksi_Model Pembayaran_Id Model` , `Transaksi_Nasabah_Id Nasabah` , `Transaksi_Nasabah_Golongan Pendapatan_Id Golongan`) REFERENCES `mydb`.`Transaksi` (`Id Transaksi` , `Model Pembayaran_Id Model` , `Nasabah_Id Nasabah` , `Nasabah_Golongan Pendapatan_Id Golongan`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB;