Soal Konstruksi Dasar Algoritma
Sumber soal:
Buku Algoritma dan Pemrograman dalam Bahasa Pascal, C, dan C++ oleh Rinaldi Munir dan Leony Lidya (2016)
halaman 47
1.
Buku Algoritma dan Pemrograman dalam Bahasa Pascal, C, dan C++ oleh Rinaldi Munir dan Leony Lidya (2016)
halaman 47
1.
Tulislah algoritma (dalam notasi campuran pseudo-code
dan kalimat deskriptif) untuk memperoleh informasi nomor telepon berdasarkan
data alamat rumah (nama jalan dan nomornya) kepada nomor penerangan lokal (108)
PT Telkom. Algoritma harus menjelaskan proses bila (a) nomor 108 sibuk, (b)
alamat yang diberikan penelepon belum mempunyai sambungan telepon.
Penyelesaian:
if nomor 108 tidak
sibuk then
berikan data alamat rumah
if data alamat
rumah mempunyai nomor telepon then
berikan nomor telepon
else
alamat yang diberikan penelepon belum mempunyai
sambungan telepon
end if
else
nomor 108 sibuk, silakan coba lagi di menit
berikutnya.
end if
2.
Dua buah algoritma di bawah ini menjelaskan
sikap yang harus dilakukan bila menemui lampu pengatur lalu lintas di jalan
raya:
(1)
if traffic light
menyala then
if lampu merah then
berhenti
else
jalan
(2)
if traffic light
menyala then
if lampu merah then
berhenti
else
jalan
Pada keadaan apa kedua algoritma di atas
menggambarkan perilaku yang berbeda? Algoritma mana yang Anda anggap lebih
memuaskan?
Penyelesaian:
Nomor (1) maknanya adalah ketika lampu pengatur
lalu lintas nya menyala dan berwarna merah, kendaraan harus berhenti, sedangkan
jika berwarna selain merah, maka kendaraan boleh jalan. Dan nomor (2) maknanya
adalah jika lampu pengatur lalu lintas nya menyala dan berwarna merah,
kendaraan harus berhenti, sedangkan jika lampu pengatur lalu lintas nya mati,
kendaraan boleh jalan. Menurut saya tidak ada yang lebih memuaskan karena
algoritma di atas tampak belum lengkap (tidak ada end if). Namun yang terbaik
menurut saya adalah yang nomor (1).
3.
Sebuah tabel terdiri atas lajur NIM, Nama,
Alamat, dan Nomor Telepon. Tabel tersebut sudah berisi data utama sekumpulan
mahasiswa di sebuah Perguruan Tinggi. Misalkan seorang mahasiswa (dengan NIM
tertentu) pindah kos sehingga alamat dan nomor teleponnya harus diubah.
Tuliskan algoritma (dalam notasi campuran pseudo-code dan kalimat
deskriptif) untuk mengubah Alamat dan Nomor Telepon dari
mahasiswa tersebut.
Penyelesaian:
tinjau entry pertama di dalam tabel
repeat
if NIM pada entry = x then
ubah alamat dan nomor telepon dari entry tersebut
else
tinjau entry berikutnya di dalam tabel
until NIM yang dicari sudah ditemukan atau akhir tabel sudah terdeteksi
4.
Algoritma di
bawah ini membagi sekantung permen secara adil kepada 3 orang anak
dengan cara membagikan satu permen kepada tiap anak secara berulang-ulang:
Pada keadaan bagaimana algoritma tersebut gagal?
Pada keadaan bagaimana algoritma tersebut gagal?
Penyelesaian:
Agar pembagian permennya adil, maka masing-masing anak harus mendapatkan permen sebanyak kelipatan 3, dengan banyak yang sama. Ini berarti, jika jumlah permen di kantung mod 3 tidak sama dengan 0, maka algoritma tersebut gagal, yang dalam artian ini gagal membagikan sekantung permen secara adil kepada 3 orang anak.
Agar pembagian permennya adil, maka masing-masing anak harus mendapatkan permen sebanyak kelipatan 3, dengan banyak yang sama. Ini berarti, jika jumlah permen di kantung mod 3 tidak sama dengan 0, maka algoritma tersebut gagal, yang dalam artian ini gagal membagikan sekantung permen secara adil kepada 3 orang anak.
Komentar
Posting Komentar