BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM
4.1 Implementasi Sistem
4.1.3 implementasi basis data
Pembuatan basis data dilakukan dengan menggunakan aplikasi DBMS MySQL. Implementasi basis data dalam bahasa SQL adalah sebagai berikut:
1. Tabel Users
Tabel user digunakan untuk menyimpan untuk menyimpan data user yang dapat menggunakan sistem. Struktur tabel user dapat dilihat pada Tabel 4.3.
Tabel 4.3 Implementasi tabel users
Nama Tabel Perintah
Users
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL
AUTO_INCREMENT,
`firstname` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`lastname` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`username` varchar(100) COLLATE
utf8_unicode_ci NOT NULL,
`password` varchar(64) COLLATE utf8_unicode_ci NOT NULL,
`remember_token` varchar(100) COLLATE
utf8_unicode_ci NOT NULL,
`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3
DEFAULT CHARSET=utf8
2. Tabel Pelanggan
Tabel pelanggan digunakan untuk menyimpan data pelanggan yang melakukan transaksi. Struktur tabel pelanggan dapat dilihat pada Tabel 4.4.
Tabel 4.4 Implementasi tabel pelanggan
Nama Tabel Perintah
Pelanggan
CREATE TABLE `pelanggan` (
`id` int(10) unsigned NOT NULL
AUTO_INCREMENT,
`nama_pelanggan` varchar(255) COLLATE
utf8_unicode_ci NOT NULL,
`no_hp` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`recency` float DEFAULT NULL, `frequency` float DEFAULT NULL, `monetary` float DEFAULT NULL, `skor` float DEFAULT NULL, `updated_at` date DEFAULT NULL, `created_at` date DEFAULT NULL, `id_kategori` int(5) DEFAULT NULL, `exp_diskon` date DEFAULT NULL, `jml_diskon` int(2) DEFAULT NULL, PRIMARY KEY (`id`),
KEY `id_kategori` (`id_kategori`),
CONSTRAINT `pelanggan_ibfk_1` FOREIGN
KEY (`id_kategori`) REFERENCES `kategori` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14
DEFAULT CHARSET=utf8
COLLATE=utf8_unicode_ci;
3. Tabel Transaksi
Tabel transaksi digunakan untuk menyimpan data transaksi yang dilakukan oleh pelanggan. Struktur tabel transaksi dapat dilihat pada Tabel 4.5.
Tabel 4.5 Implementasi tabel transaksi
Nama Tabel Perintah
Transaksi
CREATE TABLE `transaksi` (
`id` int(10) NOT NULL AUTO_INCREMENT, `id_pelanggan` int(10) DEFAULT NULL, `tgl_order` date DEFAULT NULL,
`status_order` varchar(30) DEFAULT 'batal', `total` int(64) DEFAULT '0',
`admin` int(10) DEFAULT NULL, `created_at` date DEFAULT NULL, `updated_at` date DEFAULT NULL, `diskon` int(12) DEFAULT NULL, `bayar` int(64) DEFAULT NULL,
Nama Tabel Perintah
PRIMARY KEY (`id`)
KEY `id_pelanggan` (`id_ pelanggan `),
CONSTRAINT `transaksi_ibfk_1` FOREIGN KEY (`id_ pelanggan `) REFERENCES `pelanggan` (`id`) KEY `admin` (`admin `),
CONSTRAINT `transaksi_ibfk_1` FOREIGN KEY (`admin `) REFERENCES `users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=85
DEFAULT CHARSET=latin1;
4. Tabel Detail Transaksi
Tabel detail transaksi digunakan untuk menyimpan data detail transaksi dari suatu transaksi yang dilakukan oleh pelanggan. Struktur tabel pelanggan dapat dilihat pada Tabel 4.6.
Tabel 4.6 Implementasi tabel detail transaksi
Nama Tabel Perintah
Det_Transaksi
CREATE TABLE `det_transaksi` (
`id` int(10) NOT NULL AUTO_INCREMENT, `invoice` int(10) DEFAULT NULL,
`id_produk` int(10) DEFAULT NULL, `ukuran1` int(5) DEFAULT NULL, `ukuran2` int(5) DEFAULT NULL, `jumlah` int(10) DEFAULT NULL, `total` int(64) DEFAULT NULL, `created_at` date DEFAULT NULL, `updated_at` date DEFAULT NULL, PRIMARY KEY (`id`),
KEY `invoice` (`invoice`),
KEY `det_transaksi_ibfk_2` (`id_produk`),
CONSTRAINT `det_transaksi_ibfk_2` FOREIGN KEY (`id_produk`) REFERENCES `produk` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=74
DEFAULT CHARSET=latin1;
5. Tabel Produk
Tabel produk digunakan untuk menyimpan data produk yang dapat dibeli oleh pelanggan. Struktur tabel produk dapat dilihat pada Tabel 4.7.
Tabel 4.7 Implementasi tabel produk
Nama Tabel Perintah
Produk
CREATE TABLE `produk` (
`id` int(10) NOT NULL AUTO_INCREMENT, `nama_produk` varchar(50) DEFAULT NULL, `ukuran` varchar(10) DEFAULT NULL,
Nama Tabel Perintah
`harga` int(32) DEFAULT NULL, `updated_at` date DEFAULT NULL, `created_at` date DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6
DEFAULT CHARSET=latin1;
6. Tabel Kategori pelanggan
Tabel ketagori pelanggan digunakan untuk menyimpan data kategori pelanggan berdasarkan skor RFM seorang pelanggan. Struktur tabel kategori dapat dilihat pada Tabel 4.8.
Tabel 4.8 Implementasi tabel kategori pelanggan
Nama Tabel Perintah
Kategori
CREATE TABLE `kategori` (
`id` int(12) NOT NULL AUTO_INCREMENT, `nama_kategori` varchar(30) DEFAULT NULL, `bts_bawah` int(5) DEFAULT NULL,
`bts_atas` int(5) DEFAULT NULL, `diskon` float DEFAULT '0', `waktu` int(5) DEFAULT '0', `jml_diskon` int(2) DEFAULT '0', `pesan` text,
`created_at` date DEFAULT NULL, `updated_at` date DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5
DEFAULT CHARSET=latin1;
7. Tabel Keluhan
Tabel keluhan digunakan untuk menyimpan data keluhan dari pelanggan berdasarkan transaksi yang telah dilakukan. Struktur tabel keluhan dapat dilihat pada Tabel 4.9.
Tabel 4.9 Implementasi tabel keluhan
Nama Tabel Perintah
Keluhan
CREATE TABLE `keluhan` (
`id` int(5) NOT NULL AUTO_INCREMENT, `judul` varchar(20) DEFAULT NULL, `isi_keluhan` text,
`id_transaksi` int(5) DEFAULT NULL, `status` varchar(20) DEFAULT NULL, `created_at` date DEFAULT NULL, `updated_at` date DEFAULT NULL, PRIMARY KEY (`id`),
Nama Tabel Perintah
CONSTRAINT `keluhan_ibfk_1` FOREIGN KEY (`id_transaksi`) REFERENCES `transaksi` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23
DEFAULT CHARSET=latin1;
8. Tabel Kritik Saran
Tabel kritik saran digunakan untuk menyimpan data kritik ataupun saran dari pelanggan untuk Akhbar Print. Struktur tabel kritik saran dapat dilihat pada Tabel 4.10.
Tabel 4.10 Implemetasi tabel kritik saran
Nama Tabel Perintah
Kritik Saran
CREATE TABLE `kritiksaran` (
`id` int(5) NOT NULL AUTO_INCREMENT, `nama` varchar(20) DEFAULT NULL, `email` varchar(40) DEFAULT NULL, `subjek` varchar(20) DEFAULT NULL, `isi` text,
`status` varchar(20) DEFAULT NULL, `id_pelanggan` int(5) DEFAULT NULL, `created_at` date DEFAULT NULL, `updated_at` date DEFAULT NULL, PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
9. Tabel Promosi
Tabel promosi digunakan untuk memberikan dorongan untuk pelanggan biasa agar meningkatkan jumlah transaksi. Struktur tabel promosi dapat dilihat pada Tabel 4.11.
Tabel 4.11 Implementasi tabel promosi
Nama Tabel Perintah
Kritik Saran
CREATE TABLE `promosi` (
`id` int(5) NOT NULL AUTO_INCREMENT, `nama_promosi` varchar(20) DEFAULT NULL, `keterangan` varchar(100) DEFAULT NULL, `gambar` varchar(100) DEFAULT NULL, `created_at` date DEFAULT NULL, `updated_at` date DEFAULT NULL, `id_user` int(5) DEFAULT NULL, PRIMARY KEY (`id`)