modul1-dasprog (105623324-Wahyu Sugeng Pramono)

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 Jawab: Langkah: Agar isi 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 : Tuangkan air dari Gelas A ke dalam Gelas C. Tuangkan air dari Gelas B ke dalam Gelas A. Tuangkan air dari Gelas B ke dalam Gelas A. Tuangkan air dari Gelas C ke dalam Gelas B.

description

jawaban

Transcript of modul1-dasprog (105623324-Wahyu Sugeng Pramono)

Page 1: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

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

Jawab:Langkah:

Agar isi 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 :

Tuangkan air dari Gelas A ke dalam Gelas C. Tuangkan air dari Gelas B ke dalam Gelas A. Tuangkan air dari Gelas B ke dalam Gelas A. Tuangkan air dari Gelas C ke dalam 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/

Page 2: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

Pertanyaan: Tuliskan langkah-langkah untuk mendapatkan air 4 liter tersebut.

Jawab:Langkah:

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

Jawab:Langkah:

Page 3: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

Di awal start ada 5 family.

Pertama – tama seberangkan no. 1 dan no. 3 ke tempat finish. Waktu yang tersisah 27 detik?

Selanjutnya no. 1 kembali ke start menjemput no. 6 menujuh ke finish. Waktu yang tersisa 20 detik?

Page 4: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

Setelah itu no. 1 kembali lagi ke start, no. 8 dan no. 12 menujuh ke tempat finish. Waktu yang tersisah 7 detik?

Selanjutnya no. 3 kembali menjemput no. 1 ke tempat start. Waktu yang tersisah 4 detik?

No. 1 dan no. 8 menujuh ke tempat finish...selesai!!!! Waktu tersisa 1 detik?

Page 5: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

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)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 pulau seberang?

Jawab:Langkah:

Di awal start ada 3 rahib dan 3 kanibal.

Pertama – tama dari tempat start pindahkan 2 kanibal agar naik ke perahu untuk menyebrang ke tempat finish, disitu di turunkan 1 kanibal di tempat finish.

Page 6: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

1 kanibal yang ada di perahu kembali untuk menjemput kabinal yang berikutnya, untuk di pindahkan ke tempat finish. Jadi di tempat finish ada 2 kanibal.

Lalu 1 kanibal yang di perahu turun kembali ke tempat start.

Setelah itu 2 rahib naik ke perahu menujuh ke tempat finish, dan 2 rahib turun.

Page 7: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

1 kanibal dan 1 rahib naik ke perahu kembali ke tempat start yang disana ada 1 rahib dan 1 kanibal. Setelah itu 1 kanibal di turunkan dan 1 rahib naik ke perahu menujuh ke tempat finish. Dan 2 rahib tersebut diturunkan di tempat finish, jadi di tempat finish ada 3 rahib dan 1 kanibal.

Selanjutnya 1 kanibal naik ke perahu menujuh ke tempat start yang ada 2 kanibal tersebut. Dan setelah itu 1 kanibal naik ke perahu menujuh ke finish di sana di turun kan 1 kanibal.

1 kanibal yang di perahu kembali menujuh ke 1 kanibal yang ada di tempat start. Dan 2 kanibal yang di perahu sekarang menujuh ke tempat finish dan 2 kanibal itu di turunkan. Jadi di tempat finish sudah terkumpul 3 rahib dan 3 kanibal…selesai!!!!

Page 8: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

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.

Jawab:Langkah:Di sini akan menggunakan sebuah nama dengan inisial:P -> PetaniR -> RumputK -> KambingA -> Anjing

Di awal start ada (P), (R), (K), dan (A).

Page 9: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

Pertama – tama dari tempat start (P) naik perahu, pindahkan (K) menujuh ke tempat finish.

Selanjutnya (P) kembali ke start pindahkan (R) ke tempat finish, setelah

itu (R) di turunkan dan (K) di naik kan ke perahu kembali ke tempat start. Jadi di tempat finish ada (R)?

Selanjutnya (P) kembali ke tempat start menurunkan (K), dan (A) di naik kan ke perahu setelah itu menujuh ke tempat finish. Dan (P) menurunkan (A) di tempat finish. Jadi di tempat finish ada (R) dan (A)?

Selanjutnya (P) kembali lagi ke tempat start dan menaik kan (K), untuk menujuh ke tempat finish. Setelah itu (K) di turunkan di tempat finish….selesai!!!!!

Page 10: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

Jadi petani membawa satu persatu bawaannya sebanyak 5x

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

Page 11: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

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 bilangan seperti yang dicontohkan sebelumnya, tetapi ditulis dalam bentuk flow chart.

- Psoudecode

Page 12: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

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 13: modul1-dasprog (105623324-Wahyu Sugeng Pramono)

2. 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_Flowcharthttp://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