Soal 1. (Nilai Maksimum : 100)

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