ujian akhir semester manajemen basis data · merupakan laporan yang berisikan bank yang sering...
TRANSCRIPT
-
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 transaksi-
transaksi 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
Catatan :
Pada Gambar diatas yang bertanda merah merupakan Tabel Transaksional
Entitas selain berwarna merah merupakan Tabel Master
Bekerja Sama
Melakukan
Digolongkan
Meliputi
Terdiri atas
Mengerjakan
Terdiri
Terdapat
Meliputi Atas
Bank
No Id Bank
Nama Bank
Alamat Bank
Telepon
Number (6)
Variable characters (25)
Text (75)
Number (15)
Identifier_1
...
Model Pembayaran
Id Model
Nama Model
Jumlah Angsuran
Bunga
Characters (6)
Variable characters (25)
Money (15)
Float (4)
Identifier_1
...
CMO
Id CMO
Nama CMO
Alamat CMO
No Telp CMO
Tanggal Lahir CMO
No KTP CMO
Characters (6)
Variable characters (25)
Text (75)
Number (15)
Date
Number (16)
Identifier_1
...
Nasabah
Id Nasabah
Nama Nasabah
Alamat Nasabah
Telp Nasabah
Tanggal Lahir Nasabah
No KTP Nasabah
Characters (6)
Variable characters (25)
Text (75)
Number (15)
Date
Number (16)
Identifier_1
...
Angsuran
No Angsuran
Nama Angsuran
Jumlah Angsuran
Tanggal Jatuh Tempo
Tanggal Pembayaran
Jumlah Denda
Total Pembayaran
Characters (6)
Variable characters (25)
Money (15)
Date
Date
Money (15)
Money (15)
Identifier_1
...
Transaksi
Id Transaksi
Nama Transaksi
Harga Sebelum Bunga
Harga Total
Jumlah Piutang
Characters (6)
Variable characters (25)
Money (15)
Money (15)
Money (15)
Identifier_1
...
Golongan Pendapatan
Id Golongan
Nama Golongan
Besar Pendapatan
Characters (6)
Variable characters (25)
Money (15)
Identifier_1
...
Dealer
Id Dealer
Nama Dealer
Alamat Dealer
Telp Dealer
Nama Pemilik
Alamat Pemilik
Telp Pemilik
Characters (6)
Variable characters (25)
Text (75)
Number (15)
Variable characters (25)
Text (75)
Number (15)
Identifier_1
...
Bonus
Id Bonus
Nama Bonus
Jenis Bonus
Besaran Bonus
Tanggal Mulai Bonus
Tanggal Selesai Bonus
Characters (6)
Variable characters (25)
Variable characters (25)
Money (15)
Date
Date
Identifier_1
...
Gudang Mobil
Id Mobil
Jenis Mobil
Merek Mobil
Tipe Mobil
Tahun Pembuatan
Tanggal Masuk
Tanggal Terjuan
Status
Characters (6)
Variable characters (25)
Variable characters (25)
Variable characters (25)
Date
Date
Date
Variable characters (12)
Identifier_1
...
-
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
2. Gudang Mobil
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;
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
4. Model Pembayaran
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;
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;