STRUKTUR DASAR ALGORITMA DAN PEMROGRAMAN STMIK AMIKOM YOGYAKARTA Khusnawi, S.Kom , M.Eng 2010 RePetiTion Structure(pErulanGan) Pendahuluan Saat membuat suatu program setiap instruksi bisa dimulai dari yang pertama sampai dengan instruksi terakhir, kemudian setiap instruksi yang dikerjakan juga membutuhkan suatu pilihan berdasarkan kondisi syarat tertentu dan juga instruksi yang bersifat mengulang sesuai dengan kondisi yang di definisikan. Struktur perulangan digunakan untuk mengulang sekumpulan perintah sesuai dengan kondisi yang diberikan. Proses perulangan biasanya digunakan untuk mengulang proses pemasukan data, mengulang proses perhitungan dan mengulang untuk proses penampilan hasil pengolahan data. StrUktUr Perulangan: • Secara Umum Struktur Perulangan dibagi Menjadi 4 bagian: • Kondisi perulangan, yaitu suatu ekspresi boolean yang harus dipenuhi untuk melakukan proses perulangan. • Badan perulangan, yaitu satu atau lebih instruksi yang akan di ulang. • Inisialisasi, yaitu aksi yang dilakukan sebelum perulangan dilakukan pertama kali.(nilai awal utk melakukan perulangan) • Terminasi, yaitu aksi yang mengakibatkan perulangan dihentikan. TeKnik Counter: • Teknik counter dipakai untuk mengontrol pengulangan proses. • Pengontrolan dilakukan dengan memeriksa isi variable yang digunakan sebagai counter, sehingga jumlah pengulangan dapat diketahui. • Contoh:Algoritma proses perhitungan deret penjumlahan 1+2+3+4+5 Mulai Ketika kita membuat suatu variable yang fungsinya khusus sebagai kantong penghitung, biasanya harga awal dari variable tersebut nol. Setiap kali pemutaran harga variable selalu bertambah atau berkurang, variabel yang menunjukan nilai counter adalah variabel N. N=0 T=0 N= N + 1 T=T+N T N=5 F ?T Selasai Instruksi/Notasi Algoritmik Saat Melakukan proses perulangan seperti halnya struktur selection membutuhkan instruksi atau notasi Algoritmik untuk memproses. Instruksi untuk setiap bahasa pemrograman pada prinsipnya sama yaitu melakukan proses perulangan sesuai dengan kondisi yang ditentukan. Perbedaannya adalah tergantung dari struktur program (syntax) dan perintahnya. Instruksi/Notasi Algoritmik C/C++ INSTRUKSI FOR DO - WHILE WHILE INSTRUKSI FOR Digunakan untuk menghasilkan pengulangan sejumlah kali yang dispesifikasikan. Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi. STRUCTURE: for (inisialisasi; kondisi; counter) pernyataan; Ket: Inisialisasi: akan dieksekusi, variable yang akan dipakai sebagai counter atau pencacah. Kondisi: akan diperiksa, jika bernilai true maka perulangan akan dilanjutkan dan jika bernilai false maka perulangan akan dilewati. Pernyataan: akan dieksekusi, terdiri dari sebuah instruksi atau blok instruksi yang berada di antara { dan }. Contoh Algortima mencetak sebanyak 5 kali suatu kalimat C++ dan Pascal : for( n=1; n<=5;n++) Output(‘C++ dan Pascal’); Statement (‘C++ dan Pascal’) akan diulang sebanyak 5 kali, yaitu dengan penghitung I dari nilai awal 1 sampai dengan nilai akhir 5 Contoh Flowchart Contoh Lainya: Algoritma untuk menentukan nilai Faktorial berdasarkan N masukan: Deklarasi: N, k, Faktorial:Integer; Deskripsi (Urutan Algoritma): 1. Input (n) 2. Faktorial1 // Inisialisasi 3. IF n=0 THEN Faktorial 1 ELSE FOR k 1 TO n // for (k=1 ; k<=n; k++) Faktorial Faktorial *k EndFor ENDIF 4. Output (Faktorial) Contoh Implementasi C/C++: #include <iostream.h> #include <conio.h> int main() { int k, n, faktorial; faktorial=1; cout << " Inputkan nilai Ke N:"; cin >> n; if (n==0) faktorial=1; else { for(k=1;k<=n;k++) faktorial= faktorial * k; } cout << " Faktorial dari "<< n <<"! adalah : "<< faktorial; getch(); return 0; } INSTRUKSI WHILE Pernyataan while adalah pernyataan yang berguna untuk memproses suatu pernyataan atau pernyataan beberapa kali. Pernyataan atau aksi akan di ulang jika kondisi bernilai benar dan jika salah maka keuar dari blok perulangan (loop) Struktur C/C++: <Inisialisasi> while (kondisi) { Pernyataan ; } Contoh 01: Algoritma Cetak_Angka {mencetak 1, 2, .., 10 ke piranti keluaran } Deklarasi : K: integer Deskripsi : 1. K 1 {inisialisasi} 2. while (k <= 10) output (k) 3. k k + 1 4. endwhile Contoh 02: Algoritma Mengitung rata-rata N buah bilangan bulat yang dibaca dari piranti masukan DEKLARASI : N, X, K, jumlah, rerata: integer DESKRIPSI ALGORTIMA : read (N) Jumlah 0 K 1 ----> inisialisasi while (k <= N) -----> kondisi input (x) jumlah jumlah + x kk+1 endwhile rerata jumlah/N write (rerata) Body looping Contoh Implementasi C/C++: #include <iostream.h> #include <conio.h> int main() { int n,x,k,jumlah; double rerata; cout << " Masukan jumlah data sebanyak N = "; cin >> n; k=1; jumlah=0; while( k<= n) { cout << " inputkan data bilangan bulat ke - "<< k<<"="; cin >> x; jumlah=jumlah + x; k=k+1; } rerata=(jumlah / n); cout << " rata rata bilangan yang dihasilkan:"<< rerata; getch(); return 0; } INSTRUKSI DO - WHILE <inisialisasi> do { pernyatan ; } while(kondisi); Perulangan akan dilakukan minimal 1x terlebih dahulu, kemudian baru dilakukan pengecekan terhadap kondisi, jika kondisi benar maka perulangan masih akan tetap dilakukan. Perulangan dengan do...while() akan dilakukan sampai kondisi false. Contoh : Algoritma Mengitung rata-rata N buah bilangan bulat yang dibaca dari piranti masukan DEKLARASI : DEKLARASI : N, X, K, jumlah, rerata: integer N, X, K, jumlah, rerata: integer DESKRIPSI ALGORTIMA : DESKRIPSI ALGORTIMA : read (N) read (N) Jumlah 0 Jumlah 0 do while (k <= N) read (x) read (x) jumlah jumlah + x jumlah jumlah + x kk+1 kk+1 while (k <= N) endwhile rerata jumlah/N write (rerata) rerata jumlah/N write (rerata) Contoh Implementasi C/C++: #include <iostream.h> #include <conio.h> #include <iomanip.h> void main() { float n,x,k,jumlah; float rerata; cout << " Inputkan data masukan sejumlah N "; cin >> n; k=1; jumlah=0; do { cout << " masukan data bilangan ke - " << k << ":" ; cin >> x; jumlah=jumlah+x; k=k+1; } while( k <= n); rerata=jumlah/n; cout<<setiosflags(ios::fixed); cout<<setprecision(2); cout << " nilai rata-rata yang di perolehnya adalah:"<<rerata; getch(); } Latihan: 1. Algoritma untuk menentukan nilai maksimal dan minimal dari sejumlah nilai masukan N. 2. Algoritma penjumlahan deret ke N, tetapi yang dijumlahkan adalah bilangan yang genap saja. 3. Algortima menampilkan angka diantara 2 nilai yang dimasukan, misal nilai yang di masukan adalah 2 dan 10, maka outputnya adalah : 2 3 4 5 6 7 8 9 10 4. Algoritma untuk menentukan validasi username dan password, dimana akan di ulang maksimal 3 kali, jika benar akan muncul komentar ” anda berhasil masuk” tapi jika tidak muncul komentar ” maaf user name dan password anda salah” 5. Algoritma untuk menentukan sisa hasil pembagian antara bilangan yang dimasukan dengan bilangan pembagi, apabila sisa hasil baginya=0 maka outputnya ” tidak ada ”, kalau ada cetak outputnya hasil sisanya. Lakukan berulang dengan memasukan sebuah karakter Y atau T, jika pilih Y maka akan diulang, jika pilih T program selesai. 6. Algortima untuk menghtung banyaknya bilangan genap dan ganjil serta total dari bilangan-bilangan genap dan ganjil yang ada dari n buah bilangan yang di inputkan. 7. Algoritma menampilkan Menampilkan deret bilangan 1 – 100 yang habis dibagi dengan 2 dan habis dibagi dengan 3. 8. Algoritma untuk menampilkan data mahasiswa sejumlah N, yang di inputkan adalah NPM, Nama, IPK, kemudian jika IPK >=3 keterangan memuaskan, jika IPK >=2.5 s.d IPK <3 keterangan: Cukup dan jika IPK < 2.5 keterangan : Memprihatinkan. Tampilkan semua data mahasiswa yang di inputkan beserta keterangn IPK nya. 9. Algortima untuk menampilkan deret bilangan prima sejumlah antara 1 sampai dengan 100. 10. Algoritma untuk menampilkan nilai dari suatu input dan akan ber akhir jika nilai dari input bernilai 0 11. Analisa hasil dari flowchart dibawah ini: More Information TO BE CONTINUE