Pemrograman Berorientasi Object dengan Java Teknik Informatika Universitas Muhammadiyah Malang Tugas 1 -- Semester 2 2011/2012 Pendahuluan Mahasiswa diminta untuk mengimplementasikan dasar-dasar program Java menggunakan Java SE 5.0. Tugas dirancang untuk: - Mengukur penguasaan konsep dasar Java - Mengevaluasi kemampuan dalam mendisain logika pemrograman - Melatih kemampuan mendisain object Java sederhana Ini adalah tugas individu dengan bobot 15% total nilai akhir Integritas Akademik Tugas yang dikumpulkan adalah hasil karya mahasiswa pribadi. Nilai tidak akan diberikan untuk setiap bagian yang tidak dibuat oleh mahasiswa bersangkutan. Plagiarisme(kecurangan) tidak ditolelir di jurusan Teknik Informatika dan akan mendapatkan sanksi yang serius. Plagiarisme meliputi penyalinan pekerjaan dari mahasiswa lain, internet atau sumber lainnya tanpa menyebutkan referensi dengan jelas. Seringkali mahasiswa belajar dan mengerjakan tugas bersama-sama, kemudian mengumpulkan tugas yang serupa; hal ini termasuk plagiarisme. Harap diperhatikan bahwa mahasiswa harus membuat programnya sendiri meskipun memiliki ide yang sama dengan mahasiswa lain. Perangkat lunak pendeteksi plagiarisme akan digunakan untuk tiap tugas yang dikumpulkan. Hukuman akan diterapkan untuk setiap kasus plagiarisme. Cafe for Geeks Kami memiliki cafe yang menjual kopi, shake dan cake. Harga jual tiap item adalah, Rp. 5.000,- untuk kopi, Rp. 7.000,- untuk shake, dan Rp. 6.000,- untuk cake. Cafe buka mulai pagi hari dengan persediaan awal 25 cake, sedangkan untuk kopi dan shake dibuat sesuai pesanan. Ketika persediaan cake hampir habis, cake bisa dimasak lagi dengan jumlah 25, sehingga bisa menambah persediaan setiap waktu. Dapat diasumsikan bahwa cake dibuat secara instan dan langsung jadi. Ketika pembeli memesan cake dengan jumlah melebihi persediaan maka akan muncul peringatan bahwa stok tidak cukup dan proses pembelian dibatalkan. Pada saat cafe akan ditutup, manajer akan membuat laporan penjualan yang meliputi, total penjualan, penjualan per item (kopi, shake, dan cake), sisa muffin yang tidak terjual. Manajer dapat mengubah harga item di setiap waktu. Asumsi
1. Tidak ada tenggang waktu antara proses pemesanan, pembuatan dan pengemasan cake di cafe. 2. Semua harga menggunakan rupiah. 3. Diasumsikan bahwa input ke aplikasi ini adalah benar. Sehingga tidak diperlukan untuk mengimplementasikan error handling. PART_A Implementasikan skenario di atas tanpa menggunakan konsep object oriented. Tujuan dari bagian ini adalah untuk menggunakan data struktur dan disain algoritma yang tepat. Tampilan menu yang diharapkan adalah:
a) b) c) d) e)
Pesan Buat cake Tampilkan laporan penjualan Ubah harga Keluar
Untuk menu pemesanan, user dapat memilih untuk:
> Pilih item makanan/minuman > Masukkan jumlah > Tunjukkan jumlah pengembalian Berikut adalah contoh pengoperasian program. Kata dengan huruf tebal adalah input dari keyboard:
============================================================= The Geek Cafe ============================================================= a) b) c) d) e) Pilih
Pesan Buat cake Tampilkan laporan penjualan Ubah harga Keluar menu: a
> Pilih item makanan/minuman 1. Kopi 2. Shake 3. Cake 4. Selesai pilih Pilih menu: 3 Berapa banyak cake yang ingin dibeli: 16 > Pilih item makanan/minuman
1. 2. 3. 4. Pilih Total
Kopi Shake Cake Selesai pilih menu: 4 biayanya adalah Rp. 96.000,-.
Masukkan jumlah uang pembayaran: 100000 Pengembalian Rp. 4.000,-. ============================================================= The Geek Cafe ============================================================= a) b) c) d) e) Pilih
Pesan Buat cake Tampilkan laporan penjualan Ubah harga Keluar menu: a
> Pilih item makanan/minuman 1. Kopi 2. Shake 3. Cake 4. Selesai pilih Pilih menu: 1 Berapa banyak cake yang ingin dibeli: 24 Sorry! Kita kehabisan stok cake. Silahkan membuat lagi. ============================================================= The Geek Cafe ============================================================= a) b) c) d) e) Pilih
Pesan Buat cake Tampilkan laporan penjualan Ubah harga Keluar menu: b
Ok, 25 cake sudah ditambah. Total cake di cafe sekarang 34. ============================================================= The Geek Cafe =============================================================
a) b) c) d) e) Pilih
Pesan Buat cake Tampilkan laporan penjualan Ubah harga Keluar menu: c
Cake belum terjual: 34 Total Penjualan: Shake : 0 Rp. 0,Coffee: 0 Rp. 0,Cake : 16 Rp. 96.000,----------------------16 Rp. 96.000,============================================================= The Geek Cafe ============================================================= a) b) c) d) e) Pilih
Pesan Buat cake Tampilkan laporan penjualan Ubah harga Keluar menu: e Bye Bye.
PART_B Tujuan dari bagian ini adalah untuk mengenalkan konsep object oriented dalam pemrograman. Pada bagian ini mahasiswa mengimplementasikan konsep cafe dan bagian-bagiannya persis sama dengan PART_A. Fungsi dari class utama (main) di bagian ini sepenuhnya sama dengan PART_A . Namun mahasiswa harus mengorganisasi data dan fungsionalitas program ke dalam bentuk class menggunakan konsep object oriented. Sebagai contoh, informasi harga untuk masing-masing item makanan harus berada di sisi object makanan, bukan di main program. Program yang baru harus memiliki fungsi yang sama persis dengan PART_A. Demikian juga dengan menu-menunya. Ketentuan Umum Nilai akan dikurangi jika mahasiswa tidak mengikuti aturan penulisan program yang baik yang meliputi comments, konsisten indentation, dll (Lihat http://java.sun.com/docs/ codeconv/CodeConventions.pdf). Pengumpulan Tugas
Pengumpulan tugas paling lambat pada Jum’at 30 Maret 2012 pk 17:59, ke server lab informatika. Mahasiswa dapat mengumpulkan tugas berulang kali selama tidak melebihi batas waktu pengumpulan. Setiap pengumpulan secara otomatis akan menghapus pengumpulan sebelumnya. Mahasiswa harus menyertakan file berikut pada saat pengumpulan: - PartA.java - PartB.java dan file-file lainnya yang merupakan definisi tiap class yang dibuat (hanya sertakan .java file, jangan setakan .class file) Keterlambatan pengumpulan berakibat pada pengurangan nilai 10% per hari. Keterlambatan lebih dari 5 hari menyebabkan tugas tidak dinilai. Informasi Lain - Mekanisme pengumpulan akan diterangkan lebih lanjut - Segala informasi yang berkaitan dengan tugas ini akan didiskusikan lebih lanjut di halaman web discussion forum