Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
PERULANGAN (LOOP) Minggu IV
Wahyu Pujiyono Tehnik Informatika Universitas Ahmad Dahlan
2
Motivasi Sangat banyak kegiatan sehari-hari yang sering diulang.
Contoh : Makan sepiring akan dilakukan sesendok demi sesendok (berulang). Untuk menghitung 2 x 3 dilakukan dengan menjumlah 2 sebanyak 3 kali (2 ditambah 2 ditambah 2)
3
Komputer mempunyai kemampuan untuk menghitung perulangan dengan sangat cepat dan tidak mengenal lelah. Kadang diperlukan suatu kondisi untuk menghitung dengan perulangan sampai presisi tertentu.
4
Konsep Counter Perhatikan penugasan berikut ini : i i + 1 C++ : i++;
Atau ++i;
5
Konsep Total Misalnya kita diminta untuk menghitung jumlah deret :
Harga awal : i dimulai dengan 0 (unsur identitas penjumlahan)
6
Konsep Total (lanjutan)
Algoritmik : jumlah 0 for i 1 to n do jumlah jumlah + i C++ : jumlah = 0; for (i = 1; i<=n; i++) jumlah += i;
7
Konsep Total Perkalian
Misalkan kita diminta menghitung : n! = … n = Harga awal : 1 (unsur identitas perkalian)
8
Algoritmik C++ faktorial 1 for i 1 to n do
faktorial faktorial * i C++ faktorial = 1; for (i = 1; i<=n; i++) faktorial *= i;
9
Pemrograman
10
Kasus 4.1. Cetaklah bilangan 1 sampai 4
11
Perhatikan perbedaan ketiga flowchart berikut :
Mulai for i = 1 to 4 do i Selesai i =1 i = i+1 i <= 4 F T i > 4 Struktur for Struktur while Struktur repeat - until
13
Kasus 4.2. Cetaklah bilangan ganjil dari 0 sampai 10
Ide : Bilangan ganjil dari 0 sampai 10 diawali dengan 1, kemudian bertambah dengan 2 atau bilangan ganjil adalah bilangan yang bila dibagi 2 bersisa 1.
15
Beberapa cara :
16
Aplikasi Perulangan kerap digunakan untuk menghitung jumlah deret.
Contoh : Hitung jumlah dari : 1+2+3+… + n = Kuncinya : buat pola untuk rumus di sebelah kanan ! Untuk operasi perkalian menggunakan tanda
19
Bilangan Fibonacci Bilangan Fibonacci dapat disajikan sebagai berikut : 0, 1, 1, 2, 3, 5, 8, … Dimulai dari suku pertama = 0 dan kedua = 1, suku ketiga adalah jumlah 2 suku pertama. Dalam rumus : F(n) = F(n-1) + F(n-2)
20
Analisis : Ketika kita menghitung suku ke-3 (F(3)) maka suku ke-1 sebenarnya sudah tidak digunakan. Untuk itu kita bisa “menggeser tempat” : f1 f2 f2 f3 Lalu berulang kita hitung suku berikutnya : f3 f2 + f1
22
Kasus 4.3. Carilah rata-rata dari n bilangan bulat positif.
Analisis : Rumus rata-rata adalah : yaitu jumlah data dibagi dengan banyaknya data, dengan xi adalah data ke-i.
25
Sentinel Digunakan bila banyaknya masukan tidak diketahui, tetapi sifat datanya diketahui. Untuk menghentikan masukan, digunakan harga lain. Contoh : Bila masukan harga selalu positif (misalkan nilai mahasiswa), sentinel bisa nol atau harga negatif.
26
Kasus 4.4. Hitunglah rata-rata dari integer positif (banyak data ditentukan dari data yang dimasukkan)
28
Kasus 4.7. Hitunglah nilai dari dengan x bilangan real dan y bilangan bulat.
Analisis : = x . x . x . … x (sebanyak y kali) = Input : x dan y Output : hasil x pangkat y
31
Hanya saja, algoritma ini khusus untuk y > 0.
Bahan kuis : Sempurnakan algoritma tersebut agar dapat menghitung pangkat y negatif.
32
Kasus 4.8. Hitunglah axb dengan metode penjumlahan
Analisis : axb = a + a + … + a (sebanyak b kali) = Ini berlaku untuk a positif maupun negatif Bagaimana bila b negatif ?
33
Karena loop “tidak pernah negatif” maka harus dimanipulasi perulangan yang “selalu” positif.
Untuk itu nilai b menjadi abs(b) Kemudian khusus untuk b < 0, jumlah yang sudah diperoleh dinegatifkan Ingat : ax(-b) = ax(-1)xb = -axb
35
Loop Invariant Loop invariant digunakan untuk membuktikan bahwa loop for adalah benar Karakteristik : Benar pada suatu titik (pernyataan) pada setiap iterasi loop Benar bila loop berhenti membuktikan loop bekerja secara benar.
36
Contoh : program untuk mencari nilai minimum dari sederetan input
37
Kondisi : min <= n selalu benar sebab sebelum pernyataan if mengubah harga min jika harga input terakhir dari n kurang dari harga min sebelumnya. Kondisi : min satu dari n harga selalu benar sebab min diawali dengan harga pertama dan min berubah harganya hanya bila harga input n yang baru lebih kecil dari min. Akhirnya : kondisi benar ketika loop berakhir diperoleh nilai minimum dari semua input
38
Latihan Buatlah algoritma dan program untuk mencetak bilangan yang habis dibagi 3 dan 5 antara 1 sampai dengan 100. Hitunglah nilai dari : [Sentinel] Buatlah algoritma untuk menentukan nilai terkecil, terbesar, dan jumlah semua bilangan positif yang dimasukkan.
39
Tugas Kelompok Buat simulasi membeli bahan bakar dengan spesifikasi :
Input berupa : uang/berapa liter yang akan dibeli Jenis bahan bakar yang akan dibeli Indikator akan berlangsung terus (kenaikkan 0.1liter) selama total harga/jumlah liter bahan bakar yang dibeli belum melebihi permintaan Output menyatakan : Jumlah liter yang dibeli (bila input berupa uang) Total uang yang harus dibayar (bila input berupa liter)
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.