Nama : Achmad Abdilah Kelas : TF-C NPM : 1234010100 ALGORITMA Sejarah istilah "algoritma" Kata algoritma berasal dari latinisasi nama seorang ahli matematika dari Uzbekistan Al Khawārizmi (hidup sekitar abad ke-9), sebagaimana tercantum pada terjemahan karyanya dalam bahasa latin dari abad ke-12 "Algorithmi de numero Indorum". Pada awalnya kata algorisma adalah istilah yang merujuk kepada aturan-aturan aritmetis untuk menyelesaikan persoalan dengan menggunakan bilangan numerik arab (sebenarnya dari India, seperti tertulis pada judul di atas). Pada abad ke-18, istilah ini berkembang menjadi algoritma, yang mencakup semua prosedur atau urutan langkah yang jelas dan diperlukan untuk menyelesaikan suatu permasalahan. Masalah timbul pada saat akan menuangkan bagaimana proses yang harus dilalui dalam suatu/sebuah sistem (program) bagi komputer sehingga pada saat eksekusinya, komputer dapat bekerja seperti yang diharapkan. Programer komputer akan lebih nyaman menuangkan prosedur komputasinya atau urutan langkah proses dengan terlebih dahulu membuat gambaran (diagram alur) diatas kertas. Konsep dasar algoritma Beberapa metode untuk merancang algoritma dalam program komputer : 1. Diagram Alir (Flow Chart) 2. Kode Semu (Pseudo Code) 3. Algoritma Fundamental Knuth (1973) menyatakan 5 komponen utama dalam algoritma yaitu finiteness, definiteness, input, output dan effectiveness. Komponen yang harus ada dalam merancang algoritma: 1. Komponen masukan : terdiri dari pemilihan variable, jenis variable, tipe variable, konstanta dan parameter (dalam fungsi). 2. Komponen keluaran: merupakan tujuan dari perancangan algoritma dan program. Permasalahan yang diselesaikan dalam algoritma dan program harus ditampilkan dalam komponen keluaran. Karakteristik keluaran yang baik adalah menjawab permasalahan dan tampilan yang ramah 3. Komponen proses : merupakan bagian utama dan terpenting dalam merancang sebuah algoritma. Dalam bagian ini terdapat logika masalah, logika algoritma (sintaksis dan semantik), rumusan, metode (rekursi, perbandingan, penggabungan, pengurangan dll). Struktur Hubungan dan Jenis Algoritma Flowchart : Algoritma ini menggunakan sejumlah simbol untuk menyatakan kegiatan-kegiatan secara keseluruhan. Knuth (1973)menyajikan format algoritma yang dapat digunakan secara bebas untuk berbagai bahasa pemrograman, artinya dapat dengan mudah diimplementasikan menggunakan Pascal, C, Fortran, PL atau BASIC. Diagram alir Contoh penggunaan program flowchart Pseudocode Kode atau tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma. Problem: mencari bilangan terbesar dari dua bilangan yang diinputkan. Contoh Pseudo-code: 1. Masukkan bilangan pertama 2. Masukkan bilangan kedua 3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5. 4. Tampilkan bilangan pertama 5. Tampilkan bilangan kedua Aturan Algoritma Fundamental 1. Nama/judul algoritma harus ditulis dengan huruf kapital 2. Berikan komentar dan penjelasan pendahuluan. 3. Pernyataan dan struktur Kontrol 4. Nama-nama variabel harus ditulis dengan huruf besar 5. Input dan output 6. Prosedur 7. Fungsi Masalah : Mencari elemen terbesar dari data dengan n bilangan. Buatlah algoritma dari masalah ini menggunakan Kode Semu : Algoritma Maksimum 1. Mula-mula masukkan bilangan dalam register xi ke dalam register yang dinamakan maks. 2. Untuk i = 2,3,....,n, lakukan : Bandingkan bilangan dalam register xi dengan bilangan dalam register maks. Jika bilangan dalam register xi lebih besar daripada bilangan dalam register maks, pindahkan bilangan dalam register xi ke register maks; jika tidak jangan lakukan apa-apa. 3. Terakhir, bilangan dalam register maks adalah elemen terbesar di antara n bilangan. FlowChart (Diagram Alir) Algoritma Fundamental Mencari elemen terbesar di dalam data dengan n bilangan. 1. [Inisialisasi] Maks x1 2. [Mulai Loop] I1 3. [Naikkan Pencacah] II+1 4. [Bandingkan] IF Maks < xi THEN Maks xi ELSE GOTO 3 5. [Ulangi Loop] GOTO 3 6. [Selesai] Exit FLOWCHART PENGERTIAN DASAR DAN SIMBOL 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. 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. Simbol magnetik tape Unit Simbol yang menyatakan input berasal dari pita magnetik atau output disimpan ke pita magnetik. Simbol Punch Card Simbol yang menyatakan bahwa input berasal dari kartu atau output ditulis ke kartu Simbol Dokumen Simbol yang menyatakan input berasal dari dokumen dalam bentuk kertas atau output dicetak ke kertas. 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. START READ PROCESS W RITE END 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 kaidahkaidah 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. Operator 1. Operator Numerik 2. Operator Hubungan + Penjumlahan = Sama dengan - Pengurangan # Tidak sama dengan * Perkalian < Lebih kecil / Pembagian > Lebih Besar ^ Pangkat < Lebih kecil sama dengan = sq Akar pangkat dua rt 3. Operator Logika AN D Logika DAN OR Logika ATAU NOT Logika LAWAN > Lebih besar sama dengan = RAPTOR RAPTOR merupakan pemrograman yang berbasis flowchart, RAPTOR dirancang husus untuk membantu memvisualisasikan algoritma yang telah kita buat. Program RAPTOR diciptakan secara visual dan dieksekusi secara visual dengan menelusuri eksekusi melalui flowchart. Biasanya kita lebih suka menggunakan flowchart untuk mengekspresikan algoritma, dan lebih berhasil menciptakan algoritma menggunakan RAPTOR daripada menggunakan bahasa tradisional atau menulis flowchart tanpa RAPTOR. RAPTOR ditulis dalam kombinasi dari bahasa C # dan A # (port dari Ada untuk .NET Framework.) dan hanya didukung pada Windows. RAPTOR telah bereksperimen dengan Mono di Mac OS X dan Ubuntu. Versi Mac tidak berjalan sama sekali, tetapi RAPTOR dapat berjalan pada Ubuntu dengan beberapa fitur yang harus dihilangkan. RAPTOR memiliki beberapa mode, secara default kita memakai mode Novice. Mode Novice memiliki global namespace tunggal untuk setiap variabel. Mode Intermediate digunakan untuk membuat prosedur yang memiliki ruang lingkup mereka sendiri (memperkenalkan gagasan lewat parameter dan mendukung rekursi). Mode baru RAPTOR adalah mode yang berorientasi object, yaitu versi 2009. RAPTOR bebas untuk didistribusikan sebagai layanan kepada masyarakat. RAPTOR pada awalnya dikembangkan oleh dan untuk US Air Force Academy, Departemen Ilmu Komputer, namun penggunaannya telah menyebar dan RAPTOR sekarang digunakan untuk pendidikan di lebih 17 negara pada setidaknya 4 benua. RAPTOR juga di lengkapi dengan proses generate flowchart ke beberapa source code yang sudah banyak di kenal seperti C++, Java, C# dan lain-lain. Sehingga pengguna tidak perlu lagi membangun dari awal sebuah source code, karena dari flowchart yang telah di buat langsung di terjemahkan ke Source Code oleh RAPTOR. Keunggulan dari software RAPTOR Interpreter Flowchart adalah dapat mengeksekusi flowchart yang telah di bangun menjadi sebuah visualisasi yang nyata, sehingga pengguna dapat mengetahui step by step flowchart yang mereka buat melalui eksekusi secara visual dalam tiap langkahnya. Selain itu kelebihan dari Raptor Interpreter Flowchart ini ada pada saat kita membuatflowchart dengan penulisan variabel, RAPTOR di dukung dengan adanya fitur Auto Complete seperti layaknya pada Pemrograman Visual Basic. Sumber : http://ilmuafan.blogspot.com/2011/11/flowchart-raptor_10.html eprints.undip.ac.id/18630/1/pertemuan2.pdf http://www.untukku.com/artikel-untukku/algoritma-flowchart-untukku.html id.wikipedia.org/wiki/Algoritma