Analisis dan desain Algoritma (PG157)

  {Pertemuan 7

Struktur Perulangan

Lanjutan}

  Outline 

  Nested Loop 

  Contoh dan Latihan yang melibatkan Struktur Perulangan

  255 Pendahuluan ? include<stdio.h>

  # J void main()

  1 { int J;

  2 for ( J=1; J<=5; J++ )

  3

  4 {

  • 5
  • 6

  Loop

  } }

  Berapa kali loop dikerjakan ?

  255 Pendahuluan

  J=1 J=1

  int J; for ( J=1 ; J<=5; J++)

  false true J<=5

  {

  J<=5

  true

  false

  • Loop
  • J++

  }

  J++ atau

  J=1 J++

  true J<=5 false Pendahuluan

  J=1

  #include<stdio.h> main()

  false J<=5

  { int J;

  true

  J = 1;

  • while ( J<=5 )
  • {

  atau J=J+1

  J=1

  • J++;

  J=J+1

  }

  } Loop

  true J<=5 false

  #include<stdio.h> void main() { int J;

  J = 1; while ( J<=5 ) {

  • J++; }

  } #include<stdio.h> void main() { int J;

  for ( J=1; J<=5; J++) {

  }

  } Pendahuluan

  #include<stdio.h> void main() { int I, J; for ( I=1; I<=3; I++) { } }

  Nested Loop dengan for( )

  Pemahaman Nested Loop

  #include<stdio.h> void main() { int I, J; for ( I=1; I<=3; I++) { } }

  for ( J=1; J<=5; J++) { }

  for ( J=1; J<=5; J++) { }

    • (A) (B)
    for ( J=1; J<=5; J++) { }

  { } printf(“\nJakarta”)

  #include<stdio.h> main() { int I, J; for ( I=1; I<=3; I++) { } } for ( J=1; J<=5; J++)

  Tercetak : Jakarta Jakarta Jakarta Jakarta Jakarta printf(“\nJakarta”)

  Tercetak : Jakarta Jakarta

  • Jakarta Jakarta 15 kali
Perhatikan kembali Nested Loop sebelumnya sebagai berikut ini :

  I=1

  #include<stdio.h>

  false

  void main()

  I<=3

  { int I, J;

  true

  for ( I=1; I<=3; I++)

  J=1

  {

  false

  for ( J=1; J<=5; J++)

  Outer J<=5 loop

  {

  true

  Inner loop

  • Outer

  loop

  • Inner
    • loop }

  J++

  } }

  I++

  258 fa ls e true

  I=1 I<=3

    • 258

  I++ J=1

  J<=5 Inner loop

  J++

  true fa ls e keluar

  O u te r lo o p

  #include<stdio.h> void main() { int I, J; for ( I=1; I<=3; I++) { } } for ( J=1; J<=5; J++)

  { } Latihan di Kelas

Buatlah Flowchart untuk mencetak beberapa deret berikut ini:

  1. 10 20 30 40 50 60 70 80 90 100 2. 100 95 90 85 80 75 70 65 60 55 3. 1 2 4 8 16 32 64 128 256 512 1024 4. 5 8 12 17 23 30 38 47 57 68 5. 1 1 2 3 5 8 13 21 34 55

  Latihan di Kelas

  1. Seseorang mengendarai sepeda dengan kecepatan tetap 2

meter/detik. Susun program untuk mencetak berapa meter

yang dia tempuh setelah bersepeda selama 100 detik.

  2. Seseorang menyimpan uang Rp. 1.000.000 di bank dengan bunga ber-bunga 2% perbulan. Jadi setelah satu bulan uangnya menjadi Rp. 1.020.000. Satu bulan berikutnya uang Rp. 1.020.000 ini mendapat bunga lagi 2%, yaitu Rp.20.400 sehingga setelah 2 bulan uangnya menjadi Rp. 1.020.000 +

Rp. 20.400 = Rp. 1.040.400. Demikian seterusnya (bunga

bulan ini ditambahkan ke saldo uangnya dan mendapatkan

bunga lagi pada bulan berikutnya) . Susun program untuk

menghitung dan mencetak jumlah uangnya setelah 10 bulan.

  Susun program untuk mencetak nilai- nilai ( 1- 15) sehingga tercetak sebagai berikut :

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a.

  b.

  1 c.

  2 1 2 3 4 5

  3 6 7 8 9 10

  4 11 12 13 14 15

  5

  6

  7 d.

  1 2 3

  8

  9 4 5 6

  10 7 8 9

  11 10 11 12

  12

  13 13 14 15

  14

  15 SOAL : Susun program untuk mencetak nilai 1-15, sehingga tercetak sebagai berikut : a. 1 b. 1 2 3 4 5 2 3

  6 7 8 9 4 5 6 10 11 12 7 8 9 10 13 14 11 12 13 14 15

  15

  c. 1

  d. 1 2 3 4 5 2 3 6 7 8 9 4 5 6 10 11 12 7 8 9 10 13 14 11 12 13 14 15

  15 SOAL : Apa yang tercetak bila program berikut ini dijalankan : a.

  #include<stdio.h> void main() { int I, J, T ;

  T = 0 ;

  for ( I=1; I<=3; I++) { for(J =

  I ; J<=5; J++) { T = T + J;

  printf(“%3i”, T );

  }

  printf(“\n); } } b.

  #include<stdio.h> void main() { int I, J, T ;

  T = 0 ;

  for ( I=1; I<=3; I++) { for(J =

  I ; J<=5; J++) { T = T + J; }

  printf(“%3i”, T ); printf(“\n); } } SOAL : Apa yang tercetak bila program berikut ini dijalankan : a.

  #include<stdio.h> void main() { int I, J, T ;

  T = 0 ;

  for ( I=1; I<=3; I++) { for(J =

  I ; J<=5; J++) { T = T + J; }

  } printf(“%3i”, T ); } SOAL : Apa yang tercetak bila program berikut ini dijalankan : a.

  #include<stdio.h> void main() { int I, J, T ;

  T = 0 ;

  for ( I=1; I<=3; I++) { for(J =

  I ; J<=5; J++) { T = T + J;

  printf(“%3i”, T );

  }

  printf(“\n); } } b.

  #include<stdio.h> void main() { int I, J, T ;

  T = 0 ;

  for ( I=1; I<=3; I++) { for(J =

  I ; J<=5; J++) { T = T + J; }

  printf(“%3i”, T ); printf(“\n); } } c. #include<stdio.h> main() { int I, J, T ;

  T = 0 ; for ( I=1; I<=3; I++) { for(J =

  I ; J<=5; J++) { T = T + J; }

  } printf(“%3i”, T ); } Terima kasih…