Anda di halaman 1dari 7

Ujian Tengah Semester

KUG1C3 (DASAR ALGORITMA DAN PEMROGRAMAN)


Semester Genap Tahun Akademik 2015/2016
Senin, 7 Maret 2016 Pk. 07.30 – 09.35 (125 menit)
Tim Dosen: DNH, DQU, FSV, PEY, RMB, RSM, SFY, SSD, SYM, UNW, YRM
= Ujian ini bersifat tutup buku =
= Kerjakan Sendiri dengan Baik , Teliti, dan Rapi =
= Mulailah dengan berdoa =
Kerjakan soal langsung pada kertas ujian ini. Tidak disediakan kertas tambahan. Untuk
perhitungan, gunakan bagian yang kosong di lembar nomor soal yang bersangkutan, tidak pindah
ke lembar kertas nomor lain.
Nama Mahasiswa: NIM: Kls: Ruang: Nilai (Diisi
……………………………............... ……………………....... ......... ……….... Dosen):
Salinlah pernyataan berikut: Tanda Tangan Mahasiswa:
Saya tidak melakukan kecurangan dalam ujian ini. Jika saya
melakukan pelanggaran, maka saya bersedia diberi nilai E untuk
semua Mata Kuliah pada Semester ini
.................................................................................................... ......................................................
....................................................................................................
....................................................................................................

SOAL 1 [20]: NILAI EKSTRIM


Kompetensi: mahasiswa mampu menulis algoritma terhadap permasalahan yang diberikan.

Buat sebuah program yang menerima 4 bilangan bulat dan mencetak bilangan terbesar dan terkecil.

{Jawab no.1 di sini}

SOAL 2 [20]: TRACING PROGRAM LOOPING


Kompetensi: mahasiswa mampu membaca dan memahami algoritma yang diberikan.

Seorang matematikawan dalam bidang Teori Bilangan menemukan algoritma Euclidean seperti di
bawah ini. Pada algoritma tersebut m dan n merupakan bilangan bulat positif dan m ≥ n.
Nama Mahasiswa: NIM: Kls: Ruang:
……………………………............... ……………………....... …....... ………....

Program Euclidean
Kamus
m, n, r : integer
Algoritma
input(m,n)
while n ≠ 0 do
r  m mod n
m n
n  r
{endwhile, n=0}
output(m)

Pertanyaan:
a. Apa yang dilakukan pada program Euclidean dan apa hasilnya?
b. Misalkan m=45 dan n=36, apa output program? Misalkan m=40 dan n=20, apa output program?
{Jawab no.2 di sini}

SOAL 3 [20]: LOOPING PERMEN


Kompetensi: mahasiswa mampu menulis algoritma terhadap permasalahan yang diberikan.

Terdapat N anak berbaris dan masuk satu persatu ke dalam ruang bermain. Setiap anak diberi skala
prioritas. Permen dibagikan ke anak-anak ini berdasarkan persyaratan berikut:
a. Setiap anak minimal memperoleh satu permen
b. Anak dengan skala prioritas lebih tinggi dari anak yang masuk sebelumnya akan memperoleh
tambahan permen sebanyak x, dimana x merupakan selisih skala prioritas.

Tampilkan jumlah minimum permen yang harus diberikan dan realisasi jumlah permen yang telah
diberikan.

Contoh input:
Anak1: 2
Anak2: 1
Anak3: 4
Anak4: 5

Contoh output:
Jumlah minimum permen = 4
Jumlah permen yang diberikan= 8 (keterangan: diperoleh dari 1 + 1 + 4 + 2)
Nama Mahasiswa: NIM: Kls: Ruang:
……………………………............... ……………………....... …....... ………....

{Jawab no.3 di sini}

SOAL 4 [30]: FUNGSI.


Kompetensi: Mahasiswa dapat membuat algoritma yang melibatkan fungsi dengan tepat.

Marcus Rashford sedang berlatih tendangan penalti dengan kiper De Gea. Misalkan jika tendangan
Marcus digambarkan dengan bilangan seperti berikut ini:
 Tendangan terlalu ke kiri atau terlalu ke kanan diwakili oleh bilangan kelipatan 2
 Tendangan terlalu ke atas diwakili oleh bilangan kelipatan 5
 Tendangan tepat sasaran diwakili oleh bilangan ganjil selain kelipatan 5
Latihan dilakukan sebanyak lima kali menendang, lalu tampilkan statistik tendangan Marcus dan
komentar. Jika Marcus lebih banyak tepat sasaran, disertai komentar ‘Superb, Marcus!’, jika
sebaliknya makan disertai komentar ‘Well done, De Gea!’
Contoh:
(input) Tendangan ke-1 25
(output) Tendangan terlalu ke atas

(input) Tendangan ke-2 17


(output) Tendangan tepat sasaran

(input) Tendangan ke-3 36


(output) Tendangan terlalu ke kiri atau terlalu ke kanan
Nama Mahasiswa: NIM: Kls: Ruang:
……………………………............... ……………………....... …....... ………....

(input) Tendangan ke-4 99


(output) Tendangan tepat sasaran

(input) Tendangan ke-5 43


(output) Tendangan tepat sasaran

Skor akhir: 3 untuk Marcus, 2 untuk De Gea


Superb, Marcus!
----------------------------------------------------------------
Buatlah program utama dan 3 buah fungsi untuk mensimulasikan persoalan di atas.

Function is_kelipatan2(angka: integer) --> boolean


{diberikan angka integer, menghasilkan nilai true jika angka tersebut merupakan kelipatan 2, false
jika sebaliknya}
Kamus:

Algoritma:

Function is_kelipatan5(angka: integer) --> boolean


{diberikan angka integer, menghasilkan nilai true jika angka tersebut merupakan kelipatan 5, false
jika sebaliknya}
Kamus:

Algoritma:

Function is_ganjil(angka: integer) --> boolean


{diberikan angka integer, menghasilkan nilai true jika angka tersebut merupakan bilangan ganjil,
false jika sebaliknya}
Kamus:

Algoritma:
Nama Mahasiswa: NIM: Kls: Ruang:
……………………………............... ……………………....... …....... ………....

Program ………………………………………………. {program utama no.4}

Kamus :

Algoritma :

SOAL 5 [30]: Fungsi Prosedur.


Kompetensi: Mahasiswa mampu membuat algoritma yang melibatkan fungsi dan prosedur secara tepat.

Pengurusan visa negara Uni Eropa adalah 2 hari kerja sejak data pelamar visa dimasukkan ke program
aplikasi visa. Hari kerja adalah Senin sampai dengan Jumat. Program menerima tanggal, bulan, dan
tahun aplikasi, dan hari. Program akan menghitung tanggal pengambilan visa. Misalnya:

Jika input Tanggal: 2, bulan: 3, tahun: 2016, hari: Rabu, maka


Output Tanggal: 4, bulan: 3, tahun: 2016

Jika input Tanggal: 4, bulan: 3, tahun: 2016, hari: Jumat, maka


2 hari kerja dari Jumat adalah Selasa karena Sabtu dan Minggu tidak dihitung
Output Tanggal: 8, bulan: 3, tahun: 2016

Jika input Tanggal: 31, bulan: 3, tahun: 2016, hari: Kamis, maka
2 hari kerja dari Kamis adalah Sabtu karena Sabtu dan Minggu tidak dihitung
Output Tanggal: 4, bulan: 4, tahun: 2016

Buatlah program untuk menentukan tanggal pengambilan visa, hati-hati untuk ganti bulan,
ganti tahun, dan hari Kamis/Jumat. Tempat jawaban di halaman selanjutnya ------------------>
Nama Mahasiswa: NIM: Kls: Ruang:
……………………………............... ……………………....... …....... ………....

Function jumlah_hari (bln, thn: integer)  integer


{menghasilkan jumlah hari dari bulan bln. Hati-hati untuk bln ke-2 dan tahun thn kabisat}
Kamus :

Algoritma :

Procedure tanggal_ambil (input tgl1, bln1, thn1: integer, hari: string;


output tgl2, bln2, thn2: integer)
{I.S. Tanggal dan hari input data untuk visa terdefinisi, yaitu tgl1, bln1, thn1, hari
F.S. Tanggal pengambilan visa terdefinisi, yaitu tgl2, bln2, thn2}
Kamus :

Algoritma:
Nama Mahasiswa: NIM: Kls: Ruang:
……………………………............... ……………………....... …....... ………....

Program Visa

Kamus :
Function is_kabisat (tahun: integer)  Boolean
{true jika tahun kabisat, false jika tidak. Terdefinisi, tidak perlu dibuat}

Function jumlah_hari (bln, thn: integer)  integer


Procedure tanggalAmbil (input tgl1, bln1, thn1: integer, hari: string;
output tgl2, bln2, thn2: integer)

{variabel silakan didefinisikan di bawah ini}

Algoritma : {program utama, silakan dibuat}

Anda mungkin juga menyukai