Contoh Persoalan Algoritma

Sumber soal: 
Buku Algoritma dan Pemrograman dalam Bahasa Pascal, C, dan C++ oleh Rinaldi Munir dan Leony Lidya (2016)
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.
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