Kamis, 19 September 2013

Modul Pratikum 1: Ramadhani Juwita Apsari

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
  1. Pertama, Isi air di ember 3 liter dengan air sampai penuh (ember kecil berisi 3 liter air)
  1. 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)
  1. Ketiga, Isi air ke ember kecil sampai penuh  sebanyak 3 liter (ember 3 liter berisi 3 liter air)
  1. 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)
  1. Kelima, Buang seluruh air dari ember besar 5 liter air
  1. 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)
  1. Isi penuh ember kecil dengan air (ember kecil berisi air 3 liter)
  1. 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).
b. Apabila yang melewati jembatan ada dua orang maka kecepatannya akan dihitung berdasarkan yang paling lambat.

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.




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.
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

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/.