Sabtu, 21 September 2013

Dasar Teori Algoritma dan Pemograman





Hasil Penyelesaian Modul I Dasar Pemrograman

Dasar Teori

Dasar Teori Algoritma dan Pemograman
Dalam Mempelajari Teori Algoritma dan Pemrograman dalam mata kuliah Algoritma dan Pemrograman, maka perlulah mahasiswa terlebih dahulu mengenalakan 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.
Adapun ilustrasi proses pemrograman, terlihat dalam gambar 1.1. berikutini :












Karakteristik Algoritma
1)       Algoritma harus tidak ambigu (unambiguous)
       Deskripsi langkah-langkah dalam algoritma harus dan hanya membuat tafsiran tungal.

2)       Agoritma harus tepat (precise)
     Algoritma harus menyatakan urutan langkah-langkahnya. Kapan sebuah langkah x  dilakukan, apakah sebelum atau sesudah langkah y. Algoritma harus menyatakan dengan jelas kapan berhenti sebuah langkah untuk meneruskan ke langkah berikutnya.

3)       Algoritma harus pasti(definite)
      Jika serangkaian langkah yang sama dilakukan dua kali maka hasilnya harus sama. Ilustrasi, jika dua orang koki mengikuti resep yang sama maka rasa kue yang dihasilkan harus sama. Jika tidak pasti ada beberapa perbedaan yang tidak disadari seperti merek bahan yang berbeda, atau lama masak yang berbeda atau ada perbedaan pada sesuatu yang lain.

4)       Algoritma harus berhingga (finite)
      Serangkaian langkah dalam algoritma harus dapat dilaksanakan pada rentang waktu tertentu seperti yang telah diuraikan.










FLOWCHART
Pengenalan Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung.
Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program dengan bahsa pemrograman.
Pengenalan Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta instruksinya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan hubungan antar proses digambarkan dengan garis penghubung.
Flowchart ini merupakan langkah awal pembuatan program. Dengan adanya flowchart urutan poses kegiatan menjadi lebih jelas. Jika ada penambahan proses maka dapat dilakukan lebih mudah. Setelah flowchart selesai disusun, selanjutnya pemrogram (programmer) menerjemahkannya ke bentuk program dengan bahsa pemrograman.
Simbol-simbol flowchart
Flowchart disusun dengan simbol-simbol. Simbol ini dipakai sebagai alat bantu menggambarkan proses di dalam program. Simbol-simbol yang dipakai antara lain :
Flow Direction symbol
Yaitu simbol yang digunakan untuk menghubungkan antara simbol yang satu dengan simbol yang lain. Simbol ini disebut juga connecting line.
Terminator Symbol
Yaitu simbol untuk permulaan (start) atau akhir (stop) dari suatu kegiatan
Connector Symbol
Yaitu simbol untuk keluar – masuk atau penyambungan proses dalam lembar / halaman yang sama.
Connector Symbol
Yaitu simbol untuk keluar – masuk atau penyambungan proses pada lembar / halaman yang berbeda.
Processing Symbol
Simbol yang menunjukkan pengolahan yang dilakukan oleh komputer
Simbol Manual Operation
Simbol yang menunjukkan pengolahan yang tidak dilakukan oleh komputer
Simbol Decision
Simbol pemilihan proses berdasarkan kondisi yang ada.
Simbol Input-Output
Simbol yang menyatakan proses input dan output tanpa tergantung dengan jenis peralatannya
Simbol Manual Input
Simbol untuk pemasukan data secara manual on-line keyboard
Simbol Preparation
Simbol untuk mempersiapkan penyimpanan yang akan digunakan sebagai tempat pengolahan di dalam storage.
Simbol Predefine Proses
Simbol untuk pelaksanaan suatu bagian (sub-program)/prosedure
Simbol Display
Simbol yang menyatakan peralatan output yang digunakan yaitu layar, plotter, printer dan sebagainya.
Simbol disk and On-line Storage
Simbol yang menyatakan input yang berasal dari disk atau disimpan ke disk.
Kaidah-kaidah pembuatan Flowchart
Dalam pembuatan flowchart tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisa suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan pemrogram lainnya.
Namun secara garis besar, setiap pengolahan selalu terdiri dari tiga bagian utama, yaitu;
         Input berupa bahan mentah
         Proses pengolahan
         Output berupa bahan jadi.
Untuk pengolahan data dengan komputer, dapat dirangkum urutan dasar untuk pemecahan suatu masalah, yaitu;
         START: berisi instruksi untuk persiapan perlatan yang diperlukan sebelum menangani  pemecahan masalah.
         READ: berisi instruksi untuk membaca data dari suatu peralatan input.
         PROCESS: berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca.
         WRITE: berisi instruksi untuk merekam hasil kegiatan ke perlatan output.
         END: mengakhiri kegiatan pengolahan

Gambar berikut memperlihatkan flowchart dari kegiatan dasar diatas.
Dari gambar flowchart di atas terlihat bahwa suatu flowchart harus terdapat proses persiapan dan proses akhir. Dan yang menjadi topik dalam pembahasan ini adalah tahap proses. Karena kegiatan ini banyak mengandung variasi sesuai dengan kompleksitas masalah yang akan dipecahkan. Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran yaitu:
         Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat
         Penggambaran flowchart yang simetris dengan arah yang jelas.
         Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.









Pseudocode


Pengertian Pseudocode - Pseudocode adalah bahasa yang digunakan untuk menyederhanakan penulisan algoritma. Pseudocode bukan bahasa pemrograman.Pseudocode adalah notasi yang menyerupai bahasa pemrograman tingkat tinggi. Keuntungan menggunakan notasi pseudo code adalah kemudahan mengkonversinya lebih tepat yang disebut mentranslasi ke notasi bahasa pemrograman, karena terdapat korespondensi antara setiap pseudo code dengan notasi bahasa pemrograman.

Contoh Pseudocode:




























Bahasa Pemograman
Bahasa komputer adalah merupakan suatu set pemrograman yang digunakan untuk membuat suatu program komputer. Bahasa komputer biasa dikenal dengan nama bahasa pemrograman. Program komputer atau software sendiri adalah suatu set instruksi yang harus dijalankan oleh komputer pada saat komputer dihidupkan atau ketika diperintahkan oleh pengguna komputer. Bahasa pemograman menggunakan kata-kata unik yang menjadi kode untuk menjalankan perintah tertentu pada komputer. Contoh bahasa pemrograman antara lain adalah Pascal, Fortran, Clipper, dBase, Delphi, Basic, Cobol, C++, C#, Java dan lain-lain.
Sebuah CPU komputer, dalam hal ini prosesor memiliki sejumlah perintah terbatas dan dikenal dengan nama kode mesin. Kode ini adalah bahasa yang digunakan untuk mengkomunikasikan data dalam komputer. CPU dalam komputer hanya mengenal bahasa ini, tidak dengan bahasa lainnya. Semua bahasa pemrograman harus diubah menjadi kode mesin terlebih dahulu supaya CPU dapat mengolah dan menjalankan perintah yang diberikan oleh program yang dibuat.

Jenis-jenis bahasa komputer
Bahasa komputer dapat dikelompokkan dalam tiga kelompok esar berdasarkan jenisnya, yakni bahasa mesin (machine language), assembly language dan high level language. Mari kita bahas satu persatu sebagai berikut:
         Machine language adalah seperangkat perintah yang dinyatakan dalam bentuk bilangan biner (hanya angka 0 dan 1) yang berfungsi untuk memberikan data dan instruksi bagaimana mengolah data kepada CPU.
         Assembly Language adalah bahasa komputer tingkat rendah yang memiliki banyak kode yang membantu memori untuk “mengingat data (informasi). Assembly language juga mengandung seperangkat simbolis yang berhubungan dengan perintah tertentu pada bahasa mesin.
         High level language disebut sebagai bahasa komputer tingkat tinggi karena berisi perintah yang dirancang mendekati bahasa manusia. Bahasa ini lebih mudah dipahami dan dipelajari oleh manusia dan digunakan untuk pembuatan program komputer tertentu. Macam bahasa pemrograman sudah kami sebutkan diatas.
Pembuat program atau programmer dewasa ini banyak yang menggunakan bahasa komputer tingkat tinggi untuk membuat program-program yang diinginkan karena sangat mudah dipahami. Namun sebelum bisa dijalankan di komputer, program tersebut haruslah diterjemahkan menjadi bahasa mesin terlebih dahulu. Maka dari itu pada perangkat pembuatan program dengan bahasa tingkat tinggi ada bagian yang bernama compiler. Tugas bagian ini adalah menerjemahkan perintah pada bahasa tingkat tinggi menjadi bahasa mesin, sehingga CPU dapat mengolah data berdasarkan perintah tersebut.
































Langkah-Langkah Pemecahan Masalah

                     Memindah Air
          Ambillah gelas kosong  yang telah diberi label C
          Pindahkan air dari gelas berlabel B kegelas berlabel C
          Pindahkan air dari gelas berlabel A kegelas berlabel B
          Pindahkan air berlabel B pada gelas berlabel C ke gelas beralabel  A
                     Mendapatkan Air Sebanyak 4 liter
          Pada awalnya ember diketahui ember A ber-volume 5 liter dan diketahui ember B    ber-volume 3 liter
          Langkah berikutnya  ember A mengambil air dari danau sabanyak 5 liter
          Air yang berada di ember A di tuangkan ke ember B, berarti ember A berisi 2 liter dan          ember B berisi 3 liter
          Kemudian isi air di ember A di buang semua
          Isi air yang terdapat di ember B di tuangkan ke ember A
          Ember B mengambil air dari danau sebanyak 3 liter
         Isi air di ember B di tuangkanke ember A, sehingga ember A berisi 5 liter dan ember B         berisi 1   liter
          Isi air yang terdapat di ember A di buang semua
          Isi air di ember B di tuangkanke ember A
          Ember B mengambil air daridanausebanyak 3 liter
          Isi air di ember B dituangkanke ember A danhasilnya ember A berisi air 4 liter



                     Keluarga yang mau menyebrang jembatan
          Orang nomer 3 dan nomer 1 menuju sebrang, sedangkan orang nomer 1 kembali ke sisi pertama
          Orang nomer 6 dan nomer 1 menuju sebrang, dan sedangkan orang nomer 3 kembali            ke sisi pertama
          Orang nomer 8 dan nomer 12 menuju sisi sebrang, dan lalu gunakan orang nomer 1 untuk menjemput orang nomer 3
          Orang nomer 1 dan nomer 3 menuju sisi sebrang

                     Kanibal dan Manusia
          KETERANGAN, untuk kanibal adalah K1, K2, dan K3 dan untuk Manusia M1, M2, dan M3 dan tepi pertama sebagai tepi A dan tepi kedua sebagai tepi B
          K1 dan M1 berangkat lebih dulu ke tepi B, dan M1 tinggal di tepi B sedangkan M1 kembali ke tepi A
          M1 turun dari perahu, digantikan oleh K2 dan K3 menuju tepi B, dan K2 tinggal di tepi B sedangkan K3 kembali ke tepi A
          K3 turun dari perahu, digantikan M1 dan M2 menuju tepi B, dan M1 dan M2 tinggal di tepi B sedangkan K1 kembali ke tepi A
          K1 dan K2 naik perahu menuju tepi B, dan K2 tinggal di tepi B sedangkan K1 kembali ke tepi A
          K1 dan K3 naik perahu menuju tepi B, lalu K1 dan K3 sama-sama turun di tepi B




                     Wolf game
          Jangan membawa anjing terlebih dulu, karena kambing akan memakan rumput, dan           jika membawa rumput terlebih dulu, maka anjing akan memakan kambing
        Dari keterangan di atas dapat di simpulkan untuk memecahkan game tersebut adalah dengan membawa kambing lebih dulu, karena anjing tidak memakan rumput
        Setelah itu membawa anjing dan kambing secara bergantian




REFERENSI