Nama : Afridho Ikhsan
Fernanda
Kelas
: 1id07
A. Control Statement
Statement
Control adalah suatu pemilihan statement yang akan
dieksekusi dimana pemilihan tersebut didasarkan atas kondisi tertentu. Statement control berfungsi untuk mengendalikan jalannya alur program. Di
dalam C++ ada 2 jenis statement control, yaitu antara lain :
-
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.
Berikut adalah contoh atau bagian dari control state atau
suatu pengendalian program :
1. FOR LOOP (PENGULANGAN)
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
dengan for
for (inisialisasi ekspresi; kondisi loop; ekspresi penambahan){ //
pernyataan }
Perulangan dengan teknik ini dikontrol oleh tiga
bagian yang ada dalam tanda kurung dan masing-masing bagian ini dipisahkan oleh
titik-koma. Pada bagian pertama(inisialisasi ekspresi), sebuah variabel akan di
deklarasikan sebagai sebuah titik awal dari perulangan, biasanya variable ini
mempunyai tipe data integer atau float. Sementara pada bagian kedua disinilah
perulangan akan diperiksa apakah masih memenuhi syarat atau tidak, jika masih
memenuhi syarat maka statement dibawahnya akan di eksekusi. Sedangkan bagian ketiga adalah bagian dimana jika
bagian kedua masih memenuhi syarat maka nilai variabel akan ditambahkan sesuai
dengan syarat yang dituliskan. Bagian ketiga ini secara otomatis akan tidak
dibaca oleh program jika kondisi pada bagian ke-dua sudah tidak lagi memenuhi
syarat, dan perulangan pun menjadi terhenti. Untuk lebih jelasnya perhatikan
potongan contoh berikut ini:
for (int i=0; i <=1000; i++)
{ System.out.println(“Saya Ganteng”); }
Jika digambarkan jalannya program akan seperti ini:
variable i akan di inisialisasi pertama kali dan langsung diberi nilai 0,
kemudian variable i tersebut akan diperiksa pada bagian kedua, apakah i lebih
kecil atau sama dengan 1000, jika nilai I pertama kali adalah 0 maka pernyataan
tersebut bernilai benar (true), sehingga bagian ketiga pun di eksekusi dan kali
ini nilai i menjadi sama dengan 1. setelah nilai i bertambah menjadi 1 maka
langkah selanjutnya program akan mengeksekusi baris pernyataan yang ada didalam
tanda kurung, program akan menuliskan ke layar “Saya Ganteng”. Setelah itu
kursor baris akan kembali lagi keatas ke posisi for lagi, namun inisialisasi
variabel dilewatkan dan langsung ke bagian kedua yaitu memeriksa apakah i
<=1000, dan jika masih memenuhi syarat maka bagian ketiga dan baris
statement pun di eksekusi kembali, demikian seterusnya hinga nilai variabel i
sudah menjadi sama dengan 1001. Jika nilai variabel i sudah tidak lagi memenuhi
syarat bagian kedua maka program akan tidak mengeksekusi bagian ketiga dan
baris statement, dan pada saat ini pula loop atau perulangan akan berhenti.
Jika digambarkan dalam diagram maka seperti inilah perulangan dengan for itu
tergambar.
b.
Perulangan
dengan while.
while(ekspresi)
{ //statement }
Perulangan dengan menggunakan teknik while ini sebenarnya adalah suatu
bentuk perulangan yang memodifikasi teknik pencabangan (branching) secara
kasar. Pernyataan yang ada didalam blok perulangan akan dieksekusi dengan cara
memeriksa ekspresi yang ada, sepanjang ekspresi bernilai true maka statement
akan terus di eksekusi. Variabel sebagai kontrol perulangan bentuk ini
diinisialisai di luar blok perulangan ini. Dan penambahan atau increment nilai
variabel berada didalam blok perulangan ini. Kelebihan perulangan dengan bentuk
ini adalah variabel yang dideklarasikan tidak hanya bertipe integer atau float
saja namun bisa juga bertipe boolean atau string. Perhatikan contoh program
perulangan dengan menggunakan bentuk ini yang memakai variabel bertipe integer
sebagai kontrol perulangannya:
int
i=0; while(i<=10000)
{ System.out.println(“Saya Ganteng”);
i++; }
Sepanjang variable i bernilai lebih kecil sama dengan 1000 maka
pernyataan mencetak ke layar “Saya Ganteng” akan tetap terus di eksekusi. Yang
harus kita perhatikan jika kita menggunakan perulangan dengan teknik ini adalah
bahwa incremental variabel i harus ada, sebab jika tidak yang terjadi
adalah perulangan yang tidak pernah akan berhenti atau Invinitive Loop.
Kemudian mari kita lihat potongan kode yang variabel kontrolnya tidak
menggunakan integer atau float, berikut ini:
boolean ctrl =false; int i = 0; while(ctrl==false)
{ System.out.println(“Saya Ganteng”); i++;
if (i == 1000){ ctrl = true; } }
Perhatikan pada potongan kode program tersebut. Pernyataan mencetak
kelayar “Saya Ganteng” akan terus dieksekusi selama variabel kontrol perulangan
tersebut masih bernilai false, sementara trigger untuk membuat variable
bernilai true adalah nilai variable i yang harus sampai dengan 1000.
Jika digambarkan dalam diagram maka sketsa perulangan dengan bentuk ini
seperti gambar berikut
c.
Pengulangan dengan do while
Do
{//statement}
While(ekspresi);
Perulangan dengan bentuk seperti ini adalah perulangan dengan membalikkan
logika perulangan dengan teknik while. Dalam perulangan dengan bentuk ini,
pernyataan dieksekusi dulu, baru kemudian kondisi variabel kontrol perulangannya
diperiksa apakah memenuhi syarat atau tidak. Biar lebih mudah memahaminya mari
kita lihat potongan code program berikut ini:
int i=0;
do
{ System.out.println(“Saya Ganteng”);
i++;
}while(i<=10000);
Variabel kontrol perulangan tetap diinisialisasi diluar blok perulangan
dan harus tetap bersifat incremental / bertambah dan letak incrementalnya ada
dalam blok perulangan. Secara logika maka diagram yang bisa menggambarkan
proses perulangan tersebut adalah:
2. IF– Else ( Jika tidak)
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".
3. While
Loop
Satu lagi
jenis perulangan yaitu while loop.
Perulangan
jenis ini sama dengan perulangan for loop, dimana pemeriksaan kondisi dilakukan
di awal.
contoh
programnya.
var oShell = WScript.CreateObject("WScript.Shell");
oShell.run("notepad");
WScript.Sleep(1000);
var i=0;
while(i<100){ //<----- baris
ini merupakan persyaratan i< 100
oShell.sendKeys("Saya tidak akan mengulangi kesalahan seperti itu
lagi"); oShell.sendKeys('{ENTER}');
WScript.sleep(100); i++;
}
simpan
file tersebut dengan nama whileloop.js dan jalankan.
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
B.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
1.
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.
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.
|
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:
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 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;
}
Hasil
yang akan diberikan adalah sebagai berikut:
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
|
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
|