INSTRUKSI UTAMA Instruksi Runtunan (Sequential), Instruksi Pemilihan (Selection) dan Instruksi Perulangan (Repetition)
Instruksi Runtunan? merupakan instruksi yang dikerjakan secara beruntun atau berurutan, baris per baris, mulai dari baris pertama hingga baris terakhir, tanpa ada loncatan atau perulangan. Ciri-cirinya : Tiap instruksi dikerjakan sekali, satu per satu. Urutan pelaksanaan instruksi sama dengan urutan penulisan algoritma. Instruksi terkahir merupakan akhir dari algoritma. Urutan penulisan instruksi bisa menjadi penting bila diubah dapat menyebabkan hasil yang berbeda.
Contoh Algoritma Insturksi Runtunan Algoritma Runtunan_1 {menunjukkan urutan yang berbeda memberikan hasil yang berbeda} Definisi Variabel integer A,B; Rincian Langkah A 10; A 2*A; B A; Algoritma ini akan menghasilkan hasil : 20
Algoritma Runtunan 2 {menunjukkan urutan yang berbeda memberi hasil berbeda} Definisi Variabel : integer A,B; Rincian Langkah : A 10; B A; A 2 * A; Dengan urutan yang diubah maka algoritma ini akan memberi hasil : 10
Algoritma Runtunan 3 {algoritma untuk menghitung luas segitiga} Definisi Variabel: real alas, tinggi; real luas; Rincian Langkah: write("masukkan panjang alasnya : "); read(alas); write("masukkan tingginya :"); read(tinggi); luas alas * tinggi / 2; write("luas segitiga = ", luas);
Algoritma Runtunan 4 {Algoritma menampilkan gaji bersih pegawai dengan memasukkan gaji pokok kemudian menghitung tunjangan sebesar 25% dan pajak pph 15%} Definisi Variabel : string nama; real gajipokok, tunjangan, pajak; real gajibersih; Rincian Langkah : write("masukkan nama pegawai : "); read(nama); write("masukkan gaji pokoknya : "); read(gajipokok); tunjangan 0.25 * gajipokok; pajak 0.15 * (gajipokok + tunjangan); gajibersih gajipokok+tunjangan-pajak; {tampilkan output} write("gaji saudara : ",nama); write("adalah = ",gajibersih);
Instruksi Pemilihan 1. Instruksi if / then / else 2. Instruksi switch - case
Instruksi Pemilihan? adalah instruksi yang dipakai untuk memilih satu aksi dari beberapa kemungkinan aksi berdasarkan suatu persyaratan. Ada dua bentuk instruksi pemilihan yang sering digunakan, yaitu if/then/else dan instruksi case.
1. Instruksi if/then/else instruksi if/then/else digunakan untuk memilih alternatif apabila suatu syarat atau kondisi dipenuhi(1 kasus), atau memilih satu alternatif dari dua kemungkinan berdasarkan apakah syarat terpenuhi atau tidak (2 kasus). Bentuk 1 kasus if (syarat) then aksi endif Syarat Y Aksi N Apabila syarat terpenuhi maka aksi dijalankan. Misalnya, pada contoh ini, nilai x akan ditambahkan 5 apabila nilainya lebih besar 100. contoh : if(x > 100) then x x + 5 endif
Bantuk 2 kasus if(syarat) Syarat N Aksi - 2 else then aksi-1; Y aksi-2 Aksi - 1 endif Apabila syarat dipenuhi maka "aksi-1" dilaksanakan, tetapi bila syarat tidak terpenuhi maka "aksi-2" yang dilaksanakan. Misal, pada contoh berikut ini, bila a lebih besar dari 0 maka akan ditampilkan "bilangan ini positif". selan itu akan ditampilkan "bilangan ini negatif". Contoh : if(a > 0) then write ("bilangan ini positif"); else write("bilangan ini negatif"); endif.
Bentuk bersusun (lebih dari satu syarat) if(syarat-1) then aksi-1; elseif(syarat-2) then aksi-2; else aksi-3; endif. Syarat 1 N Syarat 1 Y Y aksi-1 aksi-2 N aksi-3
Contoh Algoritma if/elseif/else Algoritma Pemilihan {contoh algoritma ini menerima 3 bilangan bulat kemudian menetapkan bilangan terbesar} Deinisi Variabel: integer A,B,C,maks; Rincian Langkah : write("masukkan bilangan 1 :"); read(a); write("masukkan bilangan 2 :"); read(b); write("masukkan bilangan 3 :"); read(c); {proses seleksi} if(a>b) then maks A; else maks B; endif {Lanjutan, dari sebelah} if(c > maks) then maks C; endif write("bilangan Maksimum= ", maks);
Code Program Pemilihan #include <iostream.h> #include <conio.h> main(){ int A,B,C,maks; cout<<"masukkan bilangan A : "; cin>>a; cout<<"masukkan bilangan B : "; cin>>b; cout<<"masukkan bilangan C : "; cin>>c; //proses seleksi //proses seleksi if(a>b){ maks=a; } else { maks=b; } if(c>maks){ maks=c; } cout<<"bilangan Maksimal Adalah : "<<maks<<endl; getch(); }
Contoh Algoritma Pemilihan 2 Algoritma Pemilihan_2 {algoritma ini menerima 3 bilangan bulat kemudian menetapkan bilangan yang terbesar, memanfaatkan bentuk bersusun} Definis Variabel: integer A,B,C,maks; Rincian Langkah : write("masukkan bilangan 1 :"); read(a); write("masukkan bilangan 2 : "); read(b); write("masukkan bilangan 3 : "); read(c);
Lanjutan Algoritma Pemilihan 2 if(a > B) then if(a > C) then write("maksimum : ",A); else write("maksimum : ",C); endif else if(b > C) then write("maksimum : ",B); else write("maksimum : ",C); endif endif
Program Algoritma Pemilihan 2 #include <iostream> using namespace std; int main(){ int A,B,C,maks; cout<<"masukkan bilangan 1 : "; cin>>a; cout<<"masukkan bilangan 2 : "; cin>>b; cout<<"masukkan bilangan 3 : "; cin>>c; } if(a > B){ if(a > C){ cout<<"maksimum Adalah A : "<<A; }else{ cout<<"maksimum Adalah C : "<<C; } }else if(b > C){ cout<<"maksimum B = "<<B; }else{ cout<<"maksimum C = "<<C; } return 0;
INSTRUKSI CASE Digunakan sebagai instruksi pemilihan di mana aksi yang akan dilakukan bergantung pada nilai dari satu macam variabel. Bentuk Instruksi Case: case(variabel) nilai-1 : aksi-1; break; nilai-2 : aksi-2; break; nilai-n : aksi-n; break; default : aksi-n; endcase.
Contoh : Gaji karyawan pada sebuah perusahaan didasarkan pada jam kerja dalam satu bulan, serta posisi atau golonganya dalam perusahaan itu. Upah perjam menurut golongan adalah sebagai berikut : Golongan Upah / Jam (Rp.) A 5000 B 6000 C 7500 D 9000 Apabila karyawan bekerja lebih dari 150 jam per minggu, maka kelebihan jam kerja tersebut dihitung sebagai lembur dengan upah/jam 25% diatas upah reguler. Buatlah sebuah algoritma yang menerima nama, golongan, serta jam kerja, kemudian tampilkan gaji totalnya dalam satu bulan.
Algoritma Gaji_Karyawan {algoritma yg menerima nama,golongan,serta jam kerja kemudian menampilkan total gaji yg diterima karyawan} Definisi Variabel: real gaji,total, jamkerja, lembur, upah; string nama; char golongan; Rincian Langkah: write("masukkan nama karyawan : "); read(nama); write("masukkan golongannya : "); read(golongan); write("masukkan jam kerjanya : "); read(jamkerja);
Lanjutan Algoritma Gaji_Karyawan case (golongan) endcase 'A': upah 5000; 'B': upah 6000; 'C': upah 7500; 'D': upah 9000; default : write("golongannya salah!"); if(jamkerja > 150) endif upah 0; then lembur (jamkerja-150)*upah*1.25; gaji 150*upah; else lembur 0; gaji jamkerja * upah;
Lanjutan Algoritma Gaji_Karyawan total gaji + lembur; write("gaji yang akan sdr terima = ",nama, " adalah = Rp. ", total);