PRAKTIKUM 2 Pemrograman Berorientasi Objek Petunjuk: - - Cantumkan NAMA dan NRP dalam bentuk comment di setiap source code jawaban Kumpulkan dalam format: NRP-NAMA-Prak02-{nomor soal yang selesai}.rar, misal: o Selesai nomor 2 saja, berarti: NRP-NAMA-Prak02-2.rar o Selesai nomor 2 dan 4 saja, berarti: NRP-NAMA-Prak02-24.rar o Selesai semua, berarti: NRP-NAMA-Prak02-1234567-rar Total nilai: 100 + 50 bonus point Materi: - Review Pemrograman dasar Java Looping 1. Soal1.java (5 points) Tuliskan sebuah program “for loop” untuk mem-print angka 1 sampai 10 pada baris terpisah 2. Soal2.java (10 points) Tuliskan sebuah program “for loop” untuk mem-print karakter dari ‘a’ s/d ‘z’. 3. Soal3.java (15 points) Tuliskan sebuah program “for loop” untuk menghasilkan output berikut. Asumsi loop selalu dari 1 s/d 5. (hint: gunakan dua nested for loop) 1 22 333 4444 55555 4. Soal4.java (20 points) Print-lah semua bilangan ganjil dari angka 1 s/d Angka yang di-input oleh user (inclusive). Contoh: Masukkan sebuah angka: 9 (enter) Hasil: 1 3 5 7 9 5. Soal5.java (20 points) Tuliskan sebuah program yang membaca input dari keyboard secara terus menerus, dan menjumlahkan setiap angka yang diinput. Ketika input-nya adalah minus satu (-1), maka proses input berhenti dan program akan menghasilkan rata-rata dari semua bilangan yang diinput. Gunakan tipe data desimal (double) untuk menyimpan nilai rata-rata. Contoh: Masukkan sebuah angka: 20 Jumlah saat ini 20. Total 1 angka Masukkan sebuah angka: 25 Jumlah saat ini 45. Total 2 angka Masukkan sebuah angka: 4 Jumlah saat ini 49. Total 3 angka Masukkans ebuah angka: -1 Horray! Rata-rata nilai adalah 16.33 dari 3 angka yang dimasukkan 6. Soal6.java (30 points) Tuliskan sebuah program yang menerima input sebuah angka. Angka ini akan menentukan ukuran ‘bilangan pyramid’ dengan format tertentu seperti pada contoh. Contoh: Masukkan angka: 5 Hasil: 12 3 45 12 3 4 12 3 12 1 5 54 54 3 54 3 2 54 3 21 SOAL BONUS 7. Soal7.java (20 points) Rewrite program berikut dengan menggunakan “do-while” dan “for” loop, yang berfungsi untuk mem-print angka terbesar yang diinput. Tuliskan kedua jawaban looping dalam satu file saja. Scanner keyboard = newScanner(System.in); int max = -1; int n; int c = 0; while(c<10) { n = keyboard.nextInt(); if(n > max) { max = n; } c++; } System.out.print(max); 8. Enkripsi Kunci Jawaban (30 points) CyberUKM merupakan teman bermain Nata, karena Nata kerajingan bermain game online sehingga mengalami kesulitan dalam pelajaran, sebagai teman yang baik, CyberUKM mencoba ‘membantu’ Nata dengan cara membobol database sekolah dan mencuri kunci jawaban ulangan. Ketika hendak emngirimkan jawaban kepada Nata, CyberUKM menyadari bahwa ukuran file yang hendak dikirim terlalu besar, sehingga CyberUKM memiliki ide untuk melakukan kompresi terhadap kunci jawaban tersebut. Sistem kompresi-nya adalah sebagai berikut : untuk setiap jawaban yang berturut-turut sama, maka sebuah angka yang menunjukkan jumlah perulangan akan ditaruh di depan jawaban, dan jawaban hanya ditulis sekali. Input Input berupa string yang akan dikompresi dengan panjang a (0 < a < 10 000). Output Output berupa string hasil kompresi. Sampel Input : aaaabbbcc aaaaaaaaaaaabb aaabc Output : 4a3b2c 12a2b 3abc Tips: Anda boleh menggunakan array Selamat Mengerjakan © Niko Ibrahim, S.Kom., MIT