• Tidak ada hasil yang ditemukan

# FOUR LOOPING. JAWABAN 1. #include <stdio.h> #include <conio.h> #define pi void main(){

N/A
N/A
Protected

Academic year: 2021

Membagikan "# FOUR LOOPING. JAWABAN 1. #include <stdio.h> #include <conio.h> #define pi void main(){"

Copied!
15
0
0

Teks penuh

(1)

HANDOUT ALGORITMA PEMROGRAMAN DAN STRUKTUR DATA 1 PRODI SISTEM INFORMASI UKDW

# FOUR

LOOPING

Soal-soal minggu lalu:

1. Buatlah program untuk menghitung luas segitiga dan luas lingkaran (gunakan konstanta pi)!

2. Buatlah program untuk mengetahui bilangan tersebut genap atau ganjil!

3. Buatlah program untuk menentukan banyaknya uang pecahan yang dibutuhkan, urut dari pecahan terbesar!

Input: jumlah uang dalam rupiah

Proses: ratusanribu = jml_uang dibagi 100000 sisa = jml_uang – (ratusanribu*100000) limaplhribu = sisa dibagi 50000

sisa = sisa – (limaplhribu*50000)

dan seterusnya.

4. Buatlah program konversi angka ke nilai huruf: 100 >= nilai > 80 A

80 >= nilai > 60 B 60 >= nilai > 40 C 40 >= nilai > 20 D 20 >= nilai > 0 E

5. Buat program untuk menghitung nilai rata-rata dari n bilangan yang diinputkan, hitung jumlah totalnya, hitung maksimal dan minimal bilangan.

JAWABAN 1. #include <stdio.h> #include <conio.h> #define pi 3.14 void main(){

(2)

clrscr();

int j,a,t;

printf("masukkan jari-jari : ");scanf("%d",&j); printf("luas lingkaran : %f\n",(pi*j*j));

printf("masukkan alas : ");scanf("%d",&a); printf("masukkan tinggi : ");scanf("%d",&t); printf("luas segitiga : %f\n",(0.5*a*t)); getch(); } 2. #include <stdio.h> #include <conio.h> void main(){ clrscr(); int n;

printf("masukkan nilai : ");scanf("%d",&n); if(n % 2 == 0){ printf("bilangn genap!"); } else { printf("bilangn ganjil!"); } getch(); } 3. Algoritma:

Langkah 0 : Masukkan jumlah uang (Jum) Langkah 1 : Jika Jum >= 100000

Hasil Å Pembulatan Ke bawah(Jum/100000) Jum Å Sisa Bagi Jum dengan 100000

Cetak “Uang Rp 100.000,- diperlukan “+Hasil+ “Lembar” Langkah 2 : Jika Jum >= 50000

Hasil Å Pembulatan Ke bawah(Jum/50000) Jum Å Sisa Bagi Jum dengan 50000

Cetak “Uang Rp 50.000,- diperlukan “+Hasil+ “Lembar” Langkah 3 : Jika Jum >= 20000

Hasil Å Pembulatan Ke bawah(Jum/20000) Jum Å Sisa Bagi Jum dengan 20000

Cetak “Uang Rp 20.000,- diperlukan “+Hasil+ “Lembar” (Langah 4 dan seterusnya sama dengan langkah 1,2,3 dengan faktor pembagi sesuai dengan besar pecahan mata uang masing-masing)

(3)

Flowchart:

Program:

#include <iostream.h> #include <conio.h> void main()

{ long Jum, hasil; clrscr();

cout << "Jumlah Uang Rp "; cin >> Jum; if (Jum >= 100000)

{ hasil = Jum/100000; Jum = Jum % 100000;

cout << "Uang Rp 100.000,- ada : " << hasil << " lbr." <<endl; }

if (Jum >= 50000) { hasil = Jum/50000; Jum = Jum % 50000;

cout << "Uang Rp 50.000,- ada : " << hasil << " lbr." << endl; }

if (Jum >= 20000) { hasil = Jum/20000; Jum = Jum % 20000;

cout << "Uang Rp 20.000,- ada : " << hasil << " lbr." << endl; } if (Jum >= 10000) { hasil = Jum/10000; Jum = Jum % 10000; Mulai Selesai Masukkan Jum Jum>=100000 H Å Floor(Jum/100000) Jum Å Mod(Jum,100000) Cetak “Rp 100.000,-”+ H Jum>=50000 H Å Floor(Jum/50000) Jum Å Mod(Jum,50000) Cetak “Rp 50.000,-” + H Jum>=5 H Å Floor(Jum/5) Jum Å Mod(Jum,5) Cetak “Rp 5,-” + H dst. ...

(4)

cout << "Uang Rp 10.000,- ada : " << hasil << " lbr." << endl; }

if (Jum >= 5000) { hasil = Jum/5000; Jum = Jum % 5000;

cout << "Uang Rp 5.000,- ada : " << hasil << " lbr." << endl; }

if (Jum >= 1000) { hasil = Jum/1000; Jum = Jum % 1000;

cout << "Uang Rp 1.000,- ada : " << hasil << " lbr." << endl; }

if (Jum >= 500) { hasil = Jum/500; Jum = Jum % 500;

cout << "Uang Rp 500,- ada : " << hasil << " lbr." << endl; }

if (Jum >= 100) { hasil = Jum/100; Jum = Jum % 100;

cout << "Uang Rp 100,- ada : " << hasil << " lbr." << endl; }

if (Jum >= 50) { hasil = Jum/50; Jum = Jum % 50;

cout << "Uang Rp 50,- ada : " << hasil << " lbr." << endl; }

if (Jum >= 5) { hasil = Jum/5; Jum = Jum % 5;

cout << "Uang Rp 5,- ada : " << hasil << " lbr." << endl; }

getch(); }

(5)

4.

Algoritma : Flow Chart :

Langkah 0 : Masukkan Nilai (nilai) Langkah 1 : Jika nilai > 80

huruf = ‘A’ ke langkah 5 Langkah 2 : Jika nilai > 60

huruf = ‘B’ ke langkah 5 Langkah 3 : Jika nilai > 40

huruf = ‘C’ ke langkah 5 Langkah 4 : Jika nilai > 20

huruf = ‘D’ ke langkah 5 Jika tidak

huruf = ‘E’

Langkah 5 : Cetak “Huruf = “ + huruf Langkah 6 : Selesai Program : #include <iostream.h> #include <conio.h> void main() { int nilai; char huruf; clrscr();

cout << "Nilai Angka "; cin >> nilai; if (nilai > 80) huruf = 'A'; else if (nilai > 60) huruf = 'B'; else if (nilai > 40) huruf = 'C'; else if (nilai > 20) huruf = 'D'; else huruf = 'E';

cout << "Nilai Huruf adalah : " << huruf << endl; getch();

}

Mulai

Masukkan nilai

nilai>80 huruf= ‘A’

Cetak “Nilai Huruf“+huruf t y nilai>60 huruf= ‘B’ t y nilai>40 huruf= ‘C’ t y nilai>20 huruf= ‘D’ t y huruf= ‘E’ Selesai

(6)

5.

Flowchart:

A

Allggoorriittmmaa::

Langkah 0 : Masukkan banyak data (n) Langkah 1 : j Å 0

Langkah 2 : mulai x=1 selama x <=n kerjakan langkah 3,4,5 Langkah 3 : Masukkan data (d) Langkah 4 : j Å j + d Langkah 5 : x Å x + 1 Langkah 6 : r Å j / n Langkah 7 : Cetak r Langkah 8 : Selesai Mulai Banyak Data nilai (n) jÅ 0 Masukkan data (d) j Å j + d mulai x=1 , selama x<=n x Å x + 1 r Å j / n Cetak (r) selesai X == 1? min ← max ← d Y T

d< min ? min ← d d > max ? max ← d

Cetak min

Cetak max

(7)

P Prrooggrraamm:: #include <iostream.h> #include <conio.h> void main() { int n,x; float d,r,j=0,min,max; clrscr();

cout << "Ada berapa data ? "; cin >> n; for(x=1;x<=n;x++)

{

cout << "Data ke-" << x << " : "; cin >> d; j += d; if(x==1){ min = max = d; } else { if(d<min){ min = d; } if(d>max){ max = d; } } } r = j/n; cout << "--- " << endl; cout << "Rata-rata = " << r << endl; cout << "Min = " << min << endl; cout << "Max = " << max << endl; getch();

(8)

LOOPING (PERULANGAN)

Perulangan digunakan untuk mengerjakan suatu perintah secara berulang-ulang sesuai dengan yang diinginkan.

Perulangan dalam C terdiri dari 3 buah: 1. while() { .... }

2. do { .... } while() 3. for()

Struktur While()

Karakteristik while() adalah:

1. Dilakukan pengecekan kondisi terlebih dahulu sebelum dilakukan perulangan. Jika kondisi yang dicek bernilai benar (true) maka perulangan akan dilakukan.

2. Blok statement tidak harus ada. Struktur tanpa statement akan tetap dilakukan selama kondisi masih true.

Bentuk umum:

while (<kondisi>) {

<pernyataan yang akan dijalankan> } Contoh : i=1; while (i <= 5) { cout << i << endl; i++; }

(9)

Flowchart

Struktur do ... while()

Karakteristik do ... while() adalah:

1. Perulangan akan dilakukan minimal 1x terlebih dahulu, kemudian baru dilakukan pengecekan terhadap kondisi, jika kondisi benar maka perulangan masih akan tetap dilakukan.

2. Perulangan dengan do...while() akan dilakukan sampai kondisi false.

Bentuk umum:

do {

pernyataan yang akan dijalankan

} while (kondisi) Contoh: i = 1; do { cout << i << endl; i++; }while(i <= 5);

Selama kondisi terpenuhi

Proses yang diulang

Increment/Decrement counter Inisialisasi

(10)

Flowchart

Struktur For()

Karakteristik:

1. Digunakan untuk perulangan yang batasnya sudah diketahui dengan jelas, misalnya dari 1 sampai 10.

2. Memerlukan 2 buah variabel awal dan akhir perulangan.

3. Nilai variabel penghitung akan secara otomatis bertambah atau berkurang tiap kali sebuah pengulangan dilaksanakan

Bentuk umum:

for (<nilai_awal>; <kondisi>; <penambahan/penurunan>) {

<pernyataan yang akan dijalankan>

}

Contoh :

for(i = 3; i <= 7; i++) {

cout << "Indonesia Tanah Airku" << endl; } Contoh: Untuk n = 4 * * * * * * * * * *

Proses dalam perulangan

Increment/Decrement counter

Pengecekan kondisi loop Inisialisasi

(11)

Menggunakan FOR #include <stdio.h> #include <conio.h> void main(){ clrscr(); int n; printf("masukkan n = ");scanf("%d",&n); for(int i=1;i<=n;i++){ for(int j=1;j<=i;j++){ printf("*"); } printf("\n"); } getch(); } Menggunakan WHILE #include <stdio.h> #include <conio.h> void main(){ clrscr(); int n; printf("masukkan n = ");scanf("%d",&n); int i=1,j=1; while(i<=n){ j = 1; while(j<=i){ printf("*"); j++; } i++; printf("\n"); } getch(); } Menggunakan DO WHILE #include <stdio.h> #include <conio.h> void main(){ clrscr(); int n; printf("masukkan n = ");scanf("%d",&n); int i=1,j; do{ j = 1;

(12)

do{ printf("*"); j++; }while(j<=i); printf("\n"); i++; }while(i<=n); getch(); }

Bagaimana menampilkan hal dibawah ini? Untuk n = 4 * * * * * * * * * * * * * * * * Nested Looping

Nested Loop adalah looping yang terjadi di dalam sebuah loop. Looping yang dikerjakan terlebih dahulu adalah looping yang berada di dalam baru kemudian mengerjakan looping yang luarnya!

Break dan Continue

break adalah perintah untuk menghentikan perulangan yang terjadi, dan alur program akan berpindah ke looping yang lebih atasnya, atau akan keluar dari loop jika loop yang dilakukan hanya satu buah!

Contoh: #include <stdio.h> #include <conio.h> void main(){ clrscr(); int X = 0; while(X >= 0){ X++; if(X > 100) break; printf("%d ",X); } }

(13)

continue() adalah perintah untuk meneruskan perulangan (melewati perulangan pada suatu kondisi tertentu) dan kemudian alur program akan melanjutkan ke proses looping berikutnya, atau jika proses looping sudah terakhir, maka proses akan keluar dari loop.

Contoh: #include <stdio.h> #include <conio.h> void main(){ clrscr(); int X = 0; while(X <= 100){ X++; if(X % 2 == 0) continue; printf("%d ",X); } }

Latihan

- Tampilkan bilangan 1-10 dengan for(), do ... while() ... dan while() ... do! - Buatlah program penghitung faktorial!

- Buatlah program untuk memangkatkan bilangan dengan looping! - Buatlah program untuk menampilkan tabel penjumlahan!

- Buatlah program untuk menampilkan tabel perkalian!

- Buatlah program untuk menampilkan bilangan genap dari 1-100!

- Buatlah program menu yang selalu berulang sampai user memilih pilihan exit!

- Buatlah program yang selalu menanyakan pada user: “mau lagi“?, jika user

mengetikkan ‘Y’ atau ‘y’, maka akan mengulang program, sebaliknya jika user mengetikkan ‘T’ atau ‘t’, maka program akan selesai.

- Buatlah deret: n = 4 1 Fakt = 1 1 2 Fakt = 2 1 2 3 Fakt = 6 1 2 3 4 Fakt = 24 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3

(14)

1 2 3 4 5 1 2 3 4 1 2 3 1 2 1 1 2 3 4 5 2 3 4 5 3 4 5 4 5 5 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 1 1 1 1 1 2 2 2 2 3 3 3 4 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 1 6 11 2 7 12 3 8 13 4 9 14 5 10 15 PR:

1. Buat program untuk menghtung banyaknya bilangan genap dan ganjil serta total dari bilangan-bilangan genap dan ganjil yang ada dari n buah bilangan.

2. Buat program untuk menampilkan deret bilangan prima dari 1 sampai dengan n, dimana n adalah inputan dari user.

3. Mencetak Tulisan “<x> UKDW Almamaterku <y>” sebanyak 10 kali, dengan <x> adalah nomor urut (mulai 1 sampai 10), sedngkan <y> adalah nomor urut terbalik (mulai 10 sampai 1)

4. Buatlah tabel harga fotokopian dari 1 – 100 lembar, dimana harga perlembar adalah 80 rupiah!

5. Buatlah program untuk menampilkan deret sebagai berikut:

1 2 3 4 5

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Dengan 1 buah loop saja!

(15)

P Q P or Q P and Q Not P P xor Q 1 1 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 0 1 0 7. Buatlah program untuk menampilkan deret seperti:

Untuk n = 5 X O X O X X O X O X O X X O X

8. Buatlah program untuk menampilkan bilangan fibonacci pada deret ke-n! Bilangan fibonacci adalah bilangan seperti: 1 1 2 3 5 8 13 ... dst

Jadi jika inputan n = 7, maka hasil adalah 13

Referensi

Dokumen terkait