Contoh Persoalan Algoritma
Sumber soal:
Buku Algoritma dan Pemrograman dalam Bahasa Pascal, C, dan C++ oleh Rinaldi Munir dan Leony Lidya (2016)
halaman 27
halaman 27
1.
Tuliskan beberapa contoh algoritma yang lain dalam
kehidupan sehari-hari. Tuliskan juga beberapa contoh langkah di dalam
algoritmanya.
Penyelesaian:
- Algoritma menyikat gigi
1. Siapkan sikat dan pasta gigi
2. Buka tutup pasta gigi
3. Keluarkan isi pasta dan letakkan di atas bulu sikat
4. Kumur – kumur
5. Gosok gigi
6. Kumur – kumur
7. Bilas sikat gigi
- Algoritma Menyajikan Mie Instan
1. Rebus air hingga mendidih
2. Masukkan mie instan ke dalam air yang telah mendidih,
rebus hingga melunak
3. Tuang bumbu-bumbu micin ke dalam piring
4. Tuang mie yang telah direbus ke piring yang sudah
dimasuki bumbu
5. Aduk hingga merata
6. Selamat makan
2.
Tiga pasang suami istri yang sedang menempuh perjalanan
sampai ke sebuah sungai. Di situ mereka menemukan sebuah perahu kecil yang
hanya bisa membawa tidak lebih dari dua orang setiap kali menyeberang.
Penyeberangan sungai dirumitkan oleh kenyataan bahwa para suami sangat
pencemburu dan tidak mau meninggalkan istri-istri mereka jika ada lelaki lain.
Tulislah algoritma dalam notasi deskriptif saja untuk menunjukkan bagaimana
penyeberangan itu bisa dilakukan.
Penyelesaian:
Misalkan sisi sungai pertama dinamakan sisi A dan sisi
sungai seberangnya dinamakan sisi B. Keadaan awalnya, di sisi A ada tiga pasang
suami istri yaitu pasangan 1 (H1 & W1), pasangan 2 (H2 & W2), dan
pasangan 3 (H3 & W3), dimana H = suami (husband) dan W = istri (wife).
Keadaan akhir yang kita inginkan adalah di sisi B ada ketiga pasang suami istri
tersebut.
Algoritma menyebrangkan ketiga pasang suami istri
tersebut dituliskan sebagai berikut.
ALGORITMA Menyebrangkan tiga pasang suami istri
Keadaan awal: sisi A: (H1, W1, H2, W2, H3, W3) sisi B: (-, -, -, -, -, -)
No
|
Algoritma
|
Sisi A
|
Sisi B
|
1
|
Istri 1 (W1) dan istri 2 (W2) menyebrang ke sisi B
|
(H1, -, H2, -, H3, W3)
|
(-, W1, -, W2, -, -)
|
2
|
Istri 1 (W1) menyebrang kembali dari B ke A
|
(H1, W1, H2, -, H3, W3)
|
(-, -, -, W2, -, -)
|
3
|
Istri 1 (W1) dan istri 3 (W3) menyebrang ke sisi B
|
(H1, -, H2, -, H3, -)
|
(-, W1, -, W2, -, W3)
|
4
|
Istri 1 (W1) menyebrang kembali dari B ke A
|
(H1, W1, H2, -, H3, -)
|
(-, -, -, W2, -, W3)
|
5
|
Suami 2 (H2) dan suami 3 (H3) menyebrang ke sisi B
|
(H1, W1, -, -, -, -)
|
(-, -, H2, W2, H3, W3)
|
6
|
Pasangan 2 (H2 & W2) menyebrang kembali dari B ke A
|
(H1, W1, H2, W2, -, -)
|
(-, -, -, -, H3, W3)
|
7
|
Suami 1 (H1) dan suami 2 (H2) menyebrang ke sisi B
|
(-, W1, -, W2, -, -)
|
(H1, -, H2, -, H3, W3)
|
8
|
Istri 3 (W3) menyebrang kembali dari B ke A
|
(-, W1, -, W2, -, W3)
|
(H1, -, H2, -, H3, -)
|
9
|
Istri 1 (W1) dan istri 2 (W2) menyebrang ke sisi B
|
(-, -, -, -, -, W3)
|
(H1, W1, H2, W2, H3, -)
|
10
|
Istri 1 (W1) menyebrang kembali dari B ke A
|
(-, W1, -, -, -, W3)
|
(H1, -, H2, W2, H3, -)
|
11
|
Istri 1 (W1) dan istri 3 (W3) menyebrang ke sisi B
|
(-, -, -, -, -, -)
|
(H1, W1, H2, W2, H3, W3)
|
3.
Tiga orang misionaris dan tiga orang kanibal tiba di
pinggir sungai. Mereka harus menyeberangi sungai itu. Hanya tersedia satu buah
perahu tetapi kapasitas perahu hanya mampu menampung paling banyak dua orang
setiap kali menyebrang. Proses penyeberangan dipersulit dengan kenyataan bahwa
jumlah kanibal tidak boleh lebih banyak dari jumlah misionaris pada salah satu
sisi daratan. Jika jumlah kanibal lebih banyak dari jumlah misionaris pada
suatu sisi daratan maka kanibal akan memakan misionaris. Tulislah algoritma
dalam notasi deskriptif untuk menunjukkan bagaimana penyebrangan itu bisa
dilakukan.
Penyelesaian:
Misalkan sisi sungai pertama dinamakan sisi A dan sisi
sungai seberangnya dinamakan sisi B. Keadaan awalnya, di sisi A ada tiga orang
misionaris (M1, M2, dan M3) dan tiga orang kanibal (K1, K2, K3). Keadaan akhir
yang kita inginkan adalah di sisi B ada keenam orang tersebut.
Algoritma menyebrangkan keenam orang tersebut dituliskan
sebagai berikut.
ALGORITMA Menyebrangkan tiga orang misionaris dan tiga orang kanibal
Keadaan awal: sisi A: (M1, M2, M3, K1, K2, K3) sisi B: (-, -, -, -, -, -)
No
|
Algoritma
|
Sisi A
|
Sisi B
|
1
|
Misionaris 1 (M1) dan kanibal 1 (K1) menyebrang ke sisi
B
|
(-, M2, M3, -, K2, K3)
|
(M1, -, -, K1, -, -)
|
2
|
Misionaris 1 (M1) menyebrang kembali dari B ke A
|
(M1, M2, M3, -, K2, K3)
|
(-, -, -, K1, -, -)
|
3
|
Kanibal 2 (K2) dan kanibal 3 (K3) menyebrang ke sisi B
|
(M1, M2, M3, -, -, -)
|
(-, -, -, K1, K2, K3)
|
4
|
Kanibal 1 (K1) menyebrang kembali dari B ke A
|
(M1, M2, M3, K1, -, -)
|
(-, -, -, -, K2, K3)
|
5
|
Misionaris 2 (M2) dan misionaris 3 (M3) menyebrang ke
sisi B
|
(M1, -, -, K1, -, -)
|
(-, M2, M3, -, K2, K3)
|
6
|
Misionaris 2 (M2) dan kanibal 2 (K2) menyebrang ke sisi
B
|
(M1, M2, -, K1, K2, -)
|
(-, -, M3, -, -, K3)
|
7
|
Misionaris 1 (M1) dan misionaris 2 (M2) menyebrang ke
sisi B
|
(-, -, -, K1, K2, -)
|
(M1, M2, M3, -, -, K3)
|
8
|
Kanibal 3 (K3) menyebrang kembali dari B ke A
|
(-, -, -, K1, K2, K3)
|
(M1, M2, M3, -, -, -)
|
9
|
Kanibal 1 (K1) dan kanibal 2 (K2) menyebrang ke sisi B
|
(-, -, K3, -, -, -)
|
(M1, M2, M3, K1, K2, -)
|
10
|
Kanibal 2 (K2) menyebrang kembali dari B ke A
|
(-, K2, K3, -, -, -)
|
(M1, M2, M3, K1, -, -)
|
11
|
Kanibal 2 (K2) dan kanibal 3 (K3) menyebrang ke sisi B
|
(-, -, -, -, -, -)
|
(M1, M2, M3, K1, K2, K3)
|
4.
Tiga buah cakram yang masing-masing berdiameter berbeda
mempunyai lubang di titik pusatnya. ketiga cakram tersebut dimasukkan pada
sebuah batang besi A sedemikian sehingga cakram yang berdiameter lebih besar
selalu terletak di bawah cakram yang berdiameter lebih kecil. Tulislah
algoritma dalam notasi deskriptif untuk memindahkan seluruh cakram tersebut ke
batang besi B; setiap kali hanya satu cakram yang boleh dipindahkan, tetapi
pada setiap perpindahan tidak boleh ada cakram yang lebih besar berada di atas
cakram kecil. Batang besi C dapat dipakai sebagai tempat peralihan dengan tetap
memegang aturan yang telah disebutkan.
sumber gambar: firmaninformatics.blogspot.com |
Penyelesaian:
Misalkan B adalah cakram berdiameter besar, S adalah
cakram berukuran sedang, dan K adalah cakram berukuran kecil. Keadaan awalnya,
cakram B, S, dan K dimasukkan ke batang besi A sedemikian sehingga cakram yang
berdiameter lebih besar selalu berada di bawah cakram yang berdiameter lebih
kecil. Keadaan akhir yang kita inginkan adalah cakram B, S, dan K dipindahkan
ke batang besi B sesuai dengan aturan pada soal.
Algoritma memindahkan ketiga cakram tersebut dituliskan
sebagai berikut.
ALGORITMA Memindahkan Tiga Buah Cakram dari Batang Besi A ke B
Keadaan awal: A: (B, S, K) B: (-, -, -) C:
(-, -, -)
1. Pindahkan cakram K ke batang besi B
2. Pindahkan cakram S ke batang besi C
3. Pindahkan cakram K ke batang besi C
4. Pindahkan cakram B ke batang besi B
5. Pindahkan cakram K ke batang besi A
6. Pindahkan cakram S ke batang besi B
7. Pindahkan cakram K ke batang besi B
Ilustrasi dengan tabel:
Iterasi
|
Batang Besi A
|
Batang Besi B
|
Batang Besi C
|
||||||
bawah
|
tengah
|
atas
|
bawah
|
tengah
|
atas
|
bawah
|
tengah
|
atas
|
|
1
|
B
|
S
|
-
|
K
|
-
|
-
|
-
|
-
|
-
|
2
|
B
|
-
|
-
|
K
|
-
|
-
|
S
|
-
|
-
|
3
|
B
|
-
|
-
|
-
|
-
|
-
|
S
|
K
|
-
|
4
|
-
|
-
|
-
|
B
|
-
|
-
|
S
|
K
|
-
|
5
|
K
|
-
|
-
|
B
|
-
|
-
|
S
|
-
|
-
|
6
|
K
|
-
|
-
|
B
|
S
|
-
|
-
|
-
|
-
|
7
|
-
|
-
|
-
|
B
|
S
|
K
|
-
|
-
|
-
|
7.
Tuliskan algoritma untuk membeli paket internet lewat
ponsel yang ditawarkan oleh sebuah operator seluler.
Penyelesaian:
ALGORITMA Membeli Paket Internet IM3
1. Hubungi *363#
2. Pilih paket yang diinginkan, dan tekan
nomor yang sesuai dengan paket yang diinginkan
3. Pilih opsi beli
4. Paket internet berhasil dibeli
Komentar
Posting Komentar