Tugas Modul Pratikum
1. Dasar Teori
Dalam Mempelajari Teori Algoritma
dan Pemrograman dalam matakuliah 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.
·
Karakteristik Algoritma
·
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.
·
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”
·
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.
·
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.
·
Algoritma
harus sangkil (effective). Setiap langkah harus sederhana sehingga dapat di
kerjakan dalam sejumlah waktu yang masuk akal.
- FLOWCHART
Flowchart
adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur
dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan
masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis
alternatif-alternatif lain dalam pengoperasian.
Flowchart biasanya
mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari
dan dievaluasi lebih lanjut.
·
Pseudocode
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.
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
2. Langkah-langkah pemecahan masalah
Penyelesaian :
·
Game Kedua
Misalkan
anda mempunyai dua ember, masing-masing ber-volume 5liter dan 3 liter. Anda
diminta untuk mendapatkan air (dari sebuah danau) sebanyak 4 liter dengan
menggunakan bantuan hanya kedua ember tersebut. Terserah bagaimana caranya,
anda boleh memindahkan air dari satu ember ke ember yang lain, membuang seluruh
isi ember, dan sebagainya. Catatan: ember
tidak memiliki ukuran.
Pertanyaan: Tuliskan
langkah-langkah untuk mendapatkan air 4 liter tersebut.
Jawab
- Pertama, Isi air di ember 3 liter dengan air sampai penuh (ember kecil berisi 3 liter air)
- Kedua, Tuangkan air dari ember kecil penuh 3 liter ke dalam ember besar air yang berisi 5 liter (ember 5 liter,sekarang berisi 3 liter air)
- Ketiga, Isi air ke ember kecil sampai penuh sebanyak 3 liter (ember 3 liter berisi 3 liter air)
- Keempat, tuangkan air dari ember kecil 3 liter kedalam ember besar 5 liter sampai penuh (di dalam ember kecil 3 liter sekarang sisa 1 liter air)
- Kelima, Buang seluruh air dari ember besar 5 liter air
- Keenam, tuangkan air di ember kecil 3 liter(yang sisa 1 liter tadi) ke dalam ember besar 5 liter (ember besar sekarang berisi 1 liter air, ember kecil kosong)
- Isi penuh ember kecil dengan air (ember kecil berisi air 3 liter)
- Tuangkan air dari ember kecil ke dalam ember besar 5 liter (ember 5 liter sekarang berisi 1 + 3 = 4 liter air)
v (plastelina
game)
Ada sebuah keluarga terdiri dari 5 orang
akan menyeberang melewati jembatan pada malam hari dengan bantuan lampu yang
hanya bisa bertahan 30 detik.
dengan catatan :
a. setiap orang mempunyai kecepatan yang berbeda-beda (1,3,6,8 dan 12 detik).
dengan catatan :
a. setiap orang mempunyai kecepatan yang berbeda-beda (1,3,6,8 dan 12 detik).
b. Apabila yang melewati jembatan ada dua
orang maka kecepatannya akan dihitung berdasarkan yang paling lambat.
Jawab :
Pertama, orang kesatu dan keenam menyeberang
Jawab :
Pertama, orang kesatu dan keenam menyeberang
Kedua,
Lalu orang kesatu kembali dan membawa orang ketiga.
Ketiga, lalu orang ketiga kembali.
Keempat, kemudian orang kedelapan dan kedua belas menyeberang.
Terakhir orang kesatu menjemput orang ketiga untuk sama-sama menyeberang.
Ketiga, lalu orang ketiga kembali.
Keempat, kemudian orang kedelapan dan kedua belas menyeberang.
Terakhir orang kesatu menjemput orang ketiga untuk sama-sama menyeberang.
v (Canibal
Game)
Bagaimana
cara untuk menyeberangkan 3 orang rahib yang sedang dikejar oleh 3 orang
kanibal ke sisi pulau yang ada di seberangnya?
a. Perahu maksimal dapat ditumpangi dua orang.
a. Perahu maksimal dapat ditumpangi dua orang.
b. Perahu
tidak dapat berjalan sendiri (tanpa penumpang)
c. Jika
jumlah rahib lebih sedikit dari kanibal, maka rahib akan dimakan oleh kanibal.
Jawab :
1. dua kanibal menyeberang ke pulau untuk menyeberang.
2. lalu 1 kanibal turun dan 1 kanibal lagi kembali ke pulau seberang.
3. lalu kanibal itu membawa kanibal yang lain ke pulau seberang
4.1 kanibal kembali,
5. lalu 2 orang rahib menyeberang dengan meninggalkan 1 rahib dan 1 kanibal
6. lalu rahib dan kanibal menyebrang kembali ke tempat semula
7. kanibal turun rahib naik untuk menyeberang bersama rahib yang ada di perahu
8. Rahib yang kedua turun dan kanibal naik menyeberang,kanibal yang di pulau sebrang naik menyeberang bersama kanibal yang membawa perahu.
9. kanibal 1 turun dan kanibal yang lain menjemput kanibal yang masih sisa. diseberang.
selesai
6. lalu rahib dan kanibal menyebrang kembali ke tempat semula
7. kanibal turun rahib naik untuk menyeberang bersama rahib yang ada di perahu
8. Rahib yang kedua turun dan kanibal naik menyeberang,kanibal yang di pulau sebrang naik menyeberang bersama kanibal yang membawa perahu.
9. kanibal 1 turun dan kanibal yang lain menjemput kanibal yang masih sisa. diseberang.
selesai
v (wolf
game)
Seorang petani akan berpergian ke kota
dengan membawa seekor kambing, anjing dan rumput yang ketiganya memiliki berat
yang tidak jauh berbeda, ditengah jalan petani harus menyebrangi sungai dengan
menggunakan perahu dan untuk melaluinya petani tersebut tidak diperbolehkan
membawa sekaligus bawaannya mengingat kapasitas kekuatan perahu tersebut, dan
untuk melaluinya petani harus membawa satu persatu bawaannya.dengan
catatan:
a.
Kambing
makan rumput
b.
Anjing
makan kambing
pertanyaan : berapa kali petani tersebut harus melalui jembatan dengan memperhatikan bahwa kambing makan rumput, anjing makan kambing ?
Jawab :
1.petani membawa kambing dari pulau pertama kepulau kedua.
2.lalu petani kembali dengan sendirinya kepulau pertama untuk membawa anjing ke pulau seberang ke pulau kedua.
3.Ke pulau kedua petani membawa kambing kepulau pertama.
4.kemudian petani itu membawa rumput dari pulau pertama kepulau kedua.
5.Terakhir petani kembali kepulau pertama untuk membawa kambing sampai kepulau kedua.
selesai
3. Referensi
4.
widada.staff.gunadarma.ac.id/.