PENGERTIAN ALGORITMA A. Definisi Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapat dikerjakan dan mempunyai efek tertentu. Algoritma dapat dituliskan dengan banyak cara, mulai dari menggunkan bahasa alami yang digunakan sehari-hari, simbol grafik bagan alir, sampai menggunakan bahasa pemrograman seperti bahasa Pascal. Dari sumber lain, algoritma diartikan sebagai urutan langkah-langkah logis penyelesaian suatu masalah yang disusun secara sistematis. Kata logis di atas merupakan kata kunci dalam sebuah algoritma. Langkah-langkah di dalam algoritma haruslah logis, ini berarti hasil dari urutan langkah-langkah tersebut harus dapat ditentukan, benar atau salahnya. Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer. Secara garis besar, algoritma adalah urutan langkah-langkah penyelesaian masalah, sedangkan program adalah realisasi algoritma dalam bahasa pemrograman. Program ditulis dalam salah satu bahasa pemrograman, dan kegiatan membuat program disebut pemrograman (programming). Orang yang menulis program disebut pemrogram (programmer). Tiap-tiap langkah di dalam program disebut pemrogram (programmer). Tiaptiap langkah di dalam program disebut pernyataan (statement) atau instruksi. Jadi, program tersusun atas deretan instruksi, bila suatu instruksi dilaksanakan, maka operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan oleh komputer. Komputer secara garis besar tersusun atas empat komponen utama, yaitu piranti masukkan, piranti keluaran, unit pemroses utama (CPU), dan memori. Mekanisme kerja keempat komponen tersebut adalah mula-mula program dimasukkan ke dalam memori komputer, ketika program dilaksanankan (execute), setiap instruksi yang telah tersimpan di dalam komputer dikirim ke CPU, CPU mengerjakan operasi-operasi yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data dibaca di piranti masukkan, disimpan di dalam memori, lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila proses menghasilkan keluaran atau informasi, keluaran disimpan ke dalam memori, lalu memori menuliskan keluaran tasi di piranti keluaran (misalkan dengan mencetaknya ke layar monitor). B. Fungsi Dengan algoritma, kita dapat mengatasi masalah dari yang sederhana sampai yang kompleks sekalipun. Namun, seorang user harus mampu membuat suatu program dengan menggunakan bahasa yang difahami oleh komputer. Sebelum disajikan dalam bentuk bahasa pemrogaman, sebaiknya kitamembuat diagram alir (Flow Chart) dan Pseudocode. Hal ini dimaksudkan agar dapat mempermudah dalam membuat program.Selain itu, algoritma dapat mengatasi masalah logika dan masalahmatematika dengan cara berurutan, tetapi kadang-kadang algoritma tidakselalu berurutan, hal ini dikenal dengan proses percabangan. C. Kriteria Program Algoritma dalam Bidang Komputer Pada dasarnya, komputer adalah mesin digital, artinya komputer hanya bisa mengenal kondisi ada arus listrik (biasanya dilambangkan dengan 1) dan tidak ada arus listrik (biasanya dilambangkan dengan 0). Dengan kata lain, kita harus menggunakan sandi 0 dan 1 untuk melakukan pemrogaman komputer. Bahasa pemrogaman yang menggunakan sandi 0 dan 1 ini disebut bahasa mesin. Karena bahasa mesin sangat susah, maka muncul ide untuk melambangkan untaian sandi 0 dan 1 dengan singkatan kata yang lebih mudah difahami manusia biasa disebut dengan mnemonic code. Bahasa pemrogaman yang menggunakan singkatan kata ini disebut bahasa assembly. Program algoritma harus komplit, nyata, dan jelas. Meskipun tugas algoritma tidak menghasilkan solusi, tetapi proses harus berakhir hal ini disebut dengan semi algorithm (prosedur akan berjalan terus atau biasa disebut dengan perulangan). Intinya kita tidak boleh menambah masalah, akan tetapi kita harus mampu menyelesaikan masalah untuk mendapat hasil yang tepat. D. Pentingnya Algoritma dalam Bahasa Pemrograman Meskipun sewaktu kita menyusun algoritma kita tidak perlu tahu bahasa pemrograman apa yang akan digunakan, namun untuk penulisan algoritma yang lebih efisien dan efektif, maka penggunaan sebagian perintah yang ada di dalam bahasa pemrograman perlu dilakukan juga. Adapun perintah bahasa pemrograman yang paling sering digunakan untuk menyusun algoritma adalah bahasa pemrogrman yang terstrukutur, seperti Pascal, C, SNOBOL, PL/1, dan sebagainya. E. Ciri Penting Algoritma 1. Algoritma harus berhenti setelah menjalankan sejumlah langkah terbatas. 2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguitas). 3. Algoritma memiliki nol atau lebih masukan. 4. Algoritma memiliki nol atau lebih keluaran. 5. Algoritma harus efektif (setiap langkah sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal). F. Notasi Algoritma 1. Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman dan komputer yang mengeksekusinya. Notasi algoritma bukan notasi bahasa pemrograman tetapi dapat diterjemahkan ke dalam berbagai bahasa pemrograman. · 2. Notasi algoritma dapat berupa: Uraian kalimat deskriptif (narasi): Contoh: Algoritma kelulusan mahasiswa Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersenut dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak lulus. Deskripsi: Baca nama dan nilai mahasiswa Jika nilai >= 60 maka Keterangan = lulus Tetapi jika salah Keterangan = tidak lulus Tulis nama dan keterangan. G. Contoh Algoritma: Mengirim surat kepada teman: 1. Tulis surat pada secarik kertas surat 2. Ambil sampul surat 3. Masukkan surat ke dalam sampul 4. Tutup sampul surat dengan perekat 5. Jika kita ingat alamat teman tersebut, maka tulis alamat surat pada sampul 6. Jika tidak ingat, lihat buku alamat, kemudian tulis alamat surat pada sampul 7. Tempel prangko pada sampul 8. Bawa sampul ke kantor pos untuk diposkan Menentukan apakah suatu bilangan merupakan bilangan ganjil atau bilangan genap: 1. Masukkan sebuah bilangan sembarang 2. Bagi bilangan tersebut dengan 2 3. Hitung sisa hasil bagi pada langkah 2 4. Bila sisa hasil sama dengan 0, maka bilangan itu adalah bilangan genap 5. Jika hasil bagi sama dengan 1, maka bilangan itu adalah bilangan ganjil Definisi dan Simbol Flowchart A. PENGERTIAN DASAR FLOWCHART Flowchart adalah bagan-bagan yang mempunyai arus yang menggambarkan langkah-langkah penyelesaian suatu masalah. 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 bahasa pemrograman. Tujuan Membuat Flowchat : • Menggambarkan suatu tahapan penyelesaian masalah • Secara sederhana, terurai, rapi dan jelas • Menggunakan simbol-simbol standar Dalam penulisan Flowchart dikenal dua model, yaitu Sistem Flowchart dan Program Flowchart. - System flowchart: Urutan proses dalam system dengan menunjukkan alat media input, output serta jenis penyimpanan dalam proses pengolahan data. · - Program flowchart: Urutan instruksi yang digambarkan dengan symbol tertentu untuk memecahkan masalah dalam suatu program. Contoh program Flowchart B. SIMBOL – SIMBOL FLOWCHART Simbol-simbol yang di pakai dalam flowchart dibagi menjadi 3 kelompok : 1) Flow direction symbols - Digunakan untuk menghubungkan simbol satu dengan yang lain - Disebut juga connecting line 2) Processing symbols - Menunjukan jenis operasi pengolahan dalam suatu proses / prosedur 3) Input / Output symbols - Menunjukkan jenis peralatan yang digunakan sebagai media input atau output. Tabel Simbol-simbol Flowchart C. 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 peralatan output. END: mengakhiri kegiatan pengolahan Proses Abstraksi & Subcharts RAPTOR dan Prosedur Ketika mengembangkan suatu algoritma yang akan dijalankan oleh komputer, kita menulis langkah-langkah dalam hal apa komputer dapat menyelesaikan. Langkah-langkah ini cenderung petunjuk agak sederhana karena komputer memiliki sejumlah instruksi yang mengerti. Hal ini membuat algoritma komputer yang menyelesaikan tugas-tugas kompleks yang panjang dan rumit. Oleh karena itu mereka dapat menjadi sulit untuk dimengerti, sulit untuk mendapatkan yang benar, dan sulit untuk memodifikasi. Konseptual komputer bisa dilakukan dengan mengelompokkan satu set pernyataan yang menyelesaikan tugas tertentu menjadi "proses" yang memiliki nama yang unik. Kemudian, setiap kali kita perlu bahwa tugas tertentu yang dilakukan, kita "sebut" proses dan konseptual dijalankan sebagai satu langkah dalam algoritma kami. Kita telah melihat hal ini dengan rutinitas di RAPTORGraph. Lingkungan pemrograman RAPTOR menyediakan dua mekanisme untuk mengimplementasikan abstraksi proses: subcharts dan prosedur. Biasanya siswa yang baru untuk pemrograman menemukan subcharts lebih mudah untuk membuat dan memahami. Di sisi lain, prosedur yang "ditingkatkan" subcharts dan programer baru biasanya menemukan prosedur lebih sulit untuk mengerti. Subcharts Untuk membuat subchart, posisi kursor mouse Anda ke tab "main" subchart (yang dilingkari merah pada gambar ke kanan) dan klik dan tahan tombol kanan mouse. Sebuah menu pop-up akan muncul, seperti yang ditunjukkan ke kanan. (Jika Anda RAPTOR "mode" diatur ke "Novice," maka hanya "subchart Tambah" pilihan akan ditampilkan dalam menu pop-up. Jika RAPTOR "mode" diatur ke "Intermediate," Anda juga akan melihat "Tambah prosedur" pilihan) Sorot "subchart Tambah" pilihan dalam menu popup dan lepaskan tombol mouse.. Sebuah kotak dialog baru akan muncul yang meminta nama subchart. Semua subcharts (dan prosedur) harus memiliki nama yang unik. Setiap subchart yang diciptakan akan memiliki "tab" di sebelah kanan tab "main" subchart. Contoh berikut ini menunjukkan sebuah program yang telah dipecah menjadi 4 subcharts: utama, Initialize_screen, Draw_characters, dan Animate. Untuk mengedit subchart kita harus mengklik tab yang terkait. Kita hanya dapat melihat / mengedit satu subchart pada suatu waktu. Prosedur Parameter Ada tiga jenis parameter: - input parameter : nilainya diinisialisasi ketika prosedur ini disebut. - Parameter Output -: nilai akhir yang akan disalin kembali ke variabel dalam program Sub menelepon. - Input / Output parameter : nilainya diinisialisasi ketika prosedur dipanggil dan nilai akhir yang akan disalin kembali ke variabel dalam program sub-menelepon. Kita dapat membuat prosedur yang dapat kita tentukan nama-nama dari setiap parameter dan jenis mereka. Jika kitatidak yakin tentang apa parameter yang kita perlukan, kita dapat mengubah parameter setiap saat dengan mengklik kanan pada tab prosedur dan memilih "Modify prosedur" pilihan.