[BS204]-Algoritma Pemrograman Take Home Test Pengumpulan : 27 Maret 2015 Tulis Tangan di kertas A4 Soal 1. (Nilai Maksimum : 100) Buatlah program dalam Bahasa Java yang digunakan untuk membaca sebuah bilangan integer N>0 (asumsikan masukan N selalu benar). Selanjutnya, program menerima N buah karakter dari pengguna. Kemudian: 1. Program membaca sebuah karakter, misalnya CC, dan menuliskan ke layar berapa banyak kemunculan CC dan tuliskan pada urutan ke berapa saja CC dimasukkan (deret urutan dipisahkan koma, kecuali elemen terakhir). Kemunculan pertama dimulai dari angka 1. Jika CC tidak ada, maka urutan tidak perlu ditulis. 2. Pilihan angka 1, 2, 3, atau 4 (asumsikan pilihan pengguna benar yaitu 1 s.d. 4). Jika: o pilihan = 1, maka tuliskan berapa banyak huruf hidup (vokal) o pilihan = 2, maka tuliskan berapa banyak huruf mati (konsonan) o pilihan = 3, maka tuliskan berapa banyak karakter angka (‘0’ s.d. ‘9’) o pilihan = 4, maka tuliskan berapa banyak karakter lain Program harus dilengkapi dengan fungsi/prosedur (bebas) yang digunakan untuk memeriksa apakah suatu karakter termasuk huruf hidup, huruf mati, karakter angka, atau karakter lain. Perhatikan contoh di bawah: yang digaris bawah dan dicetak tebal adalah input dari pengguna. Interaksi Input/Output Keterangan 5 A b 1 A # A 2 1,4 1 2 2 A B X 0 3 0 Genap 2014/2015 N = 5 CC = ‘A’ Jumlah kemunculan CC = 2 Kemunculan CC pada urutan = 1,4 Pilihan = 1 (berapa banyak huruf hidup), yaitu 2 Huruf hidup = {‘A’,‘A’} = 2 buah Huruf mati = {‘b’,’Q’} = 2 buah Karakter angka = {‘1’} = 1 buah Karakter lain = {‘#’} = 1 buah N = 2 CC = ‘X’ Jumlah kemunculan CC = 0 Kemunculan CC pada urutan => tidak ditulis Pilihan = 3 (berapa banyak karakter angka) yaitu 0 Huruf hidup = {‘A’} = 1 buah Huruf mati = {‘b’} = 1 buah Karakter angka = 0 buah Karakter lain = 0 buah Page 1 of 6 [BS204]-Algoritma Pemrograman Take Home Test Pengumpulan : 27 Maret 2015 Tulis Tangan di kertas A4 Soal 2. (Nilai Maksimum: 100) Buatlah sebuah program yang digunakan untuk membaca sebuah integer positif N dan mendeklarasikan sebuah array berukuran N. Pembacaan nilai N diasumsikan benar (tidak perlu validasi), yaitu N > 0. Program kemudian membaca N buah integer dan menyimpan setiap integer ke dalam array dari indeks paling awal. Selanjutnya, program menerima masukan sebuah nilai integer, misalnya X dan menampilkan beberapa hal sebagai berikut secara berturut-turut: Berapa banyak kemunculan X dalam array. Di indeks ke berapa saja X muncul. Setiap indeks dipisahkan dengan koma (kecuali indeks terakhir). Jika X tidak ada di array, dituliskan "X tidak ada". Apakah X adalah nilai maksimum, nilai minimum, atau nilai tengah (median) dari deret nilai dalam array (lihat contoh interaksi di bawah), jika X ada di array. Input Output Keterangan 6 1 -1 2 4 -1 2 -1 6 1 -1 2 4 -1 2 8 5 3 2 2 4 2 2 5 1 1 1 1 1 1 Genap 2014/2015 2 1,4 minimum N = 6 Isi array = {1,-1,2,4,-1,2} X = -1 maksimum = 4 minimum = 1 median = 1.5 0 8 tidak ada N = 6 Isi array = {1,-1,2,4,-1,2} X = 8 X tidak ada dalam array 3 1,2,4 minimum median N = 5 Isi array = {3,2,2,4,2} X = 2 maksimum = 4 minimum = 2 median = 2 5 0,1,2,3,4 maksimum minimum median N = 5 Isi array = {1,1,1,1,1} X = 1 maksimum = 1 minimum = 1 median = 1 Page 2 of 6 [BS204]-Algoritma Pemrograman Take Home Test Pengumpulan : 27 Maret 2015 Tulis Tangan di kertas A4 Soal 3. (Nilai Maksimum : 100) Buatlah program dalam Bahasa Java yang membaca sejumlah bilangan integer 0 atau positif yang terdiri atas 1 s.d. 5 digit (diasumsikan masukan juga selalu benar). Program diakhiri ketika pengguna mengetikkan sebuah bilangan negatif. Program kemudian menuliskan ke layar banyaknya bilangan yang dimasukkan dan setiap digit yang ada dalam semua bilangan yang diketikkan dan menuliskan jumlah kemunculannya (lihat contoh, perhatikan spasi yang digunakan). Hanya digit yang ada saja yang ditulis dan harus ditulis terurut menaik. Input Output Keterangan 3 123 245 0 567 12355 -7 0 199 3 1 -99 -99 Genap 2014/2015 6 0 1 2 3 4 5 6 7 4 0 1 3 9 0 Banyaknya bilangan = 6 : : : : : : : : 1 2 3 3 1 4 1 1 : : : : 1 2 1 2 Banyaknya bilangan = 4 Banyaknya bilangan = 0 Tidak ada digit yang bisa dituliskan Page 3 of 6 [BS204]-Algoritma Pemrograman Take Home Test Pengumpulan : 27 Maret 2015 Tulis Tangan di kertas A4 Soal 4. (Nilai Maksimum: 100) Buatlah program dalam Bahasa Java yang digunakan untuk membaca masukan sejumlah nilai IP mahasiswa (bilangan rill) sebuah angkatan, sampai pengguna mengetikkan -999 (-999 tidak termasuk). Nilai IP harus diperiksa apakah berada pada range yang benar, yaitu 0<=IP<=4. Jika ada data IP yang salah, maka data tersebut diabaikan. Selanjutnya program menuliskan berapa banyak mahasiswa, berapa banyak yang lulus dan berapa yang tidak lulus (batas lulus adalah IP >= 2.75), dan rata-rata IP di kelas tersebut (data IP salah diabaikan). Jika tidak ada data IP yang valid, tuliskan pesan: “Tidak ada data”. Yang harus diperhatikan: - Untuk output nilai rata-rata IP, harus ditulis dengan 2 digit di belakang koma. - Program harus dilengkapi dengan fungsi IsWithinRange yang digunakan untuk memeriksa apakah suatu nilai berada dalam suatu range tertentu. Fungsi ini dimanfaatkan untuk memeriksa apakah nilai IP berada pada range yang benar, dan untuk menentukan apakah IP berada dalam batas lulus atau tidak. Berikut adalah deklarasi fungsi yang harus dibuat: int IsWithinRange (float X, float min, float max); /* Menghasilkan 1 jika min <= X <= max, menghasilkan 0 jika tidak */ Input Output Keterangan 2.75 2 -3.4 4.05 3.25 -999 -999 3 2 1 2.67 Banyak mahasiswa = 3 (2 data IP salah diabaikan) Banyaknya yang lulus = 2 Banyaknya yang tidak lulus = 1 IP rata-rata = 2.67 Tidak ada data Tidak ada data yang dimasukkan Genap 2014/2015 Page 4 of 6 [BS204]-Algoritma Pemrograman Take Home Test Pengumpulan : 27 Maret 2015 Tulis Tangan di kertas A4 Soal 5. (Nilai Maksimum : 100) Buatlah program dalam Bahasa Java yang membaca sejumlah bilangan integer 0 atau positif yang terdiri atas 1 s.d. 5 digit (diasumsikan masukan juga selalu benar). Program diakhiri ketika pengguna mengetikkan sebuah bilangan negatif. Program kemudian menuliskan ke layar banyaknya bilangan yang dimasukkan dan setiap digit yang ada dalam semua bilangan yang diketikkan dan menuliskan jumlah kemunculannya (lihat contoh, perhatikan spasi yang digunakan). Hanya digit yang ada saja yang ditulis dan harus ditulis terurut menaik. Connstraint: Tidak boleh menggunakan array!! Input Output Keterangan 3 123 245 0 567 12355 -7 0 199 3 1 -99 -99 Genap 2014/2015 6 0 1 2 3 4 5 6 7 4 0 1 3 9 0 Banyaknya bilangan = 6 : : : : : : : : 1 2 3 3 1 4 1 1 : : : : 1 2 1 2 Banyaknya bilangan = 4 Banyaknya bilangan = 0 Tidak ada digit yang bisa dituliskan Page 5 of 6 [BS204]-Algoritma Pemrograman Take Home Test Pengumpulan : 27 Maret 2015 Tulis Tangan di kertas A4 Soal 6. (Nilai Maksimum: 100) Buatlah sebuah program dalam Bahasa Java yang digunakan untuk membaca sebuah integer positif N dan mendeklarasikan sebuah array berukuran N. Pembacaan nilai N diasumsikan benar (tidak perlu divalidasi), yaitu N > 0. Program kemudian membaca N buah integer dan menyimpan setiap integer ke dalam array dari indeks paling awal. Selanjutnya, program menerima masukan sebuah nilai integer, misalnya X dan menampilkan beberapa hal sebagai berikut secara berturut-turut: Berapa banyak kemunculan X dalam array. Di indeks ke-berapa saja X muncul. Setiap indeks dipisahkan dengan koma (kecuali indeks terakhir). Jika X tidak ada di array, dituliskan “X tidak ada”. Apakah X adalah nilai maksimum, nilai minimum, atau nilai tengah (median) dari deret nilai dalam array (lihat contoh interaksi di bawah), jika X ada di array. Input Output Keterangan 6 1 -1 2 4 -1 2 -1 6 1 -1 2 4 -1 2 8 5 3 2 2 4 2 2 5 1 1 1 1 1 1 Genap 2014/2015 2 1,4 minimum N = 6 Isi array = {1,-1,2,4,-1,2} X = -1 maksimum = 4 minimum = 1 median = 1.5 0 8 tidak ada N = 6 Isi array = {1,-1,2,4,-1,2} X = 8 X tidak ada dalam array 3 1,2,4 minimum median N = 5 Isi array = {3,2,2,4,2} X = 2 maksimum = 4 minimum = 2 median = 2 5 0,1,2,3,4 maksimum minimum median N = 5 Isi array = {1,1,1,1,1} X = 1 maksimum = 1 minimum = 1 median = 1 Page 6 of 6