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 while, do-while, for 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
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
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);
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;
.....
}
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;
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;
}
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.
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;
}
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:
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;
}
// 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 char, int 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;
}
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:
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;
}
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;
}
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:
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
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
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.
Sumber:
http://www.materidosen.com/2017/03/4-jenis-variabel-dalam-c-lengkap-contoh.html
https://www.codepolitan.com/control-statement-dalam-c-588708d44caa2
https://redaksi.pens.ac.id/2019/09/30/statement-perulangan-looping-2/
http://www.materidosen.com/2017/03/4-jenis-variabel-dalam-c-lengkap-contoh.html
https://www.codepolitan.com/control-statement-dalam-c-588708d44caa2
https://redaksi.pens.ac.id/2019/09/30/statement-perulangan-looping-2/
Komentar
Posting Komentar