Contoh Program Pass By Reference Dan Pass By Value

Contoh Program Pass by Reference dan Pass by Value


Pass By Reference merupakan pemanggilan program yang melewatkan variabelnya setelah dilakukan pemanggilan. Pemanggilan fungsi menggunakan karakter "&", dan di fungsi terdapat "*". Seperti pada contoh berikut.
int pass_by_value(int *a,int *b)
{
   *a=*b;
}
int main()
{
   int x, y;
   cout<<pass_by_value(&x, &y);
}
Pada program di atas, fungsi pass_by_reference(&x, &y) memanggil fungsi int pass_by_reference(int *a,int *b), nilai x mengandung nilai a dan nilai y mengandung nilai b, pada fungsi int pass_by_reference(int *a,int *b) terdapat (*a=*b;) dari pernyataan tersebut, berarti nilai a sama dengan nilai b. Ketika dilakukan pemanggilan “cout<<pass_by_reference(&x, &y);” nilai a=b akan terbawa. Maka pada int main() terdapat nilai x=y.

Pass  By Value merupakan pemanggilan program yang tidak akan melewatkan variabelnya setelah dilakukan pemanggilan atau dengan kata lain seteah dilakukan pemanggilan nilai originalnya tidak tersentuh. Seperti pada contoh berikut.
int pass_by_value(int a,int b)
{
   a=b;
}
int main()
{
   int x, y;
   cout<<pass_by_value(x, y);
}
Pada program di atas, fungsi pass_by_value(x, y) memanggil fungsi int pass_by_value(int a,int b), nilai x mengandung nilai a dan nilai y mengandung nilai b, pada fungsi int pass_by_reference(int a,int b) terdapat (a=b;) dari pernyataan tersebut, berarti nilai a sama dengan nilai b. Ketika dilakukan pemanggilan “cout<<pass_by_value(x, y);” nilai a=b tidak akan terbawa karena a=b hanya berlaku didalam fungsi saja. Maka pada int main() tidak terdapat nilai x=y.



Berikut ini Saya paparkan contoh program Pass By Reference dan Pass By Value.

#include <iostream>
#include <conio.h>
#include <string.h>

using namespace std;

struct old{
            int tanggal;
            int bulan;
            int tahun;
};
struct old umur;

struct target{
            int date;
            int month;
            int year;
};
struct target tua;

struct pencarian{
            int harinya;
            int bulannya;
            int tahunnya;
};
struct pencarian sekitar;

// FUNGSI REFERENCE (PEMANGGILAN REFERENCE)
int reference(int *a, int *b)
{
            *a=*b;
}

// FUNGSI REFERENCE1 (PEMANGGILAN REFERENCE)
int reference1(int *a, int *b)
{
            *a=*a-*b;
}

// FUNGSI VALUE (PEMANGGILAN VALUE)
int value(int a, int b)
{
            a=b;
}

// FUNGSI INPUT (PEMANGGILAN VALUE)
char input()
{
            cout<<endl;
           
            cout<<"  Your Birth Date     :"<<" ";
            cin>>umur.tanggal;
            cout<<"  Your birthday Month :"<<" ";
            cin>>umur.bulan;
            cout<<"  Your Birth Year     :"<<" ";
            cin>>umur.tahun; 
            cout<<endl;
            cout<<"  Enter Date You Want!"<<endl;
            cout<<endl;
            cout<<"  Date                :"<<" ";
            cin>>tua.date;
            cout<<"  Month               :"<<" ";
            cin>>tua.month;
            cout<<"  Year                :"<<" ";
            cin>>tua.year; 
           
            cout<<endl;
           
            system("pause");
            system("CLS");
            cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
            cout<<endl;
           
            cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
            cout<<"                 SIMPLE PROGRAM \"PASS BY REFERENCE & PASS BY VALUE\"   "<<endl;
            cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                       
            cout<<endl;
}

// FUNGSI OUTPUT
char output()
{
            int tanggal, bulan, tahun;
           
            if(umur.tanggal>tua.date)
            {
                        if(umur.bulan>tua.month)
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    reference1(&tua.year,&umur.tahun); 
                                    sekitar.tahunnya=tua.year-1;
                                   
                                    reference1(&umur.bulan,&tua.month);
                                    sekitar.bulannya=(12-umur.bulan)-1;
                                   
                                    reference1(&umur.tanggal,&tua.date);
                                    sekitar.harinya=30-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
                       
                        else if(umur.bulan<tua.month)
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    value(tua.year,umur.tahun);         //Nilai "tua.year", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.tahunnya=tua.year-umur.tahun;
                                   
                                    reference1(&tua.month,&umur.bulan);
                                    sekitar.bulannya=tua.month-1;
                                   
                                    reference1(&umur.tanggal,&tua.date);
                                    sekitar.harinya=30-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
                       
                        else
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    value(tua.year,umur.tahun);         //Nilai "tua.year", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.tahunnya=tua.year-umur.tahun;
                                   
                                    reference1(&tua.month,&umur.bulan);
                                    sekitar.bulannya=tua.month-1;
                                   
                                    reference1(&umur.tanggal,&tua.date);
                                    sekitar.harinya=30-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
            }
           
            else if (umur.tanggal<tua.date)
            {
                        if(umur.bulan>tua.month)
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    reference1(&tua.year,&umur.tahun);
                                    sekitar.tahunnya=tua.year-1;
                                   
                                    reference1(&umur.bulan,&tua.month);
                                    sekitar.bulannya=(12-umur.bulan)-1;
                                   
                                    reference1(&tua.date,&umur.tanggal);
                                    sekitar.harinya=30-tua.date;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
                       
                        else if(umur.bulan<tua.month)
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    value(tua.year,umur.tahun);         //Nilai "tua.year", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.tahunnya=tua.year-umur.tahun;
                                   
                                    value(tua.month,umur.bulan);        //Nilai "tua.month", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.bulannya=tua.month-umur.bulan;
                                   
                                    value(tua.date,umur.tanggal);       //Nilai "tua.date", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.harinya=tua.date-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
                       
                        else
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    value(tua.year,umur.tahun);         //Nilai "tua.year", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.tahunnya=tua.year-umur.tahun;
                                   
                                    value(tua.month,umur.bulan);        //Nilai "tua.month", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.bulannya=tua.month-umur.bulan;
                                   
                                    value(tua.date,umur.tanggal);       //Nilai "tua.date", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.harinya=tua.date-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
            }

            else
            {
                        if(umur.bulan>tua.month)
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    reference1(&tua.year,&umur.tahun);
                                    sekitar.tahunnya=tua.year-1;
                                   
                                    reference1(&umur.bulan,&tua.month);
                                    sekitar.bulannya=12-umur.bulan;
                                   
                                    value(tua.date,umur.tanggal);       //Nilai "tua.date", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.harinya=tua.date-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
                       
                        else if(umur.bulan<tua.month)
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    value(tua.year,umur.tahun);         //Nilai "tua.year", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.tahunnya=tua.year-umur.tahun;
                                   
                                    value(tua.month,umur.bulan);        //Nilai "tua.month", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.bulannya=tua.month-umur.bulan;
                                   
                                    value(tua.date,umur.tanggal);       //Nilai "tua.date", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.harinya=tua.date-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
                       
                        else
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    value(tua.year,umur.tahun);         //Nilai "tua.year", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.tahunnya=tua.year-umur.tahun;
                                   
                                    value(tua.month,umur.bulan);        //Nilai "tua.month", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.bulannya=tua.month-umur.bulan;
                                   
                                    value(tua.date,umur.tanggal);       //Nilai "tua.date", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.harinya=tua.date-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
            }
}

// FUNGSI SWAP_PASS_BY_VALUE (PEMANGGILAN VALUE)
int swap_pass_by_value (int x, int y)
{
            int z;
           
            z=x;
            x=y;
            y=z;
           
            cout<<"  VALUE IN THE FUNCTION (SWAP)"<<endl;  //NILAI DIFUNGSI TUKAR (SWAP)
            cout<<"  ============================"<<endl;
            cout<<"  The First Value   :"<<" "<<x<<endl;          
            cout<<"  The Second Value  :"<<" "<<y<<endl;
}

// FUNGSI SWAP_PASS_BY_REFERENCE (PEMANGGILAN REFERENCE)
int swap_pass_by_reference (int *px, int *py)
{
            int z;
           
            z   = *px;
            *px = *py;
            *py = z;
           
            cout<<"  VALUE IN THE FUNCTION (SWAP)"<<endl;  //NILAI DIFUNGSI TUKAR (SWAP)
            cout<<"  ============================"<<endl;
            cout<<"  The First Value   :"<<" "<<*px<<endl;      
            cout<<"  The Second Value  :"<<" "<<*py<<endl;
}

int main()
{
            system ("color 4F");
           
            char inisial[32];
            char password[32];
            char nama[30];
            char lagi;
           
            cout<<endl;
           
            cout<<"  ======================================="<<endl;
            cout<<"  || PRAJA RISNALDY                    || "<<endl;
            cout<<"  ======================================="<<endl;
           
            cout<<endl;
           
            system (" pause");
            system("CLS");
           
            cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
            cout<<endl;
           
            cout<<"  You Have To LOGIN first!"<<endl;
           
            cout<<endl;
           
            system (" pause");
            system("CLS");
           
            cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
            cout<<endl;
           
            cout<<"  ==========="<<endl;
            cout<<"  || LOGIN ||"<<endl;
            cout<<"  ==========="<<endl;
           
            cout<<"  ==========================================================="<<endl;
            cout<<"  Enter Your Name   :"<<" ";
            cin.getline(nama,30);
           
button:
           
            cout<<"  Password          :"<<" ";
            for (int i=0; i<32; i++)
            {
                        password[i]=getch();
                        if (password[i]=='\r')
                        {
                                    password[i]=NULL;
                                    break;
                        }
                        if (password[i]=='\b')
                        {
                                    if(i<-1)i=-1;
                                    continue;
                        }
                        cout<<"*";
            }
           
            cout<<endl;
           
            strcpy(inisial, password);
           
            system("CLS");
           
            if (inisial[32]=='P'&&'R'&&'O'&&'G'&&'R'&&'A'&&'M'&) //Sesuaikan dengan password yang diinginkan
            {
                        cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
                        cout<<endl;
                       
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                        cout<<"                 SIMPLE PROGRAM \"PASS BY REFERENCE & PASS BY VALUE\"   "<<endl;
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                       
                        cout<<endl;
                       
                        cout<<" ==============================================================================="<<endl;
                        cout<<" |  How To Skip Parameter:                                                     |"<<endl;
                        cout<<" |  1. PASS BY REFERENCE                                                       |"<<endl;
                        cout<<" |     Passing by reference means that the memory address of the variable      |"<<endl;
                        cout<<" |     (a pointer to the memory location) is passed to the function.           |"<<endl;
                        cout<<" |     This is unlike passing by value, where the value of a VARIABEL          |"<<endl;
                        cout<<" |     IS PASSED ON.                                                           |"<<endl;
                        cout<<" |                                                                             |"<<endl;
                        cout<<" |  2. PASS BY VALUE                                                           |"<<endl;
                        cout<<" |     Passing by value means that the value of the function parameter         |"<<endl;
                        cout<<" |     is copied into another location of your memory, and when accessing      |"<<endl;
                        cout<<" |     or modifying the variable within your function, only the copy           |"<<endl;
                        cout<<" |     copy is accessed/modified and THE ORIGINAL VALUE IS LEFT UNTOUCHED.     |"<<endl;
                        cout<<" ==============================================================================="<<endl;
                       
                        cout<<endl;
                       
                        cout<<"  ==========================================================="<<endl;
                        cout<<"  HELLO \""<<strupr(nama)<<"\""<<" Select Your Program!"<<endl;
                        cout<<"  ==========================================================="<<endl;
            }
           
            else
            {
                        cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
                        cout<<endl;
                       
                        cout<<"  ==========================================================="<<endl;
                        cout<<"  Password Entered Was \"WRONG\""<<endl;
                        cout<<"  ==========================================================="<<endl;
                       
                        cout<<endl;
                       
                        cout<<"  Enter Your Password\? (Y/N)"<<endl;
                        cout<<"  Select            :"<<" ";
                        cin>>lagi;
                       
                        system("CLS");
                       
                        if (lagi=='Y'||lagi=='y')
                        {
                                    cout<<"\"Created by: Praja Risnaldy\""<<endl;
                                   
                                    cout<<endl;
                                   
                                    cout<<"  ==========================================================="<<endl;
                                    goto button;
                        }
                       
                        else if (lagi=='N'||lagi=='n')
                        goto selesai;    
            }
           
            int pilih;

menu:
           
            int a;
            int b;
           
            cout<<endl;
           
            cout<<"  1.  PASS BY REFERENCE"<<endl;
            cout<<"  2.  PASS BY VALUE"<<endl;
            cout<<"  3.  EXAMPLE OF PASS BY REFERENCE AND PASS BY VALUE"<<endl;
           
            cout<<endl;
           
            cout<<"  \""<<nama<<"\" You Select Number :"<<" ";
            cin>>pilih;
           
            system("CLS");
           
            if (pilih==1)
            {
                        cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
                        cout<<endl;
                       
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                        cout<<"                 SIMPLE PROGRAM \"PASS BY REFERENCE & PASS BY VALUE\"   "<<endl;
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                       
                        cout<<endl;
                       
                        cout<<"  ======================="<<endl;
                        cout<<"     PASS BY REFERENCE  "<<endl;
                        cout<<"  ======================="<<endl;
                       
                        cout<<endl;
            }
           
            else if (pilih==2)
            {         
                        cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
                        cout<<endl;
           
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                        cout<<"                 SIMPLE PROGRAM \"PASS BY REFERENCE & PASS BY VALUE\"   "<<endl;
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                       
                        cout<<endl;
                       
                        cout<<"  ==================="<<endl;
                        cout<<"     PASS BY VALUE  "<<endl;
                        cout<<"  ==================="<<endl;
                       
                        cout<<endl;
            }
           
            else
            {
                        cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
                        cout<<endl;
                       
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                        cout<<"                 SIMPLE PROGRAM \"PASS BY REFERENCE & PASS BY VALUE\"   "<<endl;
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                       
                        cout<<endl;
                       
                        cout<<"  ================================================"<<endl;
                        cout<<"   EXAMPLE OF PASS BY REFERENCE AND PASS BY VALUE  "<<endl;
                        cout<<"  ================================================"<<endl;
                        cout<<input();  //PEMANGGILAN FUNGSI INPUT
                        cout<<output();  //PEMANGGILAN FUNGSI OUTPUT
                        goto akhir;
                       
                        cout<<endl;
            }
           
            cout<<"  Enter The Value"<<endl;
            cout<<"  ==============="<<endl;
            cout<<"  The First Value   :"<<" ";
            cin>>a;
            cout<<"  The Second Value  :"<<" ";
            cin>>b;
           
            cout<<endl;
                       
            cout<<"  VALUE BEFORE CALLING FUNCTION"<<endl;  //NILAI SEBELUM DILAKUKAN PEMANGGILAN FUNGSI
            cout<<"  ============================="<<endl;
            cout<<"  The First Value   :"<<" "<<a<<endl;           
            cout<<"  The Second Value  :"<<" "<<b<<endl;       
           
            cout<<endl;
           
            if (pilih==1)
            {
                        swap_pass_by_reference(&a,&b);  //PARAMETER FUNGSI a DAN b
            }
           
            else
            {
                        swap_pass_by_value(a,b);  //PEMANGGILAN FUNGSI a DAN b
            }
           
            cout<<endl;
           
            cout<<"  VALUE AFTER CALLING FUNCTION"<<endl;  //NILAI SETELAH PEMANGGILAN FUNGSI
            cout<<"  ==========================="<<endl;
            cout<<"  The First Value   :"<<" "<<a<<endl;           
            cout<<"  The Second Value  :"<<" "<<b<<endl;       

            cout<<endl;

            char kembali;

akhir:  
            cout<<"  ==========================================================="<<endl;
            cout<<"  Back To The Program Selection? (Y/N)"<<endl;
            cout<<"  Select            :"<<" ";
           
            cin>>kembali;
           
            system("CLS");
           
            if (kembali=='Y'||kembali=='y')
            {
                        cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
                        cout<<endl;
                       
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                        cout<<"                 SIMPLE PROGRAM \"PASS BY REFERENCE & PASS BY VALUE\"   "<<endl;
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                        goto menu;
            }
           
            else if (kembali=='N'||kembali=='n')
            goto selesai;
           
selesai:
           
            system("CLS");
           
            cout<<endl;
           
            cout<<"  Thank You"<<" \""<<nama<<"\""<<endl;
           
            getch();
}


 #include <iostream>
#include <conio.h>
#include <string.h>

using namespace std;

struct old{
            int tanggal;
            int bulan;
            int tahun;
};
struct old umur;

struct target{
            int date;
            int month;
            int year;
};
struct target tua;

struct pencarian{
            int harinya;
            int bulannya;
            int tahunnya;
};
struct pencarian sekitar;

// FUNGSI REFERENCE (PEMANGGILAN REFERENCE)
int reference(int *a, int *b)
{
            *a=*b;
}

// FUNGSI REFERENCE1 (PEMANGGILAN REFERENCE)
int reference1(int *a, int *b)
{
            *a=*a-*b;
}

// FUNGSI VALUE (PEMANGGILAN VALUE)
int value(int a, int b)
{
            a=b;
}

// FUNGSI INPUT (PEMANGGILAN VALUE)
char input()
{
            cout<<endl;
           
            cout<<"  Your Birth Date     :"<<" ";
            cin>>umur.tanggal;
            cout<<"  Your birthday Month :"<<" ";
            cin>>umur.bulan;
            cout<<"  Your Birth Year     :"<<" ";
            cin>>umur.tahun; 
            cout<<endl;
            cout<<"  Enter Date You Want!"<<endl;
            cout<<endl;
            cout<<"  Date                :"<<" ";
            cin>>tua.date;
            cout<<"  Month               :"<<" ";
            cin>>tua.month;
            cout<<"  Year                :"<<" ";
            cin>>tua.year; 
           
            cout<<endl;
           
            system("pause");
            system("CLS");
            cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
            cout<<endl;
           
            cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
            cout<<"                 SIMPLE PROGRAM \"PASS BY REFERENCE & PASS BY VALUE\"   "<<endl;
            cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                       
            cout<<endl;
}

// FUNGSI OUTPUT
char output()
{
            int tanggal, bulan, tahun;
           
            if(umur.tanggal>tua.date)
            {
                        if(umur.bulan>tua.month)
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    reference1(&tua.year,&umur.tahun); 
                                    sekitar.tahunnya=tua.year-1;
                                   
                                    reference1(&umur.bulan,&tua.month);
                                    sekitar.bulannya=(12-umur.bulan)-1;
                                   
                                    reference1(&umur.tanggal,&tua.date);
                                    sekitar.harinya=30-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
                       
                        else if(umur.bulan<tua.month)
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    value(tua.year,umur.tahun);         //Nilai "tua.year", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.tahunnya=tua.year-umur.tahun;
                                   
                                    reference1(&tua.month,&umur.bulan);
                                    sekitar.bulannya=tua.month-1;
                                   
                                    reference1(&umur.tanggal,&tua.date);
                                    sekitar.harinya=30-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
                       
                        else
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    value(tua.year,umur.tahun);         //Nilai "tua.year", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.tahunnya=tua.year-umur.tahun;
                                   
                                    reference1(&tua.month,&umur.bulan);
                                    sekitar.bulannya=tua.month-1;
                                   
                                    reference1(&umur.tanggal,&tua.date);
                                    sekitar.harinya=30-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
            }
           
            else if (umur.tanggal<tua.date)
            {
                        if(umur.bulan>tua.month)
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    reference1(&tua.year,&umur.tahun);
                                    sekitar.tahunnya=tua.year-1;
                                   
                                    reference1(&umur.bulan,&tua.month);
                                    sekitar.bulannya=(12-umur.bulan)-1;
                                   
                                    reference1(&tua.date,&umur.tanggal);
                                    sekitar.harinya=30-tua.date;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
                       
                        else if(umur.bulan<tua.month)
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    value(tua.year,umur.tahun);         //Nilai "tua.year", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.tahunnya=tua.year-umur.tahun;
                                   
                                    value(tua.month,umur.bulan);        //Nilai "tua.month", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.bulannya=tua.month-umur.bulan;
                                   
                                    value(tua.date,umur.tanggal);       //Nilai "tua.date", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.harinya=tua.date-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
                       
                        else
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    value(tua.year,umur.tahun);         //Nilai "tua.year", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.tahunnya=tua.year-umur.tahun;
                                   
                                    value(tua.month,umur.bulan);        //Nilai "tua.month", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.bulannya=tua.month-umur.bulan;
                                   
                                    value(tua.date,umur.tanggal);       //Nilai "tua.date", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.harinya=tua.date-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
            }

            else
            {
                        if(umur.bulan>tua.month)
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    reference1(&tua.year,&umur.tahun);
                                    sekitar.tahunnya=tua.year-1;
                                   
                                    reference1(&umur.bulan,&tua.month);
                                    sekitar.bulannya=12-umur.bulan;
                                   
                                    value(tua.date,umur.tanggal);       //Nilai "tua.date", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.harinya=tua.date-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
                       
                        else if(umur.bulan<tua.month)
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    value(tua.year,umur.tahun);         //Nilai "tua.year", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.tahunnya=tua.year-umur.tahun;
                                   
                                    value(tua.month,umur.bulan);        //Nilai "tua.month", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.bulannya=tua.month-umur.bulan;
                                   
                                    value(tua.date,umur.tanggal);       //Nilai "tua.date", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.harinya=tua.date-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
                       
                        else
                        {
                                    reference(&tanggal,&umur.tanggal);  //NIlai "tanggal", Diganti Dengan Nilai "umur.tanggal", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&bulan,&umur.bulan);      //NIlai "bulan", Diganti Dengan Nilai "umur.bulan", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                    reference(&tahun,&umur.tahun);      //NIlai "tahun", Diganti Dengan Nilai "umur.tahun", Dengan Menggunkan Pemanggilan PASS BY REFERENCE
                                   
                                    value(tua.year,umur.tahun);         //Nilai "tua.year", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.tahunnya=tua.year-umur.tahun;
                                   
                                    value(tua.month,umur.bulan);        //Nilai "tua.month", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.bulannya=tua.month-umur.bulan;
                                   
                                    value(tua.date,umur.tanggal);       //Nilai "tua.date", Tidak Akan Terganti, Karena Pemanggilan Dilakukan Dengan Menggunakan PASS BY VALUE
                                    sekitar.harinya=tua.date-umur.tanggal;
                                   
                                    cout<<" You Were Born In  :"<<" "<<tanggal<<"-"<<bulan<<"-"<<tahun<<endl;
                                    cout<<"  Your Age Now      :"<<" "<<sekitar.tahunnya<<" Year"<<" "<<sekitar.bulannya<<" Month"<<" "<<sekitar.harinya<<" Day"<<endl;
                                    cout<<"  At                :"<<" "<<tua.date<<"-"<<tua.month<<"-"<<tua.year<<endl;
                        }
            }
}

// FUNGSI SWAP_PASS_BY_VALUE (PEMANGGILAN VALUE)
int swap_pass_by_value (int x, int y)
{
            int z;
           
            z=x;
            x=y;
            y=z;
           
            cout<<"  VALUE IN THE FUNCTION (SWAP)"<<endl;  //NILAI DIFUNGSI TUKAR (SWAP)
            cout<<"  ============================"<<endl;
            cout<<"  The First Value   :"<<" "<<x<<endl;          
            cout<<"  The Second Value  :"<<" "<<y<<endl;
}

// FUNGSI SWAP_PASS_BY_REFERENCE (PEMANGGILAN REFERENCE)
int swap_pass_by_reference (int *px, int *py)
{
            int z;
           
            z   = *px;
            *px = *py;
            *py = z;
           
            cout<<"  VALUE IN THE FUNCTION (SWAP)"<<endl;  //NILAI DIFUNGSI TUKAR (SWAP)
            cout<<"  ============================"<<endl;
            cout<<"  The First Value   :"<<" "<<*px<<endl;      
            cout<<"  The Second Value  :"<<" "<<*py<<endl;
}

int main()
{
            system ("color 4F");
           
            char inisial[32];
            char password[32];
            char nama[30];
            char lagi;
           
            cout<<endl;
           
            cout<<"  ======================================="<<endl;
            cout<<"  || TUGAS PROJEK ALGORITMA PEMOGRAMAN || "<<endl;
            cout<<"  || PRAJA RISNALDY                    || "<<endl;
            cout<<"  || 4616030009                        || "<<endl;
            cout<<"  || TMJ-1                             || "<<endl;
            cout<<"  ======================================="<<endl;
           
            cout<<endl;
           
            system (" pause");
            system("CLS");
           
            cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
            cout<<endl;
           
            cout<<"  You Have To LOGIN first!"<<endl;
           
            cout<<endl;
           
            system (" pause");
            system("CLS");
           
            cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
            cout<<endl;
           
            cout<<"  ==========="<<endl;
            cout<<"  || LOGIN ||"<<endl;
            cout<<"  ==========="<<endl;
           
            cout<<"  ==========================================================="<<endl;
            cout<<"  Enter Your Name   :"<<" ";
            cin.getline(nama,30);
           
button:
           
            cout<<"  Password          :"<<" ";
            for (int i=0; i<32; i++)
            {
                        password[i]=getch();
                        if (password[i]=='\r')
                        {
                                    password[i]=NULL;
                                    break;
                        }
                        if (password[i]=='\b')
                        {
                                    if(i<-1)i=-1;
                                    continue;
                        }
                        cout<<"*";
            }
           
            cout<<endl;
           
            strcpy(inisial, password);
           
            system("CLS");
           
            if (inisial[32]=='P'&&'R'&&'A'&&'J'&&'A'&&159)
            {
                        cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
                        cout<<endl;
                       
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                        cout<<"                 SIMPLE PROGRAM \"PASS BY REFERENCE & PASS BY VALUE\"   "<<endl;
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                       
                        cout<<endl;
                       
                        cout<<" ==============================================================================="<<endl;
                        cout<<" |  How To Skip Parameter:                                                     |"<<endl;
                        cout<<" |  1. PASS BY REFERENCE                                                       |"<<endl;
                        cout<<" |     Passing by reference means that the memory address of the variable      |"<<endl;
                        cout<<" |     (a pointer to the memory location) is passed to the function.           |"<<endl;
                        cout<<" |     This is unlike passing by value, where the value of a VARIABEL          |"<<endl;
                        cout<<" |     IS PASSED ON.                                                           |"<<endl;
                        cout<<" |                                                                             |"<<endl;
                        cout<<" |  2. PASS BY VALUE                                                           |"<<endl;
                        cout<<" |     Passing by value means that the value of the function parameter         |"<<endl;
                        cout<<" |     is copied into another location of your memory, and when accessing      |"<<endl;
                        cout<<" |     or modifying the variable within your function, only the copy           |"<<endl;
                        cout<<" |     copy is accessed/modified and THE ORIGINAL VALUE IS LEFT UNTOUCHED.     |"<<endl;
                        cout<<" ==============================================================================="<<endl;
                       
                        cout<<endl;
                       
                        cout<<"  ==========================================================="<<endl;
                        cout<<"  HELLO \""<<strupr(nama)<<"\""<<" Select Your Program!"<<endl;
                        cout<<"  ==========================================================="<<endl;
            }
           
            else
            {
                        cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
                        cout<<endl;
                       
                        cout<<"  ==========================================================="<<endl;
                        cout<<"  Password Entered Was \"WRONG\""<<endl;
                        cout<<"  ==========================================================="<<endl;
                       
                        cout<<endl;
                       
                        cout<<"  Enter Your Password\? (Y/N)"<<endl;
                        cout<<"  Select            :"<<" ";
                        cin>>lagi;
                       
                        system("CLS");
                       
                        if (lagi=='Y'||lagi=='y')
                        {
                                    cout<<"\"Created by: Praja Risnaldy\""<<endl;
                                   
                                    cout<<endl;
                                   
                                    cout<<"  ==========================================================="<<endl;
                                    goto button;
                        }
                       
                        else if (lagi=='N'||lagi=='n')
                        goto selesai;    
            }
           
            int pilih;

menu:
           
            int a;
            int b;
           
            cout<<endl;
           
            cout<<"  1.  PASS BY REFERENCE"<<endl;
            cout<<"  2.  PASS BY VALUE"<<endl;
            cout<<"  3.  EXAMPLE OF PASS BY REFERENCE AND PASS BY VALUE"<<endl;
           
            cout<<endl;
           
            cout<<"  \""<<nama<<"\" You Select Number :"<<" ";
            cin>>pilih;
           
            system("CLS");
           
            if (pilih==1)
            {
                        cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
                        cout<<endl;
                       
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                        cout<<"                 SIMPLE PROGRAM \"PASS BY REFERENCE & PASS BY VALUE\"   "<<endl;
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                       
                        cout<<endl;
                       
                        cout<<"  ======================="<<endl;
                        cout<<"     PASS BY REFERENCE  "<<endl;
                        cout<<"  ======================="<<endl;
                       
                        cout<<endl;
            }
           
            else if (pilih==2)
            {         
                        cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
                        cout<<endl;
           
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                        cout<<"                 SIMPLE PROGRAM \"PASS BY REFERENCE & PASS BY VALUE\"   "<<endl;
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                       
                        cout<<endl;
                       
                        cout<<"  ==================="<<endl;
                        cout<<"     PASS BY VALUE  "<<endl;
                        cout<<"  ==================="<<endl;
                       
                        cout<<endl;
            }
           
            else
            {
                        cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
                        cout<<endl;
                       
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                        cout<<"                 SIMPLE PROGRAM \"PASS BY REFERENCE & PASS BY VALUE\"   "<<endl;
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                       
                        cout<<endl;
                       
                        cout<<"  ================================================"<<endl;
                        cout<<"   EXAMPLE OF PASS BY REFERENCE AND PASS BY VALUE  "<<endl;
                        cout<<"  ================================================"<<endl;
                        cout<<input();  //PEMANGGILAN FUNGSI INPUT
                        cout<<output();  //PEMANGGILAN FUNGSI OUTPUT
                        goto akhir;
                       
                        cout<<endl;
            }
           
            cout<<"  Enter The Value"<<endl;
            cout<<"  ==============="<<endl;
            cout<<"  The First Value   :"<<" ";
            cin>>a;
            cout<<"  The Second Value  :"<<" ";
            cin>>b;
           
            cout<<endl;
                       
            cout<<"  VALUE BEFORE CALLING FUNCTION"<<endl;  //NILAI SEBELUM DILAKUKAN PEMANGGILAN FUNGSI
            cout<<"  ============================="<<endl;
            cout<<"  The First Value   :"<<" "<<a<<endl;           
            cout<<"  The Second Value  :"<<" "<<b<<endl;       
           
            cout<<endl;
           
            if (pilih==1)
            {
                        swap_pass_by_reference(&a,&b);  //PARAMETER FUNGSI a DAN b
            }
           
            else
            {
                        swap_pass_by_value(a,b);  //PEMANGGILAN FUNGSI a DAN b
            }
           
            cout<<endl;
           
            cout<<"  VALUE AFTER CALLING FUNCTION"<<endl;  //NILAI SETELAH PEMANGGILAN FUNGSI
            cout<<"  ==========================="<<endl;
            cout<<"  The First Value   :"<<" "<<a<<endl;           
            cout<<"  The Second Value  :"<<" "<<b<<endl;       

            cout<<endl;

            char kembali;

akhir:  
            cout<<"  ==========================================================="<<endl;
            cout<<"  Back To The Program Selection? (Y/N)"<<endl;
            cout<<"  Select            :"<<" ";
           
            cin>>kembali;
           
            system("CLS");
           
            if (kembali=='Y'||kembali=='y')
            {
                        cout<<"\"Created by: Praja Risnaldy\""<<endl;
           
                        cout<<endl;
                       
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                        cout<<"                 SIMPLE PROGRAM \"PASS BY REFERENCE & PASS BY VALUE\"   "<<endl;
                        cout<< "                 ==================<<>><<<>>><<>>================== "<<endl;
                        goto menu;
            }
           
            else if (kembali=='N'||kembali=='n')
            goto selesai;
           
selesai:
           
            system("CLS");
           
            cout<<endl;
           
            cout<<"  Thank You"<<" \""<<nama<<"\""<<endl;
           
            getch();
}


Salah satu fungsi Pass By Reference dari program di atas.
// FUNGSI REFERENCE (PEMANGGILAN REFERENCE)
int reference(int *a, int *b)
{
            *a=*b;

}

Salah satu pemanggilan Pass By Reference dari program di atas.
reference(&tanggal,&umur.tanggal); 


Salah satu fungsi Pass By Value dari program di atas.
// FUNGSI VALUE (PEMANGGILAN VALUE)
int value(int a, int b)
{
            a=b;

}

Salah satu pemanggilan Pass By Value dari program di atas.
value(tua.year,umur.tahun);


     Anda bisa menyalin program di atas dan bisa dicoba. Di dalam program ini terdapat Program Masking Password dan Program Perhitungan Umur yang telah Saya publikasi sebelumnya.

0 Comment:

Posting Komentar