PRAKTIKUM 2 Pemrograman Berorientasi Objek

advertisement
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
Download