jawaban dasprog

15
MODUL 1 PRAKTIKUM DASAR PEMROGRAMAN Topik : Pemahaman Algoritma 1. Misalkan terdapat dua gelas, yakni gelas “A” dan “B”. Gelas A berisi air berwarna merah, dan gelas B berisi air berwarna biru. Volume air di dalam kedua gelas sama. Bagaimana mempertukarkan isi kedua gelas sehingga gelas A berisi air berwarna biru, dan gelas B berisi air berwarna merah. Kondisi awal: Gelas A Gelas B Kondisi akhir: Gelas A Gelas B 2. 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. Game: http://www.coolmath4kids.com/math_puzzles/Logic- waterjars/ Pertanyaan: Tuliskan langkah-langkah untuk mendapatkan air 4 liter tersebut. 3. (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 2 orang, maka kecepatannya akan dihitung berdasarkan yang paling lambat.

Upload: idep-e-protoll

Post on 30-Nov-2015

356 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: jawaban dasprog

MODUL 1

PRAKTIKUM DASAR PEMROGRAMANTopik : Pemahaman Algoritma

1. Misalkan terdapat dua gelas, yakni gelas “A” dan “B”. Gelas A berisi air berwarna merah, dan gelas B berisi air berwarna biru. Volume air di dalam kedua gelas sama. Bagaimana mempertukarkan isi kedua gelas sehingga gelas A berisi air berwarna biru, dan gelas B berisi air berwarna merah.

Kondisi awal:

Gelas A Gelas B

Kondisi akhir:

Gelas A Gelas B

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

Game: http://www.coolmath4kids.com/math_puzzles/Logic-waterjars/Pertanyaan: Tuliskan langkah-langkah untuk mendapatkan air 4 liter tersebut.

3. (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 2 orang, maka kecepatannya

akan dihitung berdasarkan yang paling lambat.

Game bisa di akses di: http://plastelina.net/game3.htmlPertanyaan: tuliskan langkah-langkah secara detail untuk menyelesaikan game tersebut.

4. (Canibal Game) Bagaimana caranya untuk menyeberangkan tiga rahib dan 3 kanibal ke pulai di seberang, dengan catatan:a. Perahu maksimal dapat ditumpangi dua orang.b. Perahu tidak dapat berjalan sendiri (tanpa penumpang)

Page 2: jawaban dasprog

c. Jika jumlah rahib lebih sedikit dari kanibal, maka rahib akan dimakan oleh kanibal.

Link game: http://www.plastelina.net/game2.htmlPertanyaan: tuliskan langkah-langkah secara detail untuk menyeberangkan rahib dan kanibal ke pulai seberang.

5. (wolf game) seorang petani akan bepergian ke kota dengan membawa se-ekor kambing , anjing, dan rumput yang ketiganya memiliki berat yang tidak jauh berbeda. Ditengah jalan, petani harus menyeberangi sungai dengan menggunakan perahu dan untuk melaluinya petani tersebut tidak diperbolehkan membawa sekaligus bawaanya mengingat kapasitas kekuatan perahu tersebut, dan untuk melaluinya petani harus membawa satu per-satu bawaannya, dengan catatan:a. Kambing makan rumputb. Anjing makan kambing

Pertanyaan: tuliskan langkah-langkah secara detail untuk menyeberangkan semua barang bawaan petani tersebut, dan berapa kali petani harus membawa satu-persatu bawaanya.

Format Laporan1. Dasar Teori

- Dasar Teori tentang algoritma dan pemrograman

1.1 Algoritma

Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang 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.

1.2Pemrograman

Pemrograman berasal dar i kata program yang diberi awalan pe– dan akhiran –an. Dalam buku ini, program berarti progr am komputer. Pengertian program computer menurut John M.

Page 3: jawaban dasprog

Zelle, Ph.D. dalam bukunya yang berjudul “Python Programming: An Introduction to Computer Science” (2002, p1) adalah sekumpulan instruksi langkah per langkah yang member itahukan mengenai yang harus dilakukan computer secara tepat. Pemrograman adalah segala kegiatan pembuatan program computer.Kemudian terdapat pula istilah bahasa pemrograman yang berarti bahasa yang digunakan dalam pembuatan program komputer. Berdasarkan pengertian algor itma dan pemrograman, maka dapat dikatakan bahwa progr am merupakan hasil penerapan dari algoritma- algoritma. Akan tetapi, dalam buku ini tidak dibahas materi mengenai pembuatan program komputer. Buku ini memfokuskan teknik-teknik pembuatan algoritma itu sendir i. Nama mata kuliah Algor itma dan Pemrogr aman dalam hal ini berarti mempelajari pembuatan algoritma- algoritma yang dapat diterapkan dalam pemrograman.

- 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

Selain dalam bentuk tulisan, algoritma juga dapat ditulis dalam bentuk diagram- diagram dengan anak panah sebagai penunjuk urutan langkah algoritmanya. Algor itma yang ditulis dengan simbol-simbol demikian yang dinamakan flow chart . Mengenai lambang- lambang yang digunakan akan dibahas pada bagian selanjutnya. Sekarang diberikan suatu contoh algoritma menentukan bilangan terbesar dar i 3

Page 4: jawaban dasprog

bilangan seperti yang dicontohkan sebelumnya, tetapi ditulis dalam bentuk flow chart.

- Psoudecode

Pseudo berarti imitasi dan code ber arti kode yang dihubungkan dengan instruksi yang ditulis dalam bahasa komputer (kode bahasa pemrograman). Apabila diterjemahkan secar a bebas, maka pseudocode berarti tiruan atau imitasi dari kode bahasa pemrograman. Pada dasarnya, pseudocode merupakan suatu bahasa yang memungkinkan programmer untuk berpikir terhadap per masalahan yang harus dipecahkan tanpa harus memikirkan syntax dar i bahasa pemrogr aman yang tertentu. Tidak ada aturan penulisan syntax di dalam pseudocode. Jadi pseudocode digunakan untuk menggambarkan logika urut-urutan dari program tanpa memandang bagaimana bahasa pemrogramannya.

Walaupun pseudocode tidak ada aturan penulisan syntax, di dalam buku ini akan diberikan suatu aturan-aturan penulisan syntax yang cukup seder hana agar pembaca dapat lebih mudah dalam mempelajari algoritma-algor itma yang ada di dalam buku ini. Pseudocode yang ditulis di dalam buku ini akan menyerupai (meniru) syntax- syntax dalam bahasa Pascal. Namun dibuat sesederhana mungkin sehingga tidak akan ada kesulitan bagi pembaca untuk memahami algoritma- algor itma dalam buku ini walaupun pembaca belum pernah mempelajar i bahasa Pascal.

- 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:Bahasa Mesin, yaitu memberikan perintah kepada komputer dengan memakai kode bahasa biner, contohnya 01100101100110Bahasa 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.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.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.

Page 5: jawaban dasprog

2. Langkah-langkah pemecahan masalah

1. Gelas

Agar isi di di gelas A bisa ditukar ke gelas B kita memerlukan sebuah gelas tambahan untuk tempat penampungan sementara, dan kita namakan gelas tambahan tersebut adalah gelas C dan dengan menggunakan gelas C ini sebagai media pertukaran, algoritma pertukaran isi kedua buah gelas adalah sebagai berikut :

a Tuangkan air dari Gelas A ke dalam Gelas C.b Tuangkan air dari Gelas B ke dalam Gelas A.c Tuangkan air dari Gelas B ke dalam Gelas A.d Tuangkan air dari Gelas C ke dalam Gelas B.

2. Ember

Penyelesian :

ALGORITMA Mendapatkan air 4 liter dari dua buah ember bervolume 5 dan 3 liter

Isi penuh ember 3 liter dengan air (ember 3 liter berisi 3 liter air)Tuangkan air dari ember 3 liter ke dalam ember air 5 liter (ember 5 liter,sekarang berisi 3 liter air)Isi penuh kembali ember ember 3 liter dengan air (ember 3 liter berisi 3 liter air)tuangkan air dari ember 3 liter kedalam ember 5 liter hingga penuh (di dalam ember 3 liter sekarang tersisa 1 liter air)Buang seluruh air dari ember 5 liter air (ember 5 liter kosong)tuangkan air dari ember 3 liter(yang tersisa 1 liter tadi) kedalam ember 5 liter (ember 5 liter sekarang berisi 1 liter air, ember 3 liter kosong)Isi penuh ember 3 liter dengan air (ember 3 liter berisi air 3 liter)Tuangkan air dari ember 3 liter ke dalam ember 5 liter (ember 5 liter sekarang berisi 1 + 3 = 4 liter air)

3. Petunjuk : Game ini menyuruh kita untuk menyeberangkan sebuah keluarga ke sisi B dengan sebuah lentera yang hanya mempunyai waktu nyala sampe 30 detik saja.

Masing-2 orang dikeluarga itu memiliki kecepatan lewat di jembatan berbeda-2. Paling cepat adalah 1 detik, trs 3 detik, 6 detik, 8 detik dan paling lambat adalah 12 detik (si aki'-aki'). Total adalah 30 detik juga (sama kaya waktu nyala lampu lentera-nya).

Nah, bagaimana kalian bisa menyeimbangkan dan mengkombinasikan kecepatan menyeberang mereka dengan waktu dari si lampu lentera yang cuman 30 detik

Oiya, jembatan itu hanya bisa dilewati 2 orang. Dan salah satunya memegang lampu lenteranya (yg memegang adalah orang yang mempunyai kecepatan nyeberang paling lama) menuntun orang satu-nya. Yang memegang lentera-lah yang akan memotong waktu nyala lampu lentera itu

Niy dia jawabannya :

Page 6: jawaban dasprog

PERTAMA-TAMA, SEBERANGKAN SI 1 DETIK DAN 3 DETIK. (WAKTU TERSISA 30 DETIK - 3 DETIK YANG PEGANG LAMPU = 27 DETIK)

1 DETIK BALIK TUK JEMPUNT YANG 6 DETIK. (WAKTU TERSISA 27 DETIK - 1 DETIK YANG PEGANG LAMPU = 26 DETIK)

1 DETIK DAN 6 DETIK NYEBERANG, LALU SI 1 DETIK BALIK LAGI. (WAKTU TERSISA 26DETIK - 6 DETIK YANG PEGANG LAMPU - 1 DETIK YANG BALIK KE SISI A = 19 DETIK)

Page 7: jawaban dasprog

NAH, DISINI KUNCINYA. SEBERANGKAN SECARA BERSAMA-SAMA SI 12 DETIK (AKI-AKI) MA SI 8 DETIK. DISINI HANYA BERKURANG 12 DETIK DOANK, COZ SI 12 DETIK YANG PEGANG LAMPU. (WAKTU TERSISA 19 DETIK - 12 DETIK YANG PEGANG LAMPU = 7 DETIK)

NAH, SI 3 DETIK BALIK JEMPUT SI 1 DETIK. (WAKTU TERSISA 7 DETIK - 3 DETIK YANG BALIK KE SISI A = 4 DETIK)

TERAKHIR, SI 1 DETIK DAN 3 DETIK MENUJU SISI B BERSAMA-SAMA. (WAKTU TERSISA 4 DETIK - 3 DETIK YANG PEGANG LAMPU = 1 DETIK)

Page 8: jawaban dasprog

PERFECTOOO......!!! ^_^4. Game 4

5. M1 = Misionaris 1

6. M2 = Misionaris 2

7. M3 = Misionaris 3

8. K1 = Kanibal 1

9. K2 = Kanibal 2

10.K3 = Kanibal 3

11.

12.Cara menyelesaikannya yaitu :

13.1. Sebrangkan K1 dan K2 terlebih dahulu

14.15.

16.

17.2. Setelah sampai disebrangkan, keluarkan K1

18.

19.

20.3. Lalu sebrangkan K2 dan masukkan K3 lalu sebrangkan mereka

Page 10: jawaban dasprog

31.

32.

33.7. Keluarkan K1 masukkan M3, lalu sebrangkan mereka

34.

35.

36.8. Keluarkan M2 dan M3, lalu sebrangkan K2

37.

38.

39.Setelah itu biarkan Si kanibal disebrang sana..

40.9. Masukkan K1, untuk menyebrangkan mereka

Page 12: jawaban dasprog

48.6. Game 5

ANGKUT KAMBINGNYA DULU MENUJU SISI B, COZ SERIGALA GA MUNGKIN MAKAN SAYURAN

ANGKUT SAYURANNYA MENUJU SISI B, DAN BAWA KEMBALI KAMBINGNYA KE SISI AWAL (SISI A)

Page 13: jawaban dasprog

SEKARANG ANGKUT SERIGALANYA MENUJU KE SISI B

BALIK LAGI SEORANG DIRI, AMBIL KAMBINGNYA MENUJU SISI B

WELL DONE...SELAMAT DEH.....

3. Referensi

http://sindarku.wordpress.com/2009/06/24/karakteristik-algoritma/http://id.wikipedia.org/wiki/Bahasa_pemrogramanhttp://tugas2kuliah.wordpress.com/2011/11/29/pengertian-algoritma-dan-pemograman/http://gienandjar.wordpress.com/2011/01/28/logika-algoritma/http://www.academia.edu/1747416/Algoritma_dan_Flowchart

Page 14: jawaban dasprog

http://adiyatmanugraha.blogspot.com/2010/12/tugas-game-logika-algoritma.htmlhttp://beda-ajah.blogspot.com/2009/12/game-plastelina.htmlhttp://beda-ajah.blogspot.com/2010/11/jawaban-game-plastelina-level-1-level-3.html