Anda di halaman 1dari 35

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

HALAMAN PENGESAHAN ASISTEN

APLIKASI PERHITUNGAN TARIF SALON


Telah Dipertahankan di Depan SIdang 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 dalam pembuatan programming project ini.

iii

MOTTO
1. Semua mimpi kita akan menjadi kenyataan, jika kita memiliki keberanian untuk mengejarnya. 2. Bermimpilah seperti jika anda akan hIdup selamanya, jalani hIdup seperti jika anda akan mati hari ini. 3. Belajar ketika orang lain tIdur, bekerja ketika orang lain bermalasan, dan bermimpi ketika orang lain berharap. 4. Bermimpilan seperti jika anda akan hIdup selamanya, jalani hIdup seperti jika anda akan meninggal hari ini. 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 yang dalam kami ucapkan kepada Allah SWT, 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 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 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

TAKARIR

programming Project source code softcopy member non member flowchart new Data list data unified Modelling Language submenu id capture null user array class

proyek pemrograman kode sumber dokumen digital pelanggan yang terdaftar pelanggan tIdak tetap alur program membuat data baru daftar data kelas diagram anak dari menu utama identitas potongan gambar kosong/tidak berisi pengguna penyimpanan kelas

vi

DAFTAR ISI
HALAMAN PENGESAHAN ASISTEN .............................................................. i PERSEMBAHAN ............................................................................................... ii MOTTO ............................................................................................................. iii KATA PENGANTAR ........................................................................................ iv TAKARIR ........................................................................................................... v DAFTAR ISI ...................................................................................................... vi DAFTAR TABEL ............................................................................................. vii DAFTAR 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 Kesimpulan .................................................................................................. 24 4.2 Saran............................................................................................................ 24 DAFTAR PUSTAKA ......................................................................................... ix 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
Gambar 2. 1 Flowchart Aplikasi Perhitungan Tarif Salon ................................... 5 Gambar 2. 2 Unified Modelling Language (UML) Program................................ 7 Gambar 3. 1 Tampilan Menu Utama pada Aplikasi Perhitungan Tarif Salon ...... 8 Gambar 3. 2 Submenu Member .......................................................................... 8 Gambar 3. 3 Mendaftarkan Member baru ........................................................... 9 Gambar 3. 4 Tampilan Semua Data Yang Telah Disimpan ............................... 10 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

BAB I PENDAHULUAN

1.1 Latar Belakang Pada zaman sekarang, perkembangan teknologi informasi memegang peranan penting dalam dunia usaha. TIdak 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 berupa aplikasi.

Salah satu usaha yang saat ini 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 perhitungan. Mungkin hal itu bukan masalah besar, namun jika hal tersebut tIdak sengaja dilakukan berulang-ulang, maka akan menjadi masalah besar dan dapat mengurangi kepercayaan pelanggan terhadap Salon tersebut.

Selain itu, suatu salon juga tIdak sedikit memliki pelanggan tetapnya (member), sehingga harus melakukan penyimpanan data Identitas 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 manual dalam penyimpanan data Identitas member tersebut. Di samping itu, perhitungan tarif antara member dan non member pastinya berbeda, sehingga untuk mengatasi masalah-masalah

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 cara-cara yang tIdak terkomputerisasi, seperti menyimpan Identitas 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 dalam aplikasi ini, yaitu program ini mampu menghitung tarif member dan non member, menyimpan data Identitas member yang telah mendaftar pada salon tersebut, dapat menyimpan data member 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 rambut, 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

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. 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 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 salon saat ini.

BAB II METODOLOGI Bab ini menjelaskan rancangan seperti flowchart dan Unified Modelling Language (UML) 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. yang akan diimplementasikan dalam bahasa pemrograman

BAB II METODOLOGI

2.1 Analisis Program Berikut ini rancangan / flowchart program dari aplikasi perhitungan tarif salon yang akan kami buat dengan menggunakan bahasa Java.

Start

Pilihan Menu

New Data

Input data member

Proses

Output data baru

Member

Pilihan Sub Menu

List data member

Output list data member

Transaksi Member

Output data member

True/False

Output pilihan

Input layanan

Proses

Output harga

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.

Pada pilihan pertama di submenu, yaitu New Data, disini pelanggan non member dapat mendaftarkan dirinya sebagai member. Pegawai akan memasukkan data Identitas dari pelanggan tersebut, lalu program akan memproses dan menyimpan data Identitas pelanggan tersebut. Pada proses pemasukkan data, Id dan Nama harus diisi pada program tersebut, jika tIdak maka program tIdak akan menyimpan data Identitas 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 konfirmasi apakah data tersebut benar atau tIdak. Jika tIdak 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 tIdak memasukkan Id member dan hanya mendapatkan potongan harga 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.

2.2 Unified Modelling Language (UML)

Gambar 2. 2 Unified Modelling Language (UML) Program

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.

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

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 isikan data yang diperlukan. Di sini yang wajib diisi adalah Id Member dan Nama, jika tIdak maka data yang dimasukkan tIdak akan tersimpan. Lalu setelah semua 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 Untuk Transaksi Masuk ke pilihan Transaksi Member, maka program akan meminta untuk memasukkan Id Member. Setelah dimasukkan Id Member yang benar, maka program akan menampilkan sebagian data member dari 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 akan meminta ulang untuk memasukkan Id Member.

Gambar 3. 6 Menampilkan Data Dari Id Member yang salah Jika salah memasukkan Id Member, maka data yang ditampilkan berisi null. Dan disarankan untuk memasukkan Id Member lagi.

Gambar 3. 7 Daftar Layanan Pada Salon Setelah berhasil memasukkan Id Member, maka akan muncul daftar layanan salon 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 tIdak 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 dibuat. 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 tIdak akan disimpan, yang disimpan hanya data pelanggan tetap/member.

16

3.3 Source Code Tabel 3. 1 Source Code dari Class Main


public class Main { public static voId main(String[] args) throws IOException { Menu data = new Menu(); data.tambahLayanan("1", "Potong Rambut", 10000); data.tambahLayanan("2", "Creambath", 20000); data.tambahLayanan("3", "Hair Extention", 5000); data.tambahLayanan("4", "Rebonding", 100000); data.tambahLayanan("5", "Hair Spa", 30000); data.tambahLayanan("6", "Hair Colour", 50000); data.tambahLayanan("7", "Bleaching", 40000); data.tambahLayanan("8", "Catok", 10000); data.tambahLayanan("9", "Pedicure", 20000); data.tambahLayanan("10", "Manicure", 20000); data.menuUtama(); } }

Tabel 3. 2 Source Code dari Class StrucMember


package perhitungantarifsalon; public class StrucMember { public String kode; private String nama; private String jenisKelamin; private String alamat; private String noTelpon; public voId setNama(String namaMember) { nama = namaMember; } public String getNama() { return nama; } public voId setJenisKelamin(String jenisK) { jenisKelamin = jenisK; } public String getJenisKelamin() { return jenisKelamin; } public voId setAlamat(String alamatMember) { alamat = alamatMember; } public String getAlamat() {

17

return alamat; } public voId setNoTelpon(String noTelponMember) { noTelpon = noTelponMember; } public String getNoTelpon() { return noTelpon; } }

Tabel 3. 3 Source Code dari Class StrucLayanan


package perhitungantarifsalon; public class StrucLayanan { public String Id Layanan; private String namaLayanan; private double harga; public voId setNamaLayanan(String serviceName) { namaLayanan = serviceName; } public String getNamaLayanan() { return namaLayanan; } public voId setHarga(double price) { harga = price; } public double getPrice() { return harga; } }

Tabel 3. 4 Source Code dari Class Menu


package perhitungantarifsalon; import java.io.*; public class Menu extends Salon { @OverrId e public voId menuUtama() throws IOException { super.menuUtama();

18

pilih = member.readLine(); if (pilih.equals("1")) { subMenuMember(); } else if (pilih.equals("2")) { hitung(); totalAkhirCustomer(totalHargaNonMember); menuUtama(); } else if (pilih.equals("3")) { System.exit(0); } System.out.println(""); } @OverrId e public voId subMenuMember() throws IOException { super.subMenuMember(); System.out.println(""); System.out.println("1. Buat data member baru"); System.out.println("2. Tampilkan semua data member"); System.out.println("3. Transaksi Member"); System.out.println("4. Kembali"); System.out.print("masukkan pilihan : "); pilihSubMenu = member.readLine(); if (pilihSubMenu.equals("1")) { inputDataMember(namaMember, kodeMember, jenisKelaminMember, alamatMember, noTelponMember); } else if (pilihSubMenu.equals("2")) { tampilkanDataMember(); } else if (pilihSubMenu.equals("3")) { do { carIdataMember(); System.out.print("Apakah data benar ? [y/t] "); konfirmMember = member.readLine(); } while (konfirmMember.equals("t")); hitung(); totalAkhirCustomer(totalHargaMember, diskonHargaMember); menuUtama(); } else if (pilihSubMenu.equals("4")) { menuUtama(); } } }

Tabel 3. 5 Source Code dari Class Salon


package perhitungantarifsalon; import java.io.*; public class Salon {

19

StrucMember[] daftar = new StrucMember[100]; int banyakData = 1; InputStreamReader data = new InputStreamReader(System.in); BufferedReader member = new BufferedReader(data); String lagi, kodeLayanan, tempBayar; double totalAkhir, total, totalHargaMember, totalHargaNonMember, dibayar, kembali, diskonHargaMember, totalBiayaNonMember; String pilih, kodeMember, pilihSubMenu, konfirmMember, namaMember, jenisKelaminMember, alamatMember, noTelponMember; public voId tambahDataMember(String IdMember, String name, String sex, String address, String phone) { daftar[banyakData] = new StrucMember(); daftar[banyakData].kode = Id Member; daftar[banyakData].setNama(name); daftar[banyakData].setJenisKelamin(sex); daftar[banyakData].setAlamat(address); daftar[banyakData].setNoTelpon(phone); banyakData++; } public voId inputDataMember(String IdMember, String namaMember, String jenisK, String alamat, String noTelpon) throws IOException { try { System.out.println(""); System.out.print("Id Member : "); Id Member = member.readLine(); System.out.print("Nama : "); namaMember = member.readLine(); System.out.print("Jenis Kelamin : "); jenisK = member.readLine(); System.out.print("Alamat : "); alamat = member.readLine(); System.out.print("No. Telpon : "); noTelpon = member.readLine(); if (Id Member.equals("") || namaMember.equals("")) { throw new NullPointerException(); } tambahDataMember(IdMember, namaMember, jenisK, alamat, noTelpon); subMenuMember(); } catch (NullPointerException npe) { System.out.println(""); System.out.println("ID ATAU NAMA TIDAK BOLEH KOSONG"); } subMenuMember(); } public voId tampilkanDataMember() throws IOException { System.out.println("");

20

daftar[banyakData] = new StrucMember(); if (banyakData == 1) { System.out.println("Data masih kosong"); } else { for (int isi = 1; isi < banyakData; isi++) { System.out.println("Data ke " + isi); System.out.println("Id member : " + daftar[isi].kode); System.out.println("Nama : " + daftar[isi].getNama()); System.out.println("Jenis Kelamin : " + daftar[isi].getJenisKelamin()); System.out.println("Alamat : " + daftar[isi].getAlamat()); System.out.println("No. Telepon : " + daftar[isi].getNoTelpon()); System.out.println(""); } } subMenuMember(); } public String getNamaMember(String IdMember) { for (int isi = 1; isi < banyakData; isi++) { if (Id Member.equals(daftar[isi].kode)) { return daftar[isi].getNama(); } } return null; } public String getAlamatMember(String IdMember) { for (int isi = 1; isi < banyakData; isi++) { if (Id Member.equals(daftar[isi].kode)) { return daftar[isi].getAlamat(); } } return null; } public voId carId ataMember() throws IOException { try { String kodeMemberCari; System.out.print("Masukkan Id Member :"); kodeMemberCari = member.readLine(); if (kodeMemberCari.equals("")) { throw new NullPointerException(); } System.out.println("Data dari kode member " + kodeMemberCari); System.out.println("Nama : " + getNamaMember(kodeMemberCari)); System.out.println("Alamat : " + getAlamatMember(kodeMemberCari));

21

} catch (NullPointerException ex) { System.out.println("Id Member harus di isi !"); } } public voId menuUtama() throws IOException { System.out.println("MENU APLIKASI SALON"); System.out.println("1. Member"); System.out.println("2. Non member"); System.out.println("3. Keluar"); System.out.print("Masukkan pilihan : "); } public voId subMenuMember() throws IOException { } StrucLayanan[] info = new StrucLayanan[25]; int banyakLayanan = 1; public voId tambahLayanan(String code, String nameOfServeice, double priceOfService) { info[banyakLayanan] = new StrucLayanan(); info[banyakLayanan].Id Layanan = code; info[banyakLayanan].setNamaLayanan(nameOfServeice); info[banyakLayanan].setHarga(priceOfService); banyakLayanan++; } public voId dispaly() { for (int i = 1; i < banyakLayanan; i++) { System.out.println("Id layanan : " + info[i].Id Layanan); System.out.println("Layanan : " + info[i].getNamaLayanan()); System.out.println("Harga : " + info[i].getPrice()); System.out.println(""); } } public voId hitung() throws IOException { System.out.println(""); dispaly(); total = 0; do { System.out.print("masukkan pilihan : "); kodeLayanan = member.readLine(); for (int isiLay = 1; isiLay < banyakLayanan; isiLay++) { if (kodeLayanan.equals(info[isiLay].Id Layanan)) { System.out.println("nama : " + info[isiLay].getNamaLayanan()); System.out.println("harga : " + info[isiLay].getPrice());

22

total = total + info[isiLay].getPrice(); isiLay = isiLay + 1; } } System.out.print("apakah lagi ? [y/t] "); lagi = member.readLine(); } while (lagi.equals("y")); } public voId totalAkhirCustomer(double totalHarga, double hargaDiskon) throws IOException { try { hargaDiskon = 0.1 * total; totalHarga = total - hargaDiskon; System.out.println("Total Biaya : " + totalHarga); System.out.print("Dibayar : "); tempBayar = member.readLine(); if (tempBayar.equals("")) { throw new NullPointerException(); } dibayar = Double.parseDouble(tempBayar); kembali = dibayar - totalHarga; if (kembali < 0) { throw new ArithmeticException(); } System.out.println("Kembali : " + kembali); } catch (NumberFormatException xy) { System.out.println("ERROR: NOMINAL YANG DIMASUKKAN SALAH !"); } catch (NullPointerException ab) { System.out.println("ERROR: NOMINAL HARUS DISI !"); } catch (ArithmeticException cd) { System.out.println("ERROR: NOMINAL KEMBALIAN TIDAK BOLEH NEGATIF !"); } System.out.println(""); } public voId totalAkhirCustomer(double totalHarga) throws IOException { try { System.out.println("Total Biaya : " + total); if (total > 150000) { totalBiayaNonMember = total - 10000; System.out.println("Dapat potongan harga sebesar 10000"); System.out.println("Total Biaya : " + totalBiayaNonMember); System.out.print("Dibayar : "); tempBayar = member.readLine(); if (tempBayar.equals("")) {

23

throw new NullPointerException(); } dibayar = Double.parseDouble(tempBayar); totalHarga = dibayar - totalBiayaNonMember; if (totalHarga < 0) { throw new ArithmeticException(); } System.out.println("Kembali : " + totalHarga); } else { System.out.print("Dibayar : "); tempBayar = member.readLine(); if (tempBayar.equals("")) { throw new NullPointerException(); } dibayar = Double.parseDouble(tempBayar); totalHarga = dibayar - total; if (totalHarga < 0) { throw new ArithmeticException(); } System.out.println("Kembali : " + totalHarga); } } catch (NullPointerException cd) { System.out.println("NOMINAL HARUS DISI !"); } catch (NumberFormatException ef) { System.out.println("NOMINAL YANG DIMASUKKAN SALAH !"); } catch (ArithmeticException gh) { System.out.println("ERROR: NOMINAL KEMBALIAN TIDAK 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 untuk sementara. Dan data transaksi tIdak 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 kedepannya bisa lebih baik lagi, dari segi fasilitas maupun kenyamanan dIdalam 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 dan Sistem Cerdas. 2011. 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

LAMPIRAN

1 : Lembar asistensi 1, 2, dan 3 2 : CD berisi source code program dan softcopy laporan dalam format pdf.