14
Algoritma & Programming Algoritma & Programming 3 sks (2,1) k 2sks: Teori 1 sks: Lab Session Course material: History Algorithm Flowchart atau aliran proses Flowchart atau aliran proses Programming (C/C++):codeblock,gnu compiler

Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algoritma & ProgrammingAlgoritma & Programming3 sks (2,1)k2 sks: Teori

1 sks: Lab Session

Course material:History 

Algorithm

Flowchart atau aliran prosesFlowchart atau aliran proses

Programming (C/C++):codeblock,gnu compiler

Page 2: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algorithm & Programming • Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibnu Musa al‐

Ja far Mohammed Ibnu Musa alKhowarizmi, ilmuan Persia yang menuliskitab al jabr w’al‐muqabala (rules of restoration and reduction) sekitar tahun 825

History

restoration and reduction) sekitar tahun 825 M

• squares equal roots (ax2 = bx)

• squares equal number (ax2 = c)

t l b (b )• roots equal number (bx = 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)

Arie Budiansyah, email: [email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011 2

Page 3: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algorithm & Programming • Bahasa tingkat rendah (low level language)

bahasa yang berorientasi ke mesin bahasa yang berorientasi ke mesin.

• Bahasa tingkat tinggi (high level language) 

bahasa yang berorientasi ke manusia

Programming Language

(seperti bahasa inggris)

• Interpreter : menterjemahkan baris per baris instruksi. Contoh bahasa Basic.

C il j hk l h• Compiler : menterjamahkan setelahseluruh instruksi ditulis. Contoh bahasaPascal, C, C++, Perl, java, dll.

Arie Budiansyah, email: [email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011 3

Page 4: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algorithm & Programming 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

Definisi Algoritma

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

Page 5: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

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): “Suatu algoritma harusSuatu Algoritma yg terbaik (The Best): Suatu algoritma harusmenghasilkan output yg tepat guna (efektif) dlm waktu yg relatif

singkat & penggunaan memori yg relatif sedikit (efesien) dgn langkahyg berhingga & prosedurnya berakhir baik dlm keadaan diperoleh

suatu solusi ataupun tdk ada solusinya.“suatu solusi ataupun tdk ada solusinya.

Arie Budiansyah, email: [email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011 5

Page 6: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algorithm & Programming• Bagaimana merencanakan algoritma

• Bagaimana menyatakan suatu algoritma (menulisalgoritma)

• Bagaimana validitas suatu algoritma.

Sequence of Algorithm

• 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 diketahuiadalah 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 dapatdisampaikan/diekspresikan menggunakan gaya bahasa pemrograman tertentu.

• Dengan flowchart / diagram alir

• Program Flowchart, yaitu bagan yang menggambar‐kan urutan logika dari suatuprosedur pemecahan masalah.

Arie Budiansyah, email: [email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011 6

Page 7: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algorithm & Programming

Flowchart 1 dari 3Flowchart adalah penggambaran secara grafikdari langkah‐langkah dan urut‐urutanprosedur dari suatu program Flowchartprosedur dari suatu program. Flowchart menolong analis dan programmer untukmemecahkan masalah kedalam segmen‐segmen yang lebih kecil dan menolong dalammenganalisis alternatif‐alternatif lain dalampengoperasian. Flowchart biasanyapengoperasian. Flowchart biasanyamempermudah penyelesaian suatu masalahkhususnya masalah yang perlu dipelajari dandievaluasi lebih lanjut.

Arie Budiansyah, email: [email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011 7

Page 8: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algorithm & Programming

Flowchart 2 dari 3Flowchart adalah penggambaran secara grafikdari langkah‐langkah dan urut‐urutanprosedur dari suatu program Flowchartprosedur dari suatu program. Flowchart menolong analis dan programmer untukmemecahkan masalah kedalam segmen‐segmen yang lebih kecil dan menolong dalammenganalisis alternatif‐alternatif lain dalampengoperasian. Flowchart biasanyapengoperasian. Flowchart biasanyamempermudah penyelesaian suatu masalahkhususnya masalah yang perlu dipelajari dandievaluasi lebih lanjut.

Masukkan nilai jmlBrgd h S t

Masukkan nilai jmlBrg dan hrgSat REPEAT WHILE jmlBrg < 10 dan hrgSat

harga = jmlBrg x hrgSat Cetak nilai harga

REPEAT WHILE jmlBrg < 10 Cetak pesan "Tidak boleh kurangdari 10"Masukkan nilai jmlBrg dan hrgSatEND REPEAT

Arie Budiansyah, email: [email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011 8

END REPEAT

Page 9: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algorithm & Programming

Flowchart 3 dari 3Flowchart adalah penggambaran secara grafikdari langkah‐langkah dan urut‐urutanprosedur dari suatu program Flowchartprosedur dari suatu program. Flowchart menolong analis dan programmer untukmemecahkan masalah kedalam segmen‐segmen yang lebih kecil dan menolong dalammenganalisis alternatif‐alternatif lain dalampengoperasian. Flowchart biasanyapengoperasian. Flowchart biasanyamempermudah penyelesaian suatu masalahkhususnya masalah yang perlu dipelajari dandievaluasi lebih lanjut.

Masukkan nilai jmlBrgd h S t

Masukkan nilai jmlBrg dan hrgSat REPEAT WHILE jmlBrg < 10 dan hrgSat

harga = jmlBrg x hrgSat Cetak nilai harga

REPEAT WHILE jmlBrg < 10 Cetak pesan "Tidak boleh kurangdari 10"Masukkan nilai jmlBrg dan hrgSatEND REPEAT

Arie Budiansyah, email: [email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011 9

END REPEAT

Page 10: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algorithm & Programming

#include <stdio h>

Programming

Menuliskan

#include <stdio.h>

main() {

int jmlhBrg;float hargaSatuan;

algoritma dalambahasa program.

float hargaSatuan;

printf("Masukan Jumlah Barang: ");scanf("%d", &jmlhBrg);

printf("Harga Satuan: ");p ( g );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

Page 11: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algorithm & Programming #include <stdio.h>

main() {

#include <stdio.h>

main() {

int jmlhBrg;

float hargaSatuan;

int jmlhBrg;

float hargaSatuan;

Programming

MenuliskanTidak sesuai Algoritma !!!

jmlhBrg=0;

hargaSatuan=0;

while (jmlhBrg < 10) {

jmlhBrg=0;

hargaSatuan=0;

while (jmlhBrg < 10) {

algoritma dalambahasa program (j g ) {

printf("Jumlah barang tidak boleh kurang dari 10\n");

printf("Masukan Jumlah Barang: ");

scanf("%d", &jmlhBrg);

printf("Harga Satuan: ");

(j g ) {

printf("Jumlah barang tidak boleh kurang dari 10\n");

printf("Masukan Jumlah Barang: ");

scanf("%d", &jmlhBrg);

printf("Harga Satuan: ");printf( Harga Satuan:  );

scanf("%f", &hargaSatuan);

}

printf ("Jumlah Barang: 10 < %d < 100" jmlhBrg);

printf( Harga Satuan:  );

scanf("%f", &hargaSatuan);

}

printf ("Jumlah Barang: 10 < %d < 100" jmlhBrg);printf ( Jumlah Barang: 10 < %d < 100 , jmlhBrg);

return(0);

getchar();

}

printf ( Jumlah Barang: 10 < %d < 100 , jmlhBrg);

return(0);

getchar();

}}}

Arie Budiansyah, email: [email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011 11

Page 12: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algorithm & Programming int main(){int a;char b;

int main(){int a,b;a = 5;

int main(){int a;char b;

int main(){int a,b;a = 5;

;

return 0;}

int main(){int a,b,c;

;b = a + 3;a = a - 3;return 0;}

int main()

;return 0;}

int main(){int a,b,c;

;b = a + 3;a = a - 3;return 0;}

int main()

Programming

Kenali, int a,b,c;return 0;}

int main(){const float pi = 3 14;

int main(){int a;scanf("%d",&a);a = a * 2;printf("The answer is %d",a);return 0;

int a,b,c;return 0;}

int main(){const float pi = 3 14;

int main(){int a;scanf("%d",&a);a = a * 2;printf("The answer is %d",a);return 0;

Kenali, Rasakan, dan

d k !!!const float pi = 3.14;return 0;}

int main(){int a;

}

%d or %i int%c char%f float %lf d bl

const float pi = 3.14;return 0;}

int main(){int a;

}

%d or %i int%c char%f float %lf d bl

Bedakan !!!

h !!!! int a;char b;a = 3;b = 'H';return 0;}

%lf double%s string

int a;char b;a = 3;b = 'H';return 0;}

%lf double%s stringThis is Basic !!!!

*stdio.h, return(0), getchar()

*integer, float, char, string, const

Operator Operation + Addition- Subtraction * Multiplication / Division

Operator Operation + Addition- Subtraction * Multiplication / Division

*if, else, elseif, while, do while, for

*prinf, puts, scanf

*%d, %i, %f, %f.2, %f.5, %c, %s/ Division % Modulus(Remainder of

integer division)

/ Division % Modulus(Remainder of

integer division)

Arie Budiansyah, email: [email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011 12

Page 13: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algorithm & Programming

Referensi

RTFMRead the Fine Manual 

Arie Budiansyah, email: [email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011 13

Page 14: Algoritma & Programming · • Bahasa tingkat tinggi (high level language) bahasa yang berorientasi ke manusia Programming Language (seperti bahasa inggris) • Interpreter : menterjemahkan

Algorithm & Programming

Array

* Mendeklarasian banyak variable yyang sama.

int i1,i2,i3,i4,i5; 

int i[5];int i[5]; 

Code:

Arie Budiansyah, email: [email protected], Informatika ‐ Univ. Syiah Kuala: Oct 2011 14