Algoritma dan Pemrograman 1.pengertian Istilah Algoritma saat ini lebih sering dikaitkan dengan pemrograman komputer sehingga dikenal dengan istilah Algoritma Pemrogaman, untuk menunjukan kekhususan konteks. Dalam konteks ini algoritma pemrograman merupakan kerangka dari program komputer. Sebenarnya tidak adak definisi algoritma yang baku. Namun untuk mudahnya secara sederhana algoritma dalam kaitannya dengan pemrograman dapat kita definisikan sebagai “ Urutan langkah berhingga untuk menyelesaikan masalah matematika dan logika’. Dengan pengertian itu kita dapat menyimpulkan bahwa: 1. Algoritma adalah kumpulan langkah, artinya algoritma merupakan proses di dalam penyelesaian masalah. 2.Langkah-langkah dalam algoritma berhingga banyaknya, artinya langkah-langkah tersebut memiliki akhir. Algoritma tanpa akhir, bukanlah termasuk algoritma karena tidak memberikan solusi apapun. 3.Digunakan untuk menyelesaikan masalah matematika dan logika, artinya tidak semua masalah dapat diselesaikan dalam algoritma pemrograman. Algoritma ini hanya bisa digunakan untuk menyelesaikan suatu masalah jika msalah tersebut dapat diterjemahkan ke dalam bahasa logika dan matematika, karena pemrograman komputer pada dasarnya adalah persoalan logika dan matematika. Definisi Algoritma - Algoritma adalah urutan langkah logis tertentu untuk memecahkan suatu masalah. Yang ditekankan adalah urutan langkah logis, yang berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat-lompat. (Dari Microsoft Press Computer and Internet Dictionaary 1997, 1998) - Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. Yang ditekankan pertama adalah alur pikiran, sehingga algoritma seseorang dapat juga berbeda dari algoritma orang lain. Sedangkan penekanan kedua adalah tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. (Dari Algoritma dan Struktur Data dengan C, C++, dan Java oleh Moh Sjukani hal 1) Contoh Algoritma dalam kehidupan nyata: - Jika seorang ingin memasak atau membuat kue, baik itu melihat resep ataupun tidak pasti akan melakukan suatu langkah-langkah tertentu sehingga masakannya atau kuenya jadi. - Jika seseorang ingin mengirim surat kepada kenalannya di tempat lain,langkah yang harus dilakukan adalah: �� Menulis surat �� Surat dimasukkan ke dalam amplop tertutup �� Amplop ditempeli perangko secukupnya. �� Pergi ke Kantor Pos terdekat untuk mengirimkannya. Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat dan tidak efisien. Pelaksana algoritma adalah Komputer. Manusia dan komputer berkomunikasi dengan cara: manusia memberikan perintah-perintah kepada komputer berupa instruksi-instruksi yang disebut program. Alat yang digunakan untuk membuat program tersebut adalah bahasa pemrograman. Bahasa pemrograman sangat bermacam-macam: C, C++, Pascal, Java, C#, Basic, Perl, PHP, ASP, JSP, J#, J++ dan masih banyak bahasa lainnya. Dari berbagai bahasa pemrograman cara memberikan instruksinya berbeda-beda namun bertujuan menghasilkan output yang sama. Beda Algoritma dan Program Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa : Program = Algoritma + Bahasa (Struktur Data) Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya. Pembuatan algoritma mempunyai banyak keuntungan di antaranya : Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama. Beberapa hal yang perlu diperhatikan dalam membuat algoritma : Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya. Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman. Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu : a. Pendeklarasian variabel Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman apabila tidak semua bahasa pemrograman membutuhkannya. b. Pemilihan tipe data Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data. c. Pemakaian instruksi-instruksi Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda. d. Aturan sintaksis Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan. e. Tampilan hasil Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi program. f. Cara pengoperasian compiler atau interpreter. Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter. 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. 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 RAPTOR merupakan pemrograman yang berbasis flowchart, RAPTOR dirancang khusus 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 menggunakanflowchart 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. ModeIntermediate digunakan untuk membuat prosedur yang memiliki ruang lingkup mereka sendiri (memperkenalkan gagasan lewat parameter dan mendukung rekursi). Mode baruRAPTOR 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 danRAPTORsekarang 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 dariflowchart yang telah di buat langsung di terjemahkan ke Source Code olehRAPTOR. 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 membuat flowchartdengan penulisan variabel, RAPTOR di dukung dengan adanya fitur Auto Complete seperti layaknya pada Pemrograman Visual Basic. Gambar diatas merupakan interface dari RAPTOR. Disebelah kiri merupakan simbol-simbol yang dapat kita gunakan untuk membuat sebuahflowchart. Berikut adalah fungsi dari symbol-simbol diatas : Purpose Symbol Name INPUT input statement PROCESSING assignment statement Description Allow the user to enter data. Each data value is stored in a variable. Change the value of a variableusing some type of mathematical calculation. Execute a group of instructions defined in the PROCESSING procedure call OUTPUT output statement named procedure. In some cases some of the procedure arguments (i.e., variables) will be changed by the procedure's instructions. Display (or save to a file) the value of avariable. Operator dan Fungsi Operator atau fungsi memerintahkan komputer untuk melakukan beberapa perhitungan pada data. Operator ditempatkan antara data yang dioperasikan (yaitu X / 3, Y +7, dll) sedangkan fungsi menggunakan tanda kurung untuk menunjukkan data tersebut beroperasi pada (yaitu sqrt (4.7), sin (2,9)). Ketika dieksekusi, operator dan fungsi melakukan perhitungan dan mengembalikan hasil. RAPTOR memiliki operator dan fungsi sebagai berikut : basic math : +, -, *, /, ^, **, rem, mod, sqrt, log, abs, ceiling, floor. trigonometry : sin, cos, tan, cot, arcsin, arcos, arctan, arccot. relational : =, !=, /=, <, >, >=, <=. logical : and, or, not. miscellaneous : random, Length_of. Operator matematika dasar dan fungsi yang termasuk biasa (+, -, *, /) serta beberapa yang tidak biasa. "**" dan "^" adalah exponentiation, seperti 2 ** 4 adalah 16, 3 ^ 2 adalah 9. rem (remainder) dan mod (modulus) mengembalikan sisa (apa yang tersisa) ketika operan kanan membagi operan kiri, contoh : 10 rem 3 adalah 1, 10 mod 3 adalah 1 juga. sqrt mengembalikan akar kuadrat, contoh : sqrt (4) adalah 2. log mengembalikan logaritma natural, contoh : log (e) adalah 1. abs mengembalikan nilai absolut, contoh : abs (-9) adalah 9. ceiling pada seluruh nomor, contoh : ceiling (3,14159) adalah 4. floor pada seluruh nomor, contoh : floor (10/3) adalah 3. "+" juga bekerja sebagai operasi concatenation untuk menggabungkan dua string atau string dan angka, contoh : "rata-rata adalah" + (Jumlah / Angka). length_of mengembalikan jumlah karakter dalam sebuah variabel string (juga jumlah elemen dengan sebuah array), contoh : Nama ← "Stuff" diikuti dengan Length_Of (Nama) adalah 5. Kita terbiasa dengan fungsi trigonometri (sin, cos, tan, cot, arcsin, arcos, arctan, arccot). Mereka bekerja pada berbagai unit yang bernilai radian. (kita harus mengkonversi dari derajat ke radian sebelum menggunakan fungsi tersebut.). arctan dan arccot adalah versi kedua parameter fungsi ini. (yaitu arctan (X / Y) ditulis dalam RAPTOR sebagai arctan (X, Y)). Dalam RAPTOR, operator relasional dan operator logika hanya dapat digunakan dalam pengambilan keputusan sebagai bagian dari statement Selection dan Loop. Operator relasional adalah != = (tidak sama dengan), / = (tidak sama dengan), <,>,> = dan <=. Operator relasional mengembalikan nilai "Boolean" dalam "True"atau "False" (ya atau tidak). Sebagai contoh, operasi X < Y akan mengembalikanTRUE jika nilai yang tersimpan dalam variabel X kurang dari nilai yang disimpan dalam variabel Y. Jika tidak nilai FALSE dikembalikan. Hasil dari operasi relasional dapat digunakan oleh operator logika. Operator logika didefinisikan oleh tabel berikut. Operan yang digunakan oleh operator logika harus bernilai"Boolean" (artinya nilai-nilai yang dikembalikan oleh operator relasional atau operator logis). Fungsi secara acak mengembalikan angka antara 0 dan 1, contoh : X ← secara acak bisa menjadi 0, 0,23, 0,46578, dll. Jika kita memerlukan nomor acak dalam kisaran yang berbeda maka kita bisa menggabungkan fungsi acak dengan operasi lain. Misalnya, random * 100 akan mengevaluasi ke angka antara 0 dan 100. ceiling (random * 100) akan mengevaluasi ke seluruh nomor antara 1 dan 100. Untuk yang mau download programnya, silahkan langsung cek ke web nya langsung (file kecil ko cm skitar brp MB aja ).