Latihan Ujian Pemrograman Berorientasi Objek Semester Genap 2016/2017
Level 1 Petunjuk Pada level 1 Anda hanya diminta mengikuti instruksi yang diberikan. Instruksi 1. Buat project baru. Contoh menggunakan Eclipse. Sesuaikan dengan IDE yang Anda gunakan.
2. Beri nama project, sebagai contoh test-preparation-1.
3. Buat class baru. Dalam project ini dibutuhkan dua kelas.
4. Class pertama adalah Main class berisi main function. Class kedua class dengan nama Penulis.
5. Buat satu field dan lakukan enkapsulasi. Jika dalam IDE Anda tidak ada fitur otomatis untuk ini, lakukan secara manual. Ikuti petunjuk berikutnya. 6. Enkapsulasi dilakukan dengan memberi method setter dan getter dengan akses public.
7. Hasil enkapsulasi diberikan sebagai berikut. 8. Program Anda diharapkan dapat menunjukkan fungsionalitas yang ditunjukkan gambar berikut. Inputkan nama dan program Anda mampu menghitung berapa suku kata dalam nama. Jika input yang diberikan 0, maka program selesai.
9. Berikut adalah main program untuk program Anda. JANGAN MODIFIKASI Main program ini. 10. Berikut implementasi kelas Penulis. Perhatikan bagaimana penghitungan diimplementasikan. Pelajari implementasinya. Oleh karena kita hitung kata yang dipisahkan dengan spasi, argument pada fungsi split adalah spasi, yaitu. Gunakan dan Anda TIDAK PERLU MODIFIKASI source code ini.
11. Selesai. Lanjutkan ke level selanjutnya.
Level 2 Petunjuk Pada level ini Anda diminta membuat sebuah program yang terdiri daru dua kelas, satu Main class dan satu class bernama Buku. Main class diberikan dan Anda tidak perlu modifikasi. Instruksi 1. Buat project baru dan buat kelas-kelas yang dibutuhkan. 2. Anda diharapkan mampu membuat program yang fungsionalitasnya ditunjukkan melalui gambar berikut.
3. Berikut adalah Main program dari program Anda. Anda TIDAK PERLU MODIFIKASI Main program berikut. import java.util.scanner; public class Main { public static void main(string[] args) { Scanner pembacainput = new Scanner(System.in); while(true) { buku: "); System.out.println("Silakan input nama (atau nama-nama) penulis String inputan1 = pembacainput.nextline(); if(inputan1.equals("0")){ System.out.println("selesai"); break; } System.out.println("Silakan input tahun terbit: "); String inputan2 = pembacainput.nextline(); System.out.println("Silakan input judul buku: "); String inputan3 = pembacainput.nextline(); Buku sebuahbuku = new Buku(); sebuahbuku.setpengarang(inputan1); sebuahbuku.settahunterbit(inputan2); sebuahbuku.setjudul(inputan3); System.out.println("* Anda menginputkan buku berjudul: " + sebuahbuku.getjudul() + "."); System.out.println("* Buku ini diterbitkan pada tahun " + sebuahbuku.gettahunterbit() + "."); System.out.println("* Buku ini ditulis oleh " + sebuahbuku.getjumlahpengarang() + " orang pengarang yaitu " + sebuahbuku.getpengarang() + ". \n"); } } pembacainput.close(); }
4. Implementasikan class Buku supaya dapat menghasilkan program seperti yang ditunjukkan.
Level 3 Petunjuk Pada level ini Anda diminta membuat sebuah program sederhana tentang kepegawaian. Program ini terdiri dari empat class: Main Employee Admin Lecturer Main class berisi fungsi Main dan Anda cukup menggunakan yang sudah ada (TIDAK PERLU MODIFIKASI). Class Employee adalah base class dari Admin dan Lecturer. Perhatikan fungsi main. Perhatikan implementasi class Admin dan Lecturer. Masing-masing memiliki atribut dan method yang sama maupun berbeda. Class Employee harus berisi semua method dan field yang dimiliki oleh baik Admin maupun Lecturer secara umum. Instruksi 1. Berikut adalah class Main untuk program Anda. Gunakan dan Anda TIDAK PERLU MODIFIKASI Class ini. public class Main { public static void main(string[] args) { int currentmonth = 6; int currentyear = 2017; Admin pegawai1 = new Admin(); pegawai1.setname("rinaldi Sudibyo"); pegawai1.setresponsibility("accounting"); pegawai1.sethiredmonth(1); pegawai1.sethiredyear(2011); System.out.println(pegawai1.getName() + " mengabdi pada bagian " + pegawai1.getresponsibility() + " sejak periode " + pegawai1.gethiredmonth() + "-" + pegawai1.gethiredyear() + ". Beliau telah mengabdi selama sekitar " + pegawai1.getperiodofwork(currentmonth, currentyear) + " tahun."); Lecturer pegawai2 = new Lecturer(); pegawai2.setname("ahmad Steven Sudibyo"); pegawai2.setdepartment("mechanical Engineering"); pegawai2.setexpertise("aviation"); pegawai2.sethiredmonth(2); pegawai2.sethiredyear(2009);
System.out.println(pegawai2.getName() + " mengabdi pada Departemen " + pegawai2.getdepartment() + " dengan keahlian spesifik " + pegawai2.getexpertise() + " sejak periode " + pegawai2.gethiredmonth() + "-" + pegawai2.gethiredyear() + ". Beliau telah mengabdi selama sekitar " + pegawai2.getperiodofwork(currentmonth, currentyear) + " tahun."); } } 2. Sample output diberikan sebagai berikut. Rinaldi Sudibyo mengabdi pada bagian Accounting sejak periode 1-2011. Beliau telah mengabdi selama sekitar 6.416666666666667 tahun. Ahmad Steven Sudibyo mengabdi pada Departemen Mechanical Engineering dengan keahlian spesifik Aviation sejak periode 2-2009. Beliau telah mengabdi selama sekitar 8.333333333333334 tahun. 3. Anda dapat menghitung waktu mengabdi dengan formula berikut Lama Waktu Mengabdi (dalam tahun) = (((Tahun sekarang Tahun mulai kerja) * 12) + (Bulan sekarang Bulan mulai kerja)) / 12 Misal saat ini Juni 2017, mulai kerja Desember 2015, maka Lama waktu mengabdi = ((2017-2015) * 12 + (6-12)) / 12 = (24 6) / 12 = 1.5 tahun 4. Implementasikan Employee, Admin, dan Lecturer sehingga mampu menghasilkan program dengan fungsionalitas seperti yang telah ditunjukkan.