Algoritma & Programming & Programming 3 sks (2,1) 2 sks: Teori k 1 sks: Lab Session
Course material: History Algorithm Flowchart Flowchart atau atau aliran proses Programming (C/C++):codeblock,gnu compiler
Algorithm & Programming
•
Asal kata Algoritma berasal dari nama Abu Ja’far Ja far Mohammed Ibnu Mohammed Ibnu Musa al Musa al‐ Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al‐muqabala (rules of restoration and reduction) sekitar restoration and reduction) sekitar tahun 825 825 M
• • • • • •
squares equal roots (ax2 = bx) squares equal number (ax2 = c) roots equal number (bx t l b (b = c)) squares and roots equal number (ax2 + bx = c) squares and number equal roots (ax2 + c = bx) roots and number equal squares (bx + c = ax2)
History
Arie Budiansyah, email:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
2
Algorithm & Programming
Programming Language
• •
• •
Bahasa tingkat rendah (low level language) bahasa yang berorientasi yang berorientasi ke mesin. mesin Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia (seperti bahasa inggris)
Interpreter : menterjemahkan baris per baris instruksi. Contoh bahasa Basic. C Compiler : menterjamahkan il j hk setelah l h seluruh instruksi ditulis. Contoh bahasa Pascal, C, C++, Perl, java, dll.
Arie Budiansyah, email:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
3
Algorithm & Programming
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 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, 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:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
4
Algorithm & Programming
Step for Solution
• • • • • •
Kriteria Pemilihan Algoritma Ada Output Efektifitas dan Efisiensi Jumlah Langkahnya Berhingga B khi Berakhir Terstruktur Suatu Algoritma yg terbaik (The Best): (The Best): “Suatu 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. solusinya.“
Arie Budiansyah, email:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
5
Algorithm & Programming
Sequence of Algorithm
• • • • • • • • • • • • • •
Bagaimana merencanakan algoritma 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:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
6
Algorithm & Programming
Flowchart 1 dari 3 Flowchart adalah penggambaran secara grafik dari langkah‐langkah dan urut‐urutan prosedur dari suatu program. Flowchart program Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen‐ segmen yang lebih kecil dan menolong dalam menganalisis alternatif‐alternatif lain dalam pengoperasian. Flowchart biasanya pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.
Arie Budiansyah, email:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
7
Algorithm & Programming
Flowchart 2 dari 3 Flowchart adalah penggambaran secara grafik dari langkah‐langkah dan urut‐urutan prosedur dari suatu program. Flowchart program Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen‐ segmen yang lebih kecil dan menolong dalam menganalisis alternatif‐alternatif lain dalam pengoperasian. Flowchart biasanya pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.
Masukkan nilai jmlBrg dan hrgSat REPEAT WHILE jmlBrg REPEAT WHILE jmlBrg < 10 < 10 Cetak pesan "Tidak boleh kurang dari 10" Masukkan nilai jmlBrg dan hrgSat END REPEAT END REPEAT
Arie Budiansyah, email:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
Masukkan nilai jmlBrg d hrgSat dan h S t harga = jmlBrg x hrgSat Cetak nilai harga
8
Algorithm & Programming
Flowchart 3 dari 3 Flowchart adalah penggambaran secara grafik dari langkah‐langkah dan urut‐urutan prosedur dari suatu program. Flowchart program Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen‐ segmen yang lebih kecil dan menolong dalam menganalisis alternatif‐alternatif lain dalam pengoperasian. Flowchart biasanya pengoperasian. Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.
Masukkan nilai jmlBrg dan hrgSat REPEAT WHILE jmlBrg REPEAT WHILE jmlBrg < 10 < 10 Cetak pesan "Tidak boleh kurang dari 10" Masukkan nilai jmlBrg dan hrgSat END REPEAT END REPEAT
Arie Budiansyah, email:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
Masukkan nilai jmlBrg d hrgSat dan h S t harga = jmlBrg x hrgSat Cetak nilai harga
9
Algorithm & Programming
Programming
#include <stdio.h> <stdio h>
Menuliskan algoritma dalam bahasa program.
int jmlhBrg; float hargaSatuan;
main() {
printf("Masukan Jumlah Barang: "); scanf("%d", &jmlhBrg); p printf("Harga ( g 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:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
10
Algorithm & Programming
Programming Menuliskan algoritma dalam bahasa program
#include <stdio.h> main() { int jmlhBrg; float hargaSatuan;
Tidak sesuai Algoritma !!!
jmlhBrg=0; hargaSatuan=0; while (jmlhBrg < 10) { (j g ){ printf("Jumlah barang tidak boleh kurang dari 10\n"); printf("Masukan Jumlah Barang: "); scanf("%d", &jmlhBrg); printf("Harga printf( Harga Satuan: Satuan: "); ); scanf("%f", &hargaSatuan); } printf ("Jumlah Barang: 10 < %d < 100", jmlhBrg); jmlhBrg); printf ( Jumlah Barang: 10 < %d < 100 return(0); getchar(); }
Arie Budiansyah, email:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
11
Algorithm & Programming
Programming
Kenali, Kenali, Rasakan, dan Bedakan d k !!! This is Basic !!!! h !!!! *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() { 3 14; const float pi = 3.14; return 0; } int main() { int a; char b; a = 3; b = 'H'; return 0; } Operator + * / % integer
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 d bl %s string
Operation Addition Subtraction Multiplication Division Modulus(Remainder of division)
Arie Budiansyah, email:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
12
Algorithm & Programming
Referensi
RTFM Read the Fine Manual
Arie Budiansyah, email:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
13
Algorithm & Programming
Array * Mendeklarasian banyak y variable yang sama. int i1,i2,i3,i4,i5;
int i[5]; i[5]; Code:
Arie Budiansyah, email:
[email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011
14