Control Statement, Fungsi Dan Variabel Pada Bahasa C
NAMA : ALFAT SUGIARTO
KELAS : 1ID07
NPM : 30419462
MAPEL : DASAR KOMPUTER DAN PEMROGRAMAN 2A
DOSEN : KURNIAWAN B.PRIANTO, S.KOM.SH.MM
CONTROL STATEMENT
- FOR LOOP
For Loop digunakan untuk mengeksekusi blok pernyataan berulang kali sampai kondisi tertentu terpenuhi. Misalnya, ketika Anda menampilkan angka dari 1 hingga 100 Anda mungkin ingin mengatur nilai variabel menjadi 1 dan menampilkannya 100 kali, meningkatkan nilainya 1 pada setiap iterasi loop.Di C ++ kami memiliki tiga jenis loop dasar: for, while dan do-while . Dalam tutorial ini kita akan belajar cara menggunakan "for loop" di C ++.
Syntax of for loop
for(initialization; condition ; increment/decrement) { C++ statement(s); }
Alur Eksekusi untuk Loop
Saat sebuah program dijalankan, penerjemah selalu melacak pernyataan mana yang akan dieksekusi. Kami menyebutnya aliran kontrol, atau aliran eksekusi program.
Langkah pertama: Dalam untuk loop, inisialisasi terjadi pertama dan hanya sekali, yang berarti bahwa bagian inisialisasi untuk loop hanya dijalankan sekali.
Langkah kedua: Kondisi dalam untuk loop dievaluasi pada setiap iterasi loop, jika kondisinya benar maka pernyataan di dalam untuk for loop body dieksekusi. Setelah kondisi mengembalikan false, pernyataan dalam untuk loop tidak dijalankan dan kontrol akan ditransfer ke pernyataan berikutnya dalam program setelah untuk loop.
Langkah ketiga: Setelah setiap eksekusi for for loop's body, bagian increment / decrement for for loop mengeksekusi yang memperbarui penghitung loop.
Langkah keempat: Setelah langkah ketiga, kontrol melompat ke langkah kedua dan kondisinya dievaluasi kembali.
Langkah-langkah dari kedua hingga keempat berulang sampai kondisi loop kembali salah.
Contoh loop Sederhana Untuk di C ++
Di sini, di bagian inisialisasi loop saya telah menetapkan nilai variabel i ke 1, kondisinya adalah i <= 6 dan pada setiap loop iterasi nilai i kenaikan sebesar 1
Langkah kedua: Kondisi dalam untuk loop dievaluasi pada setiap iterasi loop, jika kondisinya benar maka pernyataan di dalam untuk for loop body dieksekusi. Setelah kondisi mengembalikan false, pernyataan dalam untuk loop tidak dijalankan dan kontrol akan ditransfer ke pernyataan berikutnya dalam program setelah untuk loop.
Langkah ketiga: Setelah setiap eksekusi for for loop's body, bagian increment / decrement for for loop mengeksekusi yang memperbarui penghitung loop.
Langkah keempat: Setelah langkah ketiga, kontrol melompat ke langkah kedua dan kondisinya dievaluasi kembali.
Langkah-langkah dari kedua hingga keempat berulang sampai kondisi loop kembali salah.
Contoh loop Sederhana Untuk di C ++
Di sini, di bagian inisialisasi loop saya telah menetapkan nilai variabel i ke 1, kondisinya adalah i <= 6 dan pada setiap loop iterasi nilai i kenaikan sebesar 1
#include <iostream> menggunakan namespace std ; int main () { for ( int i = 1 ; i <= 6 ; i ++) { / * Pernyataan ini akan dieksekusi
* Berulang kali sampai kondisinya
* i <= 6 menghasilkan false.
* /
cout << "Nilai variabel i adalah:" << i << endl ; } kembalikan 0 ; }
Nilai variabel i adalah : 1 Nilai variabel i adalah : 2 Nilai variabel i adalah : 3 Nilai variabel i adalah : 4 Nilai variabel i adalah : 5 Nilai variabel i adalah : 6
Infinite untuk loop di C ++
Sebuah loop dikatakan tidak terbatas ketika dijalankan berulang kali dan tidak pernah berhenti. Ini biasanya terjadi karena kesalahan. Ketika Anda mengatur kondisi dalam untuk loop sedemikian rupa sehingga tidak pernah mengembalikan false, itu menjadi loop tak terbatas.
Sebagai contoh:
#include <iostream> menggunakan namespace std ; int main () { for ( int i = 1 ; i > = 1 ; i ++) { cout << "Nilai variabel i adalah:" << i << endl ; } kembalikan 0 ; }
Berikut adalah contoh lain dari infinite for loop:
// loop tak terbatas untuk ( ; ; ) { // pernyataan (s) }Contoh: menampilkan elemen array menggunakan for loop
#include <iostream> menggunakan namespace std ; int main () { int arr [] = { 21 , 9 , 56 , 99 , 202 }; / * Kami telah menetapkan nilai variabel i * ke 0 saat indeks array dimulai dengan 0 * Yang berarti elemen pertama array * dimulai dengan indeks nol. * / untuk ( int i = 0 ; i < 5 ; i ++) { cout << arr [ i ] << endl ; } kembalikan 0 ; }
21 9 56 99 202
- IF-ELSE
Terkadang kita perlu mengeksekusi blok pernyataan hanya ketika kondisi tertentu terpenuhi atau tidak terpenuhi. Ini disebut pengambilan keputusan, karena kami mengeksekusi kode tertentu setelah membuat keputusan dalam logika program. Untuk pengambilan keputusan dalam C ++, kami memiliki empat jenis pernyataan kontrol (atau struktur kontrol), yaitu sebagai berikut:
a) if statement
b) nested if statement
c) if-else statement
d) if-else-if statement
a) If statement in C++
If statement terdiri dari suatu kondisi, diikuti oleh pernyataan atau serangkaian pernyataan seperti yang ditunjukkan di bawah ini:
Pernyataan di dalam jika kurung (biasanya disebut sebagai jika tubuh) dieksekusi hanya ketika kondisi yang diberikan benar. Jika kondisinya salah maka pernyataan di dalamnya jika tubuh sepenuhnya diabaikan.
Diagram aliran dari If statement
Contoh dari If statement
Keluar :
b) Nested if statement in C++
Ketika ada pernyataan if di dalam statement if lainnya maka itu disebut Nested if statement.
Struktur dari Nested if statement :
if(condition_1) {
Statement1(s);
if(condition_2) {
Statement2(s);
}
}
Contoh dari Nested if statement :
#include <iostream>
using namespace std;
int main(){
int num=90;
/* Nested if statement. An if statement
* inside another if body
*/
if( num < 100 ){
cout<<"number is less than 100"<<endl;
if(num > 50){
cout<<"number is greater than 50";
}
}
return 0;
}
number is less than 100
number is greater than 50
Kadang-kadang Anda memiliki kondisi dan Anda ingin mengeksekusi blok kode jika kondisi benar dan mengeksekusi potongan kode lain jika kondisi yang sama salah. Ini dapat dicapai dalam menggunakan If else statement.
Struktur dari If-else statement :
if(condition) {
Statement(s);
}
else {
Statement(s);
}
Diagram dari If-else statement
Contoh dari If-else statement
#include <iostream>
using namespace std;
int main(){
int num=66;
if( num < 50 ){
//This would run if above condition is true
cout<<"num is less than 50";
}
else {
//This would run if above condition is false
cout<<"num is greater than or equal 50";
}
return 0;
}
num is greater than or equal 50
If-else-if-statement digunakan ketika kita perlu memeriksa beberapa kondisi. Dalam struktur kontrol ini kita hanya memiliki satu blok “jika” dan satu “yang lain”, namun kita dapat memiliki beberapa blok “lain jika”. Begini tampilannya:
if(condition_1) {
/*if condition_1 is true execute this*/
statement(s);
}
else if(condition_2) {
/* execute this if condition_1 is not met and
* condition_2 is met
*/
statement(s);
}
else if(condition_3) {
/* execute this if condition_1 & condition_2 are
* not met and condition_3 is met
*/
statement(s);
}
.
.
.
else {
/* if none of the condition is true
* then these statements gets executed
*/
statement(s);
}
Contoh if-else-if
#include <iostream>
using namespace std;
int main(){
int num;
cout<<"Enter an integer number between 1 & 99999: ";
cin>>num;
if(num <100 && num>=1) {
cout<<"Its a two digit number";
}
else if(num <1000 && num>=100) {
cout<<"Its a three digit number";
}
else if(num <10000 && num>=1000) {
cout<<"Its a four digit number";
}
else if(num <100000 && num>=10000) {
cout<<"Its a five digit number";
}
else {
cout<<"number is not between 1 & 99999";
}
return 0;
}
Enter an integer number between 1 & 99999: 8976
Its a four digit number
- WHILE LOOP
Dalam tutorial ini kita akan membahas while loop. Seperti dibahas sebelumnya, loop digunakan untuk mengeksekusi blok pernyataan program berulang kali sampai kondisi loop yang diberikan mengembalikan false.Sintaksisnya while loop
while(condition)
{
statement(s);
}
Dalam While Loop, kondisi dievaluasi terlebih dahulu dan jika itu mengembalikan nilai true maka pernyataan di dalam saat loop dieksekusi, ini terjadi berulang kali sampai kondisi mengembalikan false. Ketika kondisi mengembalikan false, kontrol keluar dari loop dan melompat ke pernyataan berikutnya dalam program setelah loop sementara.
Catatan: Poin penting yang perlu diperhatikan saat menggunakan while adalah kita perlu menggunakan pernyataan increment atau decrement di dalam while, sehingga variabel loop diubah pada setiap iterasi, dan pada beberapa kondisi titik mengembalikan false. Dengan cara ini kita bisa mengakhiri eksekusi while, jika tidak, loop akan mengeksekusi tanpa batas.
Diagram Alir dari While Loop
Contoh While loop
#include <iostream>
using namespace std;
int main(){
int i=1;
/* The loop would continue to print
* the value of i until the given condition
* i<=6 returns false.
*/
while(i<=6){
cout<<"Value of variable i is: "<<i<<endl; i++;
}
}
Value of variable i is: 1
Value of variable i is: 2
Value of variable i is: 3
Value of variable i is: 4
Value of variable i is: 5
Value of variable i is: 6
While Loop yang tidak pernah berhenti dikatakan sebagai Infinite While Loop, ketika kita memberikan kondisi sedemikian rupa sehingga tidak pernah mengembalikan false, maka loop menjadi tak terbatas dan berulang sendiri tanpa batas.
Contoh dari Infinite While Loop
Loop ini tidak akan pernah berakhir karena saya menurunkan nilai i yang 1 sehingga kondisi saya <= 6 tidak akan pernah kembali salah.
#include <iostream>
using namespace std;
int main(){
int i=1; while(i<=6) {
cout<<"Value of variable i is: "<<i<<endl; i--;
}
}
- SWITCH STATEMENT
Apa itu Switch Statement ?
Switch Statement berfungsi sebagai pernyataan cabang multiway, artinya Anda dapat membuat beberapa jawaban dan hasil dengan perintah pendek. Ini adalah alternatif umum untuk pernyataan if saat Anda ingin mendapatkan beberapa hasil.
Karena kita akan membuat banyak kasus menggunakan Switch Statement, kita perlu memahami aliran sistem Switch Statement. Dianjurkan untuk menggunakan diagram alur untuk membuat pernyataan beralih terstruktur lebih baik. Ini sebuah contoh:
Sintaks Switch Statement
Di sini k adalah nama hasil yang ingin kita dapatkan. Sementara itu, kasus adalah hasil yang keluar jika k dijawab dengan nilai yang ditentukan.
Misalnya, Anda ingin memiliki hasil sebagai hasilnya, jika jawabannya adalah 1. Hasilnya harus ditulis setelah kasus 1. Anda juga perlu memastikan bahwa nilai k dalam kasus 1 adalah 1. Jadi, jika ada yang menjawab variabel dengan 1, hasil keluaran akan muncul.
Setelah membuat kasing Anda, penting untuk menindaklanjuti kasing dengan perintah break. Break menginstruksikan program untuk berhenti mencari jawaban jika sudah ditemukan.
Setelah Anda selesai dengan kasus 1, Anda dapat melanjutkan dengan kasus 2, kasus 3, dan seterusnya. Keindahan dari pernyataan switch adalah bahwa Anda dapat meletakkan case sebanyak yang dibutuhkan.
Setelah membuat semua kasus, Anda harus menutup pernyataan dengan hasil default. Ini akan ditampilkan jika jawabannya tidak dalam salah satu kasus.
Teori itu hebat, tapi kami sarankan untuk menggali lebih dalam.
Aplikasi Switch Statement paling umum
Dalam contoh di atas, kita melihat bahwa hasil dari kasus Y adalah Ya sementara hasil dari kasus N adalah Tidak. Jika nilai yang dimasukkan tidak sesuai dengan ketiga opsi yang ditentukan, hasil yang dihasilkan akan menjadi respons yang tidak valid.
Switch Statement in C++: Useful Tips
1. Anda dapat menggunakan nilai non-numerik dengan pernyataan sakelar.
2. Kasing tidak harus berurutan, selama Anda menggunakan persyaratan dan sintaksis yang tepat.
3. Kasing tidak dapat memiliki nilai yang sama, karena ini akan menghasilkan kesalahan nilai duplikat.
4. Anda tidak harus menggunakan pernyataan istirahat untuk setiap kasus, tetapi tindakan akan tetap terjadi sampai mencapai pernyataan istirahat lain.
Di artikel ini, Anda akan belajar tentang Break and Continue. Lebih khusus lagi, apa mereka, kapan menggunakannya dan bagaimana menggunakannya secara efisien.
Dalam C ++, ada dua pernyataan Break; dan Continue; khusus untuk mengubah aliran normal suatu program.
Terkadang, diinginkan untuk melewati eksekusi loop untuk kondisi pengujian tertentu atau menghentikannya segera tanpa memeriksa kondisi.
Misalnya: Anda ingin mengulang-ulang data semua orang tua kecuali orang berusia 65 tahun. Atau, Anda ingin mencari orang pertama yang berusia 20 tahun.
Dalam skenario seperti ini, Break atau Continue pernyataan digunakan.
· C++ Break Statement
Break Statement mengakhiri sebuah loop (untuk, while dan do..while loop) dan sebuah statement switch segera saat itu muncul.
Syntax untuk Break
Switch Statement berfungsi sebagai pernyataan cabang multiway, artinya Anda dapat membuat beberapa jawaban dan hasil dengan perintah pendek. Ini adalah alternatif umum untuk pernyataan if saat Anda ingin mendapatkan beberapa hasil.
Karena kita akan membuat banyak kasus menggunakan Switch Statement, kita perlu memahami aliran sistem Switch Statement. Dianjurkan untuk menggunakan diagram alur untuk membuat pernyataan beralih terstruktur lebih baik. Ini sebuah contoh:
Sintaks Switch Statement
Contoh
#include <iostream>
using namespace std;
int main() {
int k = 1;
switch (k) {
case 1: // will be executed if k = 1;
break;
case 2: // will be executed if k = 2;
break;
default: // will be executed if k doesn't match any cases
break;
}
}
Di sini k adalah nama hasil yang ingin kita dapatkan. Sementara itu, kasus adalah hasil yang keluar jika k dijawab dengan nilai yang ditentukan.
Misalnya, Anda ingin memiliki hasil sebagai hasilnya, jika jawabannya adalah 1. Hasilnya harus ditulis setelah kasus 1. Anda juga perlu memastikan bahwa nilai k dalam kasus 1 adalah 1. Jadi, jika ada yang menjawab variabel dengan 1, hasil keluaran akan muncul.
Setelah membuat kasing Anda, penting untuk menindaklanjuti kasing dengan perintah break. Break menginstruksikan program untuk berhenti mencari jawaban jika sudah ditemukan.
Setelah Anda selesai dengan kasus 1, Anda dapat melanjutkan dengan kasus 2, kasus 3, dan seterusnya. Keindahan dari pernyataan switch adalah bahwa Anda dapat meletakkan case sebanyak yang dibutuhkan.
Setelah membuat semua kasus, Anda harus menutup pernyataan dengan hasil default. Ini akan ditampilkan jika jawabannya tidak dalam salah satu kasus.
Teori itu hebat, tapi kami sarankan untuk menggali lebih dalam.
Aplikasi Switch Statement paling umum
Contoh
#include <iostream>
using namespace std;
int main() {
char choice;
switch (choice) {
case 'N':
cout << "No";
break;
case 'D':
cout << "Don't know";
break;
case 'Y':
cout << "Yes";
break;
default:
cout << "N/A";
}
}
Dalam contoh di atas, kita melihat bahwa hasil dari kasus Y adalah Ya sementara hasil dari kasus N adalah Tidak. Jika nilai yang dimasukkan tidak sesuai dengan ketiga opsi yang ditentukan, hasil yang dihasilkan akan menjadi respons yang tidak valid.
Switch Statement in C++: Useful Tips
1. Anda dapat menggunakan nilai non-numerik dengan pernyataan sakelar.
2. Kasing tidak harus berurutan, selama Anda menggunakan persyaratan dan sintaksis yang tepat.
3. Kasing tidak dapat memiliki nilai yang sama, karena ini akan menghasilkan kesalahan nilai duplikat.
4. Anda tidak harus menggunakan pernyataan istirahat untuk setiap kasus, tetapi tindakan akan tetap terjadi sampai mencapai pernyataan istirahat lain.
- BREAK AND CONTINUE
Di artikel ini, Anda akan belajar tentang Break and Continue. Lebih khusus lagi, apa mereka, kapan menggunakannya dan bagaimana menggunakannya secara efisien.
Dalam C ++, ada dua pernyataan Break; dan Continue; khusus untuk mengubah aliran normal suatu program.
Terkadang, diinginkan untuk melewati eksekusi loop untuk kondisi pengujian tertentu atau menghentikannya segera tanpa memeriksa kondisi.
Misalnya: Anda ingin mengulang-ulang data semua orang tua kecuali orang berusia 65 tahun. Atau, Anda ingin mencari orang pertama yang berusia 20 tahun.
Dalam skenario seperti ini, Break atau Continue pernyataan digunakan.
· C++ Break Statement
Break Statement mengakhiri sebuah loop (untuk, while dan do..while loop) dan sebuah statement switch segera saat itu muncul.
Syntax untuk Break
break;
Bagaimana Break Statement bekerja ?
Contoh Break
Program C ++ untuk menambahkan semua angka yang dimasukkan oleh pengguna sampai pengguna memasukkan 0.
// C++ Program to demonstrate working of break statement
#include <iostream>
using namespace std;
int main() {
float number, sum = 0.0;
// test expression is always true
while (true)
{
cout << "Enter a number: ";
cin >> number;
if (number != 0.0)
{
sum += number;
}
else
{
// terminates the loop if number equals 0.0
break;
}
}
cout << "Sum = " << sum;
return 0;
}
Enter a number: 4
Enter a number: 3.4
Enter a number: 6.7
Enter a number: -4.5
Enter a number: 0
Sum = 9.6
Pengguna diminta untuk memasukkan nomor yang disimpan dalam nomor variabel. Jika pengguna memasukkan nomor selain 0, nomor tersebut ditambahkan ke jumlah dan disimpan.
Sekali lagi, pengguna diminta memasukkan nomor lain. Ketika pengguna memasukkan 0, ekspresi tes di dalam jika pernyataan salah dan tubuh orang lain dieksekusi yang mengakhiri loop.
· C++ Continue Statement
Terkadang perlu untuk melewati kondisi pengujian tertentu dalam satu lingkaran. Dalam hal demikian Continue Statement digunakan dalam pemrograman C ++.
Syntaks untuk Contiune
continue;
Cara kerja Continue Statement
Contoh Continue Statement
Program C ++ untuk menampilkan integer dari 1 hingga 10 kecuali 6 dan 9.
#include <iostream>
using namespace std;
int main()
{
for (int i = 1; i <= 10; ++i)
{
if ( i == 6 || i == 9)
{
continue;
}
cout << i << "\t";
}
return 0;
}
1 2 3 4 5 7 8 10
FUNGSI
DEFINISI FUNGSI
Nama fungi yang didefinisikan sendiri oleh pemrogram tidak boleh sama dengan nama build-in function pada compiler C++. Fungsi digunakan agar pemrogram dapat menghindari penulisan bagian program (kode) berulang-ulang, dapat menyusun kode program agar terlihat lebih rapi dan kemudahan dalam debugging program.
Cara Membuat Fungsi pada Bahasa C
Fungsi pada C++ dapat kita buat dengan cara seperti ini:
Apabila fungsi tersebut tidak memiliki nilai kembalian, maka kita harus menggunakan tipe void untuk menyatakan kalau fungsi tersebut tidak akan mengembalikan nilai apa-apa.
Contoh:
Lalu untuk parameter bersifat opsional, boleh ada boleh tidak.
Tergantung dari fungsi yang dibuat. Jika fungsi itu membutuhkan input, maka kita harus membuatkan paramter.
Tapi kalau tidak menerima input apapun, ya tidak perlu dibuat.
Fungsi yang tidak menerima input, kadang juga disebut dengan prosedur.
Okee..
Sekarang mari kita coba membaut fungsi pada program C++.
Silahkan buat file baru bernama contoh_fungsi.cpp kemudian isi dengan kode berikut:
Hasilnya:
Fungsi say_hello() dapat kita panggil berulang kali pada fungsi main().
Contoh:
Maka hasilnya:
Jadi, cukup buat fungsi satu kali. Kita bisa panggil berkali-kali.
DEKLARASI DAN DEFINISI NYA
Pada contoh di atas, kita membuat fungsi dengan cara mendefinisikan langsung fungsinya.
Kita juga bisa membuatnya dengan deklarasi.
Contoh :
Apa bedanya dengan yang tadi?
Jika kita membaut fungsi secara definisi, kita harus membuat fungsinya di atas fungsi main.
Jika dibuat di bawah fungsi main, maka program akan error.
Soalnya program C++ dieksekusi dari atas ke bawah.
Tapi berkat deklarasi, masalah ini bisa teratasi.
Jadi kamu mau pilih cara yang mana?
Deklarasi dulu atau langsung definisikan fungsinya?
Fungsi dengan Parameter
Parameter adalah variabel yang menyimpan nilai untuk diproses di dalam fungsi.
Parameter berfungsi untuk menyimpan nilai yang akan diinputkan ke fungsi.
Contoh:
Perhatikan!
name adalah sebuah parameter dengan tipe string.
Parameter ini akan menyimpan nilai yang diinputkan ke fungsi say_hello().
Lalu, bagaimana cara kita memberikan input ke fungsi?
Berikut caranya:
Perhatikan!
"Petani Kode" adalah nilai yang akan kita berikan ke fungsi.
Biar lebih paham… mari kita coba dalam program.
Silahkan buat program baru dengan nama fungsi_parameter.cpp, kemudian isi dengan kode berikut:
Hasilnya:
Fungsi yang Mengembalikan Nilai
Pada contoh di atas, kita memberikan nilai input ke fungsi berupa integer…
…lalu di dalamnya dilakukan operasi penjumlahan.
Fungsi ini tidak mengembalikan apa-apa, karena tipe data yang diberikan pada nilai kembalian adalah void.
Fungsi juga kadang harus menghasilkan output.
Mengapa?
Karena kadang kita membutuhkan hasil dari fungsi tersebut untuk digunakan pada proses berikutnya.
Kita bisa menggunakan kata kunci return untuk mengembalikan nilai dari fungsi.
Contoh:
Maka fungsi add() akan mengembalikan nilai berupa integer dari hasil penjumlahan nilai a dan b.
Mari kita coba contoh yang lain…
Silahkan buat program baru bernama fungsi_bagi.c, kemudian isi dengan kode berikut:
Hasilnya:
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:
Pada contoh di atas, kita membuat variabel global bernama nilai.
Fungsi ini berada di luar fungsi main.
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.
Sekarang coba hapus variabel lokal yang ada di dalam main, sehingga akan menjadi seperti ini:
Maka hasil outputnya akan 9. Karena variabel yang dipakai adalah variabel global.
Kalau tidak percaya, coba buktikan aja sendiri!
Pass by Value dan Pass by Reference
Pass by value dan pass by reference adalah cara untuk memberikan nilai pada paramaeter.
Biasanya kita langsung memberikan nilai kepada parameter dengan cara seperti ini:
Nah kalau seperti ini:
Ini disebut pass by reference, karena kita memberikan alamat memori.
Contoh:
Fungsi pada C++ dapat kita buat dengan cara seperti ini:
Apabila fungsi tersebut tidak memiliki nilai kembalian, maka kita harus menggunakan tipe void untuk menyatakan kalau fungsi tersebut tidak akan mengembalikan nilai apa-apa.
Contoh:
void
nama_fungsi
(){
cout
<<
"Ini adalah sebuah fungsi\n"
;
}
Tergantung dari fungsi yang dibuat. Jika fungsi itu membutuhkan input, maka kita harus membuatkan paramter.
Tapi kalau tidak menerima input apapun, ya tidak perlu dibuat.
Fungsi yang tidak menerima input, kadang juga disebut dengan prosedur.
Okee..
Sekarang mari kita coba membaut fungsi pada program C++.
Silahkan buat file baru bernama contoh_fungsi.cpp kemudian isi dengan kode berikut:
#
include
<iostream>
using
namespace
std;
// membuat fungsi say_hello()
void
say_hello
(){
cout
<<
"Hello Selamat Datang!\n"
;
}
int
main
(){
// memanggil fungsi say_hello()
say_hello();
return
0
;
}
Fungsi say_hello() dapat kita panggil berulang kali pada fungsi main().
Contoh:
#include
<iostream>
using
namespace
std;
// membuat fungsi say_hello()
void
say_hello
(){
cout
<<
"Hello Selamat Datang!\n"
;
}
int
main
(){
// memanggil fungsi say_hello()
say_hello();
say_hello();
say_hello();
return
0
;
}
Jadi, cukup buat fungsi satu kali. Kita bisa panggil berkali-kali.
DEKLARASI DAN DEFINISI NYA
Pada contoh di atas, kita membuat fungsi dengan cara mendefinisikan langsung fungsinya.
Kita juga bisa membuatnya dengan deklarasi.
Contoh :
#include
<iostream>
using
namespace
std;
// deklarasi fungsi
void
say_hello
();
int
main
(){
// memanggil fungsi say_hello()
say_hello();
say_hello();
say_hello();
return
0
;
}
// Definisi fungsi
void
say_hello
(){
cout
<<
"Hello Selamat Datang!\n"
;
}
Jika kita membaut fungsi secara definisi, kita harus membuat fungsinya di atas fungsi main.
Jika dibuat di bawah fungsi main, maka program akan error.
Soalnya program C++ dieksekusi dari atas ke bawah.
Tapi berkat deklarasi, masalah ini bisa teratasi.
Jadi kamu mau pilih cara yang mana?
Deklarasi dulu atau langsung definisikan fungsinya?
Fungsi dengan Parameter
Parameter adalah variabel yang menyimpan nilai untuk diproses di dalam fungsi.
Parameter berfungsi untuk menyimpan nilai yang akan diinputkan ke fungsi.
Contoh:
void say_hello(string name){
cout << "Hello " << name << "!\n";
}
name adalah sebuah parameter dengan tipe string.
Parameter ini akan menyimpan nilai yang diinputkan ke fungsi say_hello().
Lalu, bagaimana cara kita memberikan input ke fungsi?
Berikut caranya:
say_hello("Petani Kode");
Perhatikan!
"Petani Kode" adalah nilai yang akan kita berikan ke fungsi.
Biar lebih paham… mari kita coba dalam program.
Silahkan buat program baru dengan nama fungsi_parameter.cpp, kemudian isi dengan kode berikut:
#include <iostream>
using namespace std;
void say_hello(string name){
cout << "Hello " << name << "!\n";
}
int main(){
say_hello("Dian");
say_hello("Petani");
say_hello("Kode");
return 0;
}
Fungsi yang Mengembalikan Nilai
Pada contoh di atas, kita memberikan nilai input ke fungsi berupa integer…
…lalu di dalamnya dilakukan operasi penjumlahan.
void
add
(
int
a,
int
b){
printf(
"%d + %d = %d\n"
, a, b, a
+
b);
}
Fungsi juga kadang harus menghasilkan output.
Mengapa?
Karena kadang kita membutuhkan hasil dari fungsi tersebut untuk digunakan pada proses berikutnya.
Kita bisa menggunakan kata kunci return untuk mengembalikan nilai dari fungsi.
Contoh:
int
add
(
int
a,
int
b){
return
a
+
b;
}
Maka fungsi add() akan mengembalikan nilai berupa integer dari hasil penjumlahan nilai a dan b.
Mari kita coba contoh yang lain…
Silahkan buat program baru bernama fungsi_bagi.c, kemudian isi dengan kode berikut:
#include
<iostream>
using
namespace
std;
float
bagi
(
int
a,
int
b){
float
hasil
=
(
float
)a
/
(
float
)b;
return
hasil;
}
int
main
(){
printf(
"Hasil 5/2: %.2f\n"
, bagi(
5
,
2
));
return
0
;
}
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
<iostream>
using
namespace
std;
// membuat variabel global
int
nilai
=
9
;
int
main
(){
// membuat variabel lokal
int
nilai
=
7
;
// mencetak variabel
printf(
"Nilai: %d\n"
, nilai);
return
0
;
}
Fungsi ini berada di luar fungsi main.
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.
Sekarang coba hapus variabel lokal yang ada di dalam main, sehingga akan menjadi seperti ini:
#include
<iostream>
using
namespace
std;
// membuat variabel global
int
nilai
=
9
;
int
main
(){
// membuat variabel lokal
//int nilai = 7;
// mencetak variabel
printf(
"Nilai: %d\n"
, nilai);
return
0
;
}
Maka hasil outputnya akan 9. Karena variabel yang dipakai adalah variabel global.
Kalau tidak percaya, coba buktikan aja sendiri!
Pass by Value dan Pass by Reference
Pass by value dan pass by reference adalah cara untuk memberikan nilai pada paramaeter.
Biasanya kita langsung memberikan nilai kepada parameter dengan cara seperti ini:
Ini disebut pass by value, karena di sana kita memberikan nilai 4 secara langsung.kali_dua(
4
);
Nah kalau seperti ini:
kali_dua(
&
nama_variabel);
Ini disebut pass by reference, karena kita memberikan alamat memori.
Contoh:
#include
<iostream>
using
namespace
std;
void
kali_dua
(
int
*
num){
*
num
=
*
num
*
2
;
}
int
main
(){
int
angka
=
9
;
// memanggil fungsi
kali_dua(
&
angka);
// mencetak isi variabel
// setelah fungsi dipanggil
cout
<<
"isi variabel angka = "
<<
angka
<<
endl;
return
0
;
}
Fungsi kali_dua() memiliki parameter berupa pointer, artinya kita harus memberikan alamat memori untuk pointer ini.
Pada saat pemanggilan, fungsi kali_dua() kita isi parameternya dengan alamat memori dari variabel angka.
Maka hasilnya nilai variabel angka akan dikalikan dengan 2 berdasarkan rumus pada fungsi yang kita berikan.
Fungsi Rekursif pada C++
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri.
Coba perhatikan contoh berikut:
#include
<iostream>
using
namespace
std;
// deklarasi fungsi
int
sum
(
int
n);
int
main
(){
int
number, result;
printf(
"Enter a positive integer: "
);
scanf(
"%d"
,
&
number);
result
=
sum(number);
printf(
"sum = %d"
, result);
return
0
;
}
// definisi fungsi
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
-
ARGUMENT FUNGSI DENGAN KONSTANTA ATAU VARIABEL
Argumen Fungsi
Salah satu keistimewaan C++ yang sangat bermanfaat dalam pemrograman adalah adanya kemampuan untuk menyetel nilai default Argumen fungsi. Argumen-argumen yang mempunyai nilai bawaan nantinya dapat tidak disertakan di dalam pemanggilan fungsi dan dengan sendirinya C++ akan menggunakan nilai bawaan dari argumen yang tidak disertakan.
Contoh :
Ini program Multi fungsi
Rekursif dalam algoritma C atau C++, Rekursi merupakan sebuah fungsi yang terdapat pada bahasa pemrograman yang mempunyai ciri khas dapat memanggil dirinya sendiri.
Proses pemanggilan pada rekursi dilakukan dengan berulang-ulang.
karena proses dalam rekursif di panggil secara berulang - ulang maka harus ada suatu kondisi yang membatasi (termination Condition) pengulangan tersebut agar perulangan dapat berhenti. apabila tidak ada suatu pembatas (termination Condition), Maka proses pengulangan akan terus berulang dan tidak akan pernah berhenti, kecuali memori yang digunakan untuk menampung tidak dapat menampung data lagi atau penuh.
Apa Perbedaan Fungsi dengan Rekursif ?
Perbedaan antara Fungsi dan Rekursif adalah Rekursif dapat memanggil dirinya sendiri sedangkan Fungsi atau Prosedur tidak dapat memanggil dirinya sendiri, melainkan harus dipanggil melalui pemanggil prosedur atau fungsi.
Salah satu keistimewaan C++ yang sangat bermanfaat dalam pemrograman adalah adanya kemampuan untuk menyetel nilai default Argumen fungsi. Argumen-argumen yang mempunyai nilai bawaan nantinya dapat tidak disertakan di dalam pemanggilan fungsi dan dengan sendirinya C++ akan menggunakan nilai bawaan dari argumen yang tidak disertakan.
Contoh :
#include <iostream.h>
#include <conio.h>
void sayHello(int);
void main()
{
sayHello(4);
}
void sayHello(int n=1)
{
for(int m=0;m<n;m++) cout<<”Halloo...\n”;
}
Penjelasan :
Jika pada program, argumen sayHello tidak diberikan, maka program akan menampilkan:
Halloo ...
Sebanyak satu kali, namun jika argumen pada fungsi sayHello diberikan, misalkan sayHello(4), maka program akan menampilkan
Halloo ...
Halloo ...
Halloo ...
Halloo ...
Itulah yang disebut dengan nilai default pada fungsi.
- Multi Fungsi
Ini program Multi fungsi
#include <iostream>
using namespace std;
int hitung_luas (int panjang, int lebar){
int luas = panjang*lebar ;
return luas;
}
int main(){
int a,b,c,d,hasil;
cout<<"-----------------------------------"<<endl;
cout<<"------ Fungsi Utama ------"<<endl;
cout<<" "<<endl;
cout<<">>> Program Perkalian <<<"<<endl;
cout<<"-----------------------------------"<<endl;
cout<<"Masukkan nilai a :"; cin>>a;
cout<<"Masukkan nilai b :"; cin>>b;
cout<<"Masukkan nilai c :"; cin>>c;
hasil = (a*b*c);
cout<<"Hasil Perkalian adalah :"<<hasil<<endl;
cout<<"-----------------------------------"<<endl;
cout<<" "<<endl;
cout<<"------ Fungsi Pertama ------"<<endl;
cout<<" "<<endl;
cout<<">>> Program Hitung Luas Persegi Panjang <<<"<<endl;
cout<<"-----------------------------------"<<endl;
cout<<"Masukkan nilai panjang :"; cin>>a;
cout<<"Masukkan nilai lebar :"; cin>>b;
hasil = hitung_luas(a,b);
cout<<"Luas persegi panjang adalah :"<<hasil<<endl;
cout<<"-----------------------------------"<<endl;
cout<<" "<<endl;
cout<<"------ Fungsi Kedua ------"<<endl;
cout<<" "<<endl;
cout<<">>> Program Hitung Luas segitiga <<<"<<endl;
cout<<"-----------------------------------"<<endl;
cout<<"Masukkan nilai alas :"; cin>>a;
cout<<"Masukkan nilai tinggi :"; cin>>b;
hasil = 0.5*(a*b);
cout<<"Luas segitiga adalah :"<<hasil<<endl;
cout<<"-----------------------------------"<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<"> This is usefull..? Say anything.. < "; cin>>a;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" Terimakasih "<<endl;
system("PAUSE");
return 0;
}
using namespace std;
int hitung_luas (int panjang, int lebar){
int luas = panjang*lebar ;
return luas;
}
int main(){
int a,b,c,d,hasil;
cout<<"-----------------------------------"<<endl;
cout<<"------ Fungsi Utama ------"<<endl;
cout<<" "<<endl;
cout<<">>> Program Perkalian <<<"<<endl;
cout<<"-----------------------------------"<<endl;
cout<<"Masukkan nilai a :"; cin>>a;
cout<<"Masukkan nilai b :"; cin>>b;
cout<<"Masukkan nilai c :"; cin>>c;
hasil = (a*b*c);
cout<<"Hasil Perkalian adalah :"<<hasil<<endl;
cout<<"-----------------------------------"<<endl;
cout<<" "<<endl;
cout<<"------ Fungsi Pertama ------"<<endl;
cout<<" "<<endl;
cout<<">>> Program Hitung Luas Persegi Panjang <<<"<<endl;
cout<<"-----------------------------------"<<endl;
cout<<"Masukkan nilai panjang :"; cin>>a;
cout<<"Masukkan nilai lebar :"; cin>>b;
hasil = hitung_luas(a,b);
cout<<"Luas persegi panjang adalah :"<<hasil<<endl;
cout<<"-----------------------------------"<<endl;
cout<<" "<<endl;
cout<<"------ Fungsi Kedua ------"<<endl;
cout<<" "<<endl;
cout<<">>> Program Hitung Luas segitiga <<<"<<endl;
cout<<"-----------------------------------"<<endl;
cout<<"Masukkan nilai alas :"; cin>>a;
cout<<"Masukkan nilai tinggi :"; cin>>b;
hasil = 0.5*(a*b);
cout<<"Luas segitiga adalah :"<<hasil<<endl;
cout<<"-----------------------------------"<<endl;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<"> This is usefull..? Say anything.. < "; cin>>a;
cout<<" "<<endl;
cout<<" "<<endl;
cout<<" Terimakasih "<<endl;
system("PAUSE");
return 0;
}
- Recursion (Rekusif)
Rekursif dalam algoritma C atau C++, Rekursi merupakan sebuah fungsi yang terdapat pada bahasa pemrograman yang mempunyai ciri khas dapat memanggil dirinya sendiri.
Proses pemanggilan pada rekursi dilakukan dengan berulang-ulang.
karena proses dalam rekursif di panggil secara berulang - ulang maka harus ada suatu kondisi yang membatasi (termination Condition) pengulangan tersebut agar perulangan dapat berhenti. apabila tidak ada suatu pembatas (termination Condition), Maka proses pengulangan akan terus berulang dan tidak akan pernah berhenti, kecuali memori yang digunakan untuk menampung tidak dapat menampung data lagi atau penuh.
Apa Perbedaan Fungsi dengan Rekursif ?
Perbedaan antara Fungsi dan Rekursif adalah Rekursif dapat memanggil dirinya sendiri sedangkan Fungsi atau Prosedur tidak dapat memanggil dirinya sendiri, melainkan harus dipanggil melalui pemanggil prosedur atau fungsi.
Contoh Sederhana Penggunaan Rekursif
Contoh yang paling sederhana dalam proses rekursi ialah dalam menghitung nilai faktorial bilangan bulat.
Dalam Rekursi , Setiap fungsi paling sedikit mempunyai Satu nilai awal, apabila tidak fungsi tersebut tidak akan bisa di hitung secara eksplisit.
Prinsip Kerja dalam Proses Rekursi
Dalam Rekursi, Pronsip Kerja Proses dapat didefinisikan sebagai berikut:
Memiliki Kasus yang Sederhana.
Kasus Awal di arahkan menuju kasus sederhana.
Mendefinisikan proses rekursi.
Demonstrasi Rekursi (recursion) dengan program Faktorial
untuk mendemonstrasikan sebuah rekursi, mari kita membuat program untuk menghitung nilai faktorial dari suatu bilangan bulat (integer).
Faktorial dar suatu bilangan biasanya dilambangkan sebagai n!, yang mana n merupakan bilangan tersebut.
contoh :
5! = 5*4*3*2*1 = 120
Membuat Program Faktorial dengan Rekursi
Definisikan Fungsi Sebagai berikut:
int factorial (int n){
if(n==1){
return 1;
} else {
return n*factorial(n-1);
}
}
Statement If mendefinisikan tipe keluaran dari program.
dalam code di atas, arti dari statement if di atas adalah:
Apabila nilai yang di inputkan bernilai sama dengan 1, maka akan dikembalikan dengan nilai 1 atau return 1; (karena nilai factorial dari bilangan 1 adalah 1).
Dan apabila nilai yang di inputkan bukan bernilai sama dengan 1 maka, akan terjadi proses rekursi yang terjadi pada
return n*factorial(n-1);
Prosses dari rekursi di atas dapat dilihat seperti dibawah ini :
Misal nilai yang di inputkan bernilai 5 (5!),
maka prosses rekursi akan seperti :
[n*faktorial (n-1)]
1. 5*factorial (4)
2.
3. 5*4*factorial (3)
4.
5. 5*4*3*factorial (2)
6.
7. 5*4*3*2*factorial (1)
8.
9. Dan akan Tercipta Barisan
10. seperti Dibawah ini
11.
12. 5*4*3*2*1
Kemudian Rangkai Fungsi Sebagai berikut:
int factorial (int n){
if(n==1){
return 1;
} else {
return n*factorial(n-1);
}
}
int main(){
cout<<factorial(5)
return 0;
}
Pada code di atas terlihat sebuah pemanggilan fungsi, yang di warnai dengan warna hijau, yang disebut juga dengan istilah exit condition, atau sering juga di sebut denganThe base Chase.
The base Chase sangat penting dan diperlukan dalam Rekursi, Tanpa The base Chase.proses rekursi akan terus berjalan dan tidak akan berhenti.
VARIABEL
- Automatic
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.
- Eksternal
Variabel Eksternal adalah variabel Global. artinya variabel ekternal bersifat global yang dapat di gunakan bersama-sama tanpa harus di deklarasikan berulang-ulang, karena sudah di deklarasikan di luar fungsi.
Pendeklarasian variabel eksternal inim diluar dari fungsi main().
Perhatikan program dibawah ini:
1. //contoh varibel eksternal
2. #include<iostream.h>
3. int a=10; // ini adalah deklarasi untuk variabel eksternal
4. void lokal();
5. void main()
6. {
7. cout<<"Penggunaan variabel eksternal"<<endl;
8. cout<<"Nilai dalam fungsi main() :"<<a<<endl; //memanggil variabel eksternal a
9.
10. cout<<"\nNilai setelah panggilan fungsi lokal():";
11. lokal(); //pemanggilan fungsi lokal
12. cout<<"\n";
13. }
14. void lokal()
15. {
16. cout<<a+100<<",";
17. }
Pada contoh diatas dapat kita lihat bahawa varibel main dapat menggunakan nilai variabel eksternal a, yang di deklarasikan di luar main(), dan dapat juga digunakan fungsi void lokal() untuk menambahkan dengan 100.
dan hasil outputnya adalah sbb:
- Variabel Statik
Variabel statis adalah suatu variable yang menyimpan nilai permanen dalam memori, artinya variable tersebut akan menyimpan nilai terakhir yang diberikan. Untuk menyatakan bahwa suatu variable adalah variable statis adalah dengan menggunakan kata kunci static.
syntax:
static tipe_data nama_variabel
contoh:
#include
int KaliSepuluh(void)
{
static int a=1;
a=a*10;
return a;
}
int main(void)
{
int x,y,z;
x=KaliSepuluh();
y=KaliSepuluh();
z=KaliSepuluh();
printf(“Nilai x=%d\n”,x);
printf(“Nilai y=%d\n”,y);
printf(“Nilai z=%d\n”,z);
}
hasil yang akan diperoleh adalah:
nilai x =10
nilai y=100
nilai z= 1000
- Variabel Register
berbeda dengan variable biasa yang akan bertempat di memori, variable register ini akan disimpan di dalam register cpu. dengan demikian, apabila kita ingin mengisikan atau mengubah nilai variable register, maka kita tidak perlu melakukan akses terhadap memori sehingga proses yang dilakukan pun lebih cepat.perlu diperhatikan bahwa variable register ini hanya dapat diterapkan ke tipe bilangan bulat, karakter, dan pointer saja. selain itu variable ini hanya boleh dideklarasika sebagai variable lokal ataupun parameter dari fungsi. untuk mendeklarasikannya kita harus menggunakan kata kunci register.
syntax:
register tipe_data nama_variabel;
contoh:
#include
int Pangkat(register int B, register int e)
{
hasil=1;
for(;e;e--)
{
hasil *= B;
}
return hasil;
}
int main(void)
{
printf(“2^6=%d”,Pangkat(2,6));
}
hasil yang akan diperoleh dari program di atas adalah:
2^6=64
selain itu ada juga yg disebut variabel volatile yaitu variabel yang nilainya dapat berubah dikarenakan faktor eksternal. deklarasi variabel volatile yaitu, volatile tipe_data nama_variabel.
- Storage Class
Class Storage dapat kita gunakan untuk menentukan usia dan kehidupan dan ruang lingkup dari varibel. Bagaimana penyimpanan (Storage) itu dialokasikan untuk variabel serta bagaimana variabel itu diperlakukan oleh compiler, semuanya tergantung dari Class Storage.
Pada dasarnya, Class Storage dibagi menjadi lima tipe:
1. Variabel Global
2. Variabel Local
3. Variabel Register
4. Variabel Static
5. Variabel Extern
1. Variabel Global pada C++
Variabel Global adalah variabel yang sudah didefinisikan diawal, sebelum semua badan dari fungsi dan tersedia di seluruh program. Berikut adalah contohnya:
using
namespace
std;
int globe;
// Variabel Global
void func();
int main()
{
.....
}
2. Variabel Local pada C++
Variabel Local adalah suatu variabel yang dapat di definisikan dan tersedia hanya pada ruang lingkup (Scope) tertentu. Variabel Local juga dapat disebut dengan Variabel Otomatis karena variabel ini dapat muncul ketika ruang lingkupnya dimasukkan dan secara otomatis akan keluar ketika ruang lingkupnya berakhir.
Keyword auto dapat kita gunakan, tetapi secara default semua variabel lokal adalah auto (otomatis). Jadi, kita tidak perlu menambahkan keyword auto sebelum deklarasi variabel.
3. Variabel Register pada C++
Variabel Register ini merupakan salah satu jenis dari variabel lokal. Keyword dapat digunakan untuk memberitahukan Compiler untuk mengakses variabel ini secepat mungkin. Variabel ini disimpan di dalam Register agar dapat meningkatkan kecepatan akses.
Tetapi, kalian tidak akan pernah menggunakan atau menghitung alamat dari variabel register dan juga variabel register hanya dapat di deklarasikan di dalam block. Artinya, kalian tidak dapat memiliki variabel register global ataupun statis.
4. Variabel Static pada C++
Variabel Static adalah variabel yang penyimpanannya sudah di inisialisasi dan dialokasikan hanya sekali diawal ketika program dijalankan dan tidak peduli berapa banyak atau sering digunakan pada program. Variabel Static dapat mempertahankan nilainya sampai program itu berakhir. Berikut adalah contohnya:
void fun()
{
static
int i =
10;
i++;
cout << i;
}
int main()
{
fun();
// Output = 11
fun();
// Output = 12
fun();
// Output = 13
}
Specifier Static juga dapat di gunakan pada Class, tetapi kita akan membahas hal tersebut pada bagian selanjutnya.
5. Variabel Extern pada C++
Keyword ini dapat kita gunakan untuk mengakses variabel di dalam file yang sudah di definisikan dan di deklarasikan pada file lain. Artinya, keberadaan Variabel Global pada satu file sudah di deklarasikan menggunakan keyword extern pada file lain:
Contoh, terdapat dua file C++. Berikut adalah kode dari File pertama:
file1.cpp
#include <iostream>
using
namespace
std;
int globe;
void func();
int main()
{
...
...
}
Berikut adalah kode dari File kedua:
file2.cpp
extern
int globe;
int b = globe +
10;
Dari kedua file diatas, Variabel Global pada satu file digunakan pada file lain dengan menggunakan keyword extern.
- Compiler
Pengertian Compiler
Kompilator (Compiler) adalah sebuah program komputer yang berfungsi untuk menterjemahkan kode komputer yang ditulis oleh programmer dalam suatu bahasa pemrograman tertentu menjadi program yang ditulis ke dalam bahasa lain.
Terkadang beberapa kompilator menerjemahkan program yang programmer tulis ke bahasa yang lebih rendah (seperti: assembly) sebagai perantara atau langsung diterjemahkan ke dalam bahasa mesin. penerjemahan bertujuan untuk membuat sebuah program yang dapat dieksekusi oleh komputer (executable program).
Komputer memiliki bahasa sendiri dan satu-satunya bahasa yang komputer pahami dan bahasa tersebut adalah bahasa mesin. setiap kali manusia melakukan interaksi dengan komputer kita selalu berinteraksi melalui program komputer. setiap perintah yang manusia berikan akan diterima oleh program. program yang manusia gunakan untuk berkomunikasi biasanya sudah di kompilasi atau diterjemahkan ke dalam bahasa mesin dengan kompilator agar komputer memahaminya perintah-perintah yang diberikan oleh manusia melalui program tersebut.
Terkadang kompilator tidak hanya bekerja untuk menerjemahkan program, tapi kadang kompilator juga melakukan pengkoreksian terhadap program yang programmer tulis.
Beberapa kompilator menggunakan arsitektur kompilator, yang di dalamnya bukan sebuah program tungal melainkan rangkaian komunikasi antar program dengan tugas mereka masing-masing untuk memproses pembuatan program yang dapat di eksekusi oleh komputer. Operasi itu adalah preprocessing, lexical analysis, parsing, semantic analysis, conversion of input programs ke intermediate respresentation, code optimization dan code generation.
- Multi-file program
Ada beberapa aturan masuk akal yang terkait dengan program multi-file. Karena file yang diberikan pada awalnya dikompilasi secara terpisah dari sisa program, semua konstanta simbolik yang muncul dalam file tersebut harus ditentukan pada awalnya. Demikian juga, semua fungsi pustaka yang direferensikan harus disertai dengan referensi yang sesuai untuk file header. Juga, setiap fungsi yang ditentukan pengguna yang dirujuk harus memiliki prototipe pada awal file. Akhirnya, semua variabel global yang digunakan dalam file harus dideklarasikan pada awalnya. Ini biasanya berarti bahwa definisi untuk konstanta simbolik umum, file header untuk fungsi perpustakaan umum, prototipe untuk fungsi umum yang ditentukan pengguna, dan deklarasi untuk variabel global umum akan muncul dalam beberapa file. Perhatikan bahwa variabel global yang diberikan hanya dapat diinisialisasi dalam salah satu pernyataan deklarasi, yang dianggap sebagai deklarasi sebenarnya dari variabel itu [secara konvensional, deklarasi sejati muncul dalam file yang berisi fungsi main ()]. Memang, deklarasi lain, yang akan kita sebut definisi, harus didahului oleh kata kunci eksternal untuk membedakannya dari deklarasi yang sebenarnya.
Sebagai contoh, mari kita ambil program printfact4.c, yang terdaftar sebelumnya, dan memecahnya menjadi beberapa file, masing-masing berisi fungsi tunggal. File yang dimaksud disebut main.c dan factorial.c. Daftar kedua file yang membentuk program adalah sebagai berikut :
/* main.c */
/*
Program to print factorials of all integers
between 0 and 20
*/
#include <stdio.h>
/* Prototype for fucntion factorial() */
void factorial();
/* Global variable declarations */
int j;
double fact;
int main()
{
/* Print factorials of all integers between 0 and 20 */
for (j = 0; j <= 20; ++j)
{
factorial();
printf("j = %3d factorial(j) = %12.3e\n", j, fact);
}
return 0;
}
Dan
/* factorial.c */
/*
Function to evaluate factorial (in floating point form)
of non-negative integer j. Result stored in variable fact.
*/
#include <stdio.h>
#include <stdlib.h>
/* Global variable definitions */
extern int j;
extern double fact;
void factorial()
{
int count;
/* Abort if j is negative integer */
if (j < 0)
{
printf("\nError: factorial of negative integer not defined\n");
exit(1);
}
/* Calculate factorial */
for (count = j, fact = 1.; count > 0; --count) fact *= (double) count;
return;
}
Perhatikan bahwa semua fungsi pustaka dan fungsi yang ditentukan pengguna yang dirujuk dalam setiap file dideklarasikan (baik melalui file header atau prototipe fungsi) pada awal file itu. Perhatikan, juga, perbedaan antara deklarasi variabel global dalam file main.c dan definisi variabel global dalam file factorial.c.
DAFTAR PUSTAKA :
https://beginnersbook.com/2017/08/cpp-for-loop/
https://alfafarhans.blogspot.com/2019/01/c-programming-4-if-else.html
https://beginnersbook.com/2017/08/cpp-while-loop/
https://www.bitdegree.org/learn/switch-statement-c-plus-plus
https://www.programiz.com/cpp-programming/break-continue
https://docplayer.info/46246666-8-1-fungsi-deklarasi-dan-definisi-nya.html
https://www.petanikode.com/cpp-fungsi/
http://inicumangw.blogspot.com/2018/09/program-multi-fungsi-dalam-1-kode.html
https://koding123.blogspot.com/2016/03/belajer-bahasa-pemrograman-Recursion-dalam-algoritma.html
http://www.materidosen.com/2017/03/4-jenis-variabel-dalam-c-lengkap-contoh.html
http://pemrograman-c.blogspot.com/2012/01/variabel-eksternal.html
http://mcunovel.blogspot.com/2011/11/jenis-variabel-dalam-bahasa-c.html
https://www.elcreativeacademy.com/2019/11/storage-class-pada-c-plus-plus.html
https://www.belajarcpp.com/tutorial/cpp/pengertian-kompilator/
http://farside.ph.utexas.edu/teaching/329/lectures/node22.html
Komentar
Posting Komentar