A. DASAR TEORI
# Definisi Dasar Teori Algoritma dan Pemrograman #
Dalam mempelajari Teori Algoritma dan Pemrograman
dalam mata kuliah Algoritma dan Pemrograman, maka perlulah mahasiswa terlebih
dahulu mengenal akan definisi-definisi masing-masing dari kata ‘Algoritma’
serta ‘Pemrograman’.
Beberapa definisi Algoritma adalah seperti
berikut ini :
- Pola pikir yang terstruktur yang berisi tahap-tahap penyelesaian masalah.
- Urutan logis pengambilan keputusan untuk pemecahan masalah.
- Urutan langkah berhingga untuk memecahkan masalah logika dan matematika
Sedangkan definisi dari Pemrograman yaitu Proses
mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan
menggunakan suatu bahasa pemrograman. Teknik pemrograman
dapat dibagi menjadi :
·
Pemrograman prosedural
·
Pemrograman deklaratif
·
Pemrograman fungsional
·
Pemrograman visual
·
Pemrograman berorientasi objek
# Struktur
Dasar Algoritma #
Setelah kontruksi dasar pembentuk algoritma, sekarang kita lihat
bagaimana struktur dasar dari teks algoritma. Sehingga dengan mengikuti
struktur tersebut kita dapat menyusun algoritma-algoritma tertentu untuk menyelesaikan masalah dengan efektif.
Algoritma disusun oleh 3 bagian (blok) yang biasanya
selalu ada dalam sebuah algoritma. 3 bagian itu adalah :
1. bagian judul (header)
2. bagian deklarasi (declaration)
3. bagian algoritma (sebagian menyebutnya
dengan deskripsi)
Ketiga bagian tersebut secara umum ditunjukkan dalam notasi algoritmik
seperti di bawah :
vPROGRAM nama program
{berisi judul algoritma, singkat dan jelas}
{berisi judul algoritma, singkat dan jelas}
v DEKLARASI
{sebagai tempat untuk mengenalkan nama atau variabel apa saja yang digunakan dan tipe datanya serta prosedur dan fungsi yang dipakai}
{sebagai tempat untuk mengenalkan nama atau variabel apa saja yang digunakan dan tipe datanya serta prosedur dan fungsi yang dipakai}
v ALGORITMA
{berisi langkah-langkah penyelesaian masalah}
{berisi langkah-langkah penyelesaian masalah}
Pada setiap bagian sebaiknya diberikan komentar untuk memperjelas
maksud dari pernyataan tersebut. Untuk komentar, penulisannya diapit oleh tanda
kurung kurawal { dan }. Dengan komentar, algoritma yang kita buat menjadi lebih
dimengerti dan dipahami, dan komentar ini tidak akan dieksekusi karena akan
dilewati saja oleh program.
§ Bagian Judul (header)
Sesuai bagiannya, kita perlu memberi judul terhadap algoritma yang
kita buat. Judul sebaiknya singkat, dan jelas serta menggambarkan apa yang
dilakukan oleh program. Di bawah judul, sebaiknya juga diberikan komentar
singkat tentang masalah yang ingin diselesaikan itu, dan bagaimana masukan dan
keluarannya.
Contohnya :
PROGRAM
ucapan selamat datang
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}
Bagian Deklarasi (declaration)
Digunakan untuk memperkenalkan semua variabel atau nama-nama yang
akan terlibat dalam algoritma termasuk tipe data dan sebagainya. Apapun nama
dan variabel yang digunakan dalam algoritma harus di ‘umumkan’ terlebih dahulu
di bagian deklarasi ini, jika tidak, algoritma (dan program) tidak akan bisa
menyelesaikan masalah. Justru malah menjadi masalah
Contoh deklarasi adalah :
DEKLARASI
nama : string
usia : integer
nama : string
usia : integer
Nama atau variabel adalah satu kesatuan leksikal, sehingga nama
tidak boleh mengandung spasi, tanda baca, tanda operator dan sebagainya kecuali
tanda “_” (garis bawah). Pada algoritma, tidak dibedakan antara huruf besar
(kapital) atau huruf kecil, semuanya dianggap sama. Lebih jelasnya akan kita
lihat pada posting berikutnya…
§ Bagian Algoritma
(deskripsi)
Bagian ini adalah inti dari program untuk menyelesaikan masalah.
Berisi instruksi-instruksi untuk pemecahan masalah dengan menggunakan notasi pseudo-code. Tidak perlu berpanjang lebar, kita lihat
saja contohnya.
ALGORITMA :
read(nama, usia)
write(‘Selamat Datang ‘, nama)
write(‘Usia Anda sekarang adalah ‘, usia, ‘tahun’)
read(nama, usia)
write(‘Selamat Datang ‘, nama)
write(‘Usia Anda sekarang adalah ‘, usia, ‘tahun’)
Nah, kalau
ketiga bagian di atas digabungkan menjadi 1 kesatuan algoritma akan menjadi :
PROGRAM
ucapan selamat datang
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}
{program untuk menampilkan ucapan selamat datang kepada pengguna dengan masukan nama pengguna}
DEKLARASI
nama : string
usia : integer
nama : string
usia : integer
ALGORITMA :
read(nama, usia)
write(‘Selamat Datang ‘, nama)
write(‘Usia Anda sekarang adalah ‘, usia, ‘tahun’)
read(nama, usia)
write(‘Selamat Datang ‘, nama)
write(‘Usia Anda sekarang adalah ‘, usia, ‘tahun’)
# Pengertian
Variable #
Variabel adalah suatu tempat untuk menampung data yang
nilainya selalu berubah.Sedangkan, Konstanta adalah suatu tempat
untuk menampung data yang nilainya selalu tetap dan tidak pernah berubah.
Variabel digunakan sebagai tempat penyimpanan data sementara.
Data yang disimpan dalam variabel akan hilang setelah program selesai
dieksekusi. Untuk penyimpanan data yang permanen, kita dapat menyimpan data di
database atau di disk.
Variabel di dalam PHP diawali dengan tanda $. Untuk dapat
menggunakan variabel, ada dua langkah yang harus dilakukan, deklarasi dan
inisialisasi.
Cara mendeklarasikan
variable :
Deklarasi variabel bisa disebut juga memperkenalkan atau mendaftarkan variabel ke dalam program. Dalam php, deklarasi variabel seringkali digabung dengan inisialisasi. Variabel dalam PHP dinyatakan dengan awalan $.
Contoh :
$var_angka1
$var_angka2
$var_hasil
$var_angka1
$var_angka2
$var_hasil
Inisialisasi
variable
Inisialisasi variabel adalah mengisi nilai untuk pertama kalinya ke dalam variabel.
Inisialisasi variabel adalah mengisi nilai untuk pertama kalinya ke dalam variabel.
Contoh inisialisasi :
$nama = “Heru Widayat”;
$jumlah = 3;
$harga = 500;
$nama = “Heru Widayat”;
$jumlah = 3;
$harga = 500;
Aturan pemberian nama variabel :
1. Dimulai dengan tanda $
2. Karakter pertama harus huruf atau garis bawah ( _ )
3. Karakter berikutnya boleh huruf, angka, atau garis bawah
4. Tidak boleh menggunakan spasi
5. Tidak boleh menggunakan karakter-karakter khusus (seperti : +, -,
*, /, <, >, dll
# 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 definisikan 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.
Ø Simbol-Simbol
Gambar berikut adalah simbol flowchart yang umum
digunakan.
Gambar
|
Simbol untuk
|
Keterangan
|
Proses/
Langkah
|
Menyatakan
kegiatan yang akan ditampilkan dalam diagram alir.
|
|
Titik
Keputusan
|
Proses /
Langkah dimana perlu adanya keputusan atau adanya kondisi tertentu. Di titik
ini selalu ada dua keluaran untuk melanjutkan aliran kondisi yang berbeda.
|
|
Masukan /
Keluaran Data
|
Digunakan
untuk mewakili data masuk, atau data keluar.
|
|
Terminasi
|
Menunjukkan
awal atau akhir sebuah proses.
|
|
Garis alir
|
Menunjukkan
arah aliran proses atau algoritma.
|
|
Kontrol/Inspeksi
|
Menunjukkan
proses / langkah dimana ada inspeksi atau pengontrolan.
|
Ø Jenis-Jenis FlowChart
Sterneckert (2003) menyarankan untuk
membuat model diagram alir yang berbeda sesuai dengan perspektif
pemakai (managers, system analysts and clerks) sehingga dikenal ada 4 jenis
diagram alir secara umum.
- Diagram Alir Dokumen, menunjukkan kontrol dari sebuah sistem aliran dokumen.
- Diagram Alir Data, menunjukkan kontrol dari sebuah sistem aliran data.
- Diagram Alir Sistem, menunjukkan kontrol dari sebuah sistem aliran secara fisik.
- Diagram Alir Program, menunjukkan kontrol dari sebuah program dalam sebuah sistem.
# Pseudo-Code #
Pseudo-Code atau
dalam bahasa Indonesia lebih dikenal sebagai kode-palsu 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 diskripsi 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.
v 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 programmer 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
mengubah agar sesuai dengan 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”.
v 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.
Menurut tingkat kedekatannya dengan mesin komputer,
bahasa pemrograman terdiri dari:
1.
Bahasa Mesin,
yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner,
contohnya 01100101100110
2.
Bahasa Tingkat
Rendah, atau dikenal dengan istilah bahasa rakitan (bah.Inggris Assembly), yaitu memberikan perintah kepada
komputer dengan memakai kode-kode singkat (kode mnemonic), contohnya MOV,
SUB, CMP, JMP, JGE, JL, LOOP, dsb.
3.
Bahasa Tingkat
Menengah, yaitu bahasa komputer yang memakai campuran instruksi dalam kata-kata
bahasa manusia (lihat contoh Bahasa Tingkat Tinggi di bawah) dan instruksi yang
bersifat simbolik, contohnya {, }, ?, <<, >>, &&, ||,
dsb.
4.
Bahasa Tingkat
Tinggi, yaitu bahasa komputer yang memakai instruksi berasal dari unsur
kata-kata bahasa manusia, contohnya begin, end, if, for, while, and, or, dsb.
Sebagian besar bahasa pemrograman digolongkan sebagai
Bahasa Tingkat Tinggi, hanya bahasa C yang digolongkan sebagai Bahasa Tingkat
Menengah dan Assembly yang merupakan Bahasa Tingkat Rendah.
Daftar Bahasa Pemrograman
v Proses
Pembuatan Program
Proses
pembuatan program yaitu kita menulis kode sumber pada teks editor misalnya
notepad kemudian mengubahnya menjadi bahasa mesin yang bisa dieksekusi oleh
CPU. Proses pengubahan kode sumber (source code) menjadi bahasa mesin (machine
language) ini terdiri dari dua macam yaitu kompilasi dan interpretasi.
1.
Kompilasi
(Compilation)
Dalam
proses kompilasi semua kode sumber dibaca terlebih dahulu dan jika tidak ada
kesalahan dalam menulis program maka akan dibentuk kode mesinnya sehingga
program bisa dijalankan. Program yang melakukan tugas ini disebut Compiler.
Program hasil kompilasi akan berbentuk executable. Program bisa langsung
dijalankan tanpa harus memiliki Compiler di komputer yang menjalankan program
tersebut. Bahasa yang menggunakan teknik kompilasi misalnya bahasa C, C++,
Pascal, Assembly dan masih banyak lagi.
2.
Interpretasi
(Interpretation)
Bahasa
yang menggunakan teknik interpretasi akan membaca kode sumber perbaris dan
dieksekusi perbaris. Jika ditemukan kesalahan dalam penulisan program maka di
baris kesalahan itulah program akan dihentikan. Program yang melakukan tugas
ini disebut Interpreter. Pada teknik interpretasi tidak ada akan dihasilkan
program standalone, artinya untuk menjalankan program kita harus mempunyai kode
sumbernya sekaligus interpreter program tersebut. Bahasa yang menggunakan
teknik interpretasi misalnya bahasa Perl, Python, Ruby dan masih banyak lagi.
3.
Kompilasi
Sekaligus Interpretasi
Ada
juga bahasa pemrograman yang menghasilkan programnya dengan teknik kompilasi
sekaligus interpretasi. Misalnya bahasa java. Dalam pembuatan program java kode
sumber diubah menjadi bytecode. Meskipun nampak seperti bahasa mesin namun ini
bukanlah bahasa mesin dan tidak executable. Untuk menjalankan bytecode tersebut
kita membutuhkan Java Runtime Environment (JRE) yang bertugas sebagai
interpreter sehingga menghasilkan program dari bytecode tersebut.
Meskipun
setiap bahasa pemrograman dibuat untuk membuat program namun setiap bahasa dibuat
dengan tujuan dan fungsi yang berbeda-beda. Misalnya untuk membuat driver
hardware kita tidak bisa menggunakan bahasa Visual Basic. Untuk membuat program
berbasis sistem seperti driver kita bisa gunakan bahasa C atau Assembly.
Contohnya sistem operasi linux yang open source. Jika anda melihat kode
sumbernya anda akan menemukan bahwa linux dibuat menggunakan bahasa C.
Sedangkan untuk pemrograman desktop kita bisa menggunakan Visual Basic. Bahasa
tersebut dirancang oleh Microsoft untuk pemrograman desktop dengan tampilan GUI
yang memukau.
v MACAM-MACAM BAHASA PEMROGRAMAN
Bahasa
pemrograman merupakan suatu teknik instruksi standar untuk memerintah komputer.
Berikut adalah penjelasan tentang bahasa pemrograman yang biasa digunakan untuk
membuat suatu website:
1. HTML: HyperText Markup
Language (HTML) adalah sebuah bahasa markup yang
digunakan untuk membuat sebuah halaman web dan menampilkan berbagai informasi
di dalam sebuah browser Internet. HTML saat ini merupakan standar Internet yang
didefinisikan dan dikendalikan penggunaannya oleh World Wide Web Consortium
(W3C). HTML berupa kode-kode tag yang menginstruksikan browser untuk
menghasilkan tampilan sesuai dengan yang diinginkan. Sebuah file yang merupakan
file HTML dapat dibuka dengan menggunakan browser web seperti Mozilla Firefox,
Microsoft Internet Explorer, dan lain sebagainya.
2. PHP: Hypertext Preprocessor (PHP)
adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP
pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu PHP
masih bernama FI (Form Interpreted), yang wujudnya berupa sekumpulan script
yang digunakan untuk mengolah data form dari web. PHP banyak dipakai untuk
membuat situs web yang dinamis, walaupun tidak tertutup kemungkinan digunakan
untuk pemakaian lain. PHP biasanya berjalan pada sistem operasi Linux (PHP juga
bisa dijalankan dengan hosting windows).
3. ASP
adalah singkatan dari Active Server
Pages yang merupakan salah satu bahasa pemograman web untuk menciptakan
halaman web yang dinamis. ASP merupakan salah satu produk teknologi yang
disediakan oleh Microsoft. ASP bekerja pada web server dan merupakan server
side scripting.
4. XML: Extensible Markup Language
(XML) adalah bahasa markup serbaguna yang direkomendasikan
W3C untuk mendeskripsikan berbagai macam data. XML menggunakan markup tags
seperti halnya HTML namun penggunaannya tidak terbatas pada tampilan halaman
web saja. XML merupakan suatu metode dalam membuat penanda/markup pada sebuah
dokumen.
5. WML
adalah kepanjangan dari Wireless Markup
Language, yaitu bahasa pemrograman yang digunakan dalam aplikasi berbasis
XML (Extensible Markup Langauge). WML adalah bahasa pemrograman yang digunakan
dalam aplikasi wireless. WML merupakan analogi dari HTML yang berjalan pada
protocol nirkabel.
6. PERL adalah
bahasa pemrograman untuk mesin dengan sistem operasi Unix (SunOS, Linux, BSD,
HP-UX), juga tersedia untuk sistem operasi seperti DOS, Windows, BeOS, VMS,
EBCDIC, dan PocketPC. PERL merupakan bahasa pemograman yang mirip bahasa
pemrograman C.
7. CFM
dibuat menggunakan tag ColdFusion
dengan software Adobe ColdFusion / BlueDragon / Coldfusion Studio. Syntax
coldfusion berbasis html.
8. Javascript
adalah bahasa scripting yang handal yang berjalan pada sisi client. JavaScript
merupakan sebuah bahasa scripting yang dikembangkan oleh Netscape. Untuk
menjalankan script yang ditulis dengan JavaScript kita membutuhkan
JavaScript-enabled browser yaitu browser yang mampu menjalankan JavaScript.
9. CSS: Cascading Style Sheets (CSS)
adalah suatu bahasa stylesheet yang digunakan untuk mengatur tampilan suatu
dokumen yang ditulis dalam bahasa markup. Penggunaan yang paling umum dari CSS
adalah untuk memformat halaman web yang ditulis dengan HTML dan XHTML. Walaupun
demikian, bahasanya sendiri dapat dipergunakan untuk semua jenis dokumen XML
termasuk SVG dan XUL. Spesifikasi CSS diatur oleh World Wide Web Consortium
(W3C).
B.
Langkah-langkah Pemecahan Masalah
1.
Glass Game
a.
Siapkan gelas C. Tuangkan isi gelas A ke
gelas C.
b.
Tuangkan isi gelas B ke gelas A.
c.
Tuangkan isi gelas C ke gelas B.
Selesai.
2.
Waterjars Game
a.
Ember A diisi air 5lt. Ember B tetap
kosong.
b.
Tuangkan air ember A ke ember B. Ember A
sisa 2lt. Volume ember B menjadi 3lt. Air ember B dibuang.
c.
Ember A tetap 2lt. Ember B kosong. Air
ember A dituang ke ember B. Ember A kosong, ember B menjadi 2lt.
d.
Ember A diisi air 5lt. Air ember A
dituang ke ember B. Ember A sisa 4lt. Ember B menjadi 3lt.
e.
Air di ember B dibuang. Selesai.
3.
Plastelina Game
a.
Orang 1 dan 3 menyeberang. ~ Orang 1
kembali.
b.
Orang 8 dan 12 menyeberang. ~ Orang 3
kembali.
c.
Orang 1 dan 6 menyeberang. ~ Orang 1
kembali.
d.
Orang 1 dan 3 menyeberang. Selesai.
4.
Canibal Game
a.
1 Rahib dan 1 Canibal menyeberang. ~ 1
Canibal turun 1 Rahib kembali.
b.
1 Rahib turun 2 Canibal menyeberang. ~ 1
Canibal turun 1 Canibal kembali.
c.
1 Canibal turun 2 Rahib menyeberang. ~ 1
Rahib turun, 1 Canibal dan 1 Rahib kembali .
d.
1 Canibal turun 2 Rahib menyeberang. ~
2Rahib turun 1 Canibal kembali.
e.
2 Canibal menyeberang. ~ 1 Canibal turun
1 Canibal kembali.
f.
2 Canibal menyeberang. ~ Selesai.
5.
Wolf Game
a.
Petani + kambing menyeberang. ~ Kambing
turun petani kembali.
b.
Petani + anjing menyeberang. ~ Anjing turun, petani + kambing kembali.
c.
Kambing turun, petani + rumput
menyeberang. ~ Rumput turun petani kembali.
d.
Petani + kambing menyeberang. ~ Selesai.
C.
Referensi
Tidak ada komentar:
Posting Komentar