LAPORAN AKHIR PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK LABORATORIUM KOMPUTASI DAN SISTEM CERDAS
APLIKASI PERHITUNGAN TARIF SALON
Asisten Pembimbing : M. Rifqi Wibiyanto
Disusun Oleh: Nama/NIM : Rully Adam Dalyono / 10523137 Nama/NIM : Ramadani / 10523144 Nama/NIM : Muhammad Alyas Asnur / 10523148
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS ISLAM INDONESIA 2011
i
HALAMAN PENGESAHAN ASISTEN
APLIKASI PERHITUNGAN TARIF SALON Telah Dipertahankan di Depan S Id ang ang Penguji Diajukan Sebagai Salah Satu Syarat Untuk Menempuh Ujian Responsi Praktikum
Jogjakarta, __ Desember 2011 Asisten yang mengesahkan
Status Laporan : Diterima / Ditolak dengan Revisi Tanggal koreksi : ________________
Alasan ditolak :
................................................................................................................. ................................................................................................................. ................................................................................................................. ................................................................................................................. ................................................................................................................. ................................................................................................................. ................................................................................................................. ................................................................................................................. ................................................................................................................. ................................................................................................................. ................................................................................................................. ................................................................................................................. Diserahkan kembali paling lambat : ___ _______ 2011
ii
PERSEMBAHAN
Laporan Programming Project ini kami buat dan kami persembahkan untuk pihak-pihak yang telah membantu dalam pembuatan programming project ini, yaitu M. Rifqi Wibiyanto selaku asisten pembimbing kami selama kami menjalani praktikum dan teman-teman mahasiswa yang juga turut membantu programming project ini. dalam pembuatan programming
iii
MOTTO 1. Semua mimpi kita akan menjadi kenyataan, jika kita memiliki keberanian untuk mengejarnya. mengejarnya. 2. Bermimpilah seperti jika anda akan h Id up up selamanya, jalani h Id up up seperti jika anda akan mati hari ini. Id ur, 3. Belajar ketika orang lain t Id ur, bekerja ketika orang lain bermalasan, dan
bermimpi ketika orang lain berharap. 4. Bermimpilan seperti jika anda akan h Id up up selamanya, jalani h Id up up seperti jika anda akan meninggal hari ini. i ni. 5. Untuk mencapai kesuksesan, kita jangan hanya bertindak, tapi juga perlu bermimpi, jangan hanya berencana, tapi juga perlu untuk percaya.
iv
KATA PENGANTAR
Rasa syukur syukur yang dalam kami kami ucapkan kepada kepada Allah SWT, karena karena atas limpahan rahmat dan karunia-Nyalah kami dapat menyelesaikan laporan programming project Pemrograman Berorientasi Objek ini yang berjudul
“Aplikasi Perhitungan Tarif Salon”. Laporan ini kami buat dalam rangka memenuhi salah satu mata kuliah Praktikum Pemrograman Berorientasi Objek di Fakultas Teknologi Industri Universitas Islam Indonesia. Dalam
proses penyusunan penyusunan Laporan Pemrograman Berorientasi Objek ini
kami telah berusaha dengan sebaik-baiknya, akan tetapi kami merasa masih banyak kekurangannya. Selama penyusunan kami mendapatkan bimbingan, arahan, koreksi dan saran, untuk itu rasa terima kasih yang sedalam-dalamnya kami sampaikan kepada : 1. M. Rifqi Wibiyanto Wibi yanto selaku asisten pembimbing kami. 2. Rekan-rekan mahasiwa yang telah banyak memberikan masukan untuk pembuatan program maupun laporan ini. Demikian laporan ini kami buat semoga bermanfaat.
Yogyakarta, 15 Desember 2011
Penyusun
v
TAKARIR
programming programming Project
proyek pemrograman
source code
kode sumber
softcopy
dokumen digital
member
pelanggan yang terdaftar
non member
pelanggan t Id ak tetap Id ak
flowchart
alur program
new Data
membuat data baru
list data
daftar data
unified Modelling Language
kelas diagram
submenu
anak dari menu utama
id
identitas
capture
potongan gambar
null
kosong/tidak kosong/tidak b erisi
user
pengguna
array
penyimpanan
class
kelas
vi
DAFTAR ISI
HALAMAN PENGESAHAN ASISTEN .............................................................. i PERSEMBAH PERSEMBAHAN AN ......................... ........................................ ............................. ................................ ............................... ....................... .......... ii MOTTO ............................ ............................................. ............................... ................................ ............................... ............................... .................... iii KATA PENGANTAR PENGANTAR ......................... ........................................... ............................... ............................... ................................ .............. iv TAKARIR TAKARIR ......................... ........................................... ............................... ............................... ................................ ............................... ................... .. v DAFTAR ISI ............................ ........................................... ............................. ................................ ............................... ........................... .............. vi DAFTAR TABEL ......................... ........................................ ............................. ................................ ............................... ..................... ........ vii DAFTAR GAMBAR GAMBAR ........................... ............................................. ............................... ............................... .............................. ............ viii BAB I PENDAHULUAN .................................................................................... 1 1.1 Latar Belakang ............................................................................................... 1 1.2 Rumusan Masalah .......................................................................................... 2 1.3 Batasan Masalah ............................................................................................ 2 1.4 Tujuan Penelitian ........................................................................................... 2 1.5 Manfaat Penelitian ......................................................................................... 3 1.6 Sistematika Penulisan .................................................................................... 3 BAB II METODOLOGI ...................................................................................... 5 2.1 Analisis Program ........................................................................................... 5 2.2 Unified Modelling Language (UML)....................................... ..................................................... ....................... ......... 7 BAB III HASIL DAN PEMBAHASAN .............................................................. 8 3.1 Penjelasan Program Beserta Capture Hasil Program ...................................... 8 3.2 Kekurangan dan Kelebihan Program ............................................................ 15 3.3 Source Code......................... ........................................... ................................ ............................... ............................... ....................... ......... 16 BAB IV SIMPULAN DAN SARAN ................................................................. 24 4.1 Kesimpula Kesimpulan n........................... ............................................. ................................ ................................ ............................... ..................... ........ 24 4.2 Saran.............. Saran............................ ............................... ............................... ................................ ............................... ............................... .................. 24 DAFTAR PUSTAKA PUSTAKA ...................... ........................................ .................................. ................................ ............................. ................. .... ix LAMPIRAN LAMPIRAN ......................... ........................................... ................................ ............................. ............................. ................................ .................. x
vii
DAFTAR TABEL Tabel 3. 1 Source Code dari Class Main............................................................. 16 Tabel 3. 2 Source Code dari Class StrucMember................................................ 16 Tabel 3. 3 Source Code dari Class StrucLayanan ............................................... 17 Tabel 3. 4 Source Code dari Class Menu ............................................................ 17 Tabel 3. 5 Source Code dari Class Salon ............................................................ 18
viii
DAFTAR GAMBAR ........... ........... .......... ... 5 Gambar 2. 1 Flowchart Aplikasi Perhitungan Tarif Salon ...................... Gambar 2. 2 Unified Modelling Language (UML) Program................................ 7 Gambar 3. 1 Tampilan Menu Utama pada pad a Aplikasi Perhitungan Tarif Salon .. .... 8 Gambar 3. 2 Submenu Member .......................................................................... 8 Gambar 3. 3 Mendaftarkan Member baru ........................................................... 9
............. ....... 10 Gambar 3. 4 Tampilan Semua Data Yang Telah Disimpan ........... .................... Gambar 3. 5 Memasukkan ID Member Untuk Transaksi .................................. 10 Gambar 3. 6 Menampilkan Data Dari Id Member yang salah ...................... ............ .......... ...... 11 Gambar 3. 7 Daftar Layanan Pada Salon .......................................................... 11 Gambar 3. 8 Tampilan Transaksi Member ........................................................ 12 Gambar 3. 9 Tampilan Layanan Non Member .................................................. 12 Gambar 3. 10 Transaksi Non Member .............................................................. 13 Gambar 3. 11 Transaksi Layanan Non Member ................................................ 14 Gambar 3. 12 Keluar dari program ................................................................... 15
1
BAB I PENDAHULUAN
1.1 Latar Belakang
Pada zaman sekarang, perkembangan teknologi informasi memegang peranan penting dalam dunia usaha. T Id ak ak sedikit dari usaha-usaha dalam skala besar, sedang, maupun kecil yang saat ini sudah memanfaatkan teknologi informasi untuk menunjang usahanya. Salah satu teknologi informasi yang saat ini sangat dibutuhkan dan sering digunakan adalah teknologi informasi b erupa aplikasi.
Salah satu usaha yang saat ini i ni masih minim menggunakan teknologi informasi adalah usaha Salon. Dimana saat ini banyak Salon yang masih menggunakan cara manual untuk menunjang usahanya itu, contohnya untuk melakukan perhitungan tarif salon, pegawai salon masih menggunakan hitungan manual maupun dengan menggunakan alat elektronik seperti kalkulator, cara tersebut kurang efektif dan efisien, karena masih harus memasukkan nominal dari biaya salon, terlebih lagi jika salah memasukkan nominalnya maka akan terjadi kesalahan dalam Id ak perhitungan. Mungkin hal itu bukan masalah besar, namun jika hal tersebut t Id ak
sengaja dilakukan berulang-ulang, maka akan menjadi masalah besar dan dapat mengurangi kepercayaan pelanggan pelanggan terhadap Salon tersebut.
Id ak Selain itu, suatu salon juga t Id ak sedikit memliki pelanggan tetapnya (member), sehingga harus melakukan penyimpanan data Id entitas entitas member
tersebut, sehingga mempermudah suatu salon untuk mengetahui antara member dan non member . Mungkin saat ini usaha Salon tersebut masih menyimpan data tersebut dengan menulis dibuku atau media penyimpanan lainnya yang masih belum terkomputerisasi, sehingga cara tersebut masih ma nual dalam penyimpanan data Id entitas entitas member tersebut. Di samping itu, perhitungan tarif antara member dan non member pastinya berbeda, sehingga untuk mengatasi masalah-masalah
2
seperti diatas, maka dibutuhkan sebuah aplikasi untuk menunjang usaha salon tersebut.
1.2 Rumusan Masalah
Dalam usaha Salon sekarang ini, masih banyak yang menggunakan cara manual dalam menunjang usahanya, dalam artian mereka masih menggunakan Id ak cara-cara yang t Id ak terkomputerisasi, seperti menyimpan Id entitas entitas data member ,
melakukan perhitungan tarif, baik itu untuk member maupun non member. Dari penyataan diatas dapat disimpulkan permasalahannya yaitu “Bagaimana membuat sebuah aplikasi berbasiskan komputerisasi pada usaha salon?”.
1.3 Batasan Masalah
Dalam membangun sebuah aplikasi perhitungan tarif salon ini, terdapat batasan-batasan masalah masalah dalam aplikasi ini, yaitu program ini mampu menghitung tarif member dan non member , menyimpan data Id entitas entitas member yang telah mendaftar pada salon salon tersebut, dapat menyimpan data member hingga hingga 100 data, serta dapat mencari dan menampilkan data member yang telah disimpan sebelumnya. Bagi member , akan mendapatkan potongan harga dari harga total layanan yang di gunakan sebesar 10%. Sedangkan bagi non member akan di kenakan tarif normal, jika harga total melebihi Rp 150.000,00 maka akan mendapatkan potongan harga sebesar Rp 10.000,00. Pada salon tersebut menyediakan berbagai macam layanan antara lain potong rambu t, creambath, hair extention, rebonding, hair spa, hair colour, bleaching, catok, pedicure dan manicure.
1.4 Tujuan Penelitian
Setelah mengetahui masalah-masalah yang terdapat pada usaha salon seperti yang dijelaskan diatas, maka dalam penelitian ini kami bertujuan untuk memecahkan masalah yang dihadapi oleh usaha Salon tersebut, yaitu kami ingin membuat sebuah program sederhana yang bernama aplikasi perhitungan tarif
3
salon dimana aplikasi tersebut dapat membantu pengusaha salon untuk memudahkan pekerjaan mereka dalam penyimpanan data maupun melakukan perhitungan tarif salon. Sehingga dapat meminimalisir terjadi kesalahan pada saat perhitungan tarif layanan pada salon tersebut. Di samping itu juga kami ingin mendapatkan pengalaman bagaimana membuat program yang baik bagi dunia usaha tersebut.
1.5 Manfaat Penelitian
Dalam sebuah penilitian pasti akan memunculkan berbagai macam manfaat. Dimana manfaat tersebut dapat di pergunakan oleh masyarakat luas. Seperti halnya pada aplikasi penghitungan tarif salon ini, akan memberikan manfaat bagi banyak kalangan. Adapun pihak yang bersangkutan ialah : 1. Peneliti : mendapatkan wawasan dan pengalaman bagaimana cara membuat program yang baik bagi usaha salon. sa lon. 2. Pengusaha salon : memudahkan pekerjaan mereka dan meminilisir terjadi kesalahan sehingga mendapatkan hasil yang maksimal. 3. Dunia akademik : sebagai referensi program dan contoh awal program sehingga pada masa depannya akan ada inovasi-inovasi yang dapat menyempurnakan program ini.
1.6 Sistematika Penulisan
Dalam penyusunan laporan ini terdapat beberapa bab yang membahas programming programming project tentang aplikasi perhitungan tarif salon. Adapun penjelasan
secara ringkas dari beberapa bab tersebut adalah sebagai berikut. BAB 1 PENDAHULUAN Pada bab ini menjelaskan tentang studi kasus dan apa yang ingin dibuat dalam mengatasi permasalahan yang dihadapi oleh usaha salo n saat ini.
4
BAB II METODOLOGI Bab ini menjelaskan rancangan seperti flowchart dan Unified Modelling Language (UML)
yang akan diimplementasikan dalam bahasa pemrograman
java. BAB III HASIL DAN PEMBAHASAN Bagian ini menjelaskan program yang telah dibuat berdasarkan flowchart dan Unified Modelling Language (UML) beserta source code dari program aplikasi
perhitungan tarif salon, selain itu juga menjelaskan kelebihan dan kekurangan dari program ini. BAB IV SIMPULAN DAN SARAN Bab ini menjelaskan tentang kesimpulan dari program yang dibuat dan saran untuk Laboratorium Komputasi dan Sistem Cerdas (KSC), dan para asisten yang bertugas di laboratorium tersebut.
5
BAB II METODOLOGI
2.1 Analisis Program flowchart program dari aplikasi perhitungan tarif salon Berikut ini rancangan / flowchart
yang akan kami buat dengan menggunakan bahasa Java.
Start
Pilihan Menu
Member
Pilihan Sub Menu
New Data
Input data member
List data member
Output list data member
Transaksi Member
Output data member
Proses
Proses
Output data baru
True/False
Output pilihan
Output harga
Input layanan
Selesai (T/F) ?
Output total harga
Kembali
Non Member
Output pilihan
Input layanan
Proses
Output harga
Selesai (T/F) ?
Output total harga
Exit
End
Gambar 2. 1 Flowchart Aplikasi Perhitungan Tarif Salon
Penjelasan Flowchart : Pada saat aplikasi tersebut dijalankan, maka akan menampilkan 3 menu utama, yaitu Menu Member , Non Member , dan Keluar. Ketika setelah memilih menu member , akan terdapat submenu, dalam submenu tersebut terdapat beberapa
pilihan, yaitu New Data, List Data Member , Transaksi Member , dan Kembali.
6
Pada pilihan pertama di submenu, yaitu New Data, disini pelanggan non member dapat mendaftarkan dirinya sebagai member . Pegawai akan memasukkan
data Id entitas entitas dari pelanggan tersebut, lalu program akan memproses dan menyimpan data Id entitas entitas pelanggan tersebut. Pada proses pemasukkan data, Id Id ak dan Nama harus diisi pada program tersebut, jika t Id ak ak maka program t Id ak akan
menyimpan data Id entitas entitas dari pelanggan tersebut. Disini, Id pelanggan dapat berupa KTM atau KTP. Setelah proses pemasukkan dan penyimpanan data selesai, maka pelanggan tersebut resmi menjadi member dari salon tersebut. Pada pilihan kedua pada submenu, yaitu list data member digunakan untuk menampilkan semua data member yang telah dibuat dan disimpan sebelumnya. Di pilihan ketiga yaitu Transaksi Member , digunakan untuk melakukan perhitungan tarif khusus member dengan memasukkan Id member setelah itu akan di tampilkan data dari Id member yang dimasukkan, setelah itu akan muncul Id ak konfirmasi apakah data tersebut benar atau t Id ak. ak. Jika t Id ak benar maka akan
dilakukan pemasukan Id member kembali dan jika benar maka program akan menampilkan berbagai layanan yang ada pada salon tersebut. Setelah itu kasir akan menanyakan layanan apa saja yang digunakan oleh member lalu mamasukkannya pada program tersebut. Lalu program akan memproses semua layanan yang telah digunakan dan menampilkan total harga yang telah dipotong sebesar 10%. Pada pilihan keempat yaitu kembali digunakan untuk kembali ke menu utama. Pada menu non member digunakan untuk melakukan perhitungan tarif non member . Langkah tersebut sama dengan langkah pada perhitungan tarif member .
Namun t Id ak memasukkan Id member dan hanya mendapatkan potongan harga Id ak sebesar Rp 15.000,00 jika total tarif layanan yang digunakan lebih dari Rp 150.000,00. Pada menu terakhir yaitu digunakan untuk keluar dari program.
7
2.2 Unified Modelling Language (UML)
Gambar 2. 2 Unified Modelling Language (UML) Program
8
BAB III HASIL DAN PEMBAHASAN
3.1 Penjelasan Program Beserta Capture Hasil Program
Gambar 3. 1 Tampilan Menu Utama pada Aplikasi Perhitungan Tarif Salon
Ketika membuka program aplikasi ini, Menu Utama akan selalu muncul terlebih dahulu. Pada Menu Utama terdapat 3 pilihan menu, yaitu Member , Non member , dan Keluar.
Submenu Member Gambar 3. 2 Submenu Member
Jika pada Menu Utama memasukkan pilihan 1, maka akan menuju ke Submenu Member , disana terdapat 4 pilihan yaitu pilihan pertama digunakan untuk
membuat data member baru, pilihan kedua digunakan untuk menampilkan semua
9
data member yang telah disimpan sebelumnya, pilihan ketiga digunakan untuk menghitung tarif member , dan pilihan keempat digunakan untuk kembali ke Menu Utama.
Gambar 3. 3 Mendaftarkan Member baru
Ketika
pada
Submenu
memasukkan
pilihan
1,
maka
akan
membuat/mendaftarkan member baru yang sebelumnya masih non member . Lalu Member dan Nama, isikan data yang diperlukan. Di sini yang wajib diisi adalah Id Member
jika Id t ak ak maka data yang dimasukkan t Id ak akan tersimpan. Lalu setelah semua Id ak data yang diperlukan telah dimasukkan, maka program otomatis akan kembali ke Submenu Member .
10
Gambar 3. 4 Tampilan Semua Data Yang Telah Disimpan
Pada Submenu Member , masukkan pilihan 2, maka program akan menampilkan semua data member yang telah disimpan sebelumnya.
Gambar 3. 5 Memasukkan ID Member ID Member Untuk Transaksi
Masuk ke pilihan Transaksi Member , maka program akan meminta untuk memasukkan Id Member Id Member . Setelah dimasukkan Id Member Id Member yang benar, maka program akan menampilkan sebagian data member dari Id Member Id Member yang telah dimasukkan. Lalu akan muncul konfirmasi, jika data benar maka tekanlah huruf
11
‘y’, jika salah tekanlah huruf ‘t’. Jika benar, maka program akan melanjutkan ke tahap berikutnya ialah perhitungan tarif salon, namun jika salah maka program Member . akan meminta ulang untuk memasukkan Id Member
Gambar 3. 6 Menampilkan Data Dari Id Member yang salah Id Member , maka data yang ditampilkan berisi null. Dan Jika salah memasukkan Id Member
disarankan untuk memasukkan Id Member lagi.
Gambar 3. 7 Daftar Layanan Pada Salon Member , maka akan muncul daftar layanan salon Setelah berhasil memasukkan Id Member
yang tersedia. Disini user /kasir hanya memasukkan Id layanan sebanyak layanan yang digunakan oleh member . Setelah selesai memasukkan Id layanan, maka program akan menghitung dan menampilkan total biaya yang telah dipotong sebesar 10%.
12
Gambar 3. 8 Tampilan Transaksi Member
Setelah menghitung transaksi member , maka program secara otomatis akan kembali kemenu utama.
Gambar 3. 9 Tampilan Layanan Non Member
Pada menu utama, jika memasukkan pilihan 2, maka akan menuju ke layanan non member dan akan menampilkan daftar layanan salon.
13
Gambar 3. 10 Transaksi Non Member
Jika ingin menghitung tarif untuk non member , hanya memasukkan Id layanan sebanyak layanan yang digunakan oleh non member , disini non member t Id ak Id ak mendapatkan potongan harga, namun jika total biaya melebihi Rp.150.000,00 maka non member akan mendapatkan potongan harga sebesar Rp.10.000,00
14
Gambar 3. 11 Transaksi Layanan Non Member Non member mendapatkan potongan harga sebesar Rp.10.000,00 jika total biaya
layanan melebihi Rp.150.000,00. Setelah selesai menghitung transaksi layanan non member , maka program akan kembali kemenu utama.
15
Gambar 3. 12 Keluar dari program
Pada menu utama, masukkan pilihan 3 maka akan keluar dari program aplikasi perhitungan tarif salon.
3.2 Kekurangan dan Kelebihan Program
Pada aplikasi perhitungan tarif salon ini, terdapat kelebihan dan kekurangan yang ada pada program ini. Adapun kelebihan pada program ini adalah : 1. Program dapat membuat dan menyimpan data member yang baru d ibuat. 2. Program mampu melakukan perhitungan tarif salon yang berbeda antara member dan non member .
3. Program dapat mencari data member . Kekurangan dari program ini adalah sebagai berikut : 1. Data yang disimpan dimasukkan di array dan bersifat sementara. 2. Untuk data perhitungan tarif t Id ak akan disimpan, yang disimpan hanya data Id ak member . pelanggan tetap/ member
16
3.3 Source Code Tabel 3. 1 Source Code dari Class Main public class Main { public static vo Id main(String[] args) throws IOException { Menu data = new Menu(); data.tambahLayanan("1", data.tambahLayanan("1", "Potong Rambut", 10000); data.tambahLayanan("2", data.tambahLayanan("2", " Creambath", 20000); data.tambahLayanan("3", data.tambahLayanan("3", "Hair Extention", 5000); data.tambahLayanan("4", data.tambahLayanan("4", " Rebonding", 100000); data.tambahLayanan("5", data.tambahLayanan("5", "Hair Spa", 30000); data.tambahLayanan("6", data.tambahLayanan("6", "Hair Colour", 50000); data.tambahLayanan("7", data.tambahLayanan("7", " Bleaching", 40000); data.tambahLayanan("8", data.tambahLayanan("8", "Catok", 10000); data.tambahLayanan("9", data.tambahLayanan("9", " Pedicure", 20000); data.tambahLayanan("10", data.tambahLayanan("10", "Manicure", 20000); data.menuUtama(); } }
Tabel 3. 2 Source Code dari Class StrucMember package perhitungantarifsalon; perhitungantarifsalon; public class StrucMember { public String kode; private String nama; private String jenisKelamin; jenisKelamin; private String alamat; private String noTelpon; public vo Id setNama(String setNama(String namaMember) namaMember) { nama = namaMember; } public String getNama() { return nama; } public vo Id setJenisKelamin(String setJenisKelamin(String jenisK) { jenisKelamin = jenisK; } public String getJenisKelamin() { return jenisKelamin; } public vo Id setAlamat(String setAlamat(String alamatMember) alamatMember) { alamat = alamatMember; } public String getAlamat() {
17
return alamat; } public vo Id setNoTelpon(String setNoTelpon(String noTelponMember) noTelponMember) { noTelpon = noTelponMember; noTelponMember; } public String getNoTelpon() { return noTelpon; } }
Tabel 3. 3 Source Code dari Class StrucLayanan package perhitungantarifsalon; perhitungantarifsalon; public class StrucLayanan { public String Id Layanan; Layanan; private String namaLayanan; namaLayanan; private double harga; public vo Id setNamaLayanan(String serviceName) { namaLayanan = serviceName; } public String getNamaLayanan() { return namaLayanan; } public vo Id setHarga(double setHarga(double price) { harga = price; } public double getPrice() { return harga; } }
Tabel 3. 4 Source Code dari Class Menu package perhitungantarifsalon; perhitungantarifsalon; import java.io.*; public class Menu extends Salon { @Overr Id e public vo Id menuUtama() throws IOException { super.menuUtama();
18
pilih = member.readLine(); member.readLine(); if (pilih.equals("1")) { subMenuMember(); } else if ( pilih.equals("2")) pilih.equals("2")) { hitung(); totalAkhirCustomer(totalHarg totalAkhirCustomer(totalHargaNonMember); aNonMember); menuUtama(); } else if ( pilih.equals("3")) pilih.equals("3")) { System.exit(0); } System.out.println(""); } @Overr Id e public vo Id subMenuMember() subMenuMember() throws IOException IOException { super.subMenuMember(); System.out.println(""); System.out.println("1. System.out.println("1. Buat data member baru"); System.out.println("2. System.out.println("2. Tampilkan semua data member"); System.out.println("3. System.out.println("3. Transaksi Member"); System.out.println("4. System.out.println("4. Kembali"); System.out.print("masukkan System.out.print("masukkan pilihan : "); pilihSubMenu = member.readLine(); member.readLine(); if (pilihSubMenu.equals("1") (pilihSubMenu.equals("1")) ) { inputDataMember(namaMember, inputDataMember(namaMember, kodeMember, jenisKelaminMember, jenisKelaminMember, alamatMember, noTelponMember); } else if (pilihSubMenu.equals("2")) (pilihSubMenu.equals("2")) { tampilkanDataMember(); } else if (pilihSubMenu.equals("3")) (pilihSubMenu.equals("3")) { do { car Id ataMember(); ataMember(); System.out.print("Apakah System.out.print("Apakah data benar ? [y/t] "); konfirmMember = member.readLine(); member.readLine(); } while (konfirmMember.equals("t")); (konfirmMember.equals("t")); hitung(); totalAkhirCustomer(totalHargaMember, diskonHargaMember); menuUtama(); } else if (pilihSubMenu.equals("4")) (pilihSubMenu.equals("4")) { menuUtama(); } } }
Tabel 3. 5 Source Code dari Class Salon package perhitungantarifsalon; perhitungantarifsalon; import java.io.*; public class Salon {
19
StrucMember[] daftar = new StrucMember[100]; int banyakData = 1; InputStreamReader InputStreamReader data = new InputStreamReader(System. InputStreamReader(System.in); in); BufferedReader member = new BufferedReader(data); BufferedReader(data); String lagi, kodeLayanan, tempBayar; double totalAkhir, total, totalHargaMember, totalHargaMember, totalHargaNonMember, totalHargaNonMember, dibayar, kembali, diskonHargaMember, diskonHargaMember, totalBiayaNonMember; String pilih, kodeMember, pilihSubMenu, konfirmMember, namaMember, jenisKelaminMember, alamatMember, noTelponMember; noTelponMember; public vo Id tambahDataMember(String Id Member, Member, String name, String sex, String address, String phone) { daftar[banyakData] daftar[banyakData] = new StrucMember(); daftar[banyakData].kode daftar[banyakData].kode = Id Member; Member; daftar[banyakData].setNama(name); daftar[banyakData].setJenisKelamin(sex); daftar[banyakData].setAlamat(address); daftar[banyakData].setNoTelpon(phone); banyakData++; } public vo Id inputDataMember(String Id Member, Member, String namaMember, String jenisK, String alamat, String noTelpon) throws IOException { try { System.out.println(""); System.out.print(" Id Member
: ");
Member Id Member
= member.readLine(); member.readLine(); System.out.print("Nama System.out.print("Nama namaMember = member.readLine(); member.readLine(); System.out.print("Jenis System.out.print("Jenis Kelamin jenisK = member.readLine(); System.out.print("Alamat System.out.print("Alamat alamat = member.readLine(); System.out.print("No. System.out.print("No. Telpon noTelpon = member.readLine();
: "); : "); : "); : ");
if ( Id Member.equals("") Member.equals("") || namaMember.equals("")) { throw new NullPointerException(); NullPointerException(); } tambahDataMember( Id Member, Member, namaMember, jenisK, alamat, noTelpon); subMenuMember(); } catch (NullPointerException npe) { System.out.println(""); System.out.println(" ID ATAU NAMA T IDAK BOLEH KOSONG"); } subMenuMember(); } public vo Id tampilkanDataMember() tampilkanDataMember() throws I OException { System.out.println("");
20
daftar[banyakData] daftar[banyakData] = new StrucMember(); if (banyakData == 1) { System.out.println("Data System.out.println("Data masih kosong"); } else { for (int isi = 1; isi < banyakData; isi++) { System.out.println("Data System.out.println("Data ke " + isi); System.out.println(" Id member daftar[isi].kode); System.out.println("Nama System.out.println("Nama daftar[isi].getNama()); System.out.println("Jenis System.out.println("Jenis Kelamin daftar[isi].getJenisKelamin()); System.out.println("Alamat System.out.println("Alamat daftar[isi].getAlamat()); System.out.println("No. System.out.println("No. Telepon daftar[isi].getNoTelpon()); System.out.println(""); } } subMenuMember(); }
: " + : " + : " + : " + : " +
public String getNamaMember(String getNamaMember(String Id Member) Member) { for (int isi = 1; isi < banyakData; isi++) { if ( Id Member.equals(daftar[is Member.equals(daftar[isi].kode)) i].kode)) { return daftar[isi].getNama(); daftar[isi].getNama(); } } return null; } public String getAlamatMember(String getAlamatMember(String Id Member) Member) { for (int isi = 1; isi < banyakData; isi++) { if ( Id Member.equals(daftar[is Member.equals(daftar[isi].kode)) i].kode)) { return daftar[isi].getAlamat(); daftar[isi].getAlamat(); } } return null; } public vo Id car Id ataMember() ataMember() throws IOException { try { String kodeMemberCari; kodeMemberCari; System.out.print("Masukkan Id Member :"); kodeMemberCari = member.readLine(); member.readLine(); if (kodeMemberCari.equals("")) (kodeMemberCari.equals("")) { throw new NullPointerException(); NullPointerException(); } System.out.println("Data System.out.println("Data dari kode member " + kodeMemberCari); System.out.println("Nama System.out.println("Nama : " + getNamaMember(kodeMemberCari)); System.out.println("Alamat System.out.println("Alamat : " + getAlamatMember(kodeMemberCari));
21
} catch (NullPointerException ex) { System.out.println(" Id Member harus di isi !"); } } public vo Id menuUtama() throws IOException { System.out.println("MENU System.out.println("MENU APLIKASI SALON"); System.out.println("1. System.out.println("1. Member"); System.out.println("2. System.out.println("2. Non member"); System.out.println("3. System.out.println("3. Keluar"); System.out.print("Masukkan System.out.print("Masukkan pilihan : "); } public vo Id subMenuMember() subMenuMember() throws IOException IOException { } StrucLayanan[] info = new StrucLayanan[25]; int banyakLayanan = 1; public vo Id tambahLayanan(String tambahLayanan(String code, String nameOfServeice, nameOfServeice, double priceOfService) { info[banyakLayanan] info[banyakLayanan] = new StrucLayanan(); info[banyakLayanan]. Id Layanan Layanan = code; info[banyakLayanan].setNamaL info[banyakLayanan].setNamaLayanan(nameOfS ayanan(nameOfServeice); erveice); info[banyakLayanan].setHarga info[banyakLayanan].setHarga(priceOfServic (priceOfService); e); banyakLayanan++; } public vo Id dispaly() { for (int i = 1; i < banyakLayanan; i++) i++) { System.out.println(" Id layanan info[i]. Id Layanan); Layanan); System.out.println("Layanan System.out.println("Layanan info[i].getNamaLayanan()); System.out.println("Harga System.out.println("Harga info[i].getPrice()); System.out.println(""); } }
: " + : " + : " +
public vo Id hitung() throws IOException { System.out.println(""); dispaly(); total = 0; do { System.out.print("masukkan System.out.print("masukkan pilihan : "); kodeLayanan = member.readLine(); member.readLine(); for (int isiLay = 1; isiLay < banyakLayanan; isiLay++) isiLay++) { if (kodeLayanan.equals(info[ (kodeLayanan.equals(info[isiLay]. isiLay]. Id Layanan)) Layanan)) { System.out.println("nama System.out.println("nama : " + info[isiLay].getNamaLayanan()); System.out.println("harga System.out.println("harga : " + info[isiLay].getPrice());
22
total = total + info[isiLay].getPrice(); info[isiLay].getPrice(); isiLay = isiLay + 1; } } System.out.print("apakah System.out.print("apakah lagi ? [y/t] "); lagi = member.readLine(); } while (lagi.equals("y")); } public vo Id totalAkhirCustomer(double totalHarga, double hargaDiskon) throws IOException { try { hargaDiskon = 0.1 * total; totalHarga = total - hargaDiskon; System.out.println("Total System.out.println("Total Biaya : " + totalHarga); System.out.print("Dibayar System.out.print("Dibayar : "); tempBayar = member.readLine(); member.readLine(); if (tempBayar.equals("")) { throw new NullPointerException(); NullPointerException(); } dibayar = Double.parseDouble(tempBayar Double.parseDouble(tempBayar); ); kembali = dibayar - totalHarga; if (kembali < 0) { throw new ArithmeticException(); ArithmeticException(); } System.out.println("Kembali System.out.println("Kembali : " + kembali); } catch (NumberFormatException xy) { System.out.println("ERROR: System.out.println("ERROR: NOMINAL YANG DIMASUKKAN SALAH !"); } catch (NullPointerException ab) { System.out.println("ERROR: System.out.println("ERROR: NOMINAL HARUS DISI !"); } catch (ArithmeticException cd) { System.out.println("ERROR: System.out.println("ERROR: NOMINAL KEMBALIAN T IDAK BOLEH NEGATIF !"); } System.out.println(""); } public vo Id totalAkhirCustomer(double totalHarga) throws IOException { try { System.out.println("Total System.out.println("Total Biaya : " + total); if (total > 150000) { totalBiayaNonMember totalBiayaNonMember = total - 10000; System.out.println("Dapat System.out.println("Dapat potongan harga sebesar 10000"); System.out.println("Total System.out.println("Total Biaya : " + totalBiayaNonMember); System.out.print("Dibayar System.out.print("Dibayar : "); tempBayar = member.readLine(); member.readLine(); if (tempBayar.equals("")) (tempBayar.equals("")) {
23
throw new NullPointerException(); NullPointerException(); } dibayar = Double.parseDouble(tempBay Double.parseDouble(tempBayar); ar); totalHarga = dibayar - totalBiayaNonMember; if (totalHarga < 0) { throw new ArithmeticException(); ArithmeticException(); } System.out.println("Kembali System.out.println("Kembali : " + totalHarga); } else { System.out.print("Dibayar System.out.print("Dibayar : "); tempBayar = member.readLine(); member.readLine(); if (tempBayar.equals("")) (tempBayar.equals("")) { throw new NullPointerException(); NullPointerException(); } dibayar = Double.parseDouble(tempBay Double.parseDouble(tempBayar); ar); totalHarga = dibayar - total; if (totalHarga < 0) { throw new ArithmeticException(); ArithmeticException(); } System.out.println("Kembali System.out.println("Kembali : " + totalHarga); } } catch (NullPointerException cd) { System.out.println("NOMINAL System.out.println("NOMINAL HARUS DISI !"); } catch (NumberFormatException ef) { System.out.println("NOMINAL System.out.println("NOMINAL YANG DIMASUKKAN SALAH !"); } catch (ArithmeticException gh) { System.out.println("ERROR: System.out.println("ERROR: NOMINAL KEMBALIAN T IDAK BOLEH NEGATIF !"); } System.out.println(""); } }
24
BAB IV SIMPULAN DAN SARAN
4.1 Kesimpulan
Pada program yang kami buat ini mempermudah penyedia layanan salon sehingga akan meminimalisir kesalahan. Program ini dapat menghitung tarif layanan yang digunakan. Selain itu, program ini dapat membedakan antara member dan non member . Program ini dapat pula mencari dan menampilkan data
yang di simpan sebelumnya. Namun program ini hanya dapat menyimpan data Id ak untuk sementara. Dan data transaksi t Id ak disimpan pada program ini.
4.2 Saran
Kami berharap Laboratorium Sistem Komputasi dan Sistem Cerdas (KSC) Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Islam Indonesia Indonesia kedepannya bisa lebih baik lagi, dari segi fasilitas maupun kenyamanan d Id alam alam laboratorium dan kepada asisten pembimbing supaya lebih interaktif dalam penyampaian materi agar praktikannya lebih menguasai materi yang disampaikan.
ix
DAFTAR PUSTAKA
Wijayanto, Feri. KSC, Laboratorium. Modul Praktikum Pemrograman Berorientasi Objek . Laboratorium Komputasi Komputasi dan Sistem Cerdas. Cerdas. 2011. 2011. Jurusan Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Islam Indonesia Yogyakarta. belajarprogram, 2009. List Asosiasi (On-line) Available at http://java.lyracc.com/belajar/java-untuk-pemula/list-asosiasi
x
LAMPIRAN
1 : Lembar asistensi 1, 2, dan da n 3 2 : CD berisi source code program dan softcopy laporan dalam format pdf.