Rabu, 16 November 2016

Percabangan dan Perulangan

Percabangan dan Perulangan 
Akademi Komunitas Negeri Kajen


A. Percabangan dalam C++
Dalam C++ percabangan digunakan untuk memecahkan persoalan dan mengambil keputusan dari beberapa pernyataan. Ada dua jenis percabangan yang bisa kita gunakan dalam pemrograman C++, yaitu sebagai berikut :
1. If
2. Switch
Dalam Percabangan baik menggunakan If maupun Switch, pernyataan (statemen) yang terdapat dalam sebuah block percabangan akan dieksekusi hanya jika kondisi yang didefinisikan terpenuhi (Bernialai Benar), Arinya jika kondisi tidak terpenuhi (bernilai salah) maka pernyataan (statemen)tersebut tidak akan dieksekusi.

1.      If
Struktur If dapat dibagi menjadi:
¤  Struktur If satu kondisi
¤  Struktur if dua kondisi
¤  Struktur if tiga kondisi atau lebih

* Struktur If satu kondisi
Struktur ini merupakan struktur yang paling sederhana karena hanya melibatkan satu buah kondisi yang akan diperiksa
Bentuk umum
//jika hanya terdapat satu statemen, dapat ditulis sebagai berikut
if (kondisi) Statemen;
            atau
if (kondisi)
            Statemen;
//jika terdapat lebih dari satu statemen
if (kondisi) {
            Statemen1;
            Statemen2;
            …
}
* Struktur If dua kondisi
Struktur percabangan jenis ini sedikit lebih komplek jika dibandingkan dengan struktur yang hanya memiliki satu buah kondisi, meskipun sebenarnya konsepnya sangat sederhana, yaitu pada struktur jenis ini terdapat sebuah statemen khusus yang berguna untuk mengatasi kejadian apabila kondisi yang disefinisikan tersebut tidak terpenuhi (bernilai salah)
Bentuk umum
if (kondisi) {
            //Statemen jika kondisi terpenuhi
            Statemen1;
            …
}
else {
            //Statemen jika kondisi tidak terpenuhi
            Statemen2;
            …
}

* Struktur If tiga kondisi
Percabangan jenis ini merupakan perluasan dari struktur percabangan if sebelumnya, yaitu dengan menyisipkan (menambahkan) satu atau lebih kondisi didalamnya
Bentuk umum
if (kondisi1) {
            Statemen1; //merupakan statemen jika kondisi1 benar
}
else if (kondisi2) {
            Statemen2; //merupakan statemen jika kondisi2 benar
}
else if (kondisi3) {
            Statemen3; //merupakan statemen jika kondisi3 benar
}
else {
            StatemenN; //merupakan statemen jika tidak ada kondisi yang benar
}

* If  Bersarang
Percabangan jenis ini merupakan perluasan dari struktur percabangan if sebelumnya, yaitu dengan menyisipkan (menambahkan) satu atau lebih percabangan di sebuah percabangan
Bentuk umum
if (kondisi1) {
            Statemen1; //merupakan statemen jika kondisi1 benar
            if (kondisi1b) {
                        Statemen1b; //merupakan statemen jika kondisi1b benar}
            else {
                        Statemen1c; //merupakan statemen jika kondisi1b tidak benar}}
else if (kondisi2) {
            Statemen2; //merupakan statemen jika kondisi2 benar}
else {
            StatemenN; //merupakan statemen jika tidak ada kondisi yang benar}

2.      Switch
           Selain mengunakan if, c++ juga menawarkan kepada kita untuk dapat melakukan percabangan (pemilihan) menggunakan Switch
Bentuk umum
Switch (ekspresi){
           case nilai_konstan1:
                       Statemen1;
                       break;
           case nilai_konstan2:
                       Statemen2;
                       break;
           case nilai_konstanN:
                       StatemenN;
                       break;
           default:
                       StatemenAlternatif;
}

Penjelasan Bentuk umum
¤  Statemen break digunakan sebagai statemen peloncatan agar keluar dari switch
¤  Statemen default berguna untuk mengeksekusi statemen alternative yaitu jika niali yang kita masukkan ternyata tidak sesuai dengan nilai konstanta yang didefinisikan (dalam If menggunakan statemen “else”)
¤  Tipe data dari ekspresi di slide sebelumnya harus berupa tipe ordinal, seperti bilangan bulat dan karakter, selain tipe tersebut c++ tidak mengijinkan

B. Pengulangan dalam C++
Pengulangan adalah suatu proses yang melakukan statemen-statemen dalam sebuah program secara terus-menerus sampai terdapat kondisi untuk menghentikannya. Struktur pengulangan akan sangat membantu dalam efisiensi program.
Dalam C++ terdapat 3 jenis struktur pengulangan, yaitu :
¤  Struktur For
¤  Struktur While
¤  Struktur Do While

*Struktur For
Struktur pengulangan jenis ini biasanya digunakan untuk melakukan pengulangan yang telah diketahui banyaknya, pada umumnya perulangan for adalah pengulangan yang paling mudah dipahami.
Bentuk Umum dari struktur pengulangan For
//Untuk pengulangan yang sifatnya menaik (increment), pastikan nialai awal < kondisi saat berjalan
For(variabel=niali_awal; kondisi_saat_berjalan; variable++){
            Statemen_yang_akan_diulang;
}
//Untuk pengulangan yang sifatnya menurun (decrement), pastikan nialai awal > kondisi saat berjalan
For(variabel=niali_awal; kondisi_saat_berjalan; variable--){
            Statemen_yang_akan_diulang;
}

Contoh
#include <iostream>
using namespace std;
int main(){
            int i, deret;
            char h;
           
            cout<<"\t\t===== Program Deret Huruf =====\n\n";
            cout<<"Berapa banyak deret huruf yang akan ditampilkan : "; cin>>deret;
           
            for(i=1,h='a';i<=deret;i++,h++){
                        cout<<"\nDeret Huruf No "<<i<<"adalah huruf "<<h;
            }
           
            return 0;
}

*Struktur For Bersarang
Konsep For bersarang sebenarnya sederhana, yaitu dalam sebuah pengulangan terdapat pengulangan yang lainnya
Bentuk Umum dari struktur pengulangan For Bersarang
For(variabel1=niali_awal; kondisi_saat_berjalan; variable1++){
            For(variabel2=niali_awal; kondisi_saat_berjalan; variable2++){
                        For(variabel3=niali_awal; kondisi_saat_berjalan; variable3++){
                                    Statemen_yang_akan_diulang;
                        }
            }
}

* Struktur While
Struktur pengulangan jenis ini adalah pengulangan yang melakukan pemeriksaan kondisi di awal blok struktur (berbeda dengan Do-While). Kita tahu bahwa pengulangan hanya akan dilakukan jika kondisi yang didefinisikan di dalamnya terpenuhi (bernilai benar).
Hal ini berarti jika kondisi yang didefinisikan tidak terpenuhi (bernilai salah) maka statemen-statemen yang terdapat dalam blok pengulangan pun tidak akan pernah dieksekusi oleh program

Bentuk Umum dari struktur pengulangan while
while (kondisi) {
           Statemen_yang_akan_diulang;
}
//contoh while bersarang (konsep sama dengan For Bersarang)
while (kondisi) {
           while (kondisi) {
                        Statemen_yang_akan_diulang;
           }
}

Contoh Program dengan While
int main(){
           int i, deret;
           char h;
          
           cout<<"\t\t===== Program Deret Angka =====\n\n";
           cout<<"Berapa banyak deret Angka yang akan ditampilkan : "; cin>>deret;
          
           i=0;
           while (i<=deret) {
                       cout<<i<<" ";
                       i++; //statemen ini berguna untuk menaikkan nilai i  (i = i + 1)
           }
          
           cout<<"\n\n=== Deret Selesai Ditampilkan ===\n\n";
           return 0;
}

* Struktur Do-While
Berbeda dengan struktur While yang melakukan pemeriksaan kondisi di awal blok perulangan, pada struktur Do-While kondisi justru ditempatkan di bagian akhir, hal ini menyebabkan struktur perulangan ini pasti akan melakukan satu kali proses (eksekusi statemen) walaupun kondisi yang didefinisikan tidak terpenuhi (bernilai salah)
Bentuk Umum dari struktur pengulangan while
do {
           Statemen_yang_akan_diulang;
} while (kondisi)
//contoh Do-While bersarang (konsep sama dengan For Bersarang)
do {
           do {
                       Statemen_yang_akan_diulang;
           } while (kondisi)
} while (kondisi)

Contoh Program dengan Do-While
int main(){
           int i, deret;
           char h;
          
           cout<<"\t\t===== Program Deret Angka =====\n\n";
           cout<<"Berapa banyak deret Angka yang akan ditampilkan : "; cin>>deret;
          
           i=0;
           while (i<=deret) {
                       cout<<i<<" ";
                       i++; //statemen ini berguna untuk menaikkan nilai i  (i = i + 1)
           }
          
           cout<<"\n\n=== Deret Selesai Ditampilkan ===\n\n";
           return 0;
}

Komentar, Identifier, Tipe data, Input dan Output

Komentar, Identifier, Tipe data, Input dan Output
Akademi Komunitas Negeri Kajen

A.              Komentar
Komentar pada c++ dapat dilakukan dengan 2 cara,yaitu pertama,dengan tanda // dan diletakan sebelum komentar dan kedua dengan tanda /* yang ditutup dengan  */ .cara pertama digunakan jika komentar hanya terdiri dari satu baris,sedangkan cara kedua jika komentar lebih dari satu baris.
Contoh Komentar :
// komentar C++.cpp
/*pernyataan masuk ke dalam komentar
komentar ini menggunakan multi line dan di akhiri dengan tanda */
// masuk kedalam komentar hingga seterusnya dan hanya di baris ini
#include <conio.h>//pernyataan komentar seterusnya hanya di baris ini
#include <iostream.h>
void main ( ) {
   char pesan [ ] = “Selamat Datang di Belajar Cpp!” ;
   cout << pesan ;
   getch();
}

B.    Identifier
Identifier/nama dari variabel/konstanta pada c++ secara umum sama mengikuti aturan umum penamaan ,ada 1 tambahan yang cukup penting dalam pembuatan identifier pada c++ yaitu,bersifat case sensitif,yaitu :
-huruf besar dan huruf kecil berbeda
-tidak boleh menggunakan kata-kata simbol,seperti @,#,$,dll
-tidak boleh menggunakan kata kunci yg terdapat dalam c++,seperti break,return,dll
-nama identifier disesuaikan dengan kebutuhan
contoh,variabel dengan nma lama inap berbeda dengan lama_in .

    Ada 2 cara mendeklarasikan konstanta.
1. menggunakan preprocessor directive #define.
2. dengan menggunakan kata kunci const.

-contoh program. 
A.              Komentar
Komentar pada c++ dapat dilakukan dengan 2 cara,yaitu pertama,dengan tanda // dan diletakan sebelum komentar dan kedua dengan tanda /* yang ditutup dengan  */ .cara pertama digunakan jika komentar hanya terdiri dari satu baris,sedangkan cara kedua jika komentar lebih dari satu baris.
Contoh Komentar :
// komentar C++.cpp
/*pernyataan masuk ke dalam komentar
komentar ini menggunakan multi line dan di akhiri dengan tanda */
// masuk kedalam komentar hingga seterusnya dan hanya di baris ini
#include <conio.h>//pernyataan komentar seterusnya hanya di baris ini
#include <iostream.h>
void main ( ) {
   char pesan [ ] = “Selamat Datang di Belajar Cpp!” ;
   cout << pesan ;
   getch();
}

B.    Identifier
Identifier/nama dari variabel/konstanta pada c++ secara umum sama mengikuti aturan umum penamaan ,ada 1 tambahan yang cukup penting dalam pembuatan identifier pada c++ yaitu,bersifat case sensitif,yaitu :
-huruf besar dan huruf kecil berbeda
-tidak boleh menggunakan kata-kata simbol,seperti @,#,$,dll
-tidak boleh menggunakan kata kunci yg terdapat dalam c++,seperti break,return,dll
-nama identifier disesuaikan dengan kebutuhan
contoh,variabel dengan nma lama inap berbeda dengan lama_in .

    Ada 2 cara mendeklarasikan konstanta.
1. menggunakan preprocessor directive #define.
2. dengan menggunakan kata kunci const.

-contoh program. 

pada contoh diatas terdapat 2 constanta yaitu potongan dan harga_per_unit.
masing-masing dideklarasikan dengan cara yang berbeda.
-deklarasi variabel dilakukan dengan cara :
menyebutkan lebih dulu tipe data'a kemudian diikuti nama variabel'a.
misal : char nama;
           int    nilai ;
jika nama'a lebih dari 1 karakter maka variabel diberi jangkauan/[].
misal : char nama[20];

pada contoh program. ada beberapa variabel yang telah didefinisikan lebih dahulu yaitu jum_unit,harga_total,har_diskon,dan diskon,masing-masing dengan tipe datanya sendiri.
jika ada beberapa variabel yang memiliki tipe data yang sama,maka variabel2 tsb dapat digabungkan dalam 1 tipe data,dengan tanda pemisah(,).
misal :  char nama[20],alamat[50],status[10];
atau pada contoh program:
            float harga_total,har_diskon,diskon;

jadi,suatu program harus dideklarasikan secara lengkap seluruh variabelnya dan harus teliti,kalau tidak, program tidak akan pernah bisa di eksekusi.

C.   Tipe Data
Sebuah program akan dieksekusi apabila memiliki perintah atau data yang akan diolah/proses. Data dalam bahasa C++ memiliki tipe data tersendiri yang mampu dibaca oleh sistem komputer. Ada beberapa macam tipe data yang ada dalam bahasa C++ antara lain sebagai berikut :

Tipe Data Char
Char merupakan tipe data berbentuk karakter tunggal(string tidak termasuk). Char memiliki jumlah bit sebanyak 8 bit (1 byte). Pendeklarasian secara umum adalah char nama_variabel[panjang_karakter]; .

Tipe Data Integer
Integer merupakan tipe data bilangan bulat. Integer memiliki jumlah bit sebanyak 16b bit (2 byte). Pendeklarasian secara umum adalah int nama_variabel; .

Tipe Data Float
Float merupakan tipe data bilangan pecahan presisi tunggal. Float memiliki jumlah bit sebanyak 32 bit (4 byte). Pendeklarasian secara umum adalah float nama_variabel; .

Tipe Data Double
Double merupakan tipe data bilangan pecahan presisi ganda. Double memiliki jumlah bit sebanyak 64 bit (8 byte). Tipe data double lebih akurat dibandingkan dengan float apabila terdapat banyak angka dibelakang tanda koma ( , ) .

Tipe Data Void
Void merupakan tipe data tidak bertipe dan memiliki jumlah bit sebanyak 0 bit. Biasanya digunakan saat pendeklarasian fungsi.

Berikut ini adalah contoh kode program yang menggunakan beberapa tipe data.

#include <iostream.h>
#include <conio.h>
main(){
 int a = 2;
 int b = 4;
 float c = 2.2;
 char nama[30] = "Dodi Harsono";
 int d;
 float e;
 d = a*b;
 e = a*c;
 cout<<"Tampil Nama : "<<nama<<endl;
 cout<<"Tampil D    : "<<d<<endl;
 cout<<"Tampil E    : "<<e<<endl;
 getch();
}
D.   Input
1.    Cin
            Dalam C++, perintah cin digunakan untuk menginput suatu nilai dari suatu piranti masukan (keyboard) untuk selanjutnya diproses oleh program. Sintaknya adalah:
cin >> variabel;
contohnya:
cout << “Masukkan suatu bilangan : ”;
cin >> bil;
cout << “Anda memasukkan bilangan “ << bil “\n”;
2. Getch()
Perintah getch() berfungsi sama seperti cin (perintah input), akan tetapi getch() khusus untuk input berupa karakter. Disamping itu getch() dapat membaca input berupa spasi atau tab, sedangkan cin tidak bisa.
Sintaksnya:
Variabel = getch();
Fungsi ini juga dapat digunakan apabila tidak diinginkan penekanan ENTER ketika input data karakter.
3. Getche()
            Perintah getche() kegunaannya sama dengan getch(), bedanya adalah:
getch() tidak menampilkan karakter yang diiinput
getche() menampilkan karakter yang diinput
fungsi getch() dan getche() sama-sama membutuhkan file header conio.h .Berikut ini contoh penggunaan getch() dan getche()
char karakter;
cout << “masukkan sebuah karakter : “;
karakter = getch();
cout << “Anda mengetik karakter : ” << karakter;
cout << “masukkan sebuah karakter : “;
karakter = getche();
cout << “Anda mengetik karakter : ” << karakter;




E.    OUTPUT
1.Cout
Dalam c++, perintah cout digunakan untuk menampilkan suatu informasi ke piranti output (layar). Contoh-contoh penggunaannya telah banyak diberikan di bab-bab sebelumnya. Berikut ini perintah-perintah tambahan untuk mengatur tampilan output.
endl
Perintah ini berfungsi sama dengan \n (ganti baris)
Contoh:
cout << “Hallo” << endl;
setw()
Perintah ini digunakan untuk mengatur lebar tampilan data (rata kanan).
Contoh:
A = 123;
B = 98;
C = 1;
cout << “Nilai A = “ << setw(6) << A << endl;
cout << “Nilai B = “ << setw(6) << B << endl;
cout << “Nilai C = “ << setw(6) << C << endl;
Bandingkan bila tanpa menggunakan setw().
setfill()
Perintah setfill digunakan untuk menambahkan suatu karakter tertentu pada field yang kosong pada suatu data. Perhatikan contoh berikut ini
A = 123;
B = 98;
cout<< “Nilai A = “<< setw(6) << setfill(‘*’) << A << endl;
cout<< “Nilai B = “<< setw(6) << setfill(‘.’) << B << endl;
Perintah setfill() biasanya digunakan setelah penggunaan setw().

pada contoh diatas terdapat 2 constanta yaitu potongan dan harga_per_unit.
masing-masing dideklarasikan dengan cara yang berbeda.
-deklarasi variabel dilakukan dengan cara :
menyebutkan lebih dulu tipe data'a kemudian diikuti nama variabel'a.
misal : char nama;
           int    nilai ;
jika nama'a lebih dari 1 karakter maka variabel diberi jangkauan/[].
misal : char nama[20];

pada contoh program. ada beberapa variabel yang telah didefinisikan lebih dahulu yaitu jum_unit,harga_total,har_diskon,dan diskon,masing-masing dengan tipe datanya sendiri.
jika ada beberapa variabel yang memiliki tipe data yang sama,maka variabel2 tsb dapat digabungkan dalam 1 tipe data,dengan tanda pemisah(,).
misal :  char nama[20],alamat[50],status[10];
atau pada contoh program:
            float harga_total,har_diskon,diskon;

jadi,suatu program harus dideklarasikan secara lengkap seluruh variabelnya dan harus teliti,kalau tidak, program tidak akan pernah bisa di eksekusi.

C.   Tipe Data
Sebuah program akan dieksekusi apabila memiliki perintah atau data yang akan diolah/proses. Data dalam bahasa C++ memiliki tipe data tersendiri yang mampu dibaca oleh sistem komputer. Ada beberapa macam tipe data yang ada dalam bahasa C++ antara lain sebagai berikut :

Tipe Data Char
Char merupakan tipe data berbentuk karakter tunggal(string tidak termasuk). Char memiliki jumlah bit sebanyak 8 bit (1 byte). Pendeklarasian secara umum adalah char nama_variabel[panjang_karakter]; .

Tipe Data Integer
Integer merupakan tipe data bilangan bulat. Integer memiliki jumlah bit sebanyak 16b bit (2 byte). Pendeklarasian secara umum adalah int nama_variabel; .

Tipe Data Float
Float merupakan tipe data bilangan pecahan presisi tunggal. Float memiliki jumlah bit sebanyak 32 bit (4 byte). Pendeklarasian secara umum adalah float nama_variabel; .

Tipe Data Double
Double merupakan tipe data bilangan pecahan presisi ganda. Double memiliki jumlah bit sebanyak 64 bit (8 byte). Tipe data double lebih akurat dibandingkan dengan float apabila terdapat banyak angka dibelakang tanda koma ( , ) .

Tipe Data Void
Void merupakan tipe data tidak bertipe dan memiliki jumlah bit sebanyak 0 bit. Biasanya digunakan saat pendeklarasian fungsi.

Berikut ini adalah contoh kode program yang menggunakan beberapa tipe data.

#include <iostream.h>
#include <conio.h>
main(){
 int a = 2;
 int b = 4;
 float c = 2.2;
 char nama[30] = "Dodi Harsono";
 int d;
 float e;
 d = a*b;
 e = a*c;
 cout<<"Tampil Nama : "<<nama<<endl;
 cout<<"Tampil D    : "<<d<<endl;
 cout<<"Tampil E    : "<<e<<endl;
 getch ();
}
D.   Input
1.    Cin
            Dalam C++, perintah cin digunakan untuk menginput suatu nilai dari suatu piranti masukan (keyboard) untuk selanjutnya diproses oleh program. Sintaknya adalah:
cin >> variabel;
contohnya:
cout << “Masukkan suatu bilangan : ”;
cin >> bil;
cout << “Anda memasukkan bilangan “ << bil “\n”;
2. Getch()
Perintah getch() berfungsi sama seperti cin (perintah input), akan tetapi getch() khusus untuk input berupa karakter. Disamping itu getch() dapat membaca input berupa spasi atau tab, sedangkan cin tidak bisa.
Sintaksnya:
Variabel = getch();
Fungsi ini juga dapat digunakan apabila tidak diinginkan penekanan ENTER ketika input data karakter.
3. Getche()
            Perintah getche() kegunaannya sama dengan getch(), bedanya adalah:
getch() tidak menampilkan karakter yang diiinput
getche() menampilkan karakter yang diinput
fungsi getch() dan getche() sama-sama membutuhkan file header conio.h .Berikut ini contoh penggunaan getch() dan getche()
char karakter;
cout << “masukkan sebuah karakter : “;
karakter = getch();
cout << “Anda mengetik karakter : ” << karakter;
cout << “masukkan sebuah karakter : “;
karakter = getche();
cout << “Anda mengetik karakter : ” << karakter;

E.    OUTPUT
1.Cout
Dalam c++, perintah cout digunakan untuk menampilkan suatu informasi ke piranti output (layar). Contoh-contoh penggunaannya telah banyak diberikan di bab-bab sebelumnya. Berikut ini perintah-perintah tambahan untuk mengatur tampilan output.
endl
Perintah ini berfungsi sama dengan \n (ganti baris)
Contoh:
cout << “Hallo” << endl;
setw()
Perintah ini digunakan untuk mengatur lebar tampilan data (rata kanan).
Contoh:
A = 123;
B = 98;
C = 1;
cout << “Nilai A = “ << setw(6) << A << endl;
cout << “Nilai B = “ << setw(6) << B << endl;
cout << “Nilai C = “ << setw(6) << C << endl;
Bandingkan bila tanpa menggunakan setw().
setfill()
Perintah setfill digunakan untuk menambahkan suatu karakter tertentu pada field yang kosong pada suatu data. Perhatikan contoh berikut ini
A = 123;
B = 98;
cout<< “Nilai A = “<< setw(6) << setfill(‘*’) << A << endl;
cout<< “Nilai B = “<< setw(6) << setfill(‘.’) << B << endl;
Perintah setfill() biasanya digunakan setelah penggunaan setw().