SKRIPSI
Disusun Oleh:
ARES SETIAWAN
NPM.C1A130039
PROGRAM STRATA 1
BANDUNG
2017
LEMBAR PERSETUJUAN PENGUJI
Disusun oleh :
ARES SETIAWAN
NPM.C1A130039
Skripsi ini telah diterima dan disetujui untuk memenuhi persyaratan mencapai gelar
SARJANA KOMPUTER
Pada
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS BALE BANDUNG
Disetujui oleh
Penguji 1 Penguji 2
Disusun oleh :
ARES SETIAWAN
NPM.C1A130039
Skripsi ini telah diterima dan disetujui untuk memenuhi persyaratan mencapai gelar
SARJANA KOMPUTER
Pada
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS BALE BANDUNG
Disetujui oleh
Disusun oleh :
ARES SETIAWAN
NPM.C1A130039
Skripsi ini telah diterima dan disetujui untuk memenuhi persyaratan mencapai gelar
SARJANA KOMPUTER
Pada
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS BALE BANDUNG
Mengesahkan,
Ketua Prodi Teknik Informatika
Disusun oleh :
ARES SETIAWAN
NPM.C1A130039
Skripsi ini telah diterima dan disetujui untuk memenuhi persyaratan mencapai gelar
SARJANA KOMPUTER
Pada
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INFORMASI
UNIVERSITAS BALE BANDUNG
Mengetahui,
Dekan Fakultas Teknologi dan Informasi
vi
ABSTRAK
Penelitian yang dilakukan adalah dengan menganalisa sistem yang digunakan untuk
proses pengelolaan data penjualan yang berjalan di CV. HADIANITA, serta
rancang bangun aplikasi berbasis web yang direkomendasikan bagi pengelolaan
data penjualan tersebut. Adapun metodologi yang digunakan dalam rancang
bangun aplikasi ini adalah metodologi waterfall, yang memiliki 5 tahapan yaitu;
analisis, perancangan, pengkodean, implementasi dan pengujian. Software yang
digunakan dalam rancang bangun aplikasi ini diantaranya adalah; Balsamiq
Mockup, Xampp, Notepad++ dan Google Chrome sebagai internet browser. Dan
bahasa pemrograman yang digunakan adalah HTML, PHP dan CSS, serta MySQL
sebagai program pembangun database-nya.
Hasil akhir dari pelaksanaan penelitian ini, penulis berhasil menganalisis prosedur
dari pengelolaan data penjualan secara sistematis serta perancangan dan
pembangunan aplikasi berbasis web bagi pengelolaan data penjualan. Melalui
aplikasi ini penulis berharap untuk dapat meningkatkan efisiensi dan efektifitas
pengelolaan data penjualan di CV. HADIANITA serta adanya kemudahan dalam
mendapatkan informasi bagi para pegawai yang terintegrasi dengan aplikasi
tersebut.
vii
KATA PENGANTAR
Penyusunan skripsi ini tidak terlepas dari bantuan pihak lain, oleh karena
itu penulis ingin mengucapkan terima kasih kepada:
viii
Semoga Allah SWT memberikan balasan yang berlipat ganda.
Penulis menyadari bahwa skripsi ini masih banyak memiliki kekurangan
dan jauh dari kesempurnaan, baik dalam hal isi maupun sistematika dan teknik
penulisannya. Oleh karena itu, penulis sangat mengharapkan saran dan kritik yang
membangun dari pembaca sebagai bahan pertimbangan bagi penulis dalam
membuat karya-karya selanjutnya. Semoga skripsi ini dapat memberikan manfaat
bagi semua pihak.
Penulis
ix
DAFTAR ISI
ABSTRACT ........................................................................................................... vi
ABSTRAK ............................................................................................................ vii
KATA PENGANTAR ......................................................................................... viii
DAFTAR ISI ........................................................................................................... x
DAFTAR GAMBAR ........................................................................................... xiii
DAFTAR TABEL ................................................................................................. xv
BAB I PENDAHULUAN ....................................................................................... 1
1.1 Latar Belakang ......................................................................................... 1
1.2 Rumusan Masalah .................................................................................... 2
1.3 Batasan Masalah ...................................................................................... 2
1.4 Tujuan Penelitian ..................................................................................... 3
1.5 Metodologi ............................................................................................... 3
1.5.1 Metodologi Pengumpulan Data ................................................... 3
1.5.2 Metodologi Pengembangan Sistem ............................................. 4
1.6 Sistematika Penulisan .............................................................................. 4
BAB II TINJAUAN PUSTAKA............................................................................. 6
2.1 Landasan Teori ........................................................................................ 6
2.1.1 “Aplikasi Penjualan Barang Berbasis Web dengan Feature
Database Syncronyzer” (Siswoyo, 2011) ................................. 6
2.1.2 “Perancangan Aplikasi Pengelolaan Data Report Penjualan”
(Agung Wahana, 2014) ............................................................ 6
2.1.3 “Membuat Sistem Informasi Penjualan Berbasis Web dengan
PHP dan MySQL” (Nugroho, 2008) ........................................ 7
2.2 Dasar Teori ........................................................................................... 8
2.2.1 Pengertian Aplikasi ..................................................................... 8
2.2.2 Pengertian Pencatatan ................................................................. 8
2.2.3 Pengertian Penjualan ................................................................... 9
2.2.4 Pengertian Web ........................................................................... 9
2.2.5 Pengertian Pengelolaan ............................................................. 10
2.2.6 Pengertian Data ......................................................................... 10
2.2.7 Pengertian Pengelolaan Data ..................................................... 11
2.2.8 Basis Data (Database)............................................................... 11
2.2.9 Balsamiq Mockup ..................................................................... 12
2.2.10 XAMPP ................................................................................... 12
2.2.11 MySQL .................................................................................... 13
x
2.2.12 Notepad ++ ............................................................................. 13
2.2.13 HTML...................................................................................... 14
2.2.14 PHP.......................................................................................... 14
2.2.15 CSS .......................................................................................... 15
2.2.16 Jaringan Komputer .................................................................. 16
2.2.17 SDLC Waterfall....................................................................... 16
2.2.18 UML (Unified Modelling Language) ...................................... 18
BAB III METODOLOGI ...................................................................................... 22
3.1 Kerangka Pemikiran .............................................................................. 22
3.2 Deskripsi Tahap Penelitian .................................................................... 23
3.2.1 Perumusan Masalah................................................................... 23
3.2.2 Pengumpulan Data .................................................................... 23
3.3 Metode Pengembangan Sistem .............................................................. 25
3.3.1 Analisis ...................................................................................... 25
3.3.2 Perancangan .............................................................................. 26
3.3.3 Pengkodean ............................................................................... 26
3.3.4 Implementasi dan Pengujian ..................................................... 26
3.4 Penyelesaian Laporan Penelitian ........................................................... 26
BAB IV ANALISIS DAN PERANCANGAN ..................................................... 27
4.1 Analisis ............................................................................................... 27
4.1.1 Analisis Masalah ....................................................................... 27
4.1.2 Analisis Software ...................................................................... 28
4.1.3 Analisis Pengguna ..................................................................... 28
4.1.4 User Interface ............................................................................ 29
4.1.5 Fitur-fitur ................................................................................... 30
4.1.6 Analisis Data ............................................................................. 30
4.1.7 Analisis Biaya ........................................................................... 31
4.2 Perancangan ........................................................................................... 32
4.2.1 Diagram Arus Data (DAD) UML ............................................. 32
4.2.2 Entity Relasional Diagram (ERD)............................................. 47
4.2.3 Normalisasi................................................................................ 47
4.2.4 Tabel Relasi ............................................................................... 49
4.2.5 Struktur Tabel ............................................................................ 49
4.2.6 Desain ........................................................................................ 50
BAB V IMPLEMENTASI DAN PENGUJIAN ................................................... 55
5.1 Listing Program .................................................................................. 55
xi
5.2 Implementasi dan Pengujian Sistem .................................................. 75
5.2.1 Tempat dan Waktu Implementasi........................................... 75
5.2.2 Pengujian ................................................................................ 75
5.3 Spesifikasi Sistem .............................................................................. 79
5.3.1 Perangkat Keras ...................................................................... 79
5.3.2 Perangkat Lunak ..................................................................... 79
5.4 Instalasi Sistem................................................................................... 80
5.4.1 Instalasi Aplikasi ....................................................................... 80
5.4.2 Instalasi Basis Data ................................................................... 82
5.5 Menjalankan Sistem ........................................................................... 83
BAB VI KESIMPULAN DAN SARAN .............................................................. 88
6.1 Kesimpulan ............................................................................................ 88
6.2 Saran ...................................................................................................... 88
DAFTAR PUSTAKA ........................................................................................... 89
LAMPIRAN-LAMPIRAN
Lampiran 1 Hasil wawancara dengan Manajer Operasional
Lampiran 2 Dokumentasi observasi sistem yang sedang berjalan
xii
DAFTAR GAMBAR
xiii
Gambar 4.27 Rancangan Layout Melihat Data Barang…………………………. 54
Gambar 5.1 Tahap Awal Instalasi XAMPP……………………………………... 80
Gambar 5.2 Instalasi XAMPP Lanjutan………………………………………….81
Gambar 5.3 Panel Kontrol XAMPP……………………………………………... 81
Gambar 5.4 Panel Kontrol XAMPP Aktif………………………………………. 82
Gambar 5.5 Tampilan XAMPP Pada Localhost………………………………… 82
Gambar 5.6 Tampilan Tabel Pada Basis Data cv_hadianita.sql………………… 83
Gambar 5.7 Screenshoot Tampilan Login………………………………………. 83
Gambar 5.8 Screenshoot Menu Mengelola Data Penjualan……………………...84
Gambar 5.9 Screenshoot Menu Mencetak Laporan Data Penjualan……………..84
Gambar 5.10 Screenshot Menu Mengelola Data Barang………………………... 85
Gambar 5.11 Screenshoot Mencetak Laporan Data Barang…………………….. 85
Gambar 5.12 Screenshoot Menu Menambahkan Pengguna…………………….. 86
Gambar 5.13 Screenshoot Menu Memasukan Data Penjualan………………….. 86
Gambar 5.14 Screenshoot Menu Melihat Data Barang…………………………. 87
xiv
DAFTAR TABEL
xv
BAB I
PENDAHULUAN
1
2
1. Aplikasi hanya dapat digunakan oleh petugas yang sudah memiliki akun
login;
2. Aplikasi dapat digunakan oleh admin untuk mengelola data penjualan;
3. Aplikasi dapat digunakan oleh admin untuk mencetak laporan data
penjualan;
4. Aplikasi dapat digunakan oleh admin untuk mengelola data barang;
5. Aplikasi dapat digunakan oleh admin untuk mencetak laporan data barang;
6. Aplikasi dapat digunakan oleh admin untuk menambahkan pengguna baru
untuk dapat mengakses aplikasi;
7. Aplikasi dapat digunakan oleh user untuk memasukan data penjualan;
8. Aplikasi dapat digunakan oleh user untuk melihat data barang.
3
1.5 Metodologi
1. Studi Literatur
Dengan mencari referensi dari buku, jurnal maupun karya tulis ilmiah
lainnya yang mendukung dalam menyelesaikan permasalahan yang akan dibahas,
dan menjadikannya sebagai landasan dalam memecahkan masalah yang dihadapi.
2. Observasi
3. Wawancara
Sistem/Rekayasa
Informasi
Implementasi
Analisis Perancangan Pengkodean
dan Pengujian
BAB I PENDAHULUAN
Bab ini menjelaskan tentang penelitian yang dilakukan terkait dengan hasil
penelitian terdahulu yang relevan. Dan dalam bab ini juga dijelaskan mengenai
teori-teori pendukung dalam membangun aplikasi, yang diambil dari berbagai
sumber seperti buku, jurnal dan karya tulis ilmiah lainya yang relevan, khususnya
teori-teori yang berhubungan dengan aplikasi pengelolaan data penjualan berbasis
web yang akan dibangun.
Bab ini menguraikan tahapan implementasi dari sistem yang telah dibangun.
Selain itu pada bab ini juga dijelaskan mengenai tahapan pengujian sistem dan hasil
dari pengujian tersebut.
Bab ini berisi kesimpulan dan saran-saran dari penulis yang didasarkan pada
perancangan dan realisasi tugas akhir ini, yang mungkin diperlukan untuk
pengembangan dan penelitian untuk hasil yang lebih baik.
BAB II
TINJAUAN PUSTAKA
6
7
2.1.3 “Membuat Sistem Informasi Penjualan Berbasis Web dengan PHP dan
MySQL” (Nugroho, 2008)
Pada buku ini akan dibimbing untuk dapat membangun atau membuat
sebuah aplikasi web yang digunakan untuk menjual produk secara online di
internet. Buku ini memiliki kelebihan yang mendasar, diantaranya adalah:
Berikut adalah beberapa teori yang relevan dengan penelitian yang tengah
dilaksanakan:
Web adalah informasi yang dapat diakses melalui internet dimana dokumen
hypermedia (file komputer) yang disimpan dan kemudian diambil melalui skema
pengalamatan (Mcleod, 2007, p. 95). Pendapat lain mengemukakan Web (World
Wide Web) merupakan sistem pengaksesan informasi dalam internet menggunakan
protokol yang disebut HTTP (Hypertext Transfer Protocol) yang berjalan pada
TCP/IP. (Kadir, 2003, p. 172).
10
Data sering disebut sebagai bahan informasi. Data adalah fakta yang
dikumpulkan dari pengukuran atau pengamatan (Tsichritis dan Lochovsky, 1970).
Sedangkan menurut Synansky dan Pulschen (1995) data adalah fakta mentah (dapat
berupa angka, huruf, karakter khusus) yang menyampaikan sedikit arti. Agar data-
data terkumpul menjadi berarti dan memberi manfaat, maka data-data tersebut
harus diproses lebih lanjut. Data adalah sumber dari informasi. Data merupakan
11
bentuk jamak dari bentuk tungggal data-item. Data adalah kenyataan yang
menggambarkan suatu kejadian-kejadian dan kesatuan nyata (Riyanto, 2009, p. 23).
Menurut (Rosa. A.S., 2014, p. 43), basis data (Database) adalah sistem
terkomputerisasi yang tujuan utamanya adalah memelihara data yang sudah diolah
atau informasi dan membuat informasi tersedia saat dibutuhkan. Pada intinya basis
data adalah media untuk menyimpan data agar dapat diakses dengan mudah dan
cepat. Database merupakan sekumpulan data yang saling terintegrasi satu sama lain
dan terorganisasi berdasarkan sebuah skema atau struktur tertentu dan tersimpan
pada sebuah hardware komputer. Database terdiri dari beberapa tabel (lebih dari
satu tabel) yang saling terorganisir. Tabel digunakan untuk menyimpan data dan
terdiri baris dan kolom. Data tersebut dapat ditampilkan, dimodifikasi, dan dihapus
dari tabel. Setiap pemakai (user) yang diberi wewenang (otoritas) saja yang dapat
melakukan akses terhadap data tersebut.
12
Mockup artinya model atau replika mesin atau struktur, yang digunakan
untuk tujuan instruksional atau eksperimental. Balsamiq mockup adalah program
aplikasi yang digunakan dalam pembuatan tampilan user interface sebuah aplikasi.
Software ini sudah menyediakan tools yang dapat memudahkan dalam membuat
desain prototyping aplikasi yang akan kita buat. Software ini berfokus pada konten
yang ingin digambar dan fungsionalitas yang dibutuhkan oleh pengguna.
2.2.10 XAMPP
Xampp adalah sebuah paket kumpulan software yang terdiri dari Apache,
MySQL, PhpMyAdmin, PHP, Pearl, Filezilla dan lain-lain. Xampp berfungsi untuk
memudahkan instalasi lingkungan PHP, dimana biasanya lingkungan
pengembangan web memerlukan PHP, Apache, MySQL dan PhpMyAdmin serta
13
2.2.11 MySQL
2.2.12 Notepad ++
2.2.13 HTML
HTML atau Hypertext Markup Language adalah bahasa yang dipakai untuk
menampilkan informasi dalam bentuk Hypertext. HTML juga mendukung
bagaimana suatu informasi ditampilkan (Riyanto, 2009, p. 247). HTML adalah
bahasa yang digunakan pada dokumen web sebagai bahasa pertukaran dokumen
web. Struktur dokumen HTML terdiri dari tag pembuka dan tag penutup (Siberio,
2013, p. 19).
Dari beberapa pengertian di atas dapat disimpulkan HTML adalah file text
murni yang dapat dibuat dengan editor teks. Dokumen ini dikenal sebagai web page.
HTML merupakan file yang berisi instruksi-instruksi yang kemudian
diterjemahkan oleh browser yang ada dikomputer sehingga isi formasinya dapat
ditampilkan secara visual.
2.2.14 PHP
Pemrograman PHP dapat ditulis dalam dua bentuk yaitu penulisan baris kode PHP
pada file tunggal dan penulisan kode PHP pada halaman html (Siberio, 2013, p. 49).
2.2.15 CSS
CSS (Cascading Style Sheet) adalah salah satu bahasa pemrograman desain
web yang mengontrol format tampilan sebuah halaman web yang ditulis dengan
menggunakan bahasa penanda (Wiswakarma, 2010).
Jaringan komputer adalah sebuah sistem yang terdiri dari atas komputer-
komputer yang didesain untuk dapat berbagi sumber daya (printer, CPU),
berkomunikasi dan dapat mengakses informasi. Setiap bagian dari jaringan
komputer dapat meminta dan memberikan layanan. Pihak yang meminta/menerima
layanan disebut klien dan yang memberikan/mengirim layanan disebut peladen.
Menurut (Rosa. A.S., 2014, p. 23) SDLC atau Software Development Life
Cycle atau sering disebut juga System Development Life Cycle adalah proses
mengembangkan atau mengubah suatu sistem perangkat lunak dengan
menggunakan model-model dan metodologi yang digunakan orang untuk
mengembangkan sistem-sistem perangkat lunak.
Model SDLC Waterfall merupakan salah satu metode dalam SDLC yang
mempunyai ciri khas pengerjaan setiap fase dalam waterfall harus diselesaikan
terlebih dahulu sebelum melanjutkan ke fase selanjutnya. Artinya fokus terhadap
masing-masing fase dapat dilakukan maksimal karena tidak adanya pengerjaan
yang sifatnya parallel.
Kelebihan model air terjun adalah model ini sangat cocok digunakan ketika
kebutuhan pelanggan sudah sangat dipahami dan kemungkinan terjadinya
perubahan kebutuhan selama pengembangan perangkat lunak kecil, struktur tahap
pengembangan sistem jelas, dokumentasi dihasilkan di setiap tahap pengembangan,
dan sebuah tahap dijalankan setelah tahap sebelumnya selesai dijalankan. Tahapan
tahapan dari metode waterfall adalah sebagai berikut:
17
Sistem/ Rekayasa
Informasi
Simbol Deskripsi
Use Case Fungsionalitas yang disediakan sistem
sebagai unit-unit yang saling bertukar
Nama use case
pesan antar unit atau aktor.
Aktor/actor Orang, proses, atau sistem lain yang
berinteraksi dengan sistem informasi
yang akan dibuat di luar sistem informasi
Nama aktor yang akan dibuat itu sendiri.
Sistem
2. Activity Diagram
Simbol Deskripsi
Percabangan/decision
Asosiasi percabangan dimana jika ada
pilihan aktivitas lebih dari satu.
nama swimlane
yang terjadi.
atau
3. Sequence Diagram
Simbol Deskripsi
Garis hidup/lifeline
Menyatakan kehidupan suatu objek.
21
Objek
Menyatakan objek yang berinteraksi
nama objek : nama pesan.
kelas
Waktu aktif
Menyatakan objek dalam keadaan aktif
dan berinteraksi, semua yang
terhubung dengan waktu aktif ini
adalah sebuah tahapan yang dilakukan
didalamnya.
Mulai
Bagaimana membangun
Perumusan aplikasi pencatatan
Masalah penjualan sesuai dengan
kebutuhan saat ini di
Studi Literatur CV. HADIANITA ?
Pengumpulan
Observasi
Data
Wawancara
Revisi
Penyelesaian Laporan Penelitian
Bimbingan
Selesai
22
23
Berdasarkan dari data dan informasi yang didapat dari hasil observasi awal,
penulis mengindentifikasi permasalahan terdapat pada metode dan alur pencatatan
data penjualan, terdapat beberapa penghambat untuk mengakses data penjualan
yang telah dibuat, karena pengelolaan dan penyimpanan data masih berupa
dokumen-dokumen Ms. Excel yang terkadang penyimpanannya tercecer sehingga
sulit untuk mencari dan mengaksesnya kembali. Selain itu pula ditemukan
permasalahan dalam hal pelaporan dimana pembuatannya harus dilakukan secara
dokumen ganda, karena harus membuat laporan secara harian juga secara bulanan.
Dimana hal demikian dirasa kurang efektif dan efisien. Sehingga dari permasalahan
tersebut penulis mengambil rumusan bagaimana membuat suatu aplikasi pencatatan
penjualan yang sesuai dengan kebutuhan saat ini di CV. HADIANITA.
1. Studi Literatur
2. Observasi
Dari hasil observasi ini penulis mendapatkan data dan informasi bahwa
pencatatan data penjualan masih dilakukan secara semi-manual, sudah
terkomputerisasi, penyimpanan data penjualan yang berupa dokumen Ms. Excel
disimpan pada folder-folder pada komputer, dan masih belum memiliki database
sendiri sehingga memungkinkan terjadinya kesalahan atau hilangnya data
penjualan tersebut dalam penyimpanan laporan.
3. Wawancara
Sistem/Rekayasa Informasi
Analisis Implementasi
Perancangan Pengkodean
dan Pengujian
3.3.1 Analisis
Pada tahapan ini penulis melakukan analisis dari beberapa aspek, yang
nantinya peneliti dapat menentukan kebutuhan-kebutuhan yang akan
dikembangkan. Berikut ini adalah tahapan analisis yang dilakukan:
1. Analisis Masalah
2. Analisis Software
3. Analisis Pengguna
4. User Interface
5. Fitur-fitur
6. Analisis Data
7. Analisis Biaya
26
3.3.2 Perancangan
3.3.3 Pengkodean
Pada tahapan ini program Aplikasi Pencatata Penjualan Berbasis Web yang
telah dibuat selanjutnya diuji secara keseluruhan dengan tujuan untuk mengetahui
keberhasilan dari pembangunan aplikasi tersebut. Bila terjadi kesalahan-kesalahan
maka akan dilakukan perbaikan.
4.1 Analisis
1. Data penjualan yang didapat dari interaksi sebelumnya terjalin via mobile
antara pelanggan dan costumer services, disalin pada notepad oleh costumer
services;
2. Data yang telah disalin pada notepad selanjutnya oleh costumer services
dikirim kepada admin melalui aplikasi Telegram;
3. Data yang telah diterima melalui Telegram, untuk sementara disalin pada
notepad oleh Admin;
4. Admin melakukan validasi pembayaran dari setiap data yang masuk dengan
melakukan pengecekan rekening terhadap setiap transfer yang telah masuk;
5. Admin melakukan konfirmasi kepada costumer services apabila data
pembayaran tidak valid, untuk selanjutnya dilakukan followup oleh
costumer services kepada pelanggan;
6. Admin menyalin dan menyimpan data penjualan yang sudah valid status
pembayarannya pada Ms. Excel;
7. Admin membuat salinan data penjualan pada dokumen Ms. Excel yang
berbeda sebagai pelaporan harian dan bulanan.
27
28
dan dokumen dalam bentuk Ms. Excel. Apabila ingin melakukan akses ulang harus
memakan waktu karena harus dilakukan pencarian, terlebih untuk mengakses data
yang telah lama yang terkadang penyimpanan dokumennya tercecer dan terlupakan
maka akan memakan waktu lebih lama lagi. Melalui aplikasi yang tengah dibangun
ini, diharapkan proses pencatatan data akan berjalan lebih efisien dan efektif,
disamping berbagai kemudahan yang akan didapatkan.
No Admin User
1 Mengelola data penjualan yang Memasukan data penjualan sesuai
telah dimasukan oleh user dengan hak aksesnya
2 Mencetak laporan data penjualan Melihat informasi data barang
secara perhari maupun per bulan
3 Mengelola data barang
4 Mencetak laporan data barang
5 Menambahkan pengguna baru
4.1.5 Fitur-fitur
1. Untuk membatasi hak akses, maka form log in dipergunakan sehingga data
dapat tersimpan dengan aman;
2. Pengelolaan data dari mulai memasukan data, memperbaharui data,
menyimpan data hingga menampilkan informasi mengenai data penjualan
merupakan tugas utama dari aplikasi;
3. Dengan menyediakan menu pintasan di sebelah kanan layar dan di tempat
itulah pengguna bisa langsung mendapatkan informasi secara jelas tanpa
harus mengunjungi link-link yang lebih dalam;
4. Form pencarian menjadikan pengguna untuk diarahkan secara cepat dan
mudah untuk mendapatkan informasi yang diharapkan;
5. Selain disimpan, data penjualan juga dapat dicetak sebagai bahan pelaporan.
Dari hasil analisis yang didapat paduan antara user interface dan fitur
aplikasi perlu dibentuk untuk menciptakan produk yang cepat, mudah, efektif, dan
efisien, termasuk dalam hal mengakses data penjualan.
Analisis data dilakukan untuk mengetahui data apa saja yang menunjang
bagi aplikasi pencatatan penjualan yang akan dibuat, sehingga dapat diproses dan
menghasilkan informasi yang dibutuhkan CV. HADIANITA.
Pada dasarnya sistem yang dibangun tidaklah jauh berbeda dengan sistem
yang telah ada. Sistem yang dibangun hanyalah peralihan dari sistem manual ke
sistem menggunakan aplikasi. Sistem menggunakan aplikasi diharapkan dapat
membantu dan memudahkan karyawan di CV. HADIANITA sebagai pengguna.
Berikut adalah analisis berupa data masukan, proses dan keluaran yang
menunjang dibuatnya aplikasi pencatatan penjualan di CV.HADIANITA:
31
4.2 Perancangan
1. Deskripsi Aktor
Tabel 4.5 Deskripsi Aktor
Aktor Deskripsi
Admin Pengguna yang melakukan operasi pengelolaan
data penjualan, mencetak laporan data penjualan
secara per hari dan per bulan, mengelola data
barang, mencetak laporan data barang, dan juga
bertugas menambahkan pengguna.
User Pengguna yang melakukan operasi memasukan
data penjualan sesuai hak aksesnya dan juga dapat
melihat data barang.
33
a. Skenario Login
Identifikasi
Nama Login
Memastikan hak akses admin/user yang telah terdaftar
Tujuan
(pengguna sah).
Merupakan skenario validasi admin/user untuk memutuskan
Deskripsi
apakah pengguna memiliki hak akses sebagai admin/user.
Aktor Admin/User
Skenario Utama
Kondisi Awal Aktor sudah memiliki hak akses admin/user pada aplikasi.
Identifikasi
Nama Mengelola data penjualan
Tujuan Pengelolaan data penjualan
35
Identifikasi
Nama Mencetak laporan data penjualan
Tujuan Mencetak hasil penjualan
Merupakan skenario untuk memberikan keluaran dari aplikasi
Deskripsi
berupa hasil cetak menjadi dokumen dengan format .pdf.
Aktor Admin
Skenario Utama
Kondisi Awal Aktor mengakses menu penjualan.
Aksi Aktor Reaksi Aplikasi
Melakukan koneksi dengan database dan
Memasukan pilihan tanggal
menampilkan preview data penjualan per
dari data yang akan dicetak
tanggal yang telah dipilih sesuai masukannya.
Menampilkan print preview dokumen dengan
Pilih cetak
format .pdf dari data yang akan dicetak
Aplikasi memberikan keluaran data berupa hasil cetak yaitu
Kondisi Akhir
dokumen dengan format .pdf.
36
Identifikasi
Nama Mengelola data barang
Tujuan Pengelolaan data barang
Merupakan skenario untuk melakukan masukan,
Deskripsi memperbaharui, menghapus ataupun melihat terhadap data
barang yang dijual.
Aktor Admin
Skenario Utama
Aktor sudah berhasil login sebagai admin dan mengakses
Kondisi Awal
menu barang.
Aksi Aktor Reaksi Aplikasi
Menambah, memperbaharui,
menghapus dan melihat data yang Data di dalam database akan dirubah sesuai
berhubungan dengan barang yang dengan aksi yang dilakukan aktor.
dijual
Identifikasi
Nama Mencetak laporan data barang
Tujuan Mencetak informasi mengenai barang yang dijual
Merupakan skenario untuk memberikan keluaran dari aplikasi
Deskripsi
berupa hasil cetak menjadi dokumen dengan format .pdf.
Aktor Admin
Skenario Utama
Aktor sudah berhasil login sebagai admin dan mengakses
Kondisi Awal
menu barang.
37
Identifikasi
Nama Menambahkan pengguna
Tujuan Menambahkan pengguna yang sah
Merupakan skenario untuk menambah pengguna yang dapat
Deskripsi
mengakses aplikasi sesuai hak aksesnya.
Aktor Admin
Skenario Utama
Aktor sudah berhasil login sebagai admin dan mengakses
Kondisi Awal
menu tambah pengguna.
Aksi Aktor Reaksi Aplikasi
Data pengguna yang dimasukan
Masukan data pengguna
tersimpan pada database
Data pengguna akan dimasukan ke dalam database dan
Kondisi Akhir
menampilkan pesan pemberitahuan.
Identifikasi
Nama Memasukan data penjualan
Tujuan Memasukan data penjualan
Merupakan skenario untuk melakukan masukan data
Deskripsi
penjualan terhadap aplikasi
Aktor User
38
Skenario Utama
Aktor sudah berhasil login sebagai user dan mengakses
Kondisi Awal
halaman penjualan.
Aksi Aktor Reaksi Aplikasi
Identifikasi
Nama Melihat data barang
Tujuan Mendapatkan informasi mengenai barang yang dijual
Merupakan skenario untuk memperoleh informasi barang
Deskripsi
yang dijual termasuk harga jual.
Aktor User
Skenario Utama
Kondisi Awal Aktor sudah berhasil login sebagai user
Aksi Aktor Reaksi Aplikasi
Penjualan
4.2.3 Normalisasi
Normalisasi adalah suatu proses mendesain struktur basis data sehingga
sebagian besar ambiguitas bisa dihilangkan sampai kemudian bisa menghasilkan
sebuah tabel yang normal.
Bentuk ini merupakan semua kumpulan data yang akan direcord, tidak ada
keharusan mengikuti format tertentu, dapat saja tidak lengkap atau terduplikasi
datanya. Berikut ini bentuk data tidak normal:
Pada tahap ini dilakukan penentuan relasi antar tabel, sehingga akan
ditemukan adanya field kunci sekunder pada tabel-tabel tertentu.
Adapun struktur rancangan basis data (database) yang akan di buat pada
aplikasi ini adalah sebagai berikut:
4.2.6 Desain
<html>
<head>
<title>Skripsi Ares</title>
<link rel="stylesheet" type="text/css"
href="assets/css/bootstrap.css">
<link rel="stylesheet" type="text/css"
href="assets/js/jquery-ui/jquery-ui.css">
<script type="text/javascript"
src="assets/js/jquery.js"></script>
<script type="text/javascript"
src="assets/js/bootstrap.js"></script>
<script type="text/javascript" src="assets/js/jquery-
ui/jquery-ui.js"></script>
<?php include 'admin/config.php'; ?>
<style type="text/css">
.kotak{
margin-top: 150px;
}
.kotak .input-group{
margin-bottom: 20px;
}
</style>
</head>
<body>
<div class="container">
<?php
if(isset($_GET['pesan'])){
if($_GET['pesan'] == "gagal"){
echo "<div style='margin-bottom:-55px'
class='alert alert-danger' role='alert'><span class='glyphicon
glyphicon-warning-sign'></span> Login Gagal !! Nama Petugas /
Kata Sandi Salah !!</div>";
}
}
?>
<div class="panel panel-default">
<form action="login_act.php" method="post">
<div class="col-md-4 col-md-offset-4 kotak">
55
56
<?php
<?php
if(isset($_GET['tanggal'])){
$tanggal=mysql_real_escape_string($_GET['tanggal']);
$tg="lap_barang_laku.php?tanggal='$tanggal'";
?><?php
}
else if(isset($_GET['cari'])){
$tgl_awal = mysql_real_escape_string($_GET['tgl_awal']);
$tgl_akhir = mysql_real_escape_string($_GET['tgl_akhir']);
$tg="lap_barang_laku.php?tgl_awal=$tgl_awal&tgl_akhir=$tgl_akhir
";
?><a style="margin-bottom:10px" href="<?php echo $tg ?>"
target="_blank" class="btn btn-default pull-right"><span
class='glyphicon glyphicon-print'></span> Cetak</a><?php
}
else{
$tg="lap_barang_laku.php";
}
?>
<br/>
<?php
if(isset($_GET['tgl_awal']))
{
echo "<h4> Data Penjualan Tanggal: <a style='color:blue'>
". $_GET['tgl_awal']." - ". $_GET['tgl_akhir']."</a></h4>";
}
?>
<table class="table">
<tr><th>No</th>
<th>Tanggal</th>
<th>Petugas</th>
<th>Nama</th>
<th>Detil</th>
<th>Jumlah</th>
<th>Pembeli</th>
<th>Alamat</th>
<th>Telp.</th>
<th>Bank</th>
<th>Transfer</th>
<th>Laba</th>
<th>Resi</th>
<th>Opsi</th>
</tr>
58
<?php
if(isset($_GET['temukan'])){
$temukan=mysql_real_escape_string($_GET['temukan']);
$brg=mysql_query("select * from barang_laku where nama
like '%$temukan%' or pembeli like '%$temukan%'");
$no=1;
while($b=mysql_fetch_array($brg)) {
?>
<tr>
<td><?php echo $no++ ?></td>
<td><?php echo $b['tanggal'] ?></td>
<td><?php echo $b['petugas'] ?></td>
<td><?php echo $b['nama'] ?></td>
<td><?php echo $b['detil'] ?></td>
<td><?php echo $b['jumlah'] ?></td>
<td><?php echo $b['pembeli'] ?></td>
<td><?php echo $b['alamat'] ?></td>
<td><?php echo $b['telp'] ?></td>
<td><?php echo $b['bank'] ?></td>
<td>Rp.<?php echo number_format($b['transfer']) ?>,-
</td>
<td><?php echo "Rp.".number_format($b['laba']).",-
"?></td>
<td><?php echo $b['resi'] ?></td>
<td>
<a href="edit_laku.php?id=<?php echo $b['id'];
?>" class="btn btn-warning">Edit</a>
<a onclick="if(confirm('Apakah anda yakin ingin
menghapus data ini ??')){ location.href='hapus_laku.php?id=<?php
echo $b['id']; ?>&jumlah=<?php echo $b['jumlah'] ?>&nama=<?php
echo $b['nama']; ?>' }" class="btn btn-danger">Hapus</a>
</td>
</tr>
<?php
}
}
?>
<?php
if(!isset($_GET['temukan'])){
if(isset($_GET['cari'])){
$tgl_awal = mysql_real_escape_string($_GET['tgl_awal']);
$tgl_akhir =
mysql_real_escape_string($_GET['tgl_akhir']);
$brg=mysql_query("select * from barang_laku where
tanggal between '$tgl_awal' AND '$tgl_akhir' order by tanggal
desc");
}
else{
$per_hal=10;
$jumlah_record=mysql_query("SELECT COUNT(*) from
barang_laku");
$jum=mysql_result($jumlah_record, 0);
59
$halaman=ceil($jum / $per_hal);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $per_hal;
<?php
}
}
else{
echo "";
}
?>
<tr>
<?php
if(isset($_GET['tgl_awal'])){
$tgl_awal=$_GET['tgl_awal'];
$tgl_akhir=$_GET['tgl_akhir'];
$query=mysql_query("select * from barang_laku where
tanggal between '$tgl_awal' AND '$tgl_akhir'");
$x=mysql_query("select sum(transfer) as total from
barang_laku where tanggal between '$tgl_awal' AND
'$tgl_akhir'");
$xx=mysql_fetch_array($x);
echo "<td colspan='7'>Total Pemasukan</td>
<td><b> Rp.". number_format($xx['total']).",-
</b></td>";
}else{
60
}
?>
</tr>
<tr>
<?php
if(isset($_GET['tgl_awal'])){
$tgl_awal=$_GET['tgl_awal'];
$tgl_akhir=$_GET['tgl_akhir'];
$query=mysql_query("select * from barang_laku where
tanggal between '$tgl_awal' AND '$tgl_akhir'");
$x=mysql_query("select sum(laba) as total from
barang_laku where tanggal between '$tgl_awal' AND
'$tgl_akhir'");
$xx=mysql_fetch_array($x);
echo "<td colspan='7'>Total Laba</td>
<td><b> Rp.". number_format($xx['total']).",-
</b></td>";
}else{
}
?>
</tr>
</table>
<ul class="pagination">
<?php
$per_hal=10;
$jumlah_record=mysql_query("SELECT COUNT(*) from
barang_laku");
$jum=mysql_result($jumlah_record, 0);
$halaman=ceil($jum / $per_hal);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $per_hal;
for($x=1;$x<=$halaman;$x++){
?>
<li><a href="?page=<?php echo $x ?>"><?php echo $x
?></a></li>
<?php
}
?>
</ul>
<!-- input -->
<div id="myModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-
dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title"> Data Penjualan Baru
</div>
<div class="modal-body">
<form action="barang_laku_act.php"
method="post">
<div class="form-group">
<label>Tanggal</label>
<input name="tgl" type="text"
class="form-control" id="tgl" autocomplete="off">
</div>
61
<div class="form-group">
<label>Barang</label>
<select class="form-control"
name="nama">
<?php
$brg=mysql_query("select * from
barang");
while($b=mysql_fetch_array($brg)){
?>
<option value="<?php echo
$b['nama']; ?>"><?php echo $b['nama'] ?></option>
<?php
}
?>
</select>
</div>
<div class="form-group">
<label>Detil</label>
<input name="detil" type="text"
class="form-control" placeholder="Detil" autocomplete="off">
</div>
<div class="form-group">
<label>Jumlah</label>
<input name="jumlah" type="text"
class="form-control" placeholder="Jumlah" autocomplete="off">
</div>
<div class="form-group">
<label>Pembeli</label>
<input name="pembeli" type="text"
class="form-control" placeholder="Nama Pembeli"
autocomplete="off">
</div>
<div class="form-group">
<label>Alamat</label>
<input name="alamat" type="text"
class="form-control" placeholder="Alamat Pembeli"
autocomplete="off">
</div>
<div class="form-group">
<label>Telp.</label>
<input name="telp" type="text"
class="form-control" placeholder="Masukan No. Telp"
autocomplete="off">
</div>
<div class="form-group">
<label>Bank</label>
<select name='bank' class="form-
control">
<option value=''>--Pilih Bank--
</option>
<option value='BCA'>BCA</option>
<option value='BNI'>BNI</option>
<option value='BRI'>BRI</option>
<option
value='MANDIRI'>MANDIRI</option></select>
</div>
<div class="form-group">
<label>Transfer</label>
62
include 'config.php';
require('../assets/pdf/fpdf.php');
if(isset($_GET['tanggal'])){
$tanggal=$_GET['tanggal'];
}
if(isset($_GET['tgl_awal'])){
$tanggal=$_GET['tgl_awal']." - ".$_GET['tgl_akhir'];
}
$pdf->SetMargins(2,1,1);
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','B',11);
$pdf->SetX(4);
$pdf->Line(1,3.1,28.5,3.1);
63
$pdf->SetLineWidth(0.1);
$pdf->Line(1,3.2,28.5,3.2);
$pdf->SetLineWidth(0);
$pdf->ln(1);
$pdf->SetFont('Arial','B',14);
$pdf->Cell(0,0.7,'Laporan Data Penjualan',0,0,'C');
$pdf->ln(1);
$pdf->ln(1);
$pdf->SetFont('Arial','B',10);
$pdf->Cell(6.5,0.7,"Laporan penjualan pada: ".$tanggal,0,0,'C');
$pdf->ln(1);
$pdf->Cell(0,0.7,"Dicetak pada : ".date("D d/m/Y"),0,0,'C');
$pdf->ln(1);
$pdf->Cell(3, 0.8, 'Tanggal', 1, 0, 'C');
$pdf->Cell(6, 0.8, 'Barang', 1, 0, 'C');
$pdf->Cell(2, 0.8, 'Jumlah', 1, 0, 'C');
$pdf->Cell(4, 0.8, 'Pembeli', 1, 0, 'C');
$pdf->Cell(3, 0.8, 'Bank', 1, 0, 'C');
$pdf->Cell(3, 0.8, 'Transfer', 1, 0, 'C');
$pdf->Cell(3, 0.8, 'Laba', 1, 1, 'C');
if(isset($_GET['tanggal'])){
$tanggal=$_GET['tanggal'];
$query=mysql_query("select * from barang_laku where tanggal=" .
$tanggal);
}
if(isset($_GET['tgl_awal'])){
$tgl_awal=$_GET['tgl_awal'];
$tgl_akhir=$_GET['tgl_akhir'];
$query=mysql_query("select * from barang_laku where tanggal
between '$tgl_awal' AND '$tgl_akhir'");
}
while($lihat=mysql_fetch_array($query)){
$pdf->Cell(3, 0.8, $lihat['tanggal'],1, 0, 'C');
$pdf->Cell(6, 0.8, $lihat['nama'],1, 0, 'C');
$pdf->Cell(2, 0.8, $lihat['jumlah'], 1, 0,'C');
$pdf->Cell(4, 0.8, $lihat['pembeli'], 1, 0,'C');
$pdf->Cell(3, 0.8, $lihat['bank'], 1, 0,'C');
$pdf->Cell(3, 0.8, "Rp.
".number_format($lihat['transfer'])." ,-", 1, 0,'C');
$pdf->Cell(3, 0.8, "Rp. ".number_format($lihat['laba'])." ,-
", 1, 1,'C');
}
$q=mysql_query("select sum(transfer) as total from barang_laku
where tanggal>='$tgl_awal' and tanggal<='$tgl_akhir' order by
tanggal asc");
// select sum(total_harga) as total from barang_laku where
tanggal='$tanggal'
while($total=mysql_fetch_array($q)){
$pdf->Cell(18, 0.8, "Total Pendapatan", 1, 0,'C');
$pdf->Cell(3, 0.8, "Rp. ".number_format($total['total'])."
,-", 1, 0,'C');
}
$qu=mysql_query("select sum(laba) as total_laba from
barang_laku where tanggal>='$tgl_awal' and tanggal<='$tgl_akhir'
order by tanggal asc");
64
?>
<?php
$per_hal=10;
$jumlah_record=mysql_query("SELECT COUNT(*) from barang");
$jum=mysql_result($jumlah_record, 0);
$halaman=ceil($jum / $per_hal);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $per_hal;
?>
<div class="col-md-12">
<table class="col-md-2">
<tr>
<td>Jumlah Record</td>
<td><?php echo $jum; ?></td>
</tr>
<tr>
<td>Jumlah Halaman</td>
<td><?php echo $halaman; ?></td>
</tr>
</table>
<a style="margin-bottom:10px" href="lap_barang.php"
target="_blank" class="btn btn-default pull-right"><span
class='glyphicon glyphicon-print'></span> Cetak</a>
</div>
<form action="cari_act.php" method="get">
<div class="input-group col-md-5 col-md-offset-7">
<span class="input-group-addon" id="basic-addon1"><span
class="glyphicon glyphicon-search"></span></span>
<input type="text" class="form-control" placeholder="Cari
barang di sini .." aria-describedby="basic-addon1" name="cari"
autocomplete=off>
</div>
</form>
<br/>
<table class="table table-hover">
65
<tr>
<th class="col-md-1">No</th>
<th class="col-md-2">Nama Barang</th>
<th class="col-md-2">Jenis</th>
<th class="col-md-2">Suplier</th>
<th class="col-md-1">Harga Beli</th>
<th class="col-md-1">Harga Jual</th>
<th class="col-md-1">Kontak</th>
<th class="col-md-4">Opsi</th>
</tr>
<?php
if(isset($_GET['cari'])){
$cari=mysql_real_escape_string($_GET['cari']);
$brg=mysql_query("select * from barang where nama like
'$cari' or jenis like '$cari'");
}else{
$brg=mysql_query("select * from barang limit $start,
$per_hal");
}
$no=1;
while($b=mysql_fetch_array($brg)){
?>
<tr>
<td><?php echo $no++ ?></td>
<td><?php echo $b['nama'] ?></td>
<td><?php echo $b['jenis'] ?></td>
<td><?php echo $b['suplier'] ?></td>
<td>Rp.<?php echo number_format($b['modal']) ?>,-
</td>
<td>Rp.<?php echo number_format($b['harga']) ?>,-
</td>
<td><?php echo $b['kontak'] ?></td>
<td>
<a href="edit.php?id=<?php echo $b['id']; ?>"
class="btn btn-warning">Edit</a>
<a onclick="if(confirm('Apakah anda yakin ingin
menghapus data ini ??')){ location.href='hapus.php?id=<?php echo
$b['id']; ?>' }" class="btn btn-danger">Hapus</a>
</td>
</tr>
<?php
}
?>
</table>
<ul class="pagination">
<?php
for($x=1;$x<=$halaman;$x++){
?>
<li><a href="?page=<?php echo $x ?>"><?php echo
$x ?></a></li>
<?php
}
?>
</ul>
<!-- input -->
<div id="myModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
66
<div class="modal-header">
<button type="button" class="close" data-
dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Tambah Barang Baru</h4>
</div>
<div class="modal-body">
<form action="tmb_brg_act.php" method="post">
<div class="form-group">
<label>Nama Barang</label>
<input name="nama" type="text"
class="form-control" placeholder="Nama Barang .."
autocomplete=off>
</div>
<div class="form-group">
<label>Jenis</label>
<input name="jenis" type="text"
class="form-control" placeholder="Jenis Barang .."
autocomplete=off>
</div>
<div class="form-group">
<label>Suplier</label>
<input name="suplier" type="text"
class="form-control" placeholder="Suplier .." autocomplete=off>
</div>
<div class="form-group">
<label>Harga Beli</label>
<input name="modal" type="text"
class="form-control" placeholder="Harga Beli .."
autocomplete=off>
</div>
<div class="form-group">
<label>Harga Jual</label>
<input name="harga" type="text"
class="form-control" placeholder="Harga Jual .."
autocomplete=off>
</div>
<div class="form-group">
<label>Kontak</label>
<input name="kontak" type="text"
class="form-control" placeholder="Kontak Suplier .."
autocomplete=off>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-
default" data-dismiss="modal">Batal</button>
<input type="submit" class="btn btn-primary"
value="Simpan">
</div>
</form>
</div>
</div>
</div>
<?php
include 'footer.php';
?>
67
$pdf->SetMargins(2,1,1);
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','B',11);
$pdf->Line(1,3.1,28.5,3.1);
$pdf->SetLineWidth(0.1);
$pdf->Line(1,3.2,28.5,3.2);
$pdf->SetLineWidth(0);
$pdf->ln(1);
$pdf->SetFont('Arial','B',14);
$pdf->Cell(25.5,0.7,"Laporan Data Barang CV.
HADIANITA",0,10,'C');
$pdf->ln(1);
$pdf->SetFont('Arial','B',10);
$pdf->Cell(5,0.7,"Di cetak pada : ".date("D-d/m/Y"),0,0,'C');
$pdf->ln(1);
$pdf->SetFont('Arial','B',10);
$pdf->Cell(1, 0.8, 'NO', 1, 0, 'C');
$pdf->Cell(5, 0.8, 'Nama Barang', 1, 0, 'C');
$pdf->Cell(4, 0.8, 'Jenis', 1, 0, 'C');
$pdf->Cell(4, 0.8, 'Suplier', 1, 0, 'C');
$pdf->Cell(3, 0.8, 'Harga Beli', 1, 0, 'C');
$pdf->Cell(3, 0.8, 'Harga Jual', 1, 0, 'C');
$pdf->Cell(6, 0.8, 'Kontak', 1, 1, 'C');
$pdf->SetFont('Arial','',10);
$no=1;
$query=mysql_query("select * from barang");
while($lihat=mysql_fetch_array($query)){
$pdf->Cell(1, 0.8, $no , 1, 0, 'C');
$pdf->Cell(5, 0.8, $lihat['nama'],1, 0, 'C');
$pdf->Cell(4, 0.8, $lihat['jenis'], 1, 0,'C');
$pdf->Cell(4, 0.8, $lihat['suplier'],1, 0, 'C');
$pdf->Cell(3, 0.8, $lihat['modal'], 1, 0,'C');
$pdf->Cell(3, 0.8, $lihat['harga'],1, 0, 'C');
$pdf->Cell(6, 0.8, $lihat['kontak'], 1, 1,'C');
$no++;
}
$pdf->Output();
?>
68
}else if($pesan=="oke"){
echo "<div class='alert alert-success'>Berhasil
menambahkan petugas baru! </div>";
}
}
?>
<br/>
<div class="col-md-5 col-md-offset-3">
<form action="petugas_act.php" method="post">
<div class="form-group">
<label>Petugas</label>
<input name="uname" type="text" class="form-control"
placeholder="Nama Petugas ..">
</div>
<div class="form-group">
<label>Kata Sandi </label>
<input name="pass" type="password" class="form-
control" placeholder="Kata Sandi ..">
</div>
<div class="form-group">
<label>Level</label>
<select name='level' class="form-control">
<option value=''>--Pilih Level--
</option>
<option value='admin'>admin</option>
<option value='cs'>cs</option>
</select>
</div>
<div class="form-group">
<label></label>
<input type="submit" class="btn btn-info"
value="Simpan">
<input type="reset" class="btn btn-danger"
value="reset">
</div>
</form>
</div>
<?php
include 'footer.php';
?>
69
<table class="table">
<tr><th>No</th>
<th>Tanggal</th>
<th>Nama</th>
<th>Detil</th>
<th>Jumlah</th>
<th>Pembeli</th>
<th>Alamat</th>
<th>Telp.</th>
<th>Bank</th>
<th>Transfer</th>
<th>Resi</th>
</tr>
<?php
if(isset($_GET['temukan'])){
$temukan=mysql_real_escape_string($_GET['temukan']);
$brg=mysql_query("select * from barang_laku where
petugas='$_SESSION[uname]' and nama like '%$temukan%' or pembeli
like '%$temukan%'");
$no=1;
while($b=mysql_fetch_array($brg)) {
?>
<tr>
<td><?php echo $no++ ?></td>
<td><?php echo $b['tanggal'] ?></td>
<td><?php echo $b['nama'] ?></td>
<td><?php echo $b['detil'] ?></td>
<td><?php echo $b['jumlah'] ?></td>
<td><?php echo $b['pembeli'] ?></td>
<td><?php echo $b['alamat'] ?></td>
<td><?php echo $b['telp'] ?></td>
<td><?php echo $b['bank'] ?></td>
70
<?php
}
}
?>
<?php
if(!isset($_GET['temukan'])){
if(isset($_GET['cari'])){
$tgl_awal = mysql_real_escape_string($_GET['tgl_awal']);
$tgl_akhir =
mysql_real_escape_string($_GET['tgl_akhir']);
$brg=mysql_query("select * from barang_laku where
petugas='$_SESSION[uname]' and tanggal between '$tgl_awal' AND
'$tgl_akhir' order by id desc");
}
else{
$per_hal=10;
$jumlah_record=mysql_query("SELECT COUNT(*) from
barang_laku");
$jum=mysql_result($jumlah_record, 0);
$halaman=ceil($jum / $per_hal);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $per_hal;
?>
<tr>
<td><?php echo $no++ ?></td>
<td><?php echo $b['tanggal'] ?></td>
<td><?php echo $b['nama'] ?></td>
<td><?php echo $b['detil'] ?></td>
<td><?php echo $b['jumlah'] ?></td>
<td><?php echo $b['pembeli'] ?></td>
<td><?php echo $b['alamat'] ?></td>
<td><?php echo $b['telp'] ?></td>
<td><?php echo $b['bank'] ?></td>
<td>Rp.<?php echo number_format($b['transfer']) ?>,-
</td>
<td><?php echo $b['resi'] ?></td>
</tr>
<?php
}
71
}
else{
echo "";
}
?>
</table>
<ul class="pagination">
<?php
$per_hal=10;
$jumlah_record=mysql_query("SELECT COUNT(*) from barang_laku
where petugas='$_SESSION[uname]'");
$jum=mysql_result($jumlah_record, 0);
$halaman=ceil($jum / $per_hal);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $per_hal;
for($x=1;$x<=$halaman;$x++){
?>
<li><a href="?page=<?php echo $x ?>"><?php echo $x
?></a></li>
<?php
}
?>
</ul>
<!-- input -->
<div id="myModal" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-
dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Data Penjualan Baru
</div>
<div class="modal-body">
<form action="barang_laku_act.php"
method="post">
<div class="form-group">
<label>Tanggal</label>
<input name="tgl" type="text"
class="form-control" id="tgl" autocomplete="off">
</div>
<div class="form-group">
<label>Barang</label>
<select name="nama" id="nama"
class="form-control" onchange="changeValue(this.value)" >
<option value=0>--Pilih Barang--
</option>
<?php
$result = mysql_query("select *
from barang");
$jsArray = "var dt = new
Array();\n";
while ($row =
mysql_fetch_array($result)) {
echo '<option value="' .
$row['nama'] . '">' . $row['nama'] . '</option>';
72
$jsArray .= "dt['" .
$row['nama'] . "'] = {harga:'" . addslashes($row['harga']) .
"'};\n";
}
?>
</select>
</div>
<div class="form-group">
<label>Harga Jual</label>
<input id="harga" class="form-
control" onkeyup="sum();"/>
<script type="text/javascript">
<?php echo $jsArray; ?>
function changeValue(nama){
document.getElementById('harga').value = dt[nama].harga;
};
</script>
</div>
<div class="form-group">
<label>Detil</label>
<input name="detil" type="text"
class="form-control" placeholder="Detil" autocomplete="off">
</div>
<div class="form-group">
<label>Jumlah</label>
<input name="jumlah" type="text"
class="form-control" id="jumlah" placeholder="Jumlah"
autocomplete="off" onkeyup="sum();"/>
</div>
<div class="form-group">
<label>Pembeli</label>
<input name="pembeli" type="text"
class="form-control" placeholder="Nama Pembeli"
autocomplete="off">
</div>
<div class="form-group">
<label>Alamat</label>
<input name="alamat" type="text"
class="form-control" placeholder="Alamat Pembeli"
autocomplete="off">
</div>
<div class="form-group">
<label>Telp.</label>
<input name="telp" type="text"
class="form-control" placeholder="Masukan No. Telp"
autocomplete="off">
</div>
<div class="form-group">
<label>Bank</label>
<select name='bank' class="form-
control">
<option value=''>--Pilih Bank--
</option>
<option value='BCA'>BCA</option>
<option value='BNI'>BNI</option>
<option value='BRI'>BRI</option>
<option
value='MANDIRI'>MANDIRI</option></select>
73
</div>
<div class="form-group">
<label>Transfer</label>
<input name="transfer" type="text"
class="form-control" placeholder="Jumlah Transfer"
autocomplete="off">
</div>
<div class="form-group">
<label>Total Harga</label>
<input type="text" class="form-
control" id="total" autocomplete="off">
<script>
function sum() {
var txtFirstNumberValue =
document.getElementById('harga').value;
var txtSecondNumberValue =
document.getElementById('jumlah').value;
var result = parseInt(txtFirstNumberValue) *
parseInt(txtSecondNumberValue);
if (!isNaN(result)) {
document.getElementById('total').value = result;
}
}
</script>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-
default" data-dismiss="modal">Batal</button>
<input type="reset" class="btn btn-
danger" value="Reset">
<input type="submit" class="btn btn-
primary" value="Simpan">
</div>
</form>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#tgl").datepicker({dateFormat : 'yy-mm-dd'});
});
$(document).ready(function(){
$("#tgl_awal").datepicker({dateFormat : 'yy-mm-
dd'});
});
$(document).ready(function(){
$("#tgl_akhir").datepicker({dateFormat : 'yy-mm-
dd'});
});
</script>
<?php include 'footer.php';
?>
74
<?php
$per_hal=10;
$jumlah_record=mysql_query("SELECT COUNT(*) from barang");
$jum=mysql_result($jumlah_record, 0);
$halaman=ceil($jum / $per_hal);
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$start = ($page - 1) * $per_hal;
?>
<div class="col-md-12">
<table class="col-md-2">
<tr>
<td>Jumlah Record</td>
<td><?php echo $jum; ?></td>
</tr>
<tr>
<td>Jumlah Halaman</td>
<td><?php echo $halaman; ?></td>
</tr>
</table>
</div>
<form action="cari_act.php" method="get">
<div class="input-group col-md-5 col-md-offset-7">
<span class="input-group-addon" id="basic-addon1"><span
class="glyphicon glyphicon-search"></span></span>
<input type="text" class="form-control"
placeholder="Cari barang di sini .." aria-describedby="basic-
addon1" name="cari">
</div>
</form>
<br/>
<table class="table table-hover">
<tr>
<th class="col-md-1">No</th>
<th class="col-md-2">Nama Barang</th>
<th class="col-md-2">Jenis</th>
<th class="col-md-1">Harga Jual</th>
</tr>
<?php
if(isset($_GET['cari'])){
$cari=mysql_real_escape_string($_GET['cari']);
$brg=mysql_query("select * from barang where nama like
'$cari' or jenis like '$cari'");
}else{
$brg=mysql_query("select * from barang limit $start,
$per_hal");
}
$no=1;
while($b=mysql_fetch_array($brg)){
75
?>
<tr>
<td><?php echo $no++ ?></td>
<td><?php echo $b['nama'] ?></td>
<td><?php echo $b['jenis'] ?></td>
<td>Rp.<?php echo number_format($b['harga']) ?>,-
</td>
</tr>
<?php
}
?>
</table>
<ul class="pagination">
<?php
for($x=1;$x<=$halaman;$x++){
?>
<li><a href="?page=<?php echo $x ?>"><?php echo
$x ?></a></li>
<?php
}
?>
</ul>
<?php
include 'footer.php';
?>
9.
5.2.2 Pengujian
Rencana pengujian pada aplikasi pencatatan penjualan berbasis web ini akan
menggunakan metode pengujian black-box yang memiliki fokus kepada
persyaratan fungsional (proses–proses yang terdapat didalamnya) sistem untuk
mengetahui apakah sistem sudah berfungsi dengan benar ataukah masih memiliki
banyak error. Berikut ini merupakan rencana pengujian yang akan dilakukan pada
aplikasi pencatatan penjualan berbasis web studi kasus di CV. HADIANITA.
1. Pengujian Login
Login gagal
Akses CS Login gagal []Diterima
Nama Petugas /
Nama Petugas: cc Nama Petugas / 1
Kata Sandi
Kata Sandi: cc Kata Sandi Salah [ ]Ditolak
Salah
TOTAL NILAI 4
data tersimpan
Mengosongkan dan
Muncul pesan [ ]Diterima
salah satu field menampilkan
error “isi semua 0
pada form data data kosong
field yang ada” []Ditolak
barang pada menu
barang
TOTAL NILAI 4
3. Xampp sudah terinstal di komputer dan panel kontrol xampp muncul seperti
gambar dibawah ini.
2. Setelah itu buka web browser anda lalu ketikkan ‘localhost’ pada address bar
dan kemudian akan muncul tampilan jendela seperti di bawah ini. Lalu pilih
phpmyadmin.
nama database default supaya mudah yakni “cv_hadianita” pada create new
database kemudian klik ‘create’.
4. Setelah database berhasil dibuat, klik tab import.
5. Lalu pilih ‘choose file’ dan masukkan database ‘cv_hadianita.sql’ kemudian
klik ‘go’.
6. Setelah import berhasil kemudian akan tampil seluruh tabel yang berada pada
database ‘cv_hadianita.sql’ seperti di bawah ini:
1. Halaman Login
6.1 Kesimpulan
Berdasarkan hasil penelitian mengenai Membangun Aplikasi Pencatatan
Penjualan Berbasis Web studi kasus di CV. HADIANITA didapatkan hasil yakni
terbangunnya aplikasi pencatatan penjualan berbasis web di CV.HADIANITA
yang dapat memberikan kemudahan bagi petugas terkait untuk mendapatkan
informasi dan dapat mengoptimalkan pengelolaan data penjualan
6.2 Saran
Berdasarkan perancangan sistem yang telah dibuat oleh penulis, maka
penulis mempunyai beberapa saran untuk para pemrogram yang akan
mengembangkan sistem ini, antara lain sebagai berikut :
2. Sistem ini dapat dikembangkan lebih luas lagi yaitu dengan menambahkan
tabel untuk pembeli dan detil penjualan sehingga bisa lebih ternormalisasi
pada tabel penjualan.
88
DAFTAR PUSTAKA
89
LAMPIRAN-LAMPIRAN
Bagaimana proses pelaporan data penjualan pada atasan yang selama ini berjalan?
Jawaban: Untuk laporan kita bikin secara harian dan bulanan, jadi tiap hari data
penjualan kita rekap juga pada dokumen bulanan;
Jawaban: Laporan harian kita kirim setiap hari setelah selesai jam kerja, sementara
untuk yang bulanan kita kirim tiap akhir bulan, untuk ngirimnya kita via
aplikasi Telegram, jadi selain sebagai media untuk berkomunikasi, kita
pake Telegram juga untuk sharing file laporan;
Apabila dibuatkan aplikasi untuk pengelolaan data tersebut, aplikasi seperti apa
yang bapak inginkan?
Jawaban: Ya aplikasi yang efektif dan efisien, rekap data ga perlu double, kalau
mau ngedit data mudah, buat cari data mudah juga. Aplikasinya juga
harus mudah diakses jadi mempermudah juga klo mau bikin laporan.
Lampiran 2 Dokumentasi observasi sistem yang sedang berjalan