Algoritma & Programming 3 sks (2,1) 2 sks: Teori 1 sks: Lab Session Course material: History Algorithm Flowchart atau aliran proses Programming (C/C++):codeblock,gnu compiler
Asal kata Algoritma berasal dari nama Abu Ja far Mohammed IbnuMusaal al History Khowarizmi, ilmuan Persia yang menulis kitab al jabr w al muqabala (rules of restoration and reduction) sekitar tahun 825 M squares equal roots (ax 2 = bx) squares equal number (ax 2 = c) roots equal number (bx = c) ) squares and roots equal number (ax 2 + bx = c) squares and number equal roots (ax 2 + c = bx) roots and number equal squares (bx + c = ax 2 ) Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 2
Bahasa tingkat rendah (low level language) bahasa yang berorientasi ke mesin. Programming Language Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia (seperti bahasa inggris) Interpreter : menterjemahkan baris per baris instruksi. Contoh bahasa Basic. Compiler : menterjamahkan setelah lh seluruh instruksi ditulis. Contoh bahasa Pascal, C, C++, Perl, java, dll. Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 3
Definisi Algoritma Urutan langkah langkah untuk memecahkan masalah 1. Urutan logis pengambilan keputusan untuk memecahkan masalah Urutan langkah logis, berarti algoritma harus mengikuti suatu urutan tertentu, tidak boleh melompat lompat. 2. Alur pemikiran dalam menyelesaikan suatu pekerjaan yang dituangkan secara tertulis. alur pikiran, yang artinya algoritma seseorang dapat berbeda dari algoritma orang lain. tertulis, yang artinya dapat berupa kalimat, gambar, atau tabel tertentu. 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. Algoritma di butuhkan untuk memerintah komputer mengambil langkah langkah tertentu untuk menyelesaikan masalah Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 4
Step for Solution Kriteria Pemilihan Algoritma Ada Output Efektifitas dan Efisiensi Jumlah Langkahnya Berhingga Berakhir Terstruktur Suatu Algoritma yg terbaik (The Best): Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm waktu yg relatif singkat & penggunaan memori yg relatif sedikit (efesien) dgn langkah yg berhingga & prosedurnya berakhir baik dlm keadaan diperoleh suatu solusi ataupun tdk ada solusinya. Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 5
Bagaimana merencanakan algoritma Sequence of Algorithm Bagaimana menyatakan suatu algoritma (menulis algoritma) Bagaimana validitas suatu algoritma. Bagaimana Menganalisa suatu Algoritma. Bagaimana Menguji Program dari suatu Algoritma Ad.1. Bagaimana merencanakan algoritma Dengan Mendefinisikan masalah. Contoh : Permasalahan menghitung luas lingkaran, dengan data yang diketahui adalah diameter lingkaran. Rumus :. r2 dengan Phi = 3.14 atau 22/7. Ad.2. Bagaimana menyatakan suatu algoritma (menulis algoritma) Dengan psudocode Suatu cara penulisan algoritma agar ide dan logika dari algoritma dapat disampaikan/diekspresikan menggunakan gaya bahasa pemrograman tertentu. Dengan flowchart / diagram alir Program Flowchart, yaitu bagan yang menggambar kan urutan logika dari suatu prosedur pemecahan masalah. Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 6
Flowchart 1 dari 3 Flowchart adalah penggambaran secara grafik dari langkah langkah dan urut urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmensegmen yang lebih kecil dan menolong dalam menganalisis alternatif alternatif lain dalam pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut. Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 7
Flowchart 2 dari 3 Flowchart adalah penggambaran secara grafik dari langkah langkah dan urut urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmensegmen yang lebih kecil dan menolong dalam menganalisis alternatif alternatif lain dalam pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut. Masukkan nilai jmlbrg dan hrgsat REPEAT WHILE jmlbrg < 10 Cetak pesan "Tidak boleh kurang dari 10" Masukkan nilai jmlbrg dan hrgsat END REPEAT Masukkan nilai jmlbrg dan hrgsat harga = jmlbrg x hrgsat Cetak nilai harga Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 8
Flowchart 3 dari 3 Flowchart adalah penggambaran secara grafik dari langkah langkah dan urut urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmensegmen yang lebih kecil dan menolong dalam menganalisis alternatif alternatif lain dalam pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut. Masukkan nilai jmlbrg dan hrgsat REPEAT WHILE jmlbrg < 10 Cetak pesan "Tidak boleh kurang dari 10" Masukkan nilai jmlbrg dan hrgsat END REPEAT Masukkan nilai jmlbrg dan hrgsat harga = jmlbrg x hrgsat Cetak nilai harga Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 9
Programming Menuliskan algoritma dalam bahasa program. #include <stdio.h> main() { int jmlhbrg; float hargasatuan; printf("masukan Jumlah Barang: "); scanf("%d", &jmlhbrg); printf("harga Satuan: "); scanf("%f", &hargasatuan); while (jmlhbrg < 10) { printf("jumlah barang tidak boleh kurang dari 10\n"); printf("masukan Jumlah Barang: "); scanf("%d", &jmlhbrg); printf("harga Satuan: "); scanf("%f", &hargasatuan); printf ("Jumlah Barang: 10 < %d < 100", jmlhbrg); return(0); getchar(); Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 10
Programming Menuliskan algoritma dalam #include <stdio.h> main() { int jmlhbrg; float hargasatuan; jmlhbrg=0; hargasatuan=0; Tidak sesuai Algoritma!!! bahasa program (j g ) { while (jmlhbrg < 10) { printf("jumlah barang tidak boleh kurang dari 10\n"); printf("masukan Jumlah Barang: "); scanf("%d", &jmlhbrg); printf("harga Satuan: "); scanf("%f", &hargasatuan); printf ("Jumlah Barang: 10 < %d < 100", jmlhbrg); return(0); getchar(); Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 11
Programming Kenali, Rasakan, dan Bedakan dk!!! This is Basic!!!! *stdio.h, return(0), getchar() *integer, float, char, string, const *if, else, elseif, while, do while, for *prinf, puts, scanf *%d, %i, %f, %f.2, %f.5, %c, %s int main() { int a; char b; return 0; int main() { int a,b,c; return 0; int main() { const float pi = 3.14; return 0; int main() { int a; char b; a = 3; b = 'H'; return 0; Operator Operation + Addition - Subtraction * Multiplication / Division % Modulus(Remainder of integer division) int main() { int a,b; a = 5; b = a + 3; a = a - 3; return 0; int main() { int a; scanf("%d",&a); a = a * 2; printf("the answer is %d",a); return 0; %d or %i int %c char %f float %lf double %s string Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 12
Referensi RTFM Read the Fine Manual Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 13
Array * Mendeklarasian banyak variable yang sama. int i1,i2,i3,i4,i5; Code: int i[5]; Arie Budiansyah, email: airbud18@gmail.com, Informatika Univ. Syiah Kuala: Oct 2011 14