DASAR TEORI
- Dasar Teori Tentang Algoritma dan Pemrograman
Dalam menuliskan algoritma, dapat digunakan bahasa natural atau menggunakan notasi matematika, sehingga masih belum dapat dijalankan pada komputer. Dalam kehidupan sehari-hari, kita sudah melakukan penyusunan algoritma untuk menyelesaikan permasalahan atau tantangan yang dihadapi. Sebagai contoh, pada saat diminta untuk membuat telur dadar. Sebelum membuat algoritmanya, kita perlu mendefinisikan masukan (input) dan luaran (output) terlebih dahulu, dimana input berupa telur mentah, dan output berupa telur dadar yang sudah matang.
Susunan algoritmanya sebagai berikut:
- Nyalakan api kompor
- Tuangkan minyak ke dalam wajan
- Pecahkan telur ayam ke dalam mangkok
- Tambahkan garam secukupnya
- Aduk campuran telur dan garam
- Tuang adonan telur ke dalam wajan
- Masak telur hingga matang
Program/Pemrograman adalah formulasi sebuah algoritma dalam bentuk bahasa pemrograman, sehingga siap untuk dijalankan pada mesin komputer. Membuat program seperti memberitahukan apa yang harus dilakukan kepada orang lain. Sebagai contoh, pada saat kita memberitahukan algoritma membuat telur dadar kepada orang lain, kita sudah melakukan pemrograman. Pemrograman membuat telur dadar kepada orang lain akan lebih mudah karena orang tersebut sudah mengetahui apa itu telur dadar. Pada langkah yang ke-3 diminta untuk memecahkan telur, bagaimana cara orang tersebut memecahkan telur tentunya sudah diketahui dan kita tidak perlu menjelaskan terlalu detil. Lain halnya jika kita harus menyuruh komputer untuk melakukan apa yang kita inginkan.
Komputer sebenarnya hanyalah sebuah mesin bodoh yang tidak memiliki emosi dan kemampuan bersosialisasi. Oleh karena itu, untuk membuatnya menjadi mudah, diperlukan penyusunan algoritma yang benar.
- 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
Pada dasarnya untuk bisa menyusun solusi diperlukan kemampuan problem-solving yang baik. Oleh karena itu, sebagai sarana untuk melatih kemampuan tersebut terdapat sebuah tool (alat) yang dapat digunakan, yakni flowchart .
Dengan menggunakan flowchart, tahapan-tahapan penting dalam algoritma dapat ditunjukkan dengan diagram di atas. Aliran proses ditunjukkan dengan arah panah atau disebut dengan ’flowlines’. Keuntungan menggunakan flowchart adalah penggunaan diagram untuk menggambarkan tahapan proses, sehingga lebih mudah dilihat dan dipahami. Namun demikian, flowchart juga memiliki kelemahan, yakni jika digunakan untuk menggambarkan proses atau algoritma untuk skala kasus yang besar, maka akan dibutuhkan banyak kertas.
Simbol-Simbol Flowchart
Contoh flowchart membuat telur dadar :
Pseudocode
Skema lain yang dapat digunakan untuk menyusun algoritma adalah pseudocode. Pseudocode adalah bentuk informal untuk mendeskripsikan algoritma yang mengikuti struktur bahasa pemrograman tertentu.
Tujuan dari penggunaan pseudocodeadalah supaya :
- lebih mudah dibaca oleh manusia
- lebih mudah untuk dipahami
- lebih mudah dalam menuangkan ide/hasil pemikiran
Algoritma yang menjelaskan tentang proses membuat telur dadar, sebenarnya sudah menerapkan penggunaan pseudocode. Sesungguhnya tidak ada suatu standar untuk menyusun algoritma menggunakan pseudocode. Oleh karena pseudocode lebih cocok digunakan untuk menyusun algoritma dengan kasus yang besar dan kompleks, maka sangat dianjurkan kepada programer pemula untuk mulai menggunakan pseudocode dalam menyelesaikan masalah. Berikut adalah contoh pseudocodeyang dibandingkan dengan bahasa pemrograman C++
- Bahasa Pemrograman
Struktur bahasa ini memiliki kemiripan dengan bahasa natural manusia, karena juga tersusun dari elemen-elemen dasar seperti: kata benda dan kata kerja serta mengikuti aturan untuk menyusunnya menjadi kalimat.
Klasifikasi Menurut Generasi :
- First Generation Language (1GL)
- Second Generation Language (2GL)
- Generasi ketiga
- Generasi keempat
mudah sekali didapati error. Pada 4GL, telah menggunakan metodologi dimana sebuah perintah
dapat menghasilkan beberapa instruksi 3GL yang kompleks dengan sedikit error.
Contoh bahasa:
- Pemrograman umum : DataFlex, WinDev, PowerBuilder
- Basis data : SQL, Progress 4GL
- Manipulasi data, analisis dan pelaporan : ABAP, Matlab, PL/SQL.
- Generasi kelima
Bahasa pemrograman ini digunakan untuk membangun sistem kecerdasan buatan dan belum digunakan secara meluas di dunia industri. Contoh bahasa: Prolog, LISP, Mercury.
- Langkah – Langkah Pemecahan Masalah
- Ambil gelas lagi, anggap saja namanya Gelas “C”
- Tuangkan isi gelas “A” ke gelas “C”
- Tuangkan isi gelas “B” ke gelas “A”
- Terakhir, tuangkan isi gelas “C” ke gelas “A”
- Ambil air dengan guci yang berukuran 5L
- Isikan air tersebut kedalam guci yang berukuran 7L
- Ambil air lagi menggunakan guci yang berukuran 5L
- Isikan kembali air tersebut kedalam guci yang berukuran 7L
- Buang semua isi guci yang berukuran 7L
- Tuangkan sisa air yang ada di dalam guci berukuran 5L kedalam guci yang berukuran 7L
- Ambil air lagi menggunakan guci yang berukuran 5L
- Isikan lagi air tersebut kedalam guci yang berukuran 7L
- Buang semua air yang ada di guci 7L
- Tuangkan sisa air dari guci berukuran 5L kedalam guci berukuran 7L
- Ambil lagi air menggunakan guci berukuran 5L
- Terakhir, tuangkan air dari guci 5L ke dalam guci 7L.
- Seberangkan orang no 1 dan 2
- Orang no 1 kembali lagi
- Seberangkan orang no 4 dan 5
- Orang no 2 kembali lagi
- Seberangkan orang no 1 dan 3
- Orang no 1 kembali lagi
- Terakhir, seberangkan orang no 1 dan 3
- Naikkan 2 orang kanibal kedalam kapal
- Seberangkan 2 orang kanibal tersebut
- 1 orang kanibal kembali lagi menjemput kanibal yang lain
- Seberangkan lagi 2 kanibal tersebut
- 1 kanibal kembali lagi
- Naikkan 2 orang misionari kedalam kapal
- Seberangkan misionari tersebut
- 1 misionari kembali lagi dengan 1 kanibal
- Naikkan 1 misonari lagi kedalam kapal
- Seberangkan 2 misonari tersebut
- Turunkan kedua misionari tersebut
- Naikkan 1 kanibal yang ada di seberang kedalam kapal
- Seberangkan kanibal tersebut untuk menjemput temannya
- Naikkan 1 kanibal kedalam kapal
- Seberangkan kanibal tersebut
- Turunkan 1 kanibal, satunya kembali lagi untuk menjemput temannya
- Naikkan kanibal terakhir kedalam kapal
- Seberangkan kanibal-kanibal tersebut
- Terakhir, turunkan dua-duanya.
- Naikkan kambing ke dalam kapal
- Seberangkan kapal
- Turunkan kambing tersebut
- Petani kembali lagi
- Naikkan kubis kedalam kapal
- Sebrangkan kapal
- Turunkan kubis
- Naikkan kambing
- Petani kembali lagi dengan kambing
- Turunkan kambing
- Naikkan anjing ke dalam kapal
- Sebrangkan kapal
- Turunkan anjing tersebut
- Petani kembali lagi
- Naikkan kambing ke dalam kapal
- Seberangkan kapal
- Terakhir, Tutunkan kambing dari kapal
0 komentar:
Posting Komentar