Implementasi Dan Pengujian
IV.1.2 Perangkat Lunak yang digunakan
Spesifikasi perangkat lunak yang digunakan dalam membangun aplikasi
E-Commerce berbasis web di Toko Kogasquare pada gambar IV.2 :
Tabel IV.2 Perangkat Lunak yang digunakan
No Perangkat Lunak Keterangan
1 Sistem Operasi Windows 7 Ultimate
2 Bahasa Pemrograman PHP
3 DBMS MySQL
4 Web browser Mozilla firefox 3.6.23
5 Code editor Macromedia Dreamweaver CS3
6 DFD modeler Microsoft Visio 2007
IV.2 Implementasi database
Pembuatan database dilakukan dengan menggunakan aplikasi DBMS
MySQL. Implementasi database dalam bahasa SQL adalah sebagai berikut:
1. Tabel level_user
CREATE TABLE `tbl_level_user` (
`id_level_user` tinyint AUTO_INCREMENT NOT NULL,
`level_user` varchar(255),
/* Keys */
PRIMARY KEY (`id_level_user`)
) ENGINE = InnoDB; 2. Tabel user
CREATE TABLE `tbl_user` (
`id_user` int AUTO_INCREMENT NOT NULL, `id_level_user` tinyint, `id_kota` int, `user_email` varchar(255), `user_password` varchar(100), `nama_depan` varchar(100), `nama_belakang` varchar(100), `jenis_kelamin` varchar(20), `alamat` tinytext, `phone` varchar(20), `kode_pos` int(6),
`insert_date` datetime, `last_login` datetime, `id_forgot_password` int,
`answer_forgot_password` varchar(100), `kode_aktifasi` varchar(50),
`is_active` tinyint DEFAULT '1', /* Keys */
PRIMARY KEY (`id_user`) ) ENGINE = InnoDB;
CREATE INDEX `fk_forgot_password` ON `tbl_user`
(`id_forgot_password`); CREATE INDEX `fk_level_user` ON `tbl_user`
(`id_level_user`);
CREATE INDEX `fk_user_kota` ON `tbl_user`
(`id_kota`); 3. Tabel kategori
CREATE TABLE `tbl_kategori` (
`id_kategori` int AUTO_INCREMENT NOT NULL, `nama_kategori` varchar(255),
`title` varchar(100),
`is_active` tinyint DEFAULT '1', /* Keys */
PRIMARY KEY (`id_kategori`) ) ENGINE = InnoDB;
4. Tabel jenis_produk
CREATE TABLE `tbl_jenis_produk` (
`id_jenis_produk` int AUTO_INCREMENT NOT NULL, `id_kategori` int,
`jenis_produk` varchar(100), /* Keys */
PRIMARY KEY (`id_jenis_produk`) ) ENGINE = InnoDB;
CREATE INDEX `fk_jenis_produk` ON `tbl_jenis_produk`
(`id_kategori`); 5. Tabel sub_jenis_produk
CREATE TABLE `tbl_sub_jenis_produk` (
`id_sub_jenis_produk` int AUTO_INCREMENT NOT NULL, `id_jenis_produk` int,
`jenis` varchar(20), /* Keys */
) ENGINE = InnoDB;
CREATE INDEX `fk_jenis_produk` ON `tbl_sub_jenis_produk` (`id_jenis_produk`); 6. Tabel jenis_buatan
CREATE TABLE `tbl_ jenis_buatan ` (
`id_ jenis_buatan ` int AUTO_INCREMENT NOT NULL, `desc_ jenis_buatan ` varchar(100),
/* Keys */
PRIMARY KEY (`id_ jenis_buatan `) ) ENGINE = InnoDB;
7. Tabel ukuran
CREATE TABLE `tbl_ukuran` (
`id_ukuran` int AUTO_INCREMENT NOT NULL, `ukuran` varchar(20),
`ket` varchar(50), /* Keys */
PRIMARY KEY (`id_ukuran`) ) ENGINE = InnoDB;
8. Tabel produk
CREATE TABLE `tbl_ produk` (
`id_ produk` int AUTO_INCREMENT NOT NULL, `id_sub_jenis_produk` int,
`id_ jenis_buatan ` int, `id_ukuran` int,
`set_special` tinyint DEFAULT '0', `desc_warna` varchar(255),
`desc_ukuran` varchar(255), `stok` mediumint, `berat_produk` float,
`berat` int DEFAULT '1', `diskon` float DEFAULT '0', `harga` float,
`desc_info` tinytext,
`set_new_produk` tinyint DEFAULT '0', `url_img_produk` varchar(255),
`url_img_detail` varchar(255), `insert_date` datetime, `li_class` varchar(50), `link_url` varchar(255),
`is_active` tinyint DEFAULT '1', /* Keys */
PRIMARY KEY (`id_ produk`) ) ENGINE = InnoDB;
CREATE INDEX `fk_produk_jenisbuatan` ON `tbl_produk`
CREATE INDEX `fk_produk_subjenisproduk` ON `tbl_produk`
(`id_sub_jenis_produk`); 9. Tabel transaksi
CREATE TABLE `tbl_transaksi` (
`id_transaksi` int AUTO_INCREMENT NOT NULL, `id_user` int,
`id_status_pembayaran` tinyint DEFAULT '2', `id_status_shipping` int, `tgl_transaksi` datetime, `total_transaksi` float, `id_media_pembayaran` int, `rek_bayar` varchar(20), `atas_nama_bayar` varchar(100), /* Keys */
PRIMARY KEY (`id_transaksi`) ) ENGINE = InnoDB;
CREATE INDEX `fk_status_pengiriman` ON `tbl_transaksi`
(`id_status_shipping`);
CREATE INDEX `fk_transaksi_media_pembayaran` ON `tbl_transaksi`
(`id_media_pembayaran`);
CREATE INDEX `fk_transaksi_status_pembayaran` ON `tbl_transaksi`
(`id_status_pembayaran`); CREATE INDEX `fk_transaksi_user` ON `tbl_transaksi`
(`id_user`); 10. Tabel detail_transaksi
CREATE TABLE `tbl_detail_transaksi` (
`id_detail_transaksi` int AUTO_INCREMENT NOT NULL, `id_transaksi` int, `id_user` int, `id_produk` int, `id_media_pembayaran` int, `qty` int, `sub_total` float, /* Keys */
PRIMARY KEY (`id_detail_transaksi`) ) ENGINE = InnoDB;
CREATE INDEX `fk_detail_transaksi_media_pembayaran` ON `tbl_detail_transaksi`
CREATE INDEX `fk_produk_detail` ON `tbl_detail_transaksi` (`id_produk`);
CREATE INDEX `fk_transksi_detail` ON `tbl_detail_transaksi`
(`id_transaksi`); 11. Tabel shipping
CREATE TABLE `tbl_shipping` (
`id_shipping` int AUTO_INCREMENT NOT NULL, `id_kota` int, `id_layanan_cargo` int, `id_transaksi` int, `id_media_pembayaran` int, `id_status_shipping` int, `id_harga_cargo` int, `shipping_date` date, `shipping_name` varchar(100), `shipping_address1` tinytext, `shipping_pos_code` mediumint(6), `shipping_phone` varchar(20), `shipping_price` float, `shipping_sub_total` float, /* Keys */
PRIMARY KEY (`id_shipping`) ) ENGINE = InnoDB;
CREATE INDEX `fk_harga_cargo` ON `tbl_shipping`
(`id_harga_cargo`);
CREATE INDEX `fk_shipping_cargo` ON `tbl_shipping`
(`id_layanan_cargo`);
CREATE INDEX `fk_shipping_kota` ON `tbl_shipping`
(`id_kota`);
CREATE INDEX `fk_shipping_media_pembayaran` ON `tbl_shipping`
(`id_media_pembayaran`);
CREATE INDEX `fk_shipping_transaksi` ON `tbl_shipping`
(`id_transaksi`);
CREATE INDEX `fk_status_shipping` ON `tbl_shipping`
12. Tabel shipping detail
CREATE TABLE `tbl_shipping_detail` (
`id_shipping_detail` int AUTO_INCREMENT NOT NULL, `id_detail_transaksi` int,
`id_shipping` int, /* Keys */
PRIMARY KEY (`id_shipping_detail`) ) ENGINE = InnoDB;
CREATE INDEX `fk_shipping_detail_detail_transaksi` ON `tbl_shipping_detail`
(`id_detail_transaksi`);
CREATE INDEX `fk_shipping_detail_shipping` ON `tbl_shipping_detail`
(`id_shipping`); 13. Tabel status shipping
CREATE TABLE `t_status_shipping` (
`id_status_shipping` int AUTO_INCREMENT NOT NULL, `status_shipping` varchar(100),
/* Keys */
PRIMARY KEY (`id_status_shipping`) ) ENGINE = InnoDB;
14. Tabel cargo
CREATE TABLE `tbl_cargo` (
`id_cargo` tinyint AUTO_INCREMENT NOT NULL, `nama_cargo` varchar(100),
/* Keys */
PRIMARY KEY (`id_cargo`) ) ENGINE = InnoDB;
15. Tabel_layanan_cargo
CREATE TABLE `tbl_layanan_cargo` (
`id_layanan_cargo` int AUTO_INCREMENT NOT NULL, `id_cargo` tinyint,
`nama_layanan` varchar(100) CHARACTER SET `utf8` COLLATE `utf8_general_ci`,
`harga_kirim_per_kg` float, /* Keys */
PRIMARY KEY (`id_layanan_cargo`) ) ENGINE = InnoDB;
CREATE INDEX `fk_layanan_cargo` ON `tbl_layanan_cargo`
16. Harga Cargo
CREATE TABLE `tbl_harga_cargo` (
`id_harga_cargo` int AUTO_INCREMENT NOT NULL, `id_layanan_cargo` int, `id_kota` int, `harga_cargo` float, `lama_pengiriman` varchar(20), /* Keys */
PRIMARY KEY (`id_harga_cargo`) ) ENGINE = InnoDB;
CREATE INDEX `fk_harga_kota` ON `tbl_harga_cargo`
(`id_kota`);
CREATE INDEX `fk_harga_layanan_cargo` ON `tbl_harga_cargo`
(`id_layanan_cargo`); 17. Tabel Media pembayaran
CREATE TABLE `tbl_media_pembayaran` (
`id_media_pembayaran` int AUTO_INCREMENT NOT NULL, `nama_bank` varchar(20),
`no_rekening` varchar(30), `atas_nama` varchar(50), `path_img` varchar(255), `cab_bank` varchar(255),
`is_active` tinyint DEFAULT '1', /* Keys */
PRIMARY KEY (`id_media_pembayaran`) ) ENGINE = InnoDB;
18. Tabel status pembayaran
CREATE TABLE `tbl_status_pembayaran` (
`id_status_pembayaran` tinyint AUTO_INCREMENT NOT NULL, `status_pembayaran` varchar(50),
/* Keys */
PRIMARY KEY (`id_status_pembayaran`) ) ENGINE = InnoDB;
19. Tabel kota
CREATE TABLE `tbl_kota` (
`id_kota` int AUTO_INCREMENT NOT NULL, `id_provinsi` int,
`nama_kota` varchar(100), `kab_kota` varchar(100), /* Keys */
PRIMARY KEY (`id_kota`) ) ENGINE = InnoDB;
CREATE INDEX `fk_kota_provinsi` ON `tbl_kota`
(`id_provinsi`); 20. Tabel provinsi
CREATE TABLE `tbl_provinsi` (
`id_provinsi` int AUTO_INCREMENT NOT NULL, `nama_provinsi` varchar(100),
/* Keys */
PRIMARY KEY (`id_provinsi`) ) ENGINE = InnoDB;
21. Tabel news
CREATE TABLE `tbl_news` (
`news_id` int AUTO_INCREMENT NOT NULL, `id_user` int, `news_title` varchar(255), `news_date` datetime, `news_content` text, `is_active` tinyint, /* Keys */
PRIMARY KEY (`news_id`), /* Foreign keys */
CONSTRAINT `fk_news_user` FOREIGN KEY (`id_user`)
REFERENCES `tbl_user`(`id_user`) ON DELETE RESTRICT
ON UPDATE RESTRICT ) ENGINE = InnoDB;
CREATE INDEX `fk_news_user` ON `tbl_news`
(`id_user`); 22. Tabel testimonial
CREATE TABLE `tbl_testimonial` (
`id_guestbook` int AUTO_INCREMENT NOT NULL, `id_user` int,
`insert_date` datetime, `subject` varchar(255), `message` tinytext,
`is_active` tinyint DEFAULT '0', /* Keys */
PRIMARY KEY (`id_guestbook`) ) ENGINE = InnoDB;
CREATE INDEX `fk_guestbook_user` ON `tbl_testimonial`
(`id_user`);
23. Tabel forgot password
CREATE TABLE `tbl_forgot_password` (
`id_forgot_password` int AUTO_INCREMENT NOT NULL, `question` varchar(255),
/* Keys */
PRIMARY KEY (`id_forgot_password`) ) ENGINE = InnoDB;
24. Tabel Shop Chart
CREATE TABLE `tbl_shop_chart` (
`order_id` int AUTO_INCREMENT NOT NULL, `id_produk` int,
`session_id` varchar(255), `qty` int,
`order_date` datetime, /* Keys */
PRIMARY KEY (`order_id`) ) ENGINE = InnoDB;
CREATE INDEX `fk_shop_chart_produk_kategori` ON `tbl_shop_chart`
(`id_produk`); Tabel Retur
CREATE TABLE `tbl_retur` (
`id_retur` int(11) NOT NULL AUTO_INCREMENT, `id_transaksi` int(11) DEFAULT NULL,
`no_resi` char(15) DEFAULT NULL, `tgl_retur` date DEFAULT NULL, `tgl_update` datetime DEFAULT NULL,
`status` enum('Pengajuan Retur','Retur Sedang
Diproses','Retur Dibatalkan','Retur Dikonfirmasi','Telah
Diterima Toko','Sedang Dikirim','Telah Diterima Customer') DEFAULT NULL,
`global_status` enum('Belum
Selesai','Dibatalkan','Selesai') DEFAULT NULL COMMENT
'0=>Belum Selesai, 1=>Telah Selesai', PRIMARY KEY (`id_retur`),
KEY `FK_tbl_retur_tbl_transaksi` (`id_transaksi`),
CONSTRAINT `FK_tbl_retur_tbl_transaksi` FOREIGN KEY
(`id_transaksi`) REFERENCES `tbl_transaksi` (`id_transaksi`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; Tabel Detail Retur
`id_detail_retur` int(11) NOT NULL AUTO_INCREMENT, `id_retur` int(11) DEFAULT NULL,
`id_detail_transaksi` int(11) DEFAULT NULL, `jlh_retur` int(11) DEFAULT NULL,
`alasan_retur` enum('Barang Rusak') DEFAULT NULL,
`alasan_ditolak` enum('Tidak Valid','Stok Barang Tidak Ada') DEFAULT NULL,
`status`
enum('Diproses','Diterima','Ditolak','Dibatalkan') DEFAULT
'Diproses',
`tgl_update` datetime DEFAULT NULL, PRIMARY KEY (`id_detail_retur`),
KEY `FK_tbl_detail_retur_tbl_retur` (`id_retur`),
KEY `FK_tbl_detail_retur_tbl_detail_transaksi`
(`id_detail_transaksi`),
CONSTRAINT `FK_tbl_detail_retur_tbl_detail_transaksi`
FOREIGN KEY (`id_detail_transaksi`) REFERENCES
`tbl_detail_transaksi` (`id_detail_transaksi`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `FK_tbl_detail_retur_tbl_retur` FOREIGN KEY (`id_retur`) REFERENCES `tbl_retur` (`id_retur`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
IV.3 Implementasi Antar Muka
Implementasi antar muka dilakukan dengan setiap tampilan program yang
dibangun dan pengkodeannya dalam bentuk file program. Berikut ini adalah
implementasi antarmuka untuk pengguna. Adapun untuk tampilan implementasi
aplikasi E-commerce berbasis Web di Toko Kogasquare akan dilampirkan pada
halaman lampiran.
Tabel IV.3 Implementasi antar muka
Menu Deskripsi Nama File
Login admin Digunakan sebagai halaman
login admin Index.php
Ganti password admin Digunakan jika admin ingin
admin Digunakan untuk melihat
data admin admin. php
kota
Digunakan untuk melihat, menambah, dan merubah data kota
kota. php
provinsi
Digunakan untuk melihat, menambah, dan merubah data provinsi
provinsi. php
kategori
Digunakan untuk melihat, menambah, dan merubah data kategori
kategori. php
Jenis_buatan
Digunakan untuk melihat, menambah, dan merubah data jenis_buatan
Jenis_buatan. php
Jenis produk
Digunakan untuk melihat, menambah, dan merubah
data jenis produk jenis_produk. php
Sub jenis produk
Digunakan untuk melihat, menambah, dan merubah data sub jenis produk
Sub_jenis_produk. php
produk
Digunakan untuk melihat, menambah, dan merubah data produk
produk.php
Testimonial
Digunakan untuk memberikan saran, kritik dan masukan ataupun memberikan komentar.
Shipping Digunakan untuk melihat data harga pengiriman.
Lihat transaksi
Digunakan untuk melihat data transaksi, data detail transaksi, dan mengubah status transaksi.
Lihat_transaksi.php
Retur
Digunakan untuk melihat data retur, dan mengubah status retur
Retur.php
Detail retur
Digunakan untuk melihat detail ratur yang ada di transaksi
Registrasi member Digunakan untuk melakukan
pendaftaran member Register_user.php
Login member Digunakan sebagai halaman
login member Login_user.php
Ganti password member
Digunakan jika member
ingin merubah password Ganti_password.php
Ubah Profil Digunakan untuk mengubah
profil member Edit_profile. Php
Produk Digunakan untuk melihat
seluruh data barang yang ada Produk.php
Detail produk
Digunakan untuk melihat seluruh data barang yang ada secara detail.
Details_produk.php
Keranjang belanja
Digunakan untuk melihat, merubah, menghapus detail transaksi yang akan dilakukan
cart.php
Lihat transaksi
Digunakan untuk melihat
history transaksi yang pernah
dilakukan
Lihat_transaksi.php
Logout
Digunakan User (admin, super administrator,
member)Untuk dapat keluar
dari aplikasi
Logout.php
IV.4 Pengujian Perangkat Lunak
Pengujian sistem merupakan hal terpenting yang bertujuan untuk
menemukan kesalahan – kesalahan atau kekurangan – kekurangan pada perangkat lunak yang diuji. Pengujian bermaksud untuk mengetahui perangkat lunak yang
dibuat sudah memenuhi kriteria yang sesuai dengan tujuan perancangan perangkat
Pengujian perangkat lunak ini menggunakan pengujian black box.
Pengujian black box berfokus pada persyaratan fungsional perangkat lunak.
IV.5 Pengujian Alpha
Pengujian alpha dilakukan dengan menggunakan metode black box. Untuk
pengujian alpha ini yaitu pada pengujian sebagai pengguna.