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



10 Shortcut Ini Akan Memudahkanmu Mengetik Skripsi di Microsoft Word

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
#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 ; }
   
    

Keluaran:

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 ; } 
 

   
   
    

Ini adalah infinite loop karena kita menambah nilai i sehingga selalu memenuhi kondisi i> = 1, kondisi tidak akan pernah mengembalikan false.

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 ; }
   
   
    

Keluaran:

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);
   }
}

Statement1 akan mengeksekusi jika kondisi_1 benar. Statement2 hanya akan mengeksekusi jika kedua kondisi (condition_1 dan condition_2) benar.

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;
}

Keluar :

number is less than 100
number is greater than 50

C) If-else statement in C++


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);
}

Pernyataan di dalam "jika" akan mengeksekusi jika kondisinya benar, dan pernyataan di dalam "lain" akan mengeksekusi jika kondisinya salah.


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;
}
 

Keluar :

num is greater than or equal 50


D) if-else-if Statement in C++


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);
}

Catatan: Poin paling penting untuk diperhatikan di sini adalah di If-else-if, segera setelah kondisi terpenuhi, set pernyataan yang sesuai dieksekusi, sisanya diabaikan. Jika tidak ada kondisi yang terpenuhi maka pernyataan di dalam "lain" akan dieksekusi.


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;
}

Keluar :

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);
}

Bagaimana While Loop bekerja ?
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++;
   }
}

Keluar :

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

Infinite While loop
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:

Ganti Pernyataan C ++

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;

Dalam praktik nyata, Break Statement hampir selalu digunakan di dalam tubuh pernyataan kondisional (jika ... lain) di dalam loop.
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;
}

Keluar :

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

Dalam program di atas, ekspresi tes selalu benar.
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;

Dalam praktiknya Continue Statement hampir selalu digunakan di dalam pernyataan bersyarat.
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;
}

Keluar :

1       2       3       4       5      7       8       10      

n program di atas, ketika i adalah 6 atau 9, pelaksanaan pernyataan cout << i << "\ t"; dilewati di dalam loop menggunakan continue; pernyataan.


FUNGSI

DEFINISI FUNGSI


Fungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat memberikan hasil output yang dapat berupa nilai ataupun sebuah hasil operasi.

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:

void nama_fungsi(){
    cout << "Ini adalah sebuah fungsi\n";
}

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:


#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;
}

Hasilnya:
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;
}

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 :

      #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";
}

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:

void say_hello(string name){
    cout << "Hello " << name << "!\n";
}

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:


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;
}

Hasilnya:

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 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:

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;
}

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:

#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;
}

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:

#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:
kali_dua(4);
Ini disebut pass by value, karena di sana kita memberikan nilai 4 secara langsung.
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;
}

Hasilnya:

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 :

#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;
}

  •  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
}

i adalah Static, maka akan selalu mempertahankan nilainya melalui pemangginalan fungsi dan hanya di inisialisasikan sekali diawal.

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
Dalam sebuah program yang terdiri dari banyak fungsi yang berbeda, sering kali nyaman untuk menempatkan setiap fungsi dalam file individual, dan kemudian menggunakan utilitas make untuk mengkompilasi setiap file secara terpisah dan menghubungkannya bersama-sama untuk menghasilkan yang dapat dieksekusi.

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

Postingan populer dari blog ini

Contoh Pertanyaan Pada Pemrograman Bahasa C

KONSEPSI ILMU BUDAYA DASAR DALAM KESUSASTRAAN

PEMROGRAMAN BAHASA C

Array, String Dan Fungsi String Pada Bahasa C

KEJAHATAN TEKNOLOGI

File Input Dan Output Pada Pemrograman Bahasa C