Control Statement, Fungsi, Variabel


Control Statement
·      Pengertian
Control Statement adalah suatu mekanisme yang mengendalikan jalannya atau pengeksekusiannya blok kode tertentu, baik itu dengan perulangan maupun dengan pernyataan kondisional atau seleksi. Ada beberapa statement yang termasuk control  statement yaitu statements if-else, else-if, goto(), switch(), break, continue, for(), while() dan do-while.
ü  Statement for() digunakan untuk membuat perulangan yang dikontrol oleh nilai-nilai tertentu yaitu initial(nilai awal), condition(kondisi), increment/decrement(penambahan/penurunan).
ü  Statement while() sama dengan statement for() tetapi pada statement while memeriksa kondisi dahulu, bila kondisi benar maka perulangan akan dilaksanakan.
ü  Statement do-while, kombinasi antara statement diatas, cara kerjanya langsung mengerjakan badan loop, kemudian kondisi diperiksa jika benar maka dilanjutkan bila tidak perulangan selesai.

1.  For Loop
Perulangan dengan statement For digunakan untuk mengulang statement atau suatu blok statement berulang kali. Dengan kata lain, pernyataan ini digunakan bila sudah tahu berapa kali akan mengulang satu atau beberapa pernyataan.

A.  Perulangan For, yang sifatnya menaik(increment)
Bentuk umum dari perulangan For adalah sebagai berikut:

for (variable= nilai_awal; kondisi; variable++)
{
     Statement/pernyataan yang akan diulang;
}

Pada bentuk FOR diatas:
·                     Nilai awal dari variable yang kita definisikan haruslah lebih kecil dari nilai akhir yang dituliskan pada kondisi(ekspresi). Kalau nilai_akhir lebih kecil daripada nilai_awal, maka bagain pernyataan tidak dijalankan sama sekali.
·                     Kondisi adalah untuk menyatakan keluar dari proses looping.
·                     Variable++ adalah pengatur kenaikan atau penurunan nilai variable pengendali looping.
Supaya lebih jelas penggunaan statement FOR, perhatikan beberapa contoh kasus berikut:
Contoh kasus 1 :
Misalakan Anda diminta untuk membuat algoritma dan program menampilkan angka/bilangan 1 sampai 10 dengan penambahan 1.
Penyelesaian:
Algoritma dari masalah tersebut adalah:
1.      Tentukan nilai awal, batas akhir dan pertambahan nilai
2.      Cetak bilangan
3.      Ulangi langkah 1 sampai batas akhir

Penjelasan:
Pada baris pertama, Anda menentukan nilai awal bilangan, karena masalah diatas anka yang akan ditampilkan mulai dari 1. Bilangan tersebut disimpan dalam variable n. Kemudian batas bilangan ditentukan angka 10 dan prosses pertambahannya adalah 1. Proses pertambahan sebanyak 1 pada C++ bisa ditulis n++. Setelah semua dilakukan, maka proses akan berlanjut ke baris kedua dan ketiga yaitu mencetak bilangan itu sampai batas akhir dari bilangan dan sampai semua syarat yang diminta dipenuhi.

Sedangkan implementasi dari algoritma diatas dalam program adalah sebagai berikut:
Untuk menyelesaikan contoh kasus diatas, akan menggunakan 2 macam cara yaitu: dengan menggunakan statement perulangan for dan  tanpa menggunakan statement perulangan. (Tujuannya agar Anda dapat mengetahui efisiensi dan perbedaan dari penggunaan statement for)

Cara 1: tanpa menggunakan statement FOR
//Program Ulang01
#include
main()
{
       cout<<”1”<
       cout<<”2”<
       cout<<”3”<
       cout<<”4”<
      cout<<”5”<
      cout<<”6”<
      cout<<”7”<
      cout<<”8”<
      cout<<”9”<
      cout<<”10”<
return 0;
}

Jika program dijalankan, maka hasilnya :
1
2
3
4
5
6
7
8
9
10
Press any key to continue

Cara 2: menggunakan statement FOR
//Program Ulang01
#include
main()
{
                int n;
                for(n=1;n<=10;n++)
                                cout<
              return 0;
}
Jika program dijalankan, maka hasilnya :
1
2
3
4
5
6
7
8
9
10
Press any key to continue
Bila Anda perhatikan dari kedua cara diatas dapat Anda lihat bahwa kode program yang dihasilkan untuk menampilkan angka/bilangan 1 sampai dengan 10 akan lebih singkat jika menggunakan statement FOR

Contoh kasus 2:
Buatlah program yang menampilkan tulisan “ Bahasa C++” sebanyak 5 kali.
Penyelesaian :
//Program Ulang02
#include
main()
{
                int n;
                for(n=1;n<=5;n++)
                cout<
                return 0;
}
Jika program dijalankan, maka hasilnya :
1 Bahasa C++
2 Bahasa C++
3 Bahasa C++
4 Bahasa C++
5 Bahasa C++
Press any key to continue
Penjelasan : Berarti statement Bahasa C++ akan diulang sebanyak 5 kali yaitu dengan menghitung nilai n dari n ke 1 sampai nilai n terakhir yaitu i ke 5.
  

Contoh Kasus 3:
Buatlah program yang membaca sebuah angka positif (integer) yang diinputkan lebih dari 1, dan menuliskan deret angka 1 sampai dengan angka yang diinputkan tersebut !
Penyelesaian :
//Program ulang03
#include
main()
{
                int c,n;
                cout<<"Mau diulang berapa kali?";
                cin>>n;
                for(c=1;c<=n;c++)
                                cout<
                                cout<
                return 0;
}
Jika program dijalankan, maka hasilnya :

Mau diulang berapa kali? 7
1   2   3   4   5   6   7
Press any key to continue

Jika program dijalankan dengan inputan yang berbeda, maka hasilnya:

Mau diulang berapa kali? 4
1   2   3   4  
Press any key to continue


# Contoh dengan menggunakan blok statement:
Cara penulisannya dengan pada awal blok diawali dengan tanda { dan pada akhir blok diakhiri dengan };
//Program Ulang00
#include
main()
{
                int c;

                for(c=1;c<=5;c++)
                {
                                cout<<"Aku Belajar"<
                                cout<<"Bahasa C++"<
                }
                return 0;
}
Jika program dijalankan, maka hasilnya:

Aku Belajar
Bahasa C++
Aku Belajar
Bahasa C++
Aku Belajar
Bahasa C++
Aku Belajar
Bahasa C++
Aku Belajar
Bahasa C++
Press any key to continue

B. Perulangan For yang sifatnya menurun(decrement)
Perulangan For yang sifatnya menurun adalah perulangan dengan menghitung (counter) dari besar ke kecil. Bentuk Umum dari perulangan For yang sifatnya menurun(decrement)
for (variable = nilai_awal; kondisi; variable--)
{
                Statement/pernyataan yang akan diulang;
}
contoh :
Buatlah program untuk menampilkan bilangan 10 sampai dengan 1
Jawab:
//Program Ulang00
#include
main()
{
                int c;
                for(c=10;c>=1;c--)
                     cout<
                return 0;
}
Hasil :
10
9
8
7
6
5
4
3
2
1
Press any key to continue

C. Perulangan For tersarang
Perulangan For tersarang adalah perulangan For yang berada pada perulangan yang lainnya. Perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis, kemudian perulangan yang lebih luar baru akan bertambah, mengerjakan perulangan yang lebih dalam lagi mulai dari nilai awalnya dan seterusnya.
Contoh :
//Program Ulang
#include
int main()
{
               
                for(int j=1; j<=5; j++)
                      {
                                for (int k=1; k<=j; k++)
                                {
                                          cout<
                                  }
                                cout<
                         }
                return 0;
}

Hasil :
1
2  4
3  6  9
4  8  12  16
5  10  15  20  25
Press any key to continue


2.  If Statement
Pernyataan atau statement If adalah mekanisme yang menjalankan suatu statement atau kode namun harus memenuhi suatu kondisi yang ditentukan. Jika tidak memenuhi kondisi yang telah ditentukan maka statement yang berada dalam lingkup kondisional tersebut tidak akan dijalankan.
Rumus pernyataan If adalah,
if (condition) {
then-statement
}
Sedangkan contoh cara penggunaannya,
using System;

namespace belajarCSharp
{
 class MainClass
{
  static void Main(string[] args)
{

    if (5>2){
       Console.WriteLine("You Right");
    }

Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}
Outputnya adalah "You Right", sedangkan jika kita ganti angka 2 menjadi angka yang lebih besar atau sama dengan dari 5 maka tidak akan tampil apapun. Jika kita menginginkan program tersebut tetap menampilkan pesan tertentu maka kita memakai statement dibawah ini yaitu pernyataan If-Else.

3.  If Else

Pernyataan If-Else memiliki cara kerja yang persis dengan pernyataan If, hanya saja pernyataan If-Else ini tetap memberikan keluaran berupa pesan tertentu jika suatu kondisi dalam If tidak terpenuhi, selain itu pernyataan ini juga lebih sering digunakan ketimbang pernyataan If.

Rumus pernyataan If-Else adalah,
if (condition) {
then-statement
}else {
else-statement
Sedangkan contoh cara penggunaanya yaitu,
using System;

namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{

  if (5>2){
    Console.WriteLine("Itu benar");
  }else{
    Console.WriteLine("Itu salah");
  }

Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}
Output dari program ini seperti yang dapat diduga yaitu "Itu benar", sedangkan jika kita ganti angka 2 menjadi angka yang lebih besar atau sama dengan dari 5 maka akan menampilkan pesan "Itu salah".

4.  While Statement
Pernyataan whiledo-whilefor dan foreach merupakan pernyataan yang termasuk dalam keluarga perulangan. Pernyataan while memiliki mekanisme yaitu suatu statement akan dijalankan secara berulang selama kondisi dalam while masih terpenuhi.

Rumus pernyataan While adalah,
while (condition){
then-statement
}
Sedangkan contoh cara penggunaannya adalah,
using System;
 
namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{
int a = 5;
  while (a > 0){
    Console.WriteLine("Hello");
        a -= 1;
}
 
Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}
Output diatas adalah diulangnya "Hello" sebanyak 5 kali berturut-turut.

5.  Do-While Statement

Pernyataan Do-While memiliki mekanisme dimana blok kode yang terdapat dalam lingkup do dieksekusi dahulu, kemudian setelah itu baru dieksekusi oleh while, itupun bila kondisi dalam while terpenuhi tapi jika tidak maka blok kode dalam lingkup do akan berlanjut ke perintah berikutnya. Untuk lebih jelasnya silahkan liat rumus dan contoh penggunaan berikut.




Rumus pernyataan Do-While yaitu,
do {
then-statement
} while (condition)
using System;
 
namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{
  int angka;
    do {
       System.Console.WriteLine("Masukkan angka 1-10 : ");
       angka = int.Parse(System.Console.ReadLine());
     } while (angka > 10 || angka < 1);
 
Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}
Output program diatas yaitu mengeluarkan pertanyaan yang harus diisi pengguna (program inputan), jika pengguna memasukkan angka diantara rentang tersebut maka blok kode dalam do akan berlanjut ke blok kode yang terdapat dibawahnya, namun jika pengguna memasukkan angka diluar rentang tersebut, maka while akan di eksekusi alias pertanyaan yang terdapat dalam blok kode do diulang kembali.



6.  For Statement

Pernyataan For memiliki mekanisme yang hampir mirip dengan pernyataan While dimana suatu blok kode akan di iterasi sampai mencapai kondisi tertentu, namun yang membedakan antara for dengan while adalah sintaks dalam for sudah di built-in dan juga menggunakan operator increment atau decrement.
Rumus pernyataan For yaitu,
for (initial ; condition ; loop/increment) {
then-statement
}
Sedangkan contoh cara penggunaanya yaitu,
using System;
 
namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{
 
  int angka;
    for ( angka = 1 ; angka <= 10 ; angka++){
      Console.WriteLine ("Ini angka ke "+angka);
}
 
Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}
Output program diatas adalah muncul kalimat "ini angka ke 1" sampai "ini angka ke 10" secara berurutan.

7.  Foreach Statement

Pernyataan Foreach memiliki mekanisme hampir sama seperti for hanya saja pernyataan ini untuk tujuan lain yaitu melakukan perulangan pada setiap isi atau elemen pada arrays (arrays secara mendalam tidak akan di bahas pada tutorial ini).
Rumus pernyataan Foreach yaitu,
foreach (type variable in collection {
then-statement
}
Berikut contoh cara penggunaannya,
using System;
 
namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{
 
  string huruf = "belajar";
    foreach (char huruf1 in huruf){ //convert ke char
      Console.WriteLine ("Ini elemen "+huruf1);
}
 
Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}
Output program diatas adalah keluarnya kalimat "Ini elemen b" sampai "ini elemen r" secara berurutan. Pertanyaannya kenapa program tidak error dan tetap mengeluarkan output perulangan padahal string tersebut tidak berada dalam arrays, sedangkan jika kita pakai char dalam program tersebut hasilnya akan error ? Jika kita lihat kode program tersebut saya mengconvert string tersebut menjadi char agar setiap elemen dalam string tersebut dapat diulangi satu-persatu. Nah string ini bisa di convert menjadi tipe data integral apa saja tapi tidak dapat di convert ke string. Namun jika saya masukkan nilai dari string tersebut ke dalam arrays string maka yang ditampilkan adalah keseluruhan nilai, yaitu menjadi "ini elemen belajar" dan hanya dapat bertipe data string jadi kebalikan dari yang sebelumnya. Kemudian seperti yang sudah dibahas dalam tutorial sebelumnya, tipe data char termasuk dalam tipe data integral sehingga elemennya harus berada didalam arrays dan juga hanya bisa di convert ke tipe data integral. Selanjutnya contoh penggunaan untuk tipe data integral yaitu,
using System;
 
namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{
 
int[] angka = {5,3,9,2,3,5,1,23,1,2,9,1,2};
  foreach (int angka1 in angka){
    Console.WriteLine ("Ini angka "+angka1);
}
 
Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}
Output program diatas yaitu keluarnya kalimat "Ini angka 5" sampai angka terakhir yang terdapat dalam arrays tersebut.


8.   Switch Case
Switch — case merupakan jenis seleksi yang dirancangan khusus untuk menangani pengambilan keputusan yang melibatkan sejumlah atau banyak alternatif penyelesaian. Pernyataan switch — case ini memiliki kegunaan sama seperti if — else bertingkat, tetapi penggunaannya untuk memeriksa data yang bertipe karakter atau integer.
switch(kondisi){
case 1 :
//statement
//statement
break;
case 2 :
//statement
//statement
break;
case 3 :
//statement
//statement
break;
}
Contoh Program dengan If Else :
#include <stdio.h>
int main(){
char grade;
printf(“Masukkan grade anda (KAPITAL) [A/B/C/D] : “); scanf(“%c”, &grade); fflush(stdin);
//if artinya jika
//membandingkan grade apakah sama dengan A (hasil input)
//jika iya maka lakukan statement di dalamnya.
if(grade==’A’){
printf(“Very Good! Nilai anda A”);
}
//jika bukan A maka di cek lagi apakah inputan user == B
//jika iya maka lakukan statement di dalamnya.
else if(grade==’B’){
printf(“Good! Nilai anda B”);
}
//dan seterusnya..
else if(grade==’C’){
printf(“Okay! Nilai anda C”);
}
else if(grade==’D’){
printf(“Bad! Nilai anda D”);
}
//else artinya sisanya.. maksudnya jika grade bukan A bukan B bukan C ataupun bukan D maka masuk dalam else
else{
printf(“Kami tidak mengenali grade anda”);
}
getchar();
return 0;
}

Dengan Program yang sama, kita akan membuat versi switch casenya.
#include <stdio.h>
int main(){
//switch case sama saja dengan if else hanya saja lebih cocok digunakan jika yang ingin di kondisi berupa integer atau char saja. contoh case ABCD atau case 12345
char grade;
printf(“Masukkan grade anda (KAPITAL) [A/B/C/D] : “); scanf(“%c”, &grade); fflush(stdin);
//switch grade artinya kita akan mengecek isi dari grade
switch(grade){
//case A maksudnya apakah si grade == A
case ‘A’ :
printf(“Very Good! Nilai anda A”);
break;
//case B maksudnya apakah si grade == B
case ‘B’ :
printf(“Good! Nilai anda B”);
break;
case ‘C’ :
printf(“Okay! Nilai anda C”);
break;
case ‘D’ :
printf(“Very Good! Nilai anda A”);
break;
default :
printf(“Kami tidak mengenali grade anda”);
break;
}
getchar();
return 0;
}

9.   Break dan Continue

BREAK secara umum dapat diartikan berhenti, berhenti disini berarti BREAK digunakan untuk keluar dari perulangan namun kondisi perulangan masih terpenuhi. dan untuk CONTINUE dapat di artikan lanjut. lanjut disni berarti CONTINU digunakan untuk melanjutkan atau meneruskan blok perulangan ke proses berikutnya tanpa mengerjakan perintah di bawahnya.


A. Perpindahan BREAK
perpindahan break Sudah kita singgung sedikit ulasan tentang statement break, yakni intinya dari statement ini adalah mengehentikan perulangan, meskipun perulangan tersebut kondisinya masih terpenuhi
perhatikan contoh kode program break c++ berikut
#include <iostream>
using namespace std;
int main(){
   int x;
  
   for(x = 1; x <= 10; x++){
   if(x==4){
    break;
   }
      cout << "Perulangan ke-" << x << endl;
   }
  
  
   return 0;
}

keterangan dari kode program break diatas:
pada perulangan for diatas  akan  dilakukan  sebanyak  10  kali  menggunakan  pernyataan  FOR.
Namun, didalam tubuh perulangan tersebut  ternyata terdapat  sebuah pernyataan
BREAK yang dapat menghentikan laju perulangan. Laju perulangan akan terhenti jika
nilai i sama dengan 4

hasil dari program break diatas

perpindahan-break-dan-continue-dalam-cplus

2.Perpindahan continue
perpindahan continue untuk mengarahkan eksekusi proses program ke proses berikutnya dalam satu perulangan atau loop yang sama. Pada perulangan WHILE dan DO WHILE, statemen CONTINUE menyebabkan eksekusi menuju ke proses pengujian kondisi perulangan. Sedangkan pada perulangan FOR, statemen CONTINUE menyebabkan eksekusi program menjalankan operasi perubahan nilai pengendali perulangan pada FOR lalu dilanjutkan dengan mengujinya sesuai syarat kondisi perulangan.
#include <iostream>
using namespace std;
int main(){
   int x;
   for(x = 1; x <= 10; x++){
   if(x==4){
    continue;
   }
      cout << "Perulangan ke-" << x << endl;
   }
   return 0;
}

keterangan dari kode program continue diatas
kode program diatas merupakan  kode  program  untuk  menampilkan  teks  perulangan  yang
direncanakan  akan  dilakukan  sebanyak  10  kali  menggunakan  pernyataan  FOR.

Namun, didalam tubuh perulangan tersebut  ternyata terdapat  sebuah pernyataan

perulangan akan dilewati apabila nilai i sama dengan 4


CONTINUE  yang  dapat  melewatkan  satu  siklus  perulangan.  Sebuah  siklus

hasil dari program continue diatas

perpindahan-break-dan-continue-dalam-cplus


Fungsi

A. Definisi fungsi

Fungsi adalah sub-program yang bisa digunakan kembali baik di dalam program itu sendiri, maupun di program yang lain.
Contoh fungsi yang sering kita buat adalah fungsi main().
Struktur umum sebuah fungsi adalah sebagai berikut: 


Jika kita melihat struktur penulisan fungsi, strukturnya hampir sama atau bahkan sama persis dengan program utama. Pada dasarnya, pemrograman menggunakan bahasa C adalah pemrograman dengan struktur fungsi, dimana setiap kode program yang dituliskan harus dalam bentuk fungsi, tak terkecuali program utama. Program utama merupakan suatu fungsi dengan nama main() yang tidak memiliki nilai kembali atau nilai kembalinya adalah kosong (0). Oleh karena itu, kita juga dapat menuliskan program utama mengguanakan void main() atau dengan int main(), dengan return value-nya 0.
Saat program utama dijalankan, kode program yang pertama dieksekusi adalah fungsimain(). Oleh karena itu, setiap program minimal harus memiliki satu fungsi yaitumain(), dimana isi dari fungsi ini adalah inti dari program. Perhatikan contoh program mencari luas persegi panjang berikut:


perhatikan program menghitung luas persefi panjang diatas. Pada program tersebut, dalam mengbhitung lias persegi panjang dapat kita jadikan fungsi seperti berikut:



Pada program diatas, tampak bahwa kode program yang dibangun menggunakan fungsi lebih banyak dibandingkan dengan yang tidak menggunakan fungsi. Jika kita menulis dengan memggunakan fungsi, maka akan mempermudah kita dalam membagi beberapa masalah. Selain itu, jika kita ingin menggunakan lagi perhitungan yang lain, kita harus memanggil fungsi tersebut dengan parameter yang sesuai dengan masalahnya.
Namun jika kita tidak menggunakan fungsi, maka kode programnya harus kita tulis ulang. Untuk menganggil fungsi, harus diisikan pada suatu nilai tertentu yang tipenya sesuai dengan tipe nilai fungsi kembaliannya. Misalnya pada contoh diatas, variabelluasUtama yang akan diisikan oleh nilai fungsi tersebut.

Contoh yang lain dalam penggunaan fungsi adalah penentuan index nilai mahasiswa dimana inputannya adalah nilai dengan sekala 0 - 100 dan menghasilkan index A, B, C, D, dan E. Seperti pada contoh berikut:

 

2. Argumen Fungsi dengan Konstanta atau Variabel

Konstanta adalah sebuah tetapan yang tidak dapat diubah nilainya ketika program berjalan. Dalam bahasa C, para programmer biasanya menggunakan sebuah makro untuk membuat suatu konstanta, yaitu dengan mendefinisikanya melalui directive #define.
Meskipun tidak bersifat mutlak, namun kebanyakan para programmer C mendefinisikan sebuah makro dengan menggunakan huruf besar (kapital). Selain menggunakan directive #define, bahasa C juga menyediakan kata kunci const untuk membentuk suatu konstanta. Berikut ini bentuk umum pembulatanya.
Const  tipe_data nama_konstanta = nilai_kontan;
Sebagai contoh apabila kita akan membuat kosntanta PI dengan menggunakan kata kunci const, maka kita akan menuliskanya sebagai berikut.
Const double PI = 3.1416;
Variabel yang terdapat pada bahasa C cukuo beragam, untuk itu kita harus mengenalnya satu per satu sehingga kita tidak akan merasa kesulitan dalam mengiplementasikannya ke dalam sebuah program. Menurut jenisnya, variabel dalama bahasa C dibedakan menjadi empat macam.

4.   Recurssion
Rekursif adalah fungsi yang memanggil dirinya sendiri secara langsung ataupun tidak, dan proses pemanggilannya itu disebut rekursi. Masalah yang dapat diselesaikan secara rekursif adalah masalah yang dibagi menjadi satu atau lebih masalah-masalah serupa yang lebih kecil.
Simple Cases adalah kondisi-kondisi yang dapat diselesaikan secara langsung tanpa perlu di-rekursi dan biasanya digunakan sebagai tanda akhir dari sebuah rekursi. Recursive Case adalah kondisi-kondisi yang diselesaikan dengan cara memanggil fungsi itu sendiri dengan problem yang semakin berkurang mendekati simple case.
Dalam potongan program:
.
Contoh :
Simple Case : if(bilangan2==1) return bilangan1;
Recursive Case : return bilangan1 + Perkalian(bilangan1, bilangan2-1);
Hasil Output : 20
Potongan Iterasi :
int Perkalian(int bilangan1, int bilangan2)
{
int pro=0;
for (int i=bilangan2;i>=1;i–)
{
pro+=bilangan1;
}
return (pro);


  3.   Recurssion
Rekursif adalah fungsi yang memanggil dirinya sendiri secara langsung ataupun tidak, dan proses pemanggilannya itu disebut rekursi. Masalah yang dapat diselesaikan secara rekursif adalah masalah yang dibagi menjadi satu atau lebih masalah-masalah serupa yang lebih kecil.
Simple Cases adalah kondisi-kondisi yang dapat diselesaikan secara langsung tanpa perlu di-rekursi dan biasanya digunakan sebagai tanda akhir dari sebuah rekursi. Recursive Case adalah kondisi-kondisi yang diselesaikan dengan cara memanggil fungsi itu sendiri dengan problem yang semakin berkurang mendekati simple case.
Dalam potongan program:
.
Contoh :
Coba perhatikan contoh berikut:
#include <stdio.h>
int sum(int n);
 
void main(){
    int number, result;
 
    printf("Enter a positive integer: ");
    scanf("%d", &number);
 
    result = sum(number);
 
    printf("sum = %d", result);
}
 
int sum(int num){
    if (num!=0)
        return num + sum(num-1); // fungsi sum() memanggil dirinya sendiri
    else
        return num;
}
Hasilnya:
Mengapa hasilnya bisa 21?
Karena kita menginputkan nilai 6, maka akan sama dengan:
1 + 2 + 3 + 4 + 5 + 6 = 21

Variabel Lokal dan Variabel Global

Variabel lokal dan variabel global akan sering kita temukan dalam pembuatan fungsi.
Variabel global adalah variabel yang bisa diakses dari semua fungsi. Sedangkan variabel lokal adalah variabel yang hanya bisa diakses dari dalam fungsi itu sendiri.
Contoh:
#include <stdio.h>
 
// membuat variabel global
int nilai = 9;
 
void main(){
    // membuat variabel lokal
    int nilai = 7;
 
    // mencetak variabel
    printf("Nilai: %d\n", nilai);
}
Pada contoh di atas, kita membuat variabel global bernama nilai.
Lalu di dalam fungsi main(), kita membuat variabel lagi bernama nilai dengan nilai yang berbeda.
Variabel yang ada di dalam fungsi main() adalah variabel lokal.
Lalu, berapakah hasil outputnya?
Jawabannya: 7
Mengapa bisa 7?
Karena variabel nilai kita buat ulang di dalam fungsi main.
Sekarang coba hapus variabel lokal yang ada di dalam main, sehingga akan menjadi seperti ini:
#include <stdio.h>
 
// membuat variabel global
int nilai = 9;
 
void main(){
    // mencetak variabel
    printf("Nilai: %d\n", nilai);
}
Maka hasil outputnya akan 9. Karena variabel yang dipakai adalah variabel global.


Variabel

Variabel Adalah sebuah tempat untuk menampung data dimemori dimana tempat tersebut dapat menampung nilai (data) yang dapat berubah-ubah selama proses program. atau variabel juga disebut sebagai sebuah identifier yang mempunyai nilai dinamis, arti kata dinamis disini bermaksud bahwa nilai variabel tersebut dapat kita ubah sesuai kebutuhan dalam program.

Dari pengertian variabel diatas dapat disimpulkan bahwa Fungsi Variabel Adalah sebagai tempat yang akan digunakan untuk menampung data dimemori dimana tempat tersebut dapat menampung nilai (data) yang dapat berubah-ubah selama proses program.

Terdapat beberapa jenis variabel yang digunakan dalam pemrograman C++, yaitu : Variabel Auto, Variabel Statis, Variabel Register, dan Variabel Eksternal. Klasifikasi ini sebenarnya hanya didasarkan pada ruang penyimpanannya saja.

1. Variabel Auto

Variabel auto sebenarnya merupakan variabel normal yang dideklarasikan di dalam lingkup (scope) atau blok program tertentu. variabel jenis ini sebenarnya merupakan nama lain dari variabel lokal. Dengan kata lain, variabel ini hanya akan dikenal dalam suatu blok program saja, misalnya blok pemilihan, pengulangan, maupun fungsi. Meskipun sama dengan variabel lokal, tapi kita bisa saja secara eksplisit menambahkan kata kunci auto di depan pendeklarasiannya. Jenis variabel ini akan dialokasikan di memori pada saat program mengeksekusi badan blok dan didealokasikan secara otomatis ketika eksekusi blok berakhir.

Perhatikan contoh kode dibawah ini:
 {
     int A;
     auto int B;
     .....
}

Pada potongan kode diatas, variabel A dan B sama-sama merupakan variabel lokal / variabel auto yang hanya dikenal di dalam blok program bersangkutan.
2. Variabel Statis
Variabel statis adalah variabel yang menempati ruang memori kumputer secara permanen, artinya nilai terakhir dari variabel ini akan terus disimpan. Dalam C++, untuk menyatakan variabel statis adalah dengan menggunakan kata kunci static.

Bentuk umum pendeklarasian variabel statis adalah sebagai berikut:
 static  tipe_data  nama_variabel;
Contoh:
 static int ABC;
static char DEF;

Pada implementasinya, variabel statis dapat diperankan sebagai variabel global (disebut variabel statis global) maupun variabel lokal (disebut variabel statis lokal)

·         Variabel Statis Lokal
Variabel statis lokal ini diterapkan di dalam suatu fungsi / prosedur, sehingga nama variabelnya hanya akan dikenali di dalam fungsi tempat pendeklarasiannya. Namun perlu diperhatikan bahwa nilai terakhir yang dihasilkan akan terus disimpan. Dengan demikian setiap pemanggilan fungsi yang sama pasti akan memberikan hasil yang berbeda.
Untuk mengetahui lebih jauh mengenai variabel statis lokal, perhatikan terlebih dahulu dua contoh kode program dibawah ini.
 #include <iostream>

using namespace std;

// Membuat fungsi dengan nama contoh
int contoh(){
     // Mendefinisikan variabel biasa
     // Dengan nama "MD"
     int MD = 0;

     MD = MD + 10;

     return MD;
}

int main ()
{
     // Mendefinisikan variabel x, y dan z
     int x, y, z;

     // Memanggil fungsi contoh() untuk yang pertama
     x = contoh();

     // Memanggil fungsi contoh() untuk yang kedua
     y = contoh();

     // Memanggil fungsi contoh() untuk yang ketiga
     z = contoh();

     // Menampilkan nilai
     // Yang telah diproses di dalam fungsi
     cout<<"Nilai pada pemanggilan pertama : "<<x<<endl;
     cout<<"Nilai pada pemanggilan kedua   : "<<y<<endl;
     cout<<"Nilai pada pemanggilan ketiga  : "<<z<<endl;

     return 0;
}

Pada kode diatas, variabel MD merupakan variabel normal (Non-Statis). Oleh karena itu setiap pemanggilan fungsi contoh() akan memberikan nilai yang sama. Berikut ini hasil yang akan diberikan oleh program diatas.
yang sama. Berikut ini hasil yang akan diberikan oleh program diatas.
Contoh Non-Variabel Statis
Contoh Non-Variabel Statis

Sekarang, coba sobat perhatikan apabila variabel MD diubah menjadi variabel statis, seperti yang ditunjukkan pada contoh program dibawah ini:
 #include <iostream>

using namespace std;

// Membuat fungsi dengan nama contoh
int contoh(){
     // Mendefinisikan variabel statis lokal
     // Dengan nama "MD"
     static int MD = 0;

     MD = MD + 10;

     return MD;
}

int main ()
{
     // Mendefinisikan variabel x, y dan z
     int x, y, z;

     // Memanggil fungsi contoh() untuk yang pertama
     x = contoh();

     // Memanggil fungsi contoh() untuk yang kedua
     y = contoh();

     // Memanggil fungsi contoh() untuk yang ketiga
     z = contoh();

     // Menampilkan nilai
     // Yang telah diproses di dalam fungsi
     cout<<"Nilai pada pemanggilan pertama : "<<x<<endl;
     cout<<"Nilai pada pemanggilan kedua   : "<<y<<endl;
     cout<<"Nilai pada pemanggilan ketiga  : "<<z<<endl;

     return 0;
}

Kali ini, hasil yang akan diberikan adalah sebagai berikut:
Contoh Variabel Statis
Contoh Variabel Statis

Apabila kita amati hasil program diatas, nilai dari setiap pemanggilan fungsi akan meberikan hasil yang berbeda. Konsepnya sederhana, yaitu pada pemanggilan fungsi yang pertama kali nilai variabel MD masih bernilai 0 (sesuai dengan inisialisasi). Fungsi akan menambahkan nilai tersebut dengan nilai 10, maka nilai yang dikembalikan fungsi contoh() adalah 10. Sampai disini karena variabel MD adalah variabel statis maka pada saat pemanggilan fungsi yang kedua, variabel MD masih menyimpan nilai 10, bukan 0. Dengan demikian pemanggilan fungsi kedua tentu akan menambahkan nilai MD dengan nilai 10, sehingga nilai yang dikembalikan adalah 20, begitu seterusnya.


·        Variabel Statis Global
Dalam pembuatan program dengan bahasa C++, kita diizinkan untuk melakukan pembuatan fungsi-fungsi dalam file yang terpisah dari program utama. Untuk kasus-kasus tertentu dimana variabel statis lokal tidak dapat digunakan, kita dapat membuat file terpisah yang mempunyai variabel statis global.

Sebagai gambaran, perhatikanlah contoh penggunaannya dalam potongan kode program dibawah ini.
 // Mendeklarasikan variabel statis global
// Dengan nama "A"
static int A;

void set_NilaiA (int A);
int get_NilaiA ();

void set_NilaiA (int aa){
     A = aa;
}

int get_NilaiA (){
     A = A + 10;
     return A;
}


3.   Variabel Register


Tidak seperti variabel biasa yang berada di memori, variabel register ini akan disimpan di register CPU. Dengan demikian, untuk mengisikan atau mengubah nilai dari variabel register tentunya tidak memerlukan akses memori sehingga prosesnya juga akan lebih cepat. Dalam C++, variabel register hanya dapat diisi oleh tipe data charint dan pointer saja serta hanya boleh dideklarasikan sebagai variabel lokal ataupun parameter dari sebuah fungsi. Untuk mendeklarasikan variabel register, kita harus menggunakan kata kunci register.

Bentuk umum dari pendeklarasian variabel register adalah sebagai berikut:
 register  tipe_data  nama_variabel;
Berikut ini adalah contoh program yang akan menunjukkan cara mendeklarasikan dan mengubah variabel register.
#include <iostream>

using namespace std;

// Membuat fungsi untuk menghitung M pangkat e
int Hitung(register int M, register int e){
     register int temp;
     temp = 1;
     for (;e;e--){
          temp = temp * M;
     }
     return temp;
}

// Fungsi Utama
int main(){
     int MD;
     MD = Hitung(4,5); // 4 pangkat 5
     cout<<MD<<endl;

     return 0;
}
Hasil yang akan diberikan adalah sebagai berikut:
Contoh Variabel Register
Contoh Variabel Register

Penggunaan struktur pengulangan for diatas akan kita bahas lebih lanjut pada artikel Perulangan For dalam C++, Lengkap Contoh dan Penjelasan.

4. Variabel Eksternal

Variabel eksternal adalah variabel global yang ada atau sudah dideklarasikan di dalam file lain. variabel jenis ini biasa digunakan apabila program yang kita tulis berjumlah lebih dari satu file. Cara membuat variabel eksternal adalah dengan menyertakan kata kunci extern di depan deklarasi variabel bersangkutan.

Sebagai gambaran, perhatikan dua buah contoh file kode program berikut ini.

File pertama: Variabel Eksternal 1.cpp
 #include <iostream>

using namespace std;

int a;

// Mendeklarasikan prosedur eksternal
extern void TulisNilai();

int main(){
     a = 99;
     TulisNilai();

     return 0;
}

File kedua: Variabel Eksternal 2.cpp
 #include <iostream>

using namespace std;

// Mendeklarasikan variabel eksternal
extern int a;

void TulisNilai(void){
     cout<<"Nilai a : "<<a<<endl;
}

Pada contoh ini, dalam file kedua (Variabel Eksternal 2.cpp) kita mendeklarasikan variabel eksternal a. variabel tersebut sebenarnya bukan variabel baru, melainkan variabel a yang sudah dideklarasikan oleh file pertama (Variabel Eksternal 1.cpp). Selain variabel eksternal, dalam file pertama kita juga akan menggunakan fungsi TulisNilai() yang sebenarnya terdapat di dalam file kedua. Maka dari itu, kita perlu mendeklarasikan fungsi eksternal di dalam file pertama dengan menggunakan kata kunci extern.

Untuk melakukan kompilasi dan eksekusi kode program diatas dalam Dev-C++, ikuti langkah langkah dibawah ini:

Langkah 1 
Dalam Dev-C++, pilih menu File → New  Project

Langkah 2
Pada dialog yang muncul, pilih tab Basic  Empty Project dan pastikan juga sobat memilih opsi C++ Project
Pembuatan Variabel Eksternal
Pembuatan Variabel Eksternal

Langkah 3
Pada Code Editor yang tersedia, tuliskan kode untuk file pertama (Variabel Eksternal 1.cpp) dan simpan sebagai Variabel Eksternal 1.cpp
Langkah 4
Selanjutnya pilih menu project → New File, lalu tuliskan kode untuk file kedua dan simpan sebagai Variabel Eksternal 2.cpp.

Langkah 5
Pilih menu Execute → Compile , untuk melanjutkan kompilasi project (semua file akan dikompilasi)



Langkah 6
Pilih menu Execute → Run untuk menjalankan program. Hasil dari langkah ke 1 sampai ke 6 adalah sebagai berikut.
Contoh Variabel Eksternal
Contoh Variabel Eksternal


Komentar

Postingan Populer