PRAKTIKUM 4 Pemrograman Berorientasi Objek Materi: -
Review Pemrograman dasar Java Number Charaster & String Array
Petunjuk: -
-
Cantumkan NAMA dan NRP dalam bentuk comment di setiap source code jawaban Kumpulkan dalam format: NRP-NAMA-Prak04-{nomor soal yang selesai}.rar, misal: o Selesai nomor 2 saja, berarti: NRP-NAMA-Prak04-2.rar o Selesai nomor 2 dan 4 saja, berarti: NRP-NAMA-Prak04-24.rar o Selesai semua, berarti: NRP-NAMA-Prak04-12345678910-rar Total nilai: 150
1. GanjilGenapPrima.java (10) Bilangan prima adalah bilangan yang tepat mempunyai dua pembagi, yaitu 1 dan bilangan itu sendiri. Kata “tepat” bermakna bahwa pembaginya hanya ada dua dan tidak ada pembagi yang lain. Pembagi dapat juga disebut faktor. Contoh bilangan prima adalah 2, 3, 5, 7, 11, 13, 17, 19, 23, 31, 37, dan 43. Bilangan prima ada yang genap dan ada yang ganjil. Bilangan prima genap adalah 2, dan 2 merupakan satu-satunya bilangan prima genap. Selain 2, semua bilangan prima adalah bilangan ganjil. Buatlah sebuah program yang meminta inputan sebuah angka dan menampilkan output berupa “Ganjil” atau “Genap” tergantung dari angka yang dimasukkan. Apabila angka yang dimasukkan juga merupakan bilangan prima, maka tampilkan “Ganjil Prima” atau “Genap Prima”. Contoh: Masukkan angka: 9 Ganjil Masukkan angka: 8 Genap
Praktikum Pemrograman Objek
Page 1/6
Masukkan angka: 3 Ganjil Prima Masukkan angka: 2 Genap Prima
2. HarmonicSum.java (10) Write a program called HarmonicSum to compute the sum of a harmonic series, as shown below, where n=50000. The program shall compute the sum from left-to-rightas well as from the rightto-left. Obtain the difference between these two sums and explain the difference. Which sum is more accurate?
Hints: public class HarmonicSum { // saved as "HarmonicSum.java" public static void main (String[] args) { int maxDenominator = 50000; double sumL2R = 0.0; // sum from left-to-right double sumR2L = 0.0; // sum from right-to-left // for-loop for summing from left-to-right for (int denominator = 1; denominator <= maxDenominator; ++denominator) { ...... // Beware that int/int gives int. } // for-loop for summing from right-to-left ...... // Find the difference and display ...... } }
3. Fibonaci.java (15) Write a program called Fibonacci to display the first 20 Fibonacci numbers F(n), where F(n)=F(n–1)+F(n–2) and F(1)=F(2)=1. Also compute their average. The output shall look like: The first 20 Fibonacci numbers are: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 The average is 885.5
Hints:
Praktikum Pemrograman Objek
Page 2/6
public class Fibonacci { public static void main (String args[]) { int n = 3; // the index n for F(n), starting from n=3 int fn; // F(n) to be computed int fnMinus1 = 1; // F(n-1), init to F(2) int fnMinus2 = 1; // F(n-2), init to F(1) int nMax = 20; // maximum n, inclusive int sum = fnMinus1 + fnMinus2; double average; System.out.println("The first " + nMax + " Fibonacci numbers are:"); ...... while (n <= nMax) { // Compute F(n), print it and add to sum ...... // Adjust the index n and shift the numbers ...... } // Compute and display the average (=sum/nMax) ...... } }
4. TimeTable.java (nested-loop) (15) Write a program called TimeTable to produce the multiplication table of 1 to 9 as shown using two nested for-loops: * | 1 2 3 4 5 6 7 8 9 ------------------------------1 | 1 2 3 4 5 6 7 8 9 2 | 2 4 6 8 10 12 14 16 18 3 | 3 6 9 12 15 18 21 24 27 4 | 4 8 12 16 20 24 28 32 36 5 | 5 10 15 20 25 30 35 40 45 6 | 6 12 18 24 30 36 42 48 54 7 | 7 14 21 28 35 42 49 56 63 8 | 8 16 24 32 40 48 56 64 72 9 | 9 18 27 36 45 54 63 72 81
5. NumberGuess.java (10) Write a program called NumberGuess to play the number guessing game. The program shall generate a random number between 0 and 99. The player inputs his/her guess, and the program shall response with "Try higher", "Try lower" or "You got it in n trials" accordingly. For example: Key in your guess: 50 Try higher
Praktikum Pemrograman Objek
Page 3/6
70 Try lower 65 Try lower " You got it in 4 trials!
Hints: Use Math.random() to produce a random number in double between 0.0 and (less than) 1.0. To produce an int between 0 and 99, use: int secretNumber = (int)(Math.random()*100);
6. PerfectNumber.java (15) A positive integer is called a perfect number if the sum of all its factors (excluding the number itself, i.e., proper divisor) is equal to its value. For example, the number 6 is perfect because its proper divisors are 1, 2, and 3, and 6=1+2+3; but the number 10 is not perfect because its proper divisors are 1, 2, and 5, and 10≠1+2+5. More explanation as following: 6 = 1 + 2 + 3, 28 = 1 + 2 + 4 + 7 + 14, 496 = 1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 8128 = 1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064
Write a program called PerfectNumber that takes an input of a positive integer, and print “Perfect” if the number is perfect and print “is not Perfect” otherwise. Hints/Algorithm: 1. 2. 3. 3T 3F
Ask for & get number to check Compute sum of divisors for the number to check if sum of divisors equals number to check then report number to check is perfect else report number to check is not perfect
Example: Enter a number: 6 6 is Perfect Enter a number: 10 10 is not Perfect Enter a number: 28 28 is Perfect Enter a number: 496 496 is Perfect
Praktikum Pemrograman Objek
Page 4/6
7. PeriksaKalimat.java (10) Buatlah sebuah program yang berfungsi untuk menerima inputan sebuah kalimat, lalu menampilkan output berupa: panjang kalimat, jumlah kata, kata pertama, kata terakhir,huruf pertama, dan huruf terakhir. Contoh: Masukkan sebuah kata: Universitas Kristen Maranatha
Output: Panjang Jumlah kata Kata pertama Kata terakhir Huruf pertama Huruf terakhir
: : : : : :
29 3 Universitas Maranatha U a
8. InisialGue.java (15) Buatlah sebuah program yang menerima inputtan berupa sebuah “Nama Lengkap” dan menghasilkan output berupa inisial nama tersebut. Contoh: Masukkan Nama Lengkap Anda: Yohanes Paus Paulus Jr.
Output: Inisal Anda: YPPJ
9. SizeDoesMatter.java (30) Dalam mengurutkan abjad, aturan pengurutan yang umum dipakai adalah aturan ascending atau descending. Namun berpikir sedikit eksentrik, Profesor Atha tidak menyukai ide bahwa abjad hanya diurutkan berdasarkan kedua aturan tersebut. Beliau menyukai ide bahwa karakter yang paling sering muncullah yang seharusnya menempati posisi pertama, diikuti karakter berikutnya yang muncul paling sering setelah karakter pertama. Namun apabila dua buah karakter muncul dengan frekuensi yang sama, maka abjad akan disusun secara ascending.
Input Input berupa String S yang terdiri dari karakter C dan panjang a ( c => a ~ z, 1 <= a <= 100). Input akan diakhiri oleh string “END”.
Output Untuk setiap baris input, tampilkan String S’ yang merupakan String S yang telah diurutkan kembali berdasarkan aturan Profesor Artha.
Praktikum Pemrograman Objek
Page 5/6
Sampel Input : abbbbb aaabbc ccabababacc END Output : bbbbba aabbc aaaaccccbbb
10. Quiz.java (Array) (20) Buatlah sebuah program yang berfungsi untuk menghitung rata-rata nilai quiz mahasiswa. Anda harus menggunakan array untuk menjawab permasalahan ini. Berikut perilaku dari program: 1. Program meminta jumlah mahasiswa yang akan dihitung 2. Program meminta nilai sebanyak jumlah mahasiswa 3. Program menampilkan rata-ratanya Contoh Masukkan jumlah mahasiswa: 5 Meminta nilai untuk 5 mahasiswa Nilai mahasiswa 1: 80 Nilai mahasiswa 2: 65 Nilai mahasiswa 3: 50 Nilai mahasiswa 4: 70 Nilai mahasiswa 5: 100 Rata-rata nilai: 73 Perhitungan telah selesai!
Selamat Mengerjakan © Niko Ibrahim, S.Kom., MIT
Praktikum Pemrograman Objek
Page 6/6