Algoritma dan Pemprograman 1
Cara Penulisan dalam Flowchart untuk Jenis-jenis Struktur PERULANGAN Pertemuan 6 Cara Penulisan dalam Flowchart untuk Jenis-jenis Struktur PERULANGAN dalam Algoritma
Simbol-simbol yang digunakan dalam flowchart
Perulangan
Definisi Kunci: Pengulangan Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa kali. Dengan pengulangan, kita hanya perlu menuliskan pernyataan tersebut satu kali saja, tapi akan dilakukan oleh program sebanyak yang diperintahkan
Struktur Algoritma Perulangan Dalam banyak kasus seringkali kita dihadapkan pada sejumlah pekerjaan yang harus diulang berkali. Salah satu contoh yang gampang kita jumpai adalah balapan mobil seperti tampak pada gambar ini Mobil-mobil peserta harus mengelilingi lintasan sirkuit berkali-kali sesuai yang ditetapkan dalam aturan lomba. Siapa yang mencapai garis akhir paling cepat, dialah yang menang.
Struktur Pengulangan Kondisi pengulangan, yaitu syarat yang harus dipenuhi untuk melaksanakan pengulangan. Syarat ini biasanya dinyatakan dalam ekspresi Boolean yang harus diuji apakah bernilai benar (true) atau salah (false) Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan diulang
Operator yang dibutuhkan dalam perulangan (counter) Nama operator Contoh ekspresi Penjelasan ++ Prefix increment ++A Naikkan nilai A sebanyak 1, kemudian gunakan nilai baru tersebut ke nilai A ke nilai saat ini Postfix increment A++ Gunakan nilai A dulu, baru naikkan nilai A untuk nilai A kemudian -- Prefix decreament --A turunkan nilai A sebanyak 1, kemudian gunakan nilai baru tersebut ke nilai A ke nilai saat ini Postfix decreament A-- Gunakan nilai A dulu, baru turunkan nilai A untuk nilai A kemudian
Contoh Operator yang dibutuhkan dalam perulangan Nilai Operator Contoh hasil; A = 5 A++ A 5 6 B = 8 ++B B 8 9 C = 3 C-- C 3 2 D = 7 --C 7
Macam-macam Perulangan
1. FOR
FOR Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan yang paling tua dalam bahasa pemrograman. Hampir semua bahasa pemrograman menyediakan metode ini, meskipun sintaksnya mungkin berbeda.
FOR Pada struktur For kita harus tahu terlebih dahulu seberapa banyak badan loop akan diulang. Struktur ini menggunakan sebuah variable yang biasa disebut sebagai loop’s counter, yang nilainya akan naik atau turun selama proses pengulangan.
FOR Digunakan untuk perulangan yang batasnya sudah diketahui dengan JELAS, misalnya 10 kali Memerlukan dua buah penanda, awal dan akhir perulangan Nilai penghitung / counter akan secara OTOMATIS bertambah atau berkurang tiap kali pengulangan dilaksanakan, tergantung jenis perulangannya.
FOR Bentuk umum: For(<nilai_awal>;<kondisi>;<penambahan/pen urunan>) { <pernyataan yang akan dijalankan> }
Contoh FOR versi skenario Si Joko menyewa preman untuk memukuli Si Andi. Si Joko Menyuruh si Preman untuk memukul si Andi sebanyak 10 kali dan harus 10 kali
Deklarasi FOR For (int i = 1; i <= 10; i++) Nama Keyword Variabel kontrol Variabel kontrol penambahan For (int i = 1; i <= 10; i++) Kondisi looping Nilai awal variabel kontrol
Struktur Flowchart dengan For
Contoh For : 1 Buatlah perulangan “saya tidak akan mengulangi perbuatan itu lagi” sebanyak 100 kali Maka algoritmanya: Nama For1.java Deklarasi - Deskripsi For(int i=1;i<=100;i++) write (“saya tidak akan mengulangi perbuatan itu lagi ”) endfor
Jawaban flowchart: for 1
Jawaban program: for1 public class For1 { public static void main(String[] args) { System.out.println("Looping dengan for"); for (int i = 1; i <= 10; i++) { System.out.println("Saya tidak akan mengulangi perbuatan itu lagi"); }
Latihan For : cetak bilangan ganjil Buatlah perulangan sebanyak 10 kali dengan diberikan nilai A, setiap kali perulangan, nilai A akan bertambah 2. Misal : Perulangan 1 : Nilai A=1; Perulangan 2 : Nilai A=3; Perulangan 3 : Nilai A=5;
Jawaban algoritma: bilangan ganjil Nama Program For2 Deklarasi A = int Deskripsi A = 1; For(int i=1;i<=10;i++) write(“Nilai A adalah”, A); A = A + 2; endfor
Jawaban flowchart : bilangan ganjil
Jawaban program: bilangan ganjil public class For2 { public static void main(String[] args) { int a=1; for (int i = 1; i <= 10; i++) { System.out.println("nilai A adalah "+a+" (ini merupakan for ke "+i+")"); a = a+2; }
Latihan For : cetak bilangan genap Buatlah perulangan sebanyak 10 kali dengan diberikan nilai A, setiap kali perulangan, nilai A akan bertambah 2. Misal : Perulangan 1 : Nilai A=0; Perulangan 2 : Nilai A=2; Perulangan 3 : Nilai A=4; Petunjuk : cara membuat sama dengan for bilangan ganjil
Jawaban algoritma: bilangan ganjil Nama Program For2 Deklarasi A = int Deskripsi A = 0; For(int i=0;i<=10;i++) write(“Nilai A adalah”, A); A = A + 2; endfor
Jawaban program: bilangan genap public class For2 { public static void main(String[] args) { int a=0; for (int 0 = 1; i <= 10; i++) { System.out.println("nilai A adalah "+a+" (ini merupakan for ke "+i+")"); a = a+2; }
Contoh soal: membuat bintang Buatlah sebuah algoritma untuk bisa membuat bintang seperti ini N =4 N = 3 N = 2 * ** *** **** Petunjuk: Kita memerlukan dua variabel pencacah. Variabel 1 untuk mencacah baris, variabel ini digunakan untuk melakukan pengulangan dari 1 sampai N Variabel 2 untuk menggambar bintang pada masing masing baris. Jadi variabel ini harus melakukan pengulangan sama dengan variabel 1
Jawaban algoritma: membuat bintang Nama Program Buat bintang Deklarasi N : int Deskripsi Masukkan N I 1 Selama (i <= N) kerjakan baris 4 sampai baris 9 J 1 Selama (j <=i) kerjakan baris 6 dan 7 Tulis “*” J j+1 Ganti baris I i + 1 Deskripsi program Read (N) For(int i = 1; i <= N; i++) for (int j = 1; j <= i; j++) write(“*”); endfor Endfor
Jawaban program: membuat bintang public class b01ForBintang { public static void main(String[] args) { int n; Scanner input = new Scanner(System.in); System.out.print("Masukkan jumlah bintang yang akan dicetak: "); n = input.nextInt(); for (int i = 1; i <= n; i++) { for (int j = 1; j <= i; j++) { System.out.print("*"); } System.out.println("");
2. WHILE
WHILE Struktur While akan mengulang pernyataan pada badan loop sepanjang kodisi pada While bernilai benar. Dalam artian kita tidak perlu tahu pasti berapa kali diulang. Yang penting sepanjang kondisi pada While dipenuhi maka pernyataan pada badan loop akan diulang. Flowchart umum untuk struktur While dapat dilihat pada Gambar ini :
Bentuk Umum WHILE <inisiasi> While(<kondisi>) { <pernyataan yang akan dijalankan> <perubahan kondisi> } -------------------------- Contoh: Int i =1; While(i<=7){ printf(“nilai i = ”,i); i++;
Contoh WHILE versi skenario Si Joko menyewa preman untuk memukuli Si Andi. Si Joko Menyuruh si Preman untuk memukul si Andi sampai PINGSAN, Maka si preman akan memukuli si Andi sampai pingsan Jika dipukul 1 kali langsung pingsan, maka selesai Jika dipukul 5 kali baru pingsan, maka selesai Jika dipukuli berkali-kali belum pingsan, pukul terus sampai pingsan Jika belum di pukul sudah pingsan (karena kaget), maka selesai
Latihan while: 1 Lakukan perulangan dengan while sebanyak 5 kali Algoritmanya: Nama Program While1 Deklarasi I = int Deskripsi I = 1; While (i<=5) write(‘ini adalah looping ke ’, i); i++ endwhile
Jawaban flowchart
Contoh while kompleks (1) Buatlah aplikasi yang menerima inputan nilai siswa (range dari 0 sampai 100), yang menghasilkan rata-rata siswa. Misal kita batasi ada 10 siswa yang nilainya kita masukkan menggunakan while
Jawaban algoritma while kompleks(1) Nama RataRataSiswa Deklarasi Nilai, total, rata,counter = int; Deskripsi Read(total=0;counter=1) While(counter<=10) read(“masukkan nilai”,nilai); total total + nilai; counter counter +1 endWhile Rata total / 10; Write(“rata-rata nilai ke 10 siswa adalah ”,rata); Gradebook.java
Jawaban(1)
Latihan while kompleks (2) Buatlah aplikasi yang menerima inputan nilai siswa (range dari 0 sampai 100), yang menghasilkan rata-rata siswa. Penginputan selesai jika kita memasukkan nilai (-1) masukkan menggunakan while. Petunjuk: Konsep sama dengan while kompleks(1) Pada while (rubah agar menerima inputan -1) Saat dalam kondisi while, tanyakan apakah ingin memasukkan nilai atau keluar (-1)
Jawaban algoritma while kompleks(2) Nama RataRataSiswa Deklarasi Nilai, total, rata,counter = int; Deskripsi Read(total=0;counter=0) Write(“masukkan nilai atau tulis -1 untuk keluar”, nilai) While(nilai != -1) total total + nilai; counter counter +1; read(“masukkan nilai atau tekan -1 untuk keluar”,nilai); endWhile If(counter !=0) Rata total / counter; Write(“jumlah siswa yang dimasukkan”,counter); write(“Rata-rata siswa adalah ”,rata); Endif Gradebook2.java
jawaban
3. DO WHILE
DO WHILE Perulangan akan dilakukan minimal 1 kali terlebih dahulu, kemudian baru dilakukan pemeriksaan terhadap kondisi, jika kondisi BENAR, maka perulangan akan tetap dilakukan Perulangan dengan DO..WHILE akan dilakukan sampai kondisi false
Bentuk Umum DO WHILE <inisiasi> Do { <pernyataan yang akan dijalankan> <perubahan kondisi> } While(<pencapaian kondisi>) ---------------------------------- Contoh: Int i=1; Do{ printf(“nilai I =”,i); i++; While(i<=7);
Contoh DO WHILE versi skenario Si Joko menyewa preman untuk memukuli Si Andi. Si Joko Menyuruh si Preman untuk memukul si Andi sampai PINGSAN, Maka si preman akan memukul andi paling tidak satu kali, entah pingsan atau tidak Jika belum pingsan dan kondisi memungkinkan, pukul sampai pingsan
Contoh do-while Lakukan perulangan menggunakan do-while, jika sudah sampai perulangan ke 5, maka berhenti Algoritmanya Nama Program DoWhile1 Deklarasi I = int Deskripsi I = 1; do write(‘ini adalah looping ke ’, i); i++ enddo While (i<=5)
flowchartnya
Terima Kasih
SubRutin
Definisi Subrutin Ada dua macam subrutin Prosedur: tidak mengembalikan nilai Fungsi: selalu mengembalikan nilai Tujuan subrutin: melakukan tugas tertentu
Prosedur penulisan prosedur Prosedur nama_prosedur (parameter1;paramater2;...) Begin { pernyataan-pernyataan } End;
Contoh penulisan prosedur dalam java public class Sepeda { int kecepatan; int gir; void ubahGir(int tambahGir){ gir = gir + tambahGir; System.out.println("Gir Sekarang :"+gir); } void tambahKecepatan(int tambahCepat){ kecepatan = kecepatan +tambahCepat; System.out.println("Kecepatan Sekarang :"+kecepatan); prosedur prosedur Lanjut...
Contoh penulisan prosedur dalam java (lanjutan..) public class SepedaBeraksi { public static void main(String[] args) { Sepeda spd = new Sepeda(); spd.tambahKecepatan(10); spd.ubahGir(2); } Panggil prosedur Panggil prosedur
Prosedur penulisan fungsi function nama_prosedur (parameter1;paramater2;...) Tipe_kembalian Begin { pernyataan-pernyataan } End;
Contoh penulisan fungsi dalam java public class SubRutin { private String nama; public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; public void tampilNama(){ System.out.println("Nama Saya adalah "+getNama()); Fungsi prosedur prosedur Lanjut...
Contoh penulisan fungsi dalam java (lanjutan) public class SubRutinBeraksi { public static void main(String[] args) { SubRutin sb = new SubRutin(); sb.setNama("Farrikh al zami"); sb.tampilNama(); } Panggil prosedur Panggil fungsi
Contoh penulisan fungsi dalam java(2) public class Matematika { int hasil; public int tambah(int a, int b) { return hasil = a + b; } public int kurang(int a, int b) { return hasil = a - b; public int kali(int a, int b) { return hasil = a * b; public int bagi(int a, int b) { return hasil = a / b; public void hasil() { System.out.println("Hasilnya adalah " + hasil); Lanjut...
Contoh penulisan fungsi dalam java (2)(lanjutan) public class MatematikaBeraksi { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Masukkan Angka pertama: "); int satu = input.nextInt(); System.out.print("Masukkan Angka kedua: "); int dua = input.nextInt(); Matematika mtk = new Matematika(); mtk.tambah(satu, dua); mtk.hasil(); } Panggil fungsi Panggil prosedur
Latihan soal 1 : Tampilan menghitung Jumlah Hari, Jam, Menit, Detik Tulis program untuk menampilkan jumlah hari, jam, menit dan detik. Masukan program adalah bilangan bulat yang melambangkan waktu dalam detik. Keluaran program adalah banyaknya hari, jam, menit dan detik. Misal: 200.000 detik akan menghasilkan 2 hari, 7 jam, 33 menit dan 20 detik
Jawaban soal: Tampilan Menghitung hari, jam, menit, detik Nama Algoritma Menghitung hari, jam, menit, detik Deklarasi Waktu : int; Deskripsi Read (Waktu) Hitung_Hari Waktu / 86400 Hitung_Jam Waktu / 3600 Hitung_Menit Waktu / 60 Hitung_Detik Write (‘Hari’,Hitung_Hari) a01TahunKabisatSimple.java
Tugas: Buat soal lalu jawab dengan menggunakan algoritma dan flowchart dari pernyataan FOR, WHILE dan DO WHILE