Algoritma
Asal kata Algoritma berasal dari nama Abu Ja’far Mohammed Ibn Musa al-Khowarizmi, ilmuan Persia yang menulis kitab al jabr w’al-muqabala (rules of restoration and reduction) sekitar tahun 825 M
• 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)
• Algoritma menghitung luas persegi panjang:
- Masukkan panjang (P)
- Masukkan lebar (L)
- Luas P * L
- Tulis Luas
• Mudah dibaca (tiap langkah jelas uraiannya)
• Mudah ditransformasikan ke dalam Bahasa pemrograman
• Berawal dan harus berakhir dengan hasil yang diinginkan.
• Mudah dibaca (tiap langkah jelas uraiannya)
• Mudah ditransformasikan ke dalam Bahasa pemrograman
• Berawal dan harus berakhir dengan hasil yang diinginkan.
• Problem: mencari bilangan terbesar dari dua bilangan yang diinputkan
• Contoh Algoritma:
- Masukkan bilangan pertama
- Masukkan bilangan kedua
- Jika bilangan pertama > bilangan kedua maka kerjakan langkah
4, jika tidak, kerjakan langkah 5.
- Tampilkan bilangan pertama
- Tampilkan bilangan kedua
• Contoh Pseudo-code:
- Input a
- Input b
- If a > b then kerjakan langkah 4
- print a
- print b
Pseudocode | Notasi dalam C++ | Maksud |
write(x) write(x,y) write(“hormat”) read(a) read(a,b) bil¬x | cout << x; cout<<x<<y; cout<<”hormat”; cin>>a; cin>>a>>b; bil = x; | Nilai x dicetak di piranti keluaran. Nilai x dan nilai y dicetak di piranti keluaran. Teks “hormat” dicetak di piranti keluaran. Masukan nilai a. Masukan nilai a dan nilai b. Isikan nilai x ke dalam bil. |
Pesoudocode Menghitung_IP (Menghitung indeks prestasi) Deklarasi I : integer //I bil. bulat N : integer //N bil. bulat Nilai : real //Nilai bil. desimal Jumlah : real //Jumlah bil. desimal Rerata : real //Rerata bil. desimal Deskripsi read(I) //baca banyaknya data I¬1 //mulai dari data pertama Jumlah¬0 while I £ N do read(Nilai) Jumlah¬Jumlah + Nilai I¬I+1 endwhile //I > N rerata¬Jumlah/N //rata-rata nilai write(rerata) | //Program menghitung nilai IP #include <iostream.h> main() { int I, N; float Nilai, Jumlah, Rerata; cout<<”Masukan jumlah data :”; cin>>N I = 1; Jumlah = 0; while (I £ N) { cout<<”Nilai = ? “; cin>>Nilai; Jumlah += Nilai; I++; } rerata = Jumlah/N; cout<<”Rata-rata = “<<rerata; } |
• Pengulangan while merupakan salah satu perulangan yang berguna untuk memproses suatu pernyataan atau beberapa pernyataan beberapa kali.
• Dilakukan pemeriksaan kondisi terlebih dahulu sebelum dilakukan perulangan. Jika kondisi yang diperiksa bernilai benar (true) maka perulangan akan dilakukan.
• Perulangan akan terus dilakukan sampai kondisi false.
• #include <iostream.h>
• main()
• {
• int x = 0;
• do
• {
• cout<<x<<endl;
• x++;
• }
• while(x<=100);
• return 0;
• }
• Sequence Process: instruksi dikerjakan secara sekuensial, berurutan.
• Selection Process: instruksi dikerjakan jika memenuhi kriteria tertentu
• Iteration Process: instruksi dikerjakan selama memenuhi suatu kondisi tertentu.
• Concurrent Process: beberapa instruksi dikerjakan secara bersama.
• Input: algoritma dapat memiliki nol atau lebih inputan dari luar.
• Output: algoritma harus memiliki minimal satu buah output keluaran.
• Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
• Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).
• Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1
• Struktur Bahasa C++ terdiri dari :
• - Compiler directive (preprocessor)
• - Deklarasi (variabel dan fungsi)
• - Tipe : void, char, int, float, double.
• - Tubuh program (deklarasi variabel,
• pernyataan/ekspresi, operator, fungsi,
• interface).
• - Baris komentar
#include <iostream.h> main() { int x; for(x=0; x<=100; x++) cout<<x<<endl; return 0; } |
#include <iostream.h> main() { int x; for(x=100; x>=0; x--) cout<<x<<endl; return 0; } |
• #include <iostream.h>
• main()
• {
• int bilangan;
• cout<<”Masukan bilangan : “;
• cin>>bilangan;
• if(bilangan >= 0)
• {
• cout<<bilangan;
• cout<<” adalah bil. cacah.\n”;
• }
• return 0;
• }
#include <iostream.h>
• main()
• {
• int Nilai;
• cout<<”Masukan Nilai : “;
• cin>>Nilai;
• if (Nilai > 60)
• cout<<”Lulus”<<endl;
• else
• cout<<”Tidak Lulus”<<endl;
• return 0;
• }
#include <iostream.h>
• main()
• {
• int Nilai;
• cout<<”Masukan Nilai : “;
• cin>>Nilai;
• cout<<”Nilai Anda adalah : “;
• if (Nilai>80)
• cout<<”A”;
• else if (Nilai>70)
• cout<<”B”;
• else if (Nilai>60)
• cout<<”C”;
• else if (Nilai>50)
• cout<<”D”;
• else
• cout<<”E”;
• cout<<endl;
• return 0;
• }
#include <iostream.h>
• main()
• {
• int Nilai;
• cout<<”Masukan Nilai : “;
• cin>>Nilai;
• cout<<”Nilai anda adalah : “;
• if (Nilai > 80)
• if (Nilai > 90)
• cout<<”A+”;
• else
• cout<<”A-“;
• else
• cout<<”bukan Nilai A”;
• cout<<endl;
• return 0;
• }
• #include <iostream.h>
• main()
• {
• int pilih;
• cout<<”Masukan pilihan(1..4): ”;
• cin>>pilih;
• cout<<”Makanan favoritku : “;
• switch(pilih)
• {
• case 1:
• cout<<”Nasi Goreng.”;
• break;
• case 2:
• cout<<”Nasi Uduk.”;
• break;
• case 3:
• cout<<”Nasi Rames.”;
• break;
• case 4:
• cout<<”Nasi Lontong.”;
• break;
• default:
• cout<<”Tidak Ada.”;
• }
• return