TUGAS 3 DASAR PEMROGRAMAN
JeyZhie
Rabu, 27 November 2013
Kamis, 21 November 2013
Minggu, 03 November 2013
Senin, 28 Oktober 2013
Minggu, 22 September 2013
LAPORAN PRAKTIKUM DASAR PEMROGRAMAN - MODUL 1
Dasar Teori Tentang Algoritma dan Pemrograman
Sejarah Algoritma
Para ahli sejarah matematika menemukan asal
kata tersebut berasal dari nama penulis buku arab yang terkenal
yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi
dibaca orang barat menjadi Algorism. Al-Khuwarizmi
menulis buku yang berjudul Kitab Al Jabar Wal- Muqabala yang artinya
“Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul
buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan
kata dari algorism
menjadi
algorithm muncul karena kata algorism sering
dikelirukan dengan arithmetic, sehingga akhiran
–sm
berubah
menjadi –thm.
Karena
perhitungan dengan angka Arab sudah menjadi hal yang biasa,
maka lambat laun kata algorithm berangsur-angsur
dipakai sebagai metode perhitungan (komputasi) secara umum,
sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
Definisi
Algoritma
“Algoritma
adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis
dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan
harus dapat ditentukan bernilai salah atau benar.
Dalam beberapa
konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan
pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah,
pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran
yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli
sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan
kedua yang harus diperhatikan adalah kita harus mengetahui seberapa
baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama
pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi
hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik
harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang
sebenarnya.
Ketiga adalah
efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal
yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran
yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam
untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak
akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga
dengan memori, semakin besar memori yang terpakai maka semakin buruklah
algoritma tersebut.
Dalam kenyataannya,
setiap orang bisa membuat algoritma yang berbeda untuk
menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam
menyusun algoritma, tentunya kita mengharapkan keluaran yang sama.
Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.
Beda
Algoritma dan Program
Program adalah
kumpulan pernyataan komputer, sedangkan metode dan tahapan
sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan
bahasa pemrograman. Jadi bisa disebut bahwa program adalah
suatu implementasi dari bahasa pemrograman. Beberapa pakar
memberi formula bahwa:
Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun
juga struktur data dan algoritma berhubungan sangat erat pada
sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang
tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan
algoritma mempunyai banyak keuntungan di antaranya:
1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman
manapun, artinya penulisan algoritma independen dari bahasa
pemrograman dan komputer yang melaksanakannya.
2.
Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
3.
Apapun bahasa pemrogramannya, output yang akan
dikeluarkan sama karena algoritmanya sama.
Beberapa hal
yang perlu diperhatikan dalam membuat algoritma:
1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian
masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan
mudah dimengerti dan dipahami.
2. Tidak ada notasi yang baku
dalam penulisan teks algoritma seperti notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma
disebut notasi algoritmik.
3. Setiap orang dapat membuat aturan penulisan dan notasi
algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan
teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam
notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik
tersebut berkorespondensi dengan notasi bahasa pemrograman
secara umum.
4. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode
dalam
notasi algoritmik tidak dapat dijalankan oleh komputer. Agar
dapat dijalankan oleh komputer, pseudocode dalam notasi
algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi
bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang
menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi
mesin yang menjalannya.
5. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan
suatu permasalahan ke dalam bahasa pemrograman.
6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan
oleh komputer, algoritma harus ditranslasikan ke dalam notasi
bahasa pemrograman. Ada
beberapa hal yang harus diperhatikan pada translasi tersebut,
yaitu:
a .
Pendeklarasian variabel
Untuk mengetahui dibutuhkannya
pendeklarasian variabel dalam penggunaan
bahasa pemrograman apabila tidak semua bahasa pemrograman
membutuhkannya.
b .
Pemilihan tipe data
Apabila bahasa pemrograman yang akan
digunakan membutuhkan pendeklarasian variabel maka perlu hal ini
dipertimbangkan pada saat pemilihan tipe data.
c .
Pemakaian instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang
sama tetapi masing-masing memiliki
kelebihan dan kekurangan yang berbeda.
d .
Aturan sintaksis
Pada saat menuliskan program kita terikat
dengan aturan sintaksis dalam bahasa pemrograman yang akan
digunakan.
e .
Tampilan hasil
Pada saat membuat algoritma kita tidak
memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini
diperhatikan ketika mengkonversikannya menjadi program.
f. .
Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk
dalam kelompok compiler atau interpreter.
Mekanisme
Pelaksanaan Algoritma oleh Pemroses
Komputer
hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa
pemrograman sehingga dinamakan program. Jadi
program adalah perwujudan atau implementasi
teknis algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer.
Kata “algoritma”
dan “program” seringkali dipertukarkan dalam penggunaannya.
Misalnya ada orang yang berkata seperti ini: “program pengurutan data menggunakan algoritma selection
sort”.
Atau pertanyaan seperti ini: “bagaimana algoritma
dan program menggambarkan grafik tersebut?”. Jika
Anda sudah memahami pengertian algoritma yang sudah disebutkan sebelum ini, Anda dapat membedakan arti kata algoritma
dan program. Algoritma adalah langkah-langkah penyelesaikan masalah, sedangkan program adalah realisasi algoritma dalam bahasa
pemrograman. Program ditulis dalam salah satu
bahasa pemrograman dan kegiatan membuat program
disebut pemrograman
(programming). Orang yang menulis program disebut pemrogram (programmer).
Tiap-tiap
langkah di dalam program disebut pernyataan atau instruksi.
Jadi,
program tersusun atas sederetan instruksi. Bila
suatu instruksi dilaksanakan, maka operasioperasi yang bersesuaian dengan instruksi tersebut dikerjakan komputer.
Karakteristik
Algoritma
1. Algoritma
harus berhenti setelah mengerjakan sejumlah langkah terbatas. Sebagai contoh,
dalam algoritma Euclidean, pada langkah 1, jika n = 0, algoritma berhenti, jika
n tidak = 0 maka nilai n selalu berkurang sebagai akibat dari langkah 2 dan 3,
dan pada akhirnya nilai n = 0. Program yang tidak pernah berhenti
mengindikasikan bahwa program tersebut berisi algoritma yang salah.
2. Setiap langkah
harus di defenisikan dengan tepat dan tidak berarti dua (ambiguous). Pembaca
harus mengerti apa yang di maksud dengan “m” dan “n” adalah bilangan bulat tak
negatif (-). Contoh lainnya pernyataan ” bagilah p dengan beberapa sejumlah
bilangan bulat positif” dapat bermakna ganda. Berapakah yang di maksud dengan
“berapa” ? Algoritma menjadi jelas jika langkah tersebut di tulis “bagilah p
dengan 10 buah bilangan bulat positif”
3. Algoritma
memiliki nol atau lebih masukan (input). Masukan ialah besaran yang diberikan
kepada algoritma untuk di proses. Algoritma Euclidean mempunyai dua buah
masukan, yaitu m dan n.
4. Algoritma
mempunya nol atau lebih keluaran (output). Keluaran dapat berupa pesan atau
besaran yang memiliki hubungan dengan masukan. Algoritma Euclidean mempunyai 1
keluaran, yaitu m pada langkah 1, yang merupakan pembagi bersama terbesar dari
kedua bilangan.
5. Algoritma
harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat di
kerjakan dalam sejumlah waktu yang masuk akal.
Flowchart
Flowchart atau Diagram alir merupakan sebuah diagram dengan simbol-simbol grafis
yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang
disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing
masing langkah tersebut menggunakan tanda panah. Diagram ini bisa memberi
solusi selangkah demi selangkah untuk penyelesaian masalah yang ada di dalam
proses atau algoritma tersebut. Dengan menggunakan flowchart
akan
memudahkan kita untuk melakukan pengecekan
bagian-bagian yang terlupakan dalam analisis masalah. Di samping
itu flowchart
juga
berguna sebagai fasilitas untuk berkomunikasi antara pemrogram
yang bekerja dalam tim suatu proyek.
Ada dua macam flowchart
yang
menggambarkan proses dengan komputer, yaitu:
1. Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan prosedur dan
proses suatu file dalam
suatu media menjadi file
di dalam media lain, dalam
suatu system pengolahan data.
2. Flowchart program yaitu bagan
dengan simbol-simbol tertentu yang
menggambarkan urutan proses dan hubungan antar proses secara
mendetail di dalam suatu program.
Kaidah-Kaidah
Umum Pembuatan Flowchart Program
Dalam pembuatan flowchart
Program
tidak ada rumus atau patokan yang bersifat mutlak.
Karena flowchart
merupakan
gambaran hasil pemikiran dalam menganalisis suatu masalah dengan
komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara
satu pemrogram dengan yang lainnya.
Namun secara
garis besar setiap pengolahan selalu terdiri atas 3 bagian utama,
yaitu:
- Input,
- Proses pengolahan dan
- Output
Untuk pengolahan
data dengan komputer, urutan dasar pemecahan suatu masalah:
Ø START, berisi pernyataan untuk persiapan peralatan yang diperlukan
sebelum menangani pemecahan persoalan.
Ø
READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan
input.
Ø
PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan
sesuai dengan data yang dibaca.
Ø
WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan
output.
Ø
END, mengakhiri kegiatan pengolahan.
Walaupun tidak
ada kaidah-kaidah yang baku
dalam penyusunan flowchart, namun ada
beberapa anjuran:
Ø
Hindari pengulangan proses yang tidak perlu dan logika yang berbelit
sehingga jalannya proses menjadi singkat.
Ø
Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda
panah untuk memperjelas.
Ø
Sebuah flowchart diawali dari satu titik START dan diakhiri
dengan END.
Psoudocode
Kode-palsu atau dalam bahasa
inggris lebih dikenal sebagai pseudo-code merupakan deskripsi tingkat
tinggi informal dan ringkas atas algoritma pemrograman
komputer yang menggunakan konvensi struktural atas suatu bahasa
pemrograman, dan ditujukan untuk dibaca oleh manusia dan bukan oleh mesin. Kode palsu
biasanya tidak menggunakan elemen detail yang tidak diperlukan untuk kebutuhan
pemahaman manusia atas suatu algoritma, seperti deklarasi variabel, kode
ataupun subrutin untuk sistem yang bersifat spesifik. Bahasa pemrograman yang
digunakan lebih diperbanyak dengan deskripsi dalam bahasa natural atas sesuatu
hal yang bersifat detail, atau dengan menggunakan notasi matematis. Tujuan dari
penggunaan kode-palsu adalah untuk mempermudah manusia dalam pemahaman
dibandingkan menggunakan bahasa pemrograman yang umum digunakan, terlebih
aspeknya yang ringkas serta tidak bergantung pada suatu sistem tertentu
merupakan prinsip utama dalam suatu algoritma. Kode-palsu umumnya digunakan
dalam buku-buku ataupun publikasi karya ilmiah yang mendokumentasikan suatu
algortima, dan juga dalam perencanaan pengembangan program komputer, untuk
membuat sketsa atas struktur sebuah program sebelum program yang sesungguhnya
ditulis.
Tidak ada satu pun standar yang berlaku atas
kode-palsu, sebuah program yang masih berupa kode-palsu tidak dapat dijalankan.
Kode-palsu menyerupai pula kerangka program (skeleton programs),
termasuk dummy code, yang bisa dikompilasi tanpa kesalahan. Diagram alur dapat pula dimasukkan sebagai
alternatif berbasis grafis sebuah kode-palsu.
Penggunaan
Buku-buku teks dan publikasi ilmiah yang membahas
tentang ilmu komputer serta komputasi
numerik sering menggunakan kode palsu dalam mendeskripsikan suatu algoritma
dengan tujuan agar programer dapat memahaminya meskipun mereka tidak memahami
bahasa pemrograman yang digunakan. Dalam buku-buku teks biasanya disertakan
pula pengantar yang membahas tentang notasi dan konvensi yang digunakan,
termasuk di dalamnya notasi dan konvensi yang digunakan pada kode palsu.
Tingkat kejelasan secara lebih detail atas penggunaan suatu bahasa pemrograman
kadang-kadang digunakan pula sebagai pendekatan sebagai contoh, buku teks
Donald Knuth "The Art of Computer Programming" menggunakan
bahasa assembly untuk mikroprosesor yang
sebenarnya tidak ada.
Seorang programer yang akan mengimplementasikan
suatu algoritma yang bersifat spesifik, utamanya algoritma yang masih belum
begitu dikenalinya, umumnya menggunakan kode palsu sebagai penjelasan, kemudian
ia akan dengan mudah "menerjemahkan" penjelasan tersebut ke dalam
bahasa pemrograman dan mengubahsuai agar dapat berinteraksi secara benar dalam
program secara keseluruhan. Programer dapat pula memulai sebuah proyek dengan
membuat sketsa kode dengan menggunakan kode palsu di atas kertas sebelum
menulisnya dalam bahasa pemrograman yang sesungguhnya, sebagai mana dilakukan
dalam pendekatan "top-down".
Sintaksis
Kode palsu umumnya tidak mengikuti aturan umum
yang berlaku pada suatu bahasa pemrograman; dalam arti tidak ada suatu bentuk
standar yang sistematik, namun meskipun penulis umumnya menggunakan tata cara
ataupun sintaksis, contoh struktur kontrol, dari bahasa pemrograman umum yang
digunakan. Umumnya sintaksis yang populer digunakan menggunakan sintaksis
bahasa pemrograman Pascal, BASIC, C, C++, Java, Lisp, dan ALGOL. Deklarasi variabel
umumnya tidak digunakan, begitu pula halnya dengan blok kode yang seringkali
digantikan dengan satu baris penjelasan dalam bahasa manusia (natural).
Bentuk serta corak dari kode palsu bisa sangat
beragam bergantung pada penulis dari masing-masing publikasi dan buku teks
tersebut, dari yang model kode palsu paling sederhana hingga sangat detail
sehingga hampir serupa dengan bahasa pemrograman yang sesungguhnya.
Contoh
<variable> = <expression>
if <condition>
do stuff
else
do other stuff
while <condition>
do stuff
for <variable> from <first value> to <last value> by <step>
do stuff with variable
function <function name>(<arguments>)
do stuff with arguments
return something
<function name>(<arguments>) // Function call
Bahasa
Pemrograman
Bahasa pemrograman atau sering
diistilahkan juga dengan bahasa komputer, adalah teknik
komando/instruksi standar untuk memerintah komputer. Bahasa pemrograman ini merupakan suatu himpunan
dari aturan sintaks dan semantik yang dipakai untuk mendefinisikan program komputer. Bahasa ini
memungkinkan seorang programmer dapat menentukan secara persis data mana yang
akan diolah oleh komputer, bagaimana data ini akan disimpan/diteruskan, dan
jenis langkah apa secara persis yang akan
diambil dalam berbagai situasi.
Sampai
saat ini terdapat puluhan bahasa pemrogram, antara lain
bahasa rakitan (assembly), Fortran, Cobol, Ada,
PL/I, Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasabahasa simulasi seperti
CSMP, Simscript, GPSS, Dinamo.
Berdasarkan terapannya, bahasa pemrograman dapat digolongkan
atas dua kelompok besar:
1. Bahasa
pemrograman bertujuan khusus. Yang termasuk kelompok ini adalah Cobol (untuk terapan bisnis dan administrasi). Fortran (terapan komputasi ilmiah), bahasa rakitan (terapan
pemrograman mesin), Prolog (terapan kecerdasan buatan), bahasa-bahasa simulasi, dan sebagainya.
2. Bahasa perograman bertujuan umum, yang dapat
digunakan untuk berbagai aplikasi. Yang termasuk kelompok ini
adalah bahasa Pascal,
Basic dan C. Tentu saja pembagian ini tidak kaku. Bahasabahasa bertujuan khusus tidak berarti tidak bisa digunakan
untuk aplikasi lain. Cobol misalnya, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas. Yang
jelas, bahasabahasa pemrograman yang berbeda
dikembangkan untuk bermacam-macam terapan yang
berbeda pula.
Berdasarkan
pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke bahasa manusia, maka bahasa
pemrograman dikelompokkan atas dua macam:
1. Bahasa tingkat
rendah. Bahasa jenis ini dirancang agar setiap instruksinya
langsung dikerjakan oleh komputer, tanpa harus melalui
penerjemah (translator).
Contohnya adalah bahasa mesin. CPU mengambil
instruksi dari memori, langsung mengerti dan langsung
mengerjakan operasinya. Bahasa tingkat rendah bersifat primitif, sangat sederhana, orientasinya lebih
dekat ke mesin, dan sulit dipahami manusia. Sedangkan
bahasa rakitan dimasukkan ke dalam kelompok ini karena alasan
notasi yang dipakai dalam bahasa ini lebih dekat
ke mesin, meskipun untuk melaksanakan instruksinya
masih perlu penerjemahan ke dalam bahasa mesin.
2. Bahasa tingkat
tinggi, yang membuat pemrograman lebih mudah dipahami,
lebih “manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program dalam bahasa
tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia
perlu diterjemahkan terlebih dahulu oleh sebuah translator
bahasa (yang disebut kompilator atau compiler)
ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa tingkat
tinggi adalah Pascal,
PL/I, Ada,
Cobol, Basic, Fortran, C, C++, dan
sebagainya.
LANGKAH-LANGKAH
PEMECAHAN MASALAH GAME LOGIKA
PEMECAHAN MASALAH GAME 1
1. Ambil 1 gelas lagi dan
beri nama Gelas C.
2. Pindahkan air warna
merah dari Gelas A ke Gelas C.
3. Pindahkan air warna
biru dari Gelas B ke Gelas A.
4. Dan yang terakhir
pindahkan air warna merah tadi dari Gelas C ke Gelas B.
5. Selasai (Gelas A
berisi air warna biru dan Gelas B berisi air warna merah).
PEMECAHAN MASALAH GAME 2 (ember I volume 5liter, ember II volume 3liter)
1. Isi penuh ember II
dengan air (3liter).
2. Pindahkan air dari
ember II ke ember I, sekarang ember I telah terisi 3liter air.
3. Isi lagi ember II
dengan air hingga penuh (3liter).
4. Pindahkan air dari
ember II ke ember I.
5. Karena ember I hanya
bervolume 5liter dan telah terisi 3liter, maka ember I hanya bisa ditambahkan
2liter air dan sisanya tetap di ember II sebanyak 1liter.
6. Buang seluruh air di
ember I kemudian pindahkan sisa air di ember II tadi ke ember I. Jadi sekarang
ember I berisi 1liter air.
7. Isi penuh ember II
dengan air (3liter).
8. Pindahkan air dari
ember II ke dalam ember I yang telah terisi 1liter air tadi.
9. Selesai (sekarang
ember I telah terisi 4liter air).
PEMECAHAN MASALAH GAME 3
1. Orang I & II (anak
yang kurus dan gemuk) menyeberang terlebih dahulu. (sisa 27 detik)
2. Orang I (anak yang
kurus) kembali. (sisa waktu 26 detik)
3. Orang IV & V (ayah
& kakek) menyeberang. (sisa waktu 14 detik)
4. Orang II (anak yang
gemuk) yang telah sampai lebih dulu tadi kembali. (sisa 11 detik)
5. Orang I & III
(anak kurus & ibu) menyeberang. (sisa waktu 5 detik)
6. Orang I (anak kurus)
kembali untuk menjemput orang II (anak gemuk). (sisa 4 detik)
7. Dan yang terakhir orang
I & II (anak kurus & gemuk) menyeberang. (sisa 1 detik)
8. Selesai (seluruh
anggota keluarga telah menyeberang dengan lampu masih menyala).
PEMECAHAN MASALAH GAME 4 (CANIBAL GAME)
1. 2 kanibal (I & II)
naik perahu dan menyeberang.
2. Kanibal I turun dan
kanibal II kembali.
3. Kanibal III naik
perahu bersama kanibal II kemudian menyeberang.
4. Kanibal III turun dan
kanibal II kembali.
5. Kanibal II keluar
perahu digantikan 2 rahib (I & II) kemudian menyeberang.
6. Rahib I turun dan
digantikan kanibal III naik bersama rahib II untuk kembali.
7. Kanibal III turun
digantikan rahib III kemudian menyeberang.
8. Kedua rahib (II &
III) turun dan digantikan kanibal I yang telah menyeberang terlebih dahulu
kemudian kembali.
9. Kanibal II naik perahu
bersama kanibal I dan menyeberang.
10. Kanibal II turun dan
kanibal I kembali untuk menjemput kanibal III.
11. Kanibal III naik
bersama kanibal I kemudian menyeberang.
12. Selesai (ketiga rahib
bisa menyeberang dengan selamat tanpa termakan kanibal).
PEMECAHAN MASALAH GAME 5 (WOLF GAME)
1. Petani menyeberang bersama
dombanya.
2. Domba turun dan petani
kembali.
3. Petani mengambil
rumput dan menyeberang.
4. Rumput diturunkan dan
digantikan domba naik perahu, kemudian kembali.
5. Domba diturunkan dan
digantikan oleh anjing.
6. Petani dan anjing
menyeberang.
7. Sampai di tujuan
anjing diturunkan dan petani kembali untuk menjemput dombanya.
8. Domba naik perahu
bersama petani kemudian menyeberang.
9. Selesai.
Referensi
1. ^ SEVOCAB: Software and Systems
Engineering Vocabulary. Term: Flow chart. Retrieved 31 July 2008.
2. ^ Rosa Ariani Soekamto (2010). IK-301 Algoritma dan Pemrograman I
Langganan:
Postingan (Atom)