Pages

Sabtu, 21 September 2013

Laporan Praktikum Modul 1 Dasar Pemrograman



1.    Dasar Teori
  •                      Dasar Teori Algoritma dan Pemrograman
Algoritma adalah satu bidang ilmu yang dikemukakan pertama kali oleh Matematikawan asal Arab Saudi pada abad 18 yaitu : ABU DJAFAR IBNU MUSA ALKHAWARIZMI. “Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah.(KBBI:1988). Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.
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
Menurut Donald E. Knuth dalam bukunya berjudul " The Art Of Computer Programming", algoritma mempunyai lima ciri, yaitu :
1.   Input              : Algoritma dapat memiliki nol atau lebih inputan dari luar
2.   Output           : Algoritma harus memiliki minimal satu buah output keluaran.
3.   Definiteness    : Algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu
4.   Finiteness       : Algoritma harus memiliki titik berhenti (stopping role).
5.   Effectivenees  : Algoritma sebisa mungkin harus dapat dilaksanakan dan efektif
  •                      Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Di samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek. Flowchart merupakan alat yang banyak digunakan untuk menggambarkan algoritma dalam bentu notasi-notasi tertentu.
Program Flowchart dapat terdiri dari dua macam, yaitu bagan alir logika program (program logic flowchart) dan bagan alir program komputer terinci (detailed computer program flowchart). Bagan alir logika program digunakan untuk menggambarkan tiap-tiap langkah di dalam program komputer secara logika dan biasanya dipersiapkan oleh seorang analis system. Sedangkan bagan alir program komputer terinci digunakan untuk menggambarkan instruksiinstruksi program komputer secara terinci dan biasanya dipersiapkan oleh seorang programmer.
  •      Psoudecode
Psoudecode adalah notasi algoritma yang menyerupai bahasa pemrograman tingkat tinggi seperti Pascal. Banyak notasi psoudecode yang digunakan oleh para ahli komputer dan berbeda-beda sehingga tidak ada aturan baku dalam penulisan psoudecode ini, tetapi yang paling banyak digunakan dalam algoritma pemrograman adalah yang mendekati bahasa pascal. Keuntungan menggunakan notasi psoudocode adalah kemudahan mengkonversinya lebih tepat yang disebut mentranslasi ke notasi bahasa pemrograman, karena terdapat korespondensi antara setiap pseudecode dengan notasi bahasa pemrograman. Pseudecode adalah bahasa buatan yang membantu programmer mengembangkan algoritma. Program pseudocede tidak dijalankan oleh komputer, tetapi dipergunakan untuk membantu programmer dalam mengembangkan program sebelum menulisnya ke dalam bahasa pemrograman tertentu , misalnya C++, VB, Java, VBA, dan lain sebagainya.  
  • Bahasa Pemrograman
            Bahasa pemrograman adalah software bahasa komputer yang digunakan secara merancang atau membuat program sesuai dengan struktur dan metode yang dimiliki oleh bahasa program itu sendiri. Bahasa pemrograman merupakan notasi yang dipergunakan untuk mendeskripsikan proses komputasi dalam format yang dapat dibaca oleh komputer dan manusia. Bahasa pemrograman adalah teknik komando/instruksi standar untuk memerintahkan komputer. Bahasa pemrograman ini merupakan suatu himpunan dari 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
1.            Memindahkan Air
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

Algoritma tukar gelas tersebut tidak menghasilkan pertukaran yang benar karena langkahnya tidak logis. Pertukaran yang terjadi adalah pencampuran keduanya. Jadi algoritma tersebut salah. Untuk mempertukarkan isi kedua buah gelas tersebut kita memerlukan satu buah gelas tambahan sebagai tempat penampungan sementara. Sebut saja gelas C. Maka algoritma yang benar adalah sebagai berikut:
Penyelesaian:
Diberikan dua buah gelas, A dan B; gelas A berisi air berwarna merah, gelas B berisi air berwarna biru dan kita tambah gelas kosong (gelas C). Pertukarkan isi kedua gelas tersebut sedemikian sehingga gelas A berisi air berwarna biru dan gelas B berisi air berwarna merah.
1.      Siapkan gelas kosong (gelas C)
2.      Tuangkan air berwarna merah dari gelas A ke dalam gelas C
3.      Tuangkan air berwarna biru dari gelas B ke dalam gelas A
4.      Tuangkan air berwarna merah dari gelas C ke dalam gelas B
Dengan adanya algoritma tambahan gelas C tersebut isi gelas A dan B telah ditukarkan dengan benar.
2.   Mengisi Ember Air
            Misalkan anda mempunyai dua ember, masing-masing ber-volume 5 liter 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.
Langkah-langkah penyelesaiannya:
1)      Isi ember yang bervolume 3 liter, lalu dituangkan dalam ember bervolume 5 liter
2)  Kemudian isi kembali ember yang bervolume 3 liter lalu tuangkan ke dalam ember bervolume 5 liter, dan tadi ember yang bervolume 5 liter juga sudah diisi 3 liter dan yang diember 3 liter jadi tersisa 1 liter
3)      Lalu buang seluruh isi ember yang bervolume 5 liter
4)      Kemudian tuangkan sisa air 1 liter dari ember yang bervolume 3 liter ke ember 5 liter,
5)     Isi penuh ember bervolume 3 liter, kemudian tuangkan ke ember bervolume 5 liter yang sudah terisi air 1 liter.
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.
                 Langkah-langkah penyelesaian plastelina game:
1)      1 detik dan 3 detik  menyebrang terlebih dahulu,
2)      1 detik kembali membawa lentera,
3)      8 detik dan 12 detik  menyebrang,
4)      3 detik kembali membawa lentera,
5)      1 detik dan 6 detik menyebrang,
6)      1 detik kembali membawa lentera,
7)      Terakhir 1 detik  dan 3 detik  menyebrang.
        4.   Cannibal Game
Bagaimana caranya untuk menyeberangkan tiga rahib dan 3 kanibal ke pulau 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.
Langkah-langkah penyelesaian cannibal game:
1)      Kedua kanibal menyebrang ke pulau kedua,
2)  1 kanibal turun di pulau kedua dan 1 kanibal yang diperahu kembali ke posisi pulau pertama.
3)   Lalu kedua kanibal menyebrang ke  pulau kedua, 1 kanibal turun di pulau kedua dan 1 kanibal kembali ke pulau pertama lalu turun.
4)  Kedua rahib menyebrang ke pulau kedua, 1 rahib turun di pulau kedua, 1 rahib dan 1 kanibal menyeberangi ke pulau pertama, lalu 1 kanibal turun di pulau pertama.
5)      Kedua rahib naik dan menyeberangi ke pulau kedua, lalu 2 rahib turun di pulau kedua, dan 1 kanibal naik dan menyebrang menjemput 1 kanibal yang di posisi pulau pertama.
6)    Kedua kanibal menyeberangi ke pulau kedua, lalu 1 kanibal turun dan 1 kanibal kembali ke pulau pertama dan menjemput kanibal yang tersisa di posisi pulau pertama .
7)  Kedua kanibal naik perahu untuk menyeberangi ke pulau kedua, lalu 2 kanibal turun di pulau kedua.
            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 rumput
b.      Anjing makan kambing
Langkah-langkah penyelesaian wolf game:
1)      Petani menyebrangkan kambing dari ke tempat pertama ke tempat kedua
2)      Petani kembali ke tempat pertama sendiri lalu mengambil anjing dan menyebrangkan anjing ke tempat kedua
3)      Petani mengambil kambing lalu kembali menyebrangkan ke posisi tempat pertama
4)      Petani mengambil rumput dan disebrangkan ke tempat kedua
5)      Dan terakhir petani kembali ke posisi tempat pertama dan mengambil kambing  kemudian menyebrangkan kambing ke tempat kedua

3.     REFERENSI
Online reading :
Abdul Kadir, Pemrograman Turbo PASCAL untuk IBM PC Versi 5.0 dan 5.5, Penerbit PT. Elex Media Komputindo, Jakarta.
      Munir Rinaldi. 2002. Algoritma & Pemrograman Dalam Bahasa Pascal
Santosa, P.J. 1998. Dasar-dasar Pemrograman Pascal, Andi Offset.Yogyakarta.