Please Bantu Saya, Like This !!!

×

Powered By Blogger Widget and Get This Widget

Thursday, 5 November 2015

STATEMENT CONTROL DAN LOOPING



MODUL II
STATEMENT CONTROL DAN LOOPING

2.1.  TUJUAN PRAKTIKUM
1.      Mahasiswa bisa membuat program yang memerlukan perulangan.
2.      Mahasiswa bisa memilih/menentukan statement looping yang paling sesuai dengan permasalahan yang harus dipecahkan.
3.      Mahasiswa bisa menentukan statement control yang tepat untuk program yang dibuat.

2.2.  DASAR TEORI
2.2.1  Satement Control
Statement control merupakan sebuah statement yang terdiri dari kondisi – kondisi yang di mana jika kondisi tersebut terpenuhi, program akan melakukan sesuatu instruksi tertentu. Jadi dapat dikatakan statement control merupakan petunjuk arah bagi suatu urutan suatu program.
Dalam bahasa C++ terdapat beberapa jenis statement control sebagai berikut:
a.    Pola If
Pola ini merupakan bentuk pola yang paling sederhana karena pemilihan yang dilakukan hanya satu saja. Jika kondisi benar, maka perintah akan dikerjakan. Jadi, pemeriksaan kondisi akan berakhir jika ternyata kondisi yang diperiksa salah. Pada kasus – kasus tertenru pola ini sangat berguna.
Syntax:
if(<kondisi>)<statement_jika_benar>;
b.   Pola If Else
Pada bentuk if else, pemeriksaan kondisi akan dilakukan seperti dalam perintah if sebelumnya. Jika kondisi benar, maka perintah akan dijalankan. Namun bentuk ini juga memberi alternatif lain, yaitu jika kondisi salah, maka bagian else akan dikerjakan. Jadi bentuk ini pasti akan mengerjakan salah satu bagian dari perintah if atau else, baru kemudian dilanjutkan ke baris perintah berikutnya.
Syntax:
if(<kondisi>)<statement_jika_benar>;
else<statement_jika_salah>;
c.    Pola If Bersarang
Perintah if di dalam if biasa juga disebut nested – if atau if bersarang. Perintah ini memiliki bentuk umum sebagai berikut:
if(<kondisi>){
  if(<kondisi>)
     <statement_1>;
  else
     <statement_2>;}
else<statement_lain>;
Perintah nested – if juga mempunyai bentuk umum yang majemuk yang sering disebut if bertingkat. Bentuk umumnya adalah sebagai berikut:
if(<kondisi 1>){
   <statement_benar_1>;
   <statement_benar_2>;
   <statement_benar_3>;
   .
   .
   .
   <statement_benar_n>;}
else if(<kondisi 2>){
   <statement_benar_1>;
   <statement_benar_2>;
   <statement_benar_3>;
   .
   .
   .
   <statement_benar_n>;}
else{
   <statement_salah_1>;
   <statement_salah_2>;
   <statement_salah_3>;
   .
   .
   .         <statement_salah_n>;}
Bentuk umum di atas berarti jika kondisi 1 benar, maka statement benar yang ada pada kondisi 1 akan dikerjakan. Apabila kondisi 1 salah, maka program akan memeriksa kondisi 2. Jika kondisi 2 benar, maka statement benar yang ada pada kondisi 2 yang akan dikerjakan. Apabila kondisi 2 salah, maka akan dikerjakan statement salah.
d.   Pola Switch
Perintah ini digunakan sebagai alternatif pengganti dari syntax if else secara sederhana di mana alternatif pilihan bisa lebih dari satu. Namun switch tidak bisa digunakan untuk pilihan yang mengandung kondisi tertentu. Dengan perintah ini program percabangan akan semakin mudah dibuat dan dipelajari.
Syntax umum:
switch(<variabel>){
      case <konstanta_1>:     <statement_1>;
                                                break;
   case <konstanta_2>:  <statement_2>;
                        break;
   default                    :  <statement_default>;
   }
        Karakteristik perintah switch:
1.   Perintah switch akan menyeleksi kondisi yang diberikan dan kemudian  membandingkan hasilnya dengan konstanta – konstanta yang ada di case.
2.   Pembandingan akan dimulai dari konstanta 1 sampai konstanta terakhir.
3.   Jika hasil dari kondisi sama dengan nilai konstanta tertentu, misalnya konstanta 1, maka statement 1 akan dijalankan sampai ditemukan break.
4.   Pernyataan break akan membawa proses keluar dari perintah switch. Jika hasil dari kondisi tidak ada yang sama dengan konstanta – konstanta yang diberikan, maka pernyataan pada default akan dijalankan.[2]
2.2.2 Satement Looping
Statement looping atau pengulangan di mana suatu instruksi dapat dilaksanakan secara terus – menerus tergantung jumlah pengulangan atau batas pengulangan yang telah ditentukan.
a.        Struktur For
Jenis loop dalam bahasa C++ adalah loop for. For sangat ideal untuk situasi yang memerlukan penghitung karena ekspresinya sudah built-in (menjadi satu) dengan memperbarui variabel.
            Berikut syntax programnya:
for(inisialisasi_awal; syarat_perulangan; kondisi)
statement;
b.      Struktur While
Bentuk perulangan while dikendalikan  oleh syarat tertentu. Pernyataan (statement) dalam while akan dilaksanakan berulangkali selama syarat bernilai benar. Jika syarat bernilai salah pengulangan tidak akan dilakukan, yang berarti perulangan selesai.
           
Berikut syntax programnya:
inisialisasi_awal;
      while(syarat_perulangan){
      statement;
}
c.       Struktur Do While
Bentuk perulangan do while dikendalikan oleh syarat tertentu. Pernyataan (statement) dalam do while akan dilakukan berulangkali selama syarat bernilai benar. Perbedaan  dengan while yaitu, pada do while statement perulangannya dilakukan terlebih dahulu baru dicek kondisinya. Akibat dari hal ini adalah dalam do while minimal terdapat sekali perulangan.[1]
Berikut syntax programnya:
inisialisasi_awal;
      do{
      statement;
      }while(syarat_perulangan);














2.3.  PERMASALAHAN
1.      Buatlah program untuk menentukan kelipatan  3 dan 4, 3 atau 4, atau tidak keduanya!
2.      Buatlah program untuk menampilkan bilangan berikut:
1 4 7 10 5 0 -5
3.      Buatlah program untuk menghitung usia berdasarkan tanggal lahir dan tanggal sekarang!

























2.4.  HASIL PERCOBAAN
PEMBAHASAN
1.    Berikut algoritma, pseudocode, flowchart, beserta source code dari permasalahan nomor 1:
a.    Algoritma
1.         Masukan nilai yang diinginkan.
2.         Jika nilai habis dibagi 3 dan habis dibagi 4, maka akan menampilkan nilai tersebut kelipatan 3 dan 4.
3.         Jika nilai habis dibagi 3, maka akan menampilkan nilai tersebut kelipatan 3.
4.         Jika nilai habis dibagi 4, maka akan menampilkan nilai tersebut kelipatan 4.
5.         Selain itu akan menampilkan nilai bukan kelipatan 3 atau 4.
6.         Jika anda ingin mengulang, input ‘y’ kemudian lakukan langkah 2.
b.    Pseudocode
Step 1: Start
Step2: Input bilangan is integer
Step 3: If bilangan mod 3←0 and bilangan mod 4←0 THEN
    Print bilangan merupakan kelipatan 3 dan 4
    End if
Step 4: If bilangan mod 3←0 THEN
    Print bilangan merupakan kelipatan 3
    End if
Step 5: If bilangan mod 4←0 THEN
     Print bilangan merupakan kelipatan 4
     End if
Step 7: Else
       Print bilangan bukan kelipatan 3 dan 4
Step 8: Back to step 2
Step 9: End


c.    Flowchart
Gambar 2.1 Flowchart permasalahan 1
d.   Source code
#include <iostream>
#include <stdlib>
#include <conio>
void main(){
int a;
char keputusan;
do{
clrscr();
cout<<"Masukkan nilai: ";
cin>>a;

if(a%3==0 && a%4==0){
     cout<<"Biliangan tersebut kelipatan 3 dan 4"<<endl;
   }
else if(a%3==0){
     cout<<"Bilangan tersebut kelipatan 3"<<endl;}
else if(a%4==0){
     cout<<"Bilangan tersebut kelipatan 4"<<endl;}
else{
     cout<<"Bilangan tersebut bukan kelipatan 3 dan 4"<<endl;}

   cout<<"Apakah anda ingin mengulang (y/n)?";
   cin>>keputusan;

     }while(keputusan=='y');

system("pause");
}

Screenshot (8)
Gambar 2.2 Tampilan program permasalahan 1
2.    Berikut algoritma, pseudocode, flowchart, beserta source code dari permasalahan nomor 2:
a.    Algoritma
1.      Masukkan variabel a, i dengan a dan i diberi nilai 1.
2.      Cetak nilai a.
3.      Lakukan perulangan dari variabel i sebanyak 7 kali.
4.      Jika nilai i lebih kecil dari 4, hitung nilai a dengan rumus:
a=a+3.
5.      Cetak nilai a.
6.      Jika nilai i lebih besar atau sama dengan 4 hingga i lebih kecil dari 7, hitung nilai a dengan rumus:
a=a-5.
7.      Cetak nilai a.
b.    Pseudocode
Step 1: Start
Step 2: Input a←1, i←1 are integer
Step 3: Print a
Step 3: For i←1; i less than or equal to 7; i++ DO
Step 4: If i less than 4 THEN
            a←a+3
    End if
Step 5: Print a
Step 6: If i more than 4 and i less than 7 THEN
            a←a-5
    End if
Step 8: Print a
Step 9: End
c.    Flowchart
Gambar 2.3 Flowchart permasalahan 2
d.   Source code
#include <iostream>
#include <stdlib>

void main(){
      int a,i;
   a=1;
   cout<<" "<<a;
   for(i=1;i<=7;i++){
      cout<<" ";

      if(i<4){
            a+=3;
         cout<<" "<<a;
      }

      if(i>=4 && i<7){
            a-=5;
         cout<<" "<<a;
      }
   }
   cout<<endl;
   system("pause");
}

Gambar 2.4 Tampilan program permasalahan 2
3.    Berikut algoritma, pseudocode, flowchart, beserta source code dari permasalahan nomor 3:
a.    Algoritma  
1.    Mendeklarasikan variabel h1, b1, t1, h2, b2, t2, hari, bulan, dan tahun.
2.    Masukkan nilai dari variabel h1, b1, t1.
3.    Masukkan nilai dari variabel h2, b2, t2.
4.    Jika h2 lebih kecil dari h1
b2=b2-1
h2=h2+30.
5.    Jika b2 lebih kecil dari b1
t2=t2-1
b2=b2+12.
6.    Hitung umur dengan rumus:
hari = h2-h1
bulan = b2-b1
tahun = t2-t1.
7.    Cetak nilai hari, bulan, dan tahun.
8.    Jika anda ingin mengulang, input ‘y’ kemudian lakukan langkah 3.
b.    Pseudocode
Step 1: Start
Step 2: h1, b1, t1, h2, b2, t2, hari, bulan, tahun are integer
Step 3: Input h1, b1, t1
Step 4: Input h2, b2, t2
Step 5: If h2 less than h1 THEN
             b2←b2-1
             h2←h2+30
     End if
Step 6: If b2 less than b1 THEN
             t2←t2-1
             b2←b2+12
End if
Step 7: hari←h2-h1
            bulan←b2-b1
            tahun←t2-t1
Step 8: Print hari, bulan, tahun
Step 9: Back to step 3
Step 10: End
c.    Flowchart
Gambar 2.5 Flowchart permasalahan 3


d.   Source code
#include <iostream>
#include <stdlib>
#include <conio>
void main()
{
      int h1,b1,t1,h2,b2,t2,hari, bulan, tahun;
   char a='y';
   while(a=='y'){
   cout<<"masukkan tanggal lahir = ";
   cin>>h1;
   cout<<"masukkan bulan lahir = ";
   cin>>b1;
   cout<<"masukkan tahun lahir = ";
   cin>>t1;

   cout<<endl;
   cout<<"masukkan tanggal sekarang = ";
   cin>>h2;
   cout<<"masukkan bulan sekarang = ";
   cin>>b2;
   cout<<"masukkan tahun sekarang = ";
   cin>>t2;

   if (h2<h1)
   {
      b2-=1;
      h2+=30;
   }
   if (b2<b1)
   {
      t2-=1;
      b2+=12;
   }

   hari = h2-h1;
   bulan = b2-b1;
   tahun = t2-t1;

   cout<<"hari = "<<hari<<endl;
   cout<<"bulan = "<<bulan<<endl;
   cout<<"tahun = "<<tahun<<endl;
   cout<<"Apakah anda ingin mengulang(y/n)?";
   cin>>a;
   clrscr();
   }
   system("pause");
}

Gambar 2.6 Tampilan program permasalahan 3
























2.5.  ANALISIS DATA
1.    Analisa dari permasalahan 1:
int a;
char keputusan;
Ø  Pendeklarasian variabel ”a” bertipe integer.
Ø  Pendeklarasian variabel ”keputusan” bertipe character.
do{
clrscr();
cout<<"Masukkan nilai: ";
cin>>a;
Ø  Perintah do{ di atas merupakan proses perulangan yang akan dilakukan sebanyak satu kali sebelum melakukan pengecekan kondisi.
Ø  clrscr(); merpakan perintah untk membersihkan layar dari perintah sebelumnya.
Ø  cout<<"Masukkan nilai: "; digunakan untuk menampilkan kata” masukan nilai”.
Ø  cin>>a; digunakan untuk meng-input-kan data.
if(a%3==0 && a%4==0){
     cout<<"Biliangan tersebut kelipatan 3 dan 4"<<endl;
Pada baris pertama terdapat if(a%3==0 && a%4==0).Bagian ini digunakan untuk pemeriksaan kondisi.Dimana pada  sintaks di atas terlihat, jika kondisi a modulus 3==0 dan a modulus 4==0,maka  bilangan tersebut bilangan kelipatan 3 dan 4.
else if(a%4==0){
      cout<<"Bilangan tersebut kelipatan 4"<<endl;}
Pada kondisi ini, jika nilai a modulus 4 ==0 maka bilangan yang akan ditampilkan adalah bilangan kelipatan 4.
}while(keputusan=='y');
system("puuse");
}
Ø while(keputusan=='y'); merupakan proses pengecekan kondisi.
Ø system("pause"); perintah ini digunakan untuk menahan suatu program.
Ø Tanda tutup kurawal “}” ini digunakan untuk mengakhiri program.
2.    Analisa dari permasalahan 2:
   a=1;
   cout<<" "<<a;
   for(i=1;i<=7;i++){
      cout<<" ";
Ø a= 1; merupakan insialisasi awal dari program yang akan dibuat.
Ø cout<<" "<<a; untuk menampilkan a pada output-nya.
Ø for(i=1;i<=7;i++){fungsi perulangan dimna nilai awal i=1 dan nilai akhir i<=7 dan terdapat increment atau fungsi penambahan.
      if(i<4){
            a+=3;
         cout<<" "<<a;
      }
         Pada baris pertama terdapat kondisi dimana jika nilai i<4,maka akan dilanjutkan pada  baris kedua yaitu proses penjumlahan denan rumus a+=3 yang akan dilakukan jika kodisi bernilai benar. Baris ketiga digunakan untuk menampilkan a. Sedangkan tanda tutup kurawal digunakan untuk menutup kondisi tersebut.
3.    Analisa dari permasalahan 3:
      int a,b,c,d,e,f,hari, tahun, bulan;
   cout<<"masukkan tanggal lahir = ";
   cin>>a;
Pada baris pertama terdapat int a,b,c,d,e,f,hari, tahun, bulan; merupakan pendeklarasian variabel. Pada baris kedua digunakan untuk menampilkan kalimat “masukkan tanggal lahir “ pada output-nya. Baris ketiga digunakan untuk meng-input-kan nilai a.
   if (e<b && d<a)       
   {
      f-=1;
      e-=1;
      e+=12;
      d+=30;
      }
if (e<b && d<a) jika kondisi didalam fungsi if bernilai benar maka akan dilakukan perintah dibawahnya yaitu f-=1; e-=1; e+=12; d+=30;.
   if (e<b)
   {
      f-=1;
      e+=12;
    }
Jika kondisi dalam fungsi if (e<b)bernilai benar maka program akan melakukan perintah yang terdapat dalam fungsi if tersebut. Yaitu f-=1; e+=12;.
   if (d<a)
     {
      e-=1;
      d+=30;
      }
Jika kondisi dalam fungsi if (d<a)bernilai benar maka program akan melakukan perintah yang terdapat dalam fungsi if tersebut. Yaitu e-=1; d+=30;.
hari = d-a;
   bulan = e-b;
   tahun = f-c;
Jika semua pengecekan kondisi telah dilakukan maka instruksi di atas akan dilakukan untuk mencari hasil yang diinginkan oleh programmer.
























2.6.  KESIMPULAN
Dari permasalahan diatas dapat diambil kesimpulan sebagai  berikut       :
1.      Dapat mengetahui perbedaan fungsi antara while, do-while dan for.While digunakan apabila dalam program tersebut belum diketahui berapa jumlah perulangan yang akan dilakukan. Do-while melakukan perulangan terlebih dahulu,baru melakukan pengecekan kondisi. For digunakan apabila program sudah mengetahui jumlah perulangan yang akan dilakukan.
2.      Mengunakan intruksi for apabila program sudah diketahui berapa kali perulangan yang akan dilkaukan.
3.      Dapat menggunakan statement control  pada program tertentu, karena masing masing statementcontrol seperti if,if else,if else bersarang dan switch case memiliki fungsi yang berbeda beda.




















DAFTAR PUSTAKA
[1] Dewanto, Adi. 2008. Bahasa Pemrograman. Jakarta: Departemen Pendidikan Nasional.
[2] Rachmat, Antonius C. 2010. Algorima dan Pemrograman dengan Bahasa C. Yogyakarta: Andi Offset.
























TUGAS 1
1.    Membuat program permasalahan jurnal nomor 2 menggunakan statement looping while.
Source code:
#include <iostream.h>
#include <stdlib.h>

void main(){
      int a,i;
   a=1;
   cout<<a;
   while(i<=7)
   {
      cout<<ends;

      if(i<3)
      {
            a+=3;
         cout<<a;
      }

      if(i>=3 && i<6)
      {
            a-=5;
         cout<<a;
      }
   i++;
   }
   cout<<endl;
   system("pause");
}

Screenshot (9)
GambaSr 2.7 Tampilan program tugas 1


TUGAS II
1.      Membuat segitiga sama kaki menggunakan simbol bintang (*).
·         Syntax
#include <iostream.h>
#include <conio.h>
main()
{
int t=10,s,b,c;
cout<<"Segitiga Sama Kaki"<<endl;


for(s=t;s>=0;s--){
for(b=s;b>=0;b--){
cout<<" ";
}
 for(c=1;c<=t-s;c++){
 cout<<"*";
 }
 for(c=1;c<t-s;c++){
 cout<<"*";
 }
 cout<<endl;
 }
getch();
}
·         Hasil run dari syntax diatas
TUGAS NOMER 2.PNG
Gambar 2.8 Hasil run dari syntax diatas






TUGAS III
1.      Membuat program membuat menu
a.                   Faktorial
b.                   Bilangan ganjil genap
c.                   Menentukan bilangan biner
·         Syntax
#include <iostream.h>
#include <stdlib.h>

main ()
  {
int opsi;
cout<<"Program yang akan di jalankan"<<endl;
cout<<"no 1. FAKTORIAL"<<endl;
cout<<"no 2. BILANGAN GANJIL GENAP"<<endl;
cout<<"no 3. MENENTUKAN BINER"<<endl;
cout<<"masukkan pilihan anda"<<endl;
cin>>opsi;
switch (opsi)
{  int n,hasil,bil,a;

case 1:
      cout<<"\n Masukkan NIlai yang Difaktorialkan= ";
       cin>>n;
       hasil=1;
       for(bil=n; bil>=1; bil--)
             {
       hasil=hasil*bil;
             }
cout<<"Hasil Faktorial dari "<<n<<" adalah "<<hasil<<"\n";

break;

case 2:
       cout<<"masukkan nilai = ";
       cin>>a;
         if (a % 2 == 1 )
         cout<<"angka yang anda masukkan adalah bilangan GANJIL";
         else
            cout<<"angka yang anda masukkan adalah bilangan GENAP";
            cout<<endl;
break ;

case 3:
      cout<<" Masukan Nilai = ";
            cin>>a;
            cout<<" Nilai Binernya adalah = ";
                  while (a>=1)
               {
          n=a%2;
      cout<<ends<<n;
          a=a/2;
            }
            cout<<endl<<endl;
          break;
       default:
            cout<<"MOHON TELITI LAGIS PAS MEMASUKKAN NOMER PILIHAN ANDA"<<endl;

             }
system ("pause");
}

TUGAS MODUL 2 A.PNG
Gambar 2.9 hasil run case 1
TUGAS MODUL 2 B.PNG
Gambar 2.10 hasil run case 2
TUGAS MODUL 2 C.PNG
Gambar 2.11 hasil run case 3