FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN

advertisement
Page 1 of 7
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UGM
MATA KULIAH
HARI, TANGGAL
SIFAT
WAKTU
: PEMROGRAMAN I
: RABU, 5 OKTOBER 2016
: BUKU TERBUKA
: 120 MENIT
Dosen Penguji:
Anifuddin Aziz, M.Kom
Faizal Makhrus, Ph.D.
Janoe Hendarto, M.Kom
Nur Rokhman, Dr.
Sri Mulyana, M.Kom
Suprapto, Dr.
Triyogatama WW., M.Kom
Y. Suyanto, Dr
Petunjuk Singkat:
a) Tuliskan nama, nim lengkap saudara secara benar, program studi saudara pada lembar
jawaban.
b) Pada bagian atas kiri lembar jawaban, tuliskan pula nama dosen klas pengajar saudara.
c) Soal ujian tidak perlu dituliskan lagi, cukup dituliskan nomor soal yang saudara kerjakan.
Misalnya III.32 untuk menyatakan soal bagian III nomor 32.
Learning Outcome
LO
Deskripsi
LO1 Mahasiswa memiliki pengetahuan mengenai perlunya algoritma dan struktur data dalam
penyelesaian sebuah masalah
LO2 Mahasiswa memiliki pengetahuan mengenai komponen algoritma dan dapat membuat
algoritma pada permasalahan sederhana.
LO3 Mahasiswa memiliki pengetahuan mengenai struktur data dan bahasa pemrograman C++.
L04 Mahasiswa memiliki pengetahuan mengenai tipe data array dan record/struct dan dapat
mengimplementasikan dalam program komputer.
I.
11.
Pengantar Algoritma dan program komputer[LO1]
Kerjakan satu soal berikut
Jelaskan dengan singkat mengapa dalam membuat program komputer perlu memperhatikan
ketepatan struktur data dan efisiensi algoritma yang digunakan? dan Kemudian jelaskan
bagaimana cara menguji kebenaran program komputer yang saudara buat?
II.
Contoh algoritma dan program sederhana [LO2]
Pilih dan kerjakan satu dari dua soal berikut
21.
Rancang sebuah flowchart dan pseudocode untuk sebuah program yang menerima masukan
data berupa nama pegawai, dan jumlah set produksi barang yang dikerjakan oleh pegawai
tersebut, kemudian tampilkan luaran berupa nama pegawai dan jumlah bonus yang akan
diterima. Bonus akan diberikan menurut aturan berikut. jika produksi tahun ini lebih besar
produksi tahun sebelumnya, dan lebihnya adalah:
1.000 unit atau kurang, bonus nya Rp. 2.500.000,00
Page 2 of 7
1.001 sampai 3,000 unit, bonus nya Rp. 5.000.000,00
3.001 sampai 6,000 unit, bonus nya Rp.10.000.000,00
6.001 unit atau lebih, bonus nya Rp. 20.000.000,00
22.
Buatlah program dalam bahasa pemrograman C++ dari flowchart berikut:
III.
Flowchart dan algoritma untuk program sederhana [LO2]
Pilih dan kerjakan satu dari tiga soal berikut:
Buatlah sebuh flowchart atau sebuah algoritma untuk suatu program komputer yang
membaca sebuah bilangan bulat positif N dan menghitung jumlah dengan rumus:
31.
32.
Rancang suatu program dalam bentuk flowchart atau pseudocode untuk menentukan uang
kembalian dari suatu mesin penjual. Barang dalam mesin penjual memiliki harga mulai dengan
50 rupiah sampai dengan 10.000 dengan dengan selisih 50 rupiah, dan mesin hanya menerima
1 pecahan uang rupiah untuk membayar 1 barang. Sebagai contoh, dialog yang terjadi dapat
seperti ini:
>
>
>
>
>
Masukkan harga barang (mulai dari 50): 950
Masukkan pecahan uang (lebih dari atau sama dengan harga barang): 5000
Anda beli barang seharga 950 dengan uang 5000. Kembaliannya:
2 buah 2.000-an
1 buah 50-an
Page 3 of 7
33.
Diberikan input bilangan bulat positif n, buatlah program komputer untuk menampilkan
barisan fibonaci adalah jumlahan sukunya paling dekat dengan n dan tampilkan nilai jumlahan
tersebut, Berikut contoh input dan output :
N
20
55
100
Deretan suku fibonaci
1,1,2,3,5,8
1,1,2,3,5,8,13,21
1,1,2,3,5,8,13,21,34
Jumlah
20
54
88
IV.
Pemrogramam dan struktur data array [LO4]
Pilih dan kerjakan satu dari tiga soal berikut
41.
Tuliskan output dari program berikut, jika n = 10 dan n = 1000, dengan disertai penjelasan
secara singkat
42.
Diberikan/dibaca N data. Buatlah psedocode untuk menampilkan nilai maksimum ke-1 dan
maksimum ke-2.
Misakan: N = 8, datanya : 3 4 21 20 3 6 7 12
Maka luarannya adalah maksimum ke-1 : 21, maksimum ke-2: 20
43.
Berdasarkan penggalan program berikut, tunjukkanlah hasilnya, jika dimasukkan data seperti
berikut ini:
Page 4 of 7
V.
Programan komputer dan logika [LO3]
Pilih dan kerjakan satu dari tiga soal berikut
51.
Program berikut dimaksudkan untuk menentukan nilai IPK terbesar (max) dan terbesar kedua
dari n data IPK yang digenerate secara random dengan menyimpankan pada suatu array X,
Sempurnakan kode program berikut, dengan cara mengganti kondisi1, kondisi2, statemen1,
statemen2 dan statemen3 dengan perintah/ekspresi yang seharusnya dan benar agar hasil
luarannya menjadi benar
Page 5 of 7
52.
Tuliskan apakah output dari sebuah program berikut, disertai dengan penjelasan singkat
mengapa demikian hasinya:
53.
Tuliskan output dari program berikut, disertai dengan penjelasan singkat mengapa demikian
hasinya:
VI.
Penyelesaian kasus sederhana [LO4]
Pilih dan kerjakan satu dari tiga soal berikut
Desa Sukamaju mengadakan Pilkades. Ada 10 calon Kades yang mendaftar, yang masing-masing
memiliki nomor urut 1 sampai 10. Terdapat N jumlah pemilih yang berhak memilih. Pemilih
menuliskan nomor urut calon yang di pilih. Buatlah program untuk menampilkan nomor urut
calon Kades pemenang dan jumlah suara yang diperolehnya pada Pilkades Desa Sukamaju
tersebut. Masukan program adalah nilai N (jumlah pemilih), diikuti N nomor yang dipilih. Jika
calon Kades memeperoleh jumlah suara yang sama, maka yang menang adalah yang nomor
urutnya lebih kecil. Berikut Contoh masukan dan luarannya:
61.
Page 6 of 7
62.
Tulis program dalam C++ yang menerima masukan dua array 1-dimensi (misal A dan B) masingmasing dengan ukuran maksimal 25 yang berisi bilangan-bilangan bulat (integers). Selanjutnya,
program akan membandingkan dua array A dan B dengan cara menentukan nilai terbesar di
antara dua elemen di A dan B yang seletak, dan nilai yang lebih besar akan disimpan di dalam
array ke tiga (misal C) pada posisi yang sama. Di samping itu program juga akan menentukan
array mana yang mempunyai elemen lebih besar paling banyak. Output program: tampilan nilainilai yang ada di array C, dan pesan yang menerangkan array apa yang elemen lebih besar nya
paling banyak.
Ilustrasi untuk n = 6
Array yang mempunyai elemen lebih besar paling banyak adalah B.
63.
Jika diberikan nilai x={0,1,2,3,4,5} dan fungsi:
Dengan menggunakan integral trapesium, buatlah algoritma untuk menghitung :
Page 7 of 7
Hint: gunakan array, perulangan, dan pengecekan kondisi (if)
Download