Rabu, 25 April 2012

Pert. 6 PROSES PERULANGAN

Mengulang suatu proses merupakan tindakan yang banyak dijumpai dalam pemrograman. Pada semua bahasa pemrograman, pengulangan proses ditangani dengan suatu mekanisme yang disebut loop. Dengan menggunakan loop, suatu proses yang berulang misalnya menampilkan tulisan yang sama seratus kali pada layar dapat diimpelementasikan dengan kode program yang pendek.
Pada pemrograman proses perulangan dapat dibagi menjadi 2 bagian utama yaitu :
  1. Perulangan yang sudah di ketahui jumlah perulangannya sebelum perulangan tersebut di lakukan.
  2. Perulangan yang belum di ketahui jumlah perulangannya sebelum perulangan tersebut di lakukan.  Dalam hal ini dapat dibagi menjadi dua bagian yaitu: 
  1. kondisi perulangan diperiksa diawal perulangan.
  2. kondisi perulangan diperiksa diakhir perulangan.
Pernyataan For
Pernyataan for digunakan untuk melakukan looping. Pada umumnya
looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya.
Selama kondisi terpenuhi, maka pernyataan akan terus dieksekusi.

• Inisialisasi merupakan pemberian nilai awal.
• Syarat Pengulangan : memegang kontrol terhadap pengulangan, karena
   bagian ini yang akan menentukan suatu perulangan diteruskan atau dihentikan.
• Pengubah nilai pencacah merupakan statement control untuk perulangan.

Umumnya mengatur kenaikan atau penurunan nilai pencacah. Bila pernyataan didalam for lebih dari satu maka pernyataan-pernyataan tersebut harus diletakan didalam tanda kurung.



Pernyataan Nested-For
Perulangan bertumpuk secara sederhana dapat diartikan : terdapat satu atau lebih loop di dalam sebuah loop. Banyaknya tingkatan perulangan, tergantung dari kebutuhan. Biasanya, nested loops digunakan untuk membuat aplikasi matematika yang menggunakan baris dan kolom. Loop luar, biasanya digunakan untuk mendefinisikan baris. Sedangkan loop dalam, digunakan untuk mendefinisikan kolom.
Bentuk umum pernyataan nested-for yaitu :




Perulangan Tidak Berhingga
Perulangan tak berhingga merupakan perulangan ( loop ) yang tak pernah berhenti atau mengulang terus, hal ini sering terjadi disebabkan adanya kesalahan penanganan kondisi yang dipakai untuk keluar dari loop.
Seharusnya penulisan yang benar berupa : bil - - akan tetapi yang ditulis adalah : bil ++ karena kondisi bil >= 1 selalu bernilai benar ( karena bil bernilai 6), maka pernyataan printf("%d", bil); akan terus dijalankan.
Jika terjadi hal semacam ini, untuk menghentikan proses yang terus menerus dengan menekan tombol 
CTRL- PAUSE atau CTRL – BREAK.
Pernyataan Goto
Pernyataan goto merupakan instruksi untuk mengarahkan eksekusi program ke pernyataan yang diawali dengan suatu label. Label merupakan suatu pengenal (identifier) yang diikuti dengan tanda titik dua ( : ). Bentuk pemakaian goto sebagai berikut :
Pernyataan While
perulangan yang digunakan adalah perulangan while. Perulangan While Digunakan untuk membuat proses perulangan dimana akan memeriksa dahulu kondisi yang disyaratkan, bila kondisi benar maka akan dilakukan proses perulangan dan bila kondisi salah maka loop tidak dikerjakan. Kesalahan penentuan kondisi akan menyebabkan proses perulangan tak terhingga.
Bentuk umum perulangan while, sebagai berikut ;



Bentuk umum perulangan while, dengan lebih dari perintah / pernyataan, sebagai berikut :

Pernyataan do-While
Perulangan do-while hampir sama dengan pernyataan while, perbedaannya adalah kondisi diletakkan diakhir dari proses perulangan, sehingga proses dikerjakan dulu kemudian baru diperiksa kondisinya, sehingga paling tidak proses perulangan dilakukan sekali. Sama halnya dengan proses perulangan diatas bahwa kesalahan dalam menentukan kondisi menyebabkan proses perulangan yang tak terhingga, yang menyebabkan komputer “hang” (macet).
Bentuk umum perulangan do - while, sebagai berikut : 

Bentuk umum perulangan do - while, dengan lebih dari perintah / pernyataan, sebagai berikut : 
 Pernyataan Break
Pernyataan break telah dibahas pada pernyataan pengambilan keputusan switch. Pernyataan break ini berfungsi untuk keluar dari struktur switch. Selain itu pernyataan break berfungsi keluar dari perulangan ( for, while dan do-while ). Jika pernyataan break dikerjakan, maka eksekusi akan dilanjutkan ke pernyataan yang terletak sesudah akhir dari badan perulangan ( loop ).

Pernyataan Continue
Pernyataan continue digunakan untuk mengarahkan eksekusi ke iterasi (proses) berikutnya pada loop yang sama, dengan kata lain mengembalikan proses yang sedang dilaksanakan ke-awal loop lagi, tanpa menjalankan sisa perintah dalam loop tersebut.
 


Tugas C++ Hal. 90

1.Buatlah program untuk menghitung 10 deret bilangan genap dengan hasilnya:
   2+4+6+8+10+12+14+16+18+20=110

  Jawab:
         #include<stdio.h>
         #include<conio.h>
         #include<iostream.h>
         main()
        {
         int a=2,b=20,n;
            for(a=a;a<=b;a+=2)
           {
               cout<<a;
               if(a<b)
              {
                 cout<<"+";
              }
           }
           cout<<"=";
           n=b/2;
           n=n*(n+1);
           cout<<n;
           getch();
        }
Hasil keluaran


2.Buatlah program untuk menghitung 10 deret bilangan ganjil dengan hasilnya:
   1+3+5+7+9+11+13+15+17+19=100
   
Jawab:
           #include<stdio.h>
           #include<conio.h>
           #include<iostream.h>
           main()
          {
           int a=1,b=19,n;
           for(a=a;a<=b;a+=2)
             {
                cout<<a;
                if(a<b)
                  {
                     cout<<"+";
                  }
             }
             cout<<"=";
             n=(b+1)/2;
             n=n*n;
             cout<<n;
             getch();
          }

Hasil Keluaran

 3. Bulatlah program untuk menghitung penjumlahan deret bilangan genap
membentuk segitiga siku dengan hasilnya :
2 = 2
2 + 4 = 6
2 + 4 + 6 = 12
2 + 4 + 6 + 8 = 20
2 + 4 + 6 + 8 + 10 = 30

 jawaban :
#include<iostream.h>
#include<stdio.h>
#include<conio.h>

main()
{
int A,i,j,jum;
cout<<"input :";cin>>A;
for(i=2;i<=A;i+=2)
{
    jum=0;
   for(j=2;j<=i;j+=2)
       {
          if(j!=2)
         cout<<"+";
         cout<<j;
         jum+=j;
      }
   cout<<"="<<jum<<endl;
}
cout<<endl;
getch();
}

 Hasil keluaran 





4. Bulatlah program untuk menghitung perkalian deret bilangan ganjil
membentuk segitiga siku dengan hasilnya :
1 = 1
1 * 3 = 3
1 * 3 * 5 = 15
1 * 3 * 5 * 7 = 105
1 * 3 * 5 * 7 * 9 = 945

jawaban : 

#include<iostream.h>
#include<stdio.h>
#include<conio.h>

main()
{
int A,i,j,jum;
cout<<"input :";cin>>A;
for(i=1;i<=A;i+=2)
{
 jum=1;
 for(j=1;j<=i;j+=2)
 {
 if(j!=1)
 cout<<" * ";
 cout<<j;
 jum*=j;
 }
cout<<"= "<<jum<<endl;
}
cout<<endl;
getch();
}
 
 Hasil keluaran 


 

Rabu, 18 April 2012

Tugas C++ hal. 78 no. 3

3. PT. DINGIN DAMAI, memberi gaji pokok kepada karyawan kontraknya sebesar Rp. 300,000 perbulan, dengan memperoleh tunjangan-tunjangan sebagai berikut :

* Tunjangan Jabatan
golongan 1 persentase 5%
golongan 2 persentase 10%
golongan 3 persentase 15%
Jika seorang karyawan tersebut dengan golongan 3, maka mendapatkan tunjangan sebesar 15% * Rp. 300,000
• Tunjangan Pendidikan
tingkat pendidikan SMA presentase 2.5%
tingkat pendidikan D1 presentase 5%
tingkat pendidikan D3 presentase 20%
tingkat pendidikan S1 presentase 30%
Jika seorang karyawan tersebut dengan golongan 3, maka mendapatkan tunjangan sebesar 15% * Rp. 300,000

Honor Lembur
Jumlah jam kerja normal sebanyak 8 jam, Honor lembur diberikan jika jumlah jam kerja lebih dari 8 jam, maka kelebihan jam kerja tersebut dikalikan dengan Rp. 3500 untuk setiap kelebihan jam kerja karyawan tersebut.

Tampilan yang diinginkan sebagai berikut :

Layar Masukkan
PROGRAM HITUNG GAJI KARYAWAN
Nama Karyawan: ...
Golongan Jabatan : ...
Pendidikan : ...
Jumlah jam kerja : ...

Layar Keluaran

Karyawan yang bernama ……
Honor yang diterima

Tunjangan Jabatan Rp ...
Tunjangan Pendidikan Rp ...
Honor Lembur Rp .....
------------------------------------------------- +

Honor Lembur Rp ...


#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main ()
{
char nama[15],goljab,pend;
float holem=0,tunjab=0,tunjpend=0,total=0;
int gaji,jumjamker;

gaji=300000;

printf("\t\t\t PROGRAM HITUNG GAJI KARYAWAN \n");
puts("\t\t============================================\n");
cout<<"\n\nNama Karyawan\t\t:";cin>>nama;
printf("Golongan Jabatan\t:");cin>>goljab;
printf("Pendidikan\t\t:");cin>>pend;
printf("Jumlah Jam Kerja\t:");cin>>jumjamker;

switch(goljab)
    {
        case '1':
            tunjab = 0.05 * gaji;
            break;
        case '2':
            tunjab = 0.1 * gaji;
            break;
        case '3':
            tunjab = 0.15 * gaji;
            break;
        default    :
            tunjab = 0;
            break;
    }

switch(pend)
    {
        case 'a':
            tunjpend = 0.025 * gaji;
            break;
        case 'b':
            tunjpend = 0.05 * gaji;
            break;
        case 'c':
            tunjpend = 0.2 * gaji;
            break;
        case 'd':
            tunjpend = 0.3 * gaji;
            break;
        default    :
            tunjpend = 0;
            break;
    }

    if(jumjamker < 8 || jumjamker > 24)
    {
        holem = 0;
    }
    else
    {
        holem = (jumjamker - 8) * 3500;
    }

    cout<<"\n\nKaryawan yang bernama  "<<nama<<endl;
    cout<<"\nHonor yang diterima    "<<endl;
    cout<<"\n\tTunjangan Jabatan         Rp. "<<tunjab<<endl;
    cout<<"\n\tTunjangan Pendidikan         Rp. "<<tunjpend<<endl;
    cout<<"\n\tHonor Lembur             Rp. "<<holem<<endl;
       cout<<"\n\t\t\t\t\t-----------+";
    total = tunjab + tunjpend + holem;
    cout<<"\n\tTotal                Rp. "<<total<<endl;

getch();
}

contoh hasil:



Pert. 5 Operasi Penyeleksian Kondisi

Pernyataan percabangan digunakan untuk memecahkan persoalan untuk mengambil keputusan diantara sekian pernyataan yang ada. untuk keperluan pengambilan keputusan, Borland C++ menyediakan beberapa perintah antara lain.

1. Pernyataan IF
pernyataan if mempunyai pengertian, "jika kondisi bernilai benar,maka perintah akan dikerjakan dan jika tidak memenuhi syarat maka akan diabaikan".
Diagram alir IF
Bentuk umum dari pernyataan if else :


Perintah 1 dan perintah 2 dapat berupa sebuah pernyataan tunggal , pernyataan majemuk atau pernyataan kosong. jika pemakaian if-else diikuti dengan pernyataan majemuk, maka bentuk penulisanyya sebagai berikut :





2. Pernyataan NESTED IF
Nested if merupakan pernyataan if beradadi dalam pernyataan if yang lainnya (if bersarang).
Bentuk penulisan nested if adala sebagai berikut :


 3. Pernyataan IF-ELSE Majemuk
Bentuk if-else bertingkat sebenarnya serupa dengan nested if, keuntungan penggunaan if-else bertingkat dibandingkan nested-if adalah bentuk penulisan yang lebih sederhana.
Bentuk umum penulisanya adalah :







Selasa, 10 April 2012

Pert. 4 Operator Borland C++

Operator merupakan simbol atau karakter yang biasa dilibatkan dalam program, yang digunakan untuk melakukan sesuatu operasi atau manipulasi, seperti penjumlahan, pengurangan dan lain-lain. Operator mempunyai sifat sebagai berikut: 

• Unary
Sifat Unary pada operator adalah hanya melibatkan sebuah operand pada suatu operasi aritmatik
Contoh : -5 

• Binary
Sifat Binary pada operator adalah melibatkan dua buah operand pada suatu operasi aritmatik
Contoh : 4+8 

• Ternary
Sifat Tenary pada operator adalah melibatkan tiga buah operand pada suatu operasi aritmatik
Contoh :
(10 %3) + 4 + 2

 1. Operator Aritmatika
Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah:
Tabel Operator Aritmatika 



Operator yang tergolong sebagai operator Unary, adalah:
Tabel Operator Unary

 a. Ekspresi Aritmatika
Bentuk penulisan ekspresi aritmatika dikaitkan dengan pernyataan pemberi nilai. Bentuk Umum :
• Variabel, dikenal dengan sebutan LValue (Left Value)
• Ekspresi Aritmatika dikenal dengan sebutan RValue (Right Value)
• Tanda “ = “, dikenal dengan sebagai Operator Pemberi Nilai (Assignment Operator). 
LValue harus selalu berupa variabel tunggal. Bila LValue bukan berupa variabel, maka akan tampil pesan kesalahan LValue
required in function … RValue dapat berupa konstanta, variabel lain maupun suatu ekspresi atau rumus aritmatika.

b. Hierarki Operator Aritmatika.
Didalam suatu ekspresi aritmatika, selalu menjumpai beberapa operator aritmatika yang berbeda yang dapat digunakan secara bersamaan. Urutan operator aritmatika sebagai berikut :
Tabel Hierarki Operator Aritmatika 
Contoh A=8+2*3/6
Langkah perhitungannya :
A=8+6/6 . (6/6=1)
A=8+1
A=9
Tingkatan operator ini dapat diabaikan dengan penggunaan tanda kurung “(“ dan “)”.
Contoh :
A = (8 + 2) * 3/ 6
Langkah perhitungannya :
A = 10 * 3 / 6
A = 30 / 6
A=5

2. Operator Pemberi Nilai Aritmatika
Sebelumnya kita telah mengenal operator pemberi nilai (assignment operator) yaitu tanda “ = “. Sebagai contoh penggunaan operator pemberi nilai A= A+1 Dari penulisan ekspresi diatas, Borland C++ dapat menyederhanakan menjadi A += 1
Notasi “ += “ ini dikenal dengan operator pemberi nilai aritmatika. Ada beberapa operator pemberi nilai aritmatka diantaranya:
 Tabel Operator Pemberi Nilai Aritmatika


3. Operator Penambah dan Pengurang
Masih berkaitan dengan operator pemberi nilai, Borland C++ menyediakan operator penambah dan pengurang. Dari contoh penulisan operator pemberi nilai sebagai penyederhanaannya dapat digunakan operator penambah dan pengurang.
Tabel Operator Penambah dan Pengurang 
 Keterangan : 1. Penambahan: menambahkan 1 ke nilai variable, prefix (++A) atau postfix (A ++)
2. Pengurangan: mengurangkan 1 ke nilai variabel, prefix (--A) atau postfix (A --) Kedua bentuk penulisan operator ini mempunyai arti yang berbeda.
Jika diletakan didepan variabel, maka proses penambahan atau pengurangan akan dilakukan sesaat sebelum atau langsung pada saat menjumpai ekspresi ini, sehingga nilai variabel tadi akan langsung berubah begitu ekspresi ini ditemukan, sedangkan
Jika diletakan dibelakang variabel, maka proses penambahan atau pengurangan akan dilakukan setelah ekspresi ini dijumpai atau nilai variabel akan tetap pada saat ekspresi ini ditemukan. 

 4. Operator Relasi
Operator Relasi digunakan untuk membandingkan dua buah nilai. Hasil perbandingan operator ini menghasilkan nilai numerik 1 (True) atau 0 (False).
 Tabel Operator Relasi 
 5. Operator Logika
Operator Relasi digunakan untuk menghubungkan dua buah operasi relasi menjadi sebuah ungkapan kondisi. Hasil dari operator logika ini menghasilkan nilai numerik 1 (True) atau 0 (False).
 Tabel Operator Relasi 

a. Operator Logika AND

Operator logika AND digunakan untuk menghubungkan dua atau lebih ekspresi relasi, akan dianggap BENAR, bila semua ekspresi relasi yang dihubungkan bernilai BENAR.
Tabel Logika And 

b. Operator Logika OR
Operator logika OR digunakan untuk menghubungkan dua atau lebih ekspresi relasi, akan dianggap BENAR, bila salah satu ekspresi relasi yang dihubungkan bernilai BENAR dan bila semua ekspresi relasi yang dihubungkan bernilai SALAH, maka akan bernilai SALAH.
Tabel Logika Or
c. Operator Logika NOT
Operator logika NOT akan memberikan nilai kebalikkan dari ekspresi yang
disebutkan. Jika nilai yang disebutkan bernilai BENAR maka akan menghasilkan
nilai SALAH, begitu pula sebaliknya.
Contoh :
Ekspresi Relasi . A + 4< 10
Penggunaan Operator Logika NOT diatas menjadi;
!(A+4 < 10)
Jika nilai A = 3; maka ekspresi tersebut mempunyai nilai:
• Ekspresi Relasi-1 . A + 4 < 10 . 3 + 4 < 10 . BENAR Dilihat ekspresi diatas salah satu ekspresi tersebut mempunyai nilai BENAR dan jika digunakan operator logika NOT, maka ekspresi tersebut akan bernilai SALAH
!(A+4 < 10) . !(BENAR) = SALAH = 0

6. Operator Bitwise
Operator Bitwise digunakan untuk memanipulasi data dalam bentuk bit. Borland C++ menyediakan enam buah operator bitwise.
 Tabel Operator Bitiwise

a. Operator Bitwise << (Shift Left)
Operator Bitwise Shift Left digunakan untuk menggeser sejumlah bit kekiri.
Contoh :
0000000011001001 = 201
//////// . digeser 1 bit ke kiri
0000000110010010 = 402
Dibagian kanan disisipkan 0, sebanyak
bit yang digeser 

b. Operator Bitwise>>(Shift Right) 
Operator Bitwise Shift Right digunakan untuk menggeser sejumlah bit kanan.
Contoh :
0000000011001001 = 201
\\\\\\\\ . digeser 1 bit ke kanan
0000000001100100 = 100
Dibagian kanan disisipkan 0, sebanyak
bit yang digeser 

c. Operator Bitwise & (And)
Operator Bitwise & ( And ) digunakan untuk membandingkan bit dari dua
operand. Akan bernilai benar (1) jika semua operand yang digabungkan bernilai
benar (1). Berikut dapat dilihat ilustrasi untuk membandingkan bit dari 2 operand.
Tabel Operator Bitiwise And 

d. Operator Bitwise | ( Or )
Operator Bitwise | ( Or ) digunakan untuk membandingkan bit dari dua operand. Akan bernilai benar jika ada salah satu operand yang digabungkan ada yang bernilai benar (1). Berikut dapat dilihat ilustrasi untuk membandingkan bit dari 2 operand.
Tabel Operator Bitiwise Or 
 Bit Operand 1 Bit Operand 2 Hasil Operand
0 0 0
0 1 1
1 0 1
1 1 1
Contoh :
11001001 = 201
01100100 = 100
OR
11101101 = 237 

e. Operator Bitwise ^ ( eXclusive Or )
Operator Bitwise ^ ( XOr ) digunakan untuk membandingkan bit dari dua operand. Akan bernilai benar (1) jika dari dua bit yang dibandingkan hanya sebuah bernilai benar (1). Berikut dapat dilihat ilustrasi untuk membandingkan bit dari 2 operand.
Tabel Operator Bitiwise XOr Bit 

0 0 0
0 1 1
1 0 1
1 1 0
Contoh :
11001001 = 201
01100100 = 100
XOR
10101101 = 137 

Operator Bitwise ~ ( Not )
Operator Bitwise ~ ( Not ) digunakan membalik nilai bit dari suatu operand.
Berikut dapat dilihat ilustrasi untuk membandingkan bit dari 2 operand.
 Tabel Operator Bitiwise Not 
 Bit Operand Hasil
0 1
1 0
Contoh :
00001000 = 8
||||||||
11110111 = 247 = -9











 

Rabu, 04 April 2012

Pertemuan 3 : Perintah Masukan C++

I. Perintah Masukan
Perintah standar input yang disediakan oleh Borland C++, diantaranya :
  • scanf()
  • gets()
  • cout()
  • getch()
  • getche()
a. scanf()
Fungsi ini digunakan untuk memasukan berbagai jenis data. Bentuk umum dari scanf() adalah :

scanf("penentu format", &nama-variabel); 

Simbol & merupakan pointer yang digunakn untuk menunjuk ke alamat variabel memori yang dituju.

Penentu format scanf()

b. cin
Merupakan sebuah objek didalam C++ digunakan untuk memasukan suatu data. Untuk menggunakan fungsi cin ini harus menyertakan file header iostream.h.

c. gets()
Digunakan untuk memasukan data string. Bentuk umum dari fungsi ini adalah :

gets(nama-variabel-array);

Perbedaan antara scanf() dan gets()


 d. getch()
Fungsi getch() (get character and echo) dipakai untuk membaca sebuah karakter dengan sifat karakter yang dimasukan tidak perlu diakhiri dengan menekan tombol enter, dan karakter yang dimasukan tidak akan ditampilkan dilayar. File header yang harus disertakan adalah conio.h.

e. getche()
Fungsi ini dipakai untuk membaca sebuah karakter dengan sifat karakter yang dimasukan tidak perlu diakhiri dengan menekan tombol enter, dan karakter yang dimasukan ditampilkan dilayar. File header yang harus disertakan adalah conio.h.