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)