Variabel dan Array

*    VARIABEL

1. Variabel Otomatis
· Penjelasan:
Variabel otomatis adalah variable yang hanya dikenal di dalam suatu blok saja (dalam tanda {…}), baik itu blok pemilihan, pengulangan ataupun fungsi. Dikatakan ‘otomatis’ karena variable ini dialokasikan pada saat pendeklarasian dan akan didealokasikan secara otomatis ketika program keluar dari suatu blok. Walaupun bersifat opsional, namun untuk mempertegas bahwa variable tersebut sebagai variable otomatis, kita dapat menggunakan kata kunci auto pada saat pendeklarasian.
· Syntax:
auto tipe_data nama_variabel;
· Contoh:
#include
Int main(void) {
Int a;
/*Melakukan blok pemilihan*/
if (a>0) {
auto int var_otomatis; /*Mendeklarasikan variable otomatis */
/* Dalam blok ini variable var_otomatis dikenali*/
} /*akhir blok pemilihan*/
/*di sini variable var_otomatis sudah tidak dikenali lagi*/
return 0;
}
Contoh hasil yang akan diperoleh dari program di atas adalah:
Masukkan nilai pangkat:3
5^3=125
2) Variabel statis:
· Penjelasan:
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
/*Mendefinisikan sebuah fungsi dengan nama KaliSepuluh()*/
Int KaliSepuluh (void) {
static int a=1; /*Mendeklarasikan variable statis*/
a=a*10;
return a;
}
/*Fungsi utama*/
Int main (void) {
/*Mendeklarasikan variable x,y, dan z untuk menampung nilai dari fungsi*/
Int x,y,z;
x=KaliSepuluh(); /*Melakukan pemanggilan fungsi untuk pertama kali*/
y=KaliSepuluh(); /*Melakukan pemanggilan fungsi untuk kedua kali*/
z=KaliSepuluh(); /*Melakukan pemanggilan fungsi untuk ketiga kali*/
/*Menampilkan nilai yang terdapat pada variable x,y, dan z*/
printf(“Nilai x=%d\n”,x);
printf(“Nilai y=%d\n”,y);
printf(“Nilai z=%d\n”,z);
return 0;
}
Contoh hasil yang akan diperoleh adalah:
Nilai x =10
Nilai y=100
Nilai z= 1000
3)Variabel eksternal:
· Penjelasan:
Bahasa C mengizinkan kita untuk menuliskan syntax program ke dalam file yang terpisah dengan tujuan untuk modularisasi program. Untuk itu apabila kita ingin mendeklarasikan variabel yang dapat dikenali dan diakses oleh masing-masing file yang terpisah tersebut, maka variable itu harus kita deklarasikan sebagai variable eksternal . Adapun caranya adalah dengan menambahkan kata kunci ekstern pada saat pendeklarasian.
· Syntax:
Ekstern tipe_data nama_variabel;
· Contoh:
Dalam file utama.c :
#include
int var_eksternal; /*deklarasi variable*/
int main (void){
var_eksternal=100;
printf(“Nilai var_eksternal:&d\n”, var_eksternal);
/*Memanggil fungsi SetNilai() yang terdapat pada file eksternal.c*/
SetNilai();
printf(“Nilai var_eksternal:%d\n”, var_eksternal);
return 0;
}
Dalam file eksternal.c :
extern int var_ eksternal;
void SetNilai(void) {
var_eksternal=500;
}
Apabila dikompilasi dan dijalankan maka program di atas akan memberikan hasil sebagai berikut:
Nilai var_eksternal:100
Nilai var_eksternal:500
4) Variabel Register:
· Penjelasan:
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
/*Mendefinisikan fungsi untuk menghitung nilai perpangkatan B*/
int Pangkat(register int B, register int e){
/*Mendeklarasikan variable register*/
register int hasil;
hasil=1;
for(;e;e--){
hasil *= B;
}
return hasil;
}
/*Fungsi utama*/
Int main(void){
printf(“2^6=%d”,Pangkat(2,6)); /*Menghitung 26*/
return 0;
}
Hasil yang akan diperoleh dari program di atas adalah:
2^6=64
5) Variabel Pointer
· Penjelasan:
Variabel pointer adalah variable yang berisi alamat variable lain. Variable pointer dideklarasi dengan menambahkan tanda bintang sebelum nama variable.
· Syntax:
data_type *pointer_name;
· Contoh:
#include
void main (){
int a,b;
int *p; /*1*/ p adalah variable pointer
a=10;b=20; /*2*/
p=&a; /*3*/
printf(“%x%d\n”,p,*p);
*p=b+15; /*4*/
Printf(“%d\n”,a);
}

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


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()
{
    .....
}



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.

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.


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.


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




*    ARRAY

PENGERTIAN
Array (larik) ialah sekumpulan variabel-variabel yang memiliki nama dan tipe data yang sama satu dengan lainnya. Juga bisa diartikan sebagai sekelompok data sejenis yang tersimpan di dalam variabel dengan nama sama. maka dari itu Untuk dapat membedakan antara array satu dengan lainnya dapat dengan memberikan indeks pada masing-masing variable tersebut.
1. STRUKTUR DATA PALING MENDASAR
Dalam menyusun fungsi array terdapat 3 struktur yang paling mendasar, antara lain
  1. Kumpulan data dengan tipe sama yang jumlahnya tertentu
  2. Akses setiap elemen menggunakan indeks
  3. Disimpan pada tempat yang saling bersambungan (contiguous)
2. DEKLARASI

Untuk dapat memasukan array dalam sebuah program, kita harus memahami masing-masing pendeklarasian dari array tersebut, berikut ini deklarasi array :
Array Statis
int A[10];
char kata[15];
float matriks[2][3];
Array Dinamis
cin >> n;
A = new int[n]; atau
int [ ] A = new int[n];
Inisialisasi
int [ ] A = { 1, 2, 3, 4, 5};
int [ ] A;
A = { 1, 2, 3, 4, 5}; // illegal

ABSTRAKSI
Abstraksi merupakan proses representasi data dan program yang sama dengan pengertiannya dengan menyembunyikan detail implementasi. hal ini bertujuan agar para programmer dapat lebih berfokus pada konsep tertentu saja dalam satu waktu. selain itu mengembangkan mekanisme abstrak untuk keperluan komputasi tertentu pada level yang lebih tinggi. ada 2 lapisan abstaksi yaitu:
  1. Mendefinisikan objek yang ingin dimanipulasi  (representasi data dalam struktur data)
  2. Mendefinisikan operasi yang akan dilakukan pada struktur data (mengimplementasikan algoritma)
TIPE DATA ABSTRAK (TDA)
Tipe Data abstrak atau sering juga disebut bstract data type (ADT) merupakan tipe data yang hanya dapat diakses lewat interface. Mengacu ke program dalam penggunaan TDA sebagai client untuk program yang menentukan tipe data. sebagai contoh dalam implementasi sebagai berikut:
Interface adalah opaque = client tidak dapat melihat implementasi
KEUNTUNGAN TIPE DATA ABSTRAK (TDA)
penggunaan tipe data abstrak sangat berguna dalam melakukan pemrograman, karena dengan programmer dapat lebih berfokus pada satu program dan hasil yang memuaskan, berikut ada 4 keuntungan menggunakan TDA :
  1. Menyediakan mekanisme yang efektif untuk mengorganisasikan sistem software yang besar
  2. Menyediakan cara untuk membatasi ukuran dan kompleksitas interface antara algoritma dan
  3. struktur data yang bersesuaian dan program yang menggunakan algoritma dan struktur data
  4. Interface TDA mendefinisikan arti yang “pas” dari komunikasi







PUSHDOWN STACK TDA
Salah satu jenis TDA yang paling sering digunakan ialah pushdown stack. Pushdown Stack TDA mempunyai fungsi untuk menyediakan dua operasi dasar yaitu insert (push) item baru dan delete (pop) item yang paling akhir disisipkan agar dapat memahasi dengan mudah serta menggunakan sistem LIFO (Last in- first out) berikut contoh gambar dalam jenis TDA ini :
Last in- first out (LIFO)
INTERFACES TDA PUSHDOWN-STACK
Interfaces TDA Pushdown-stack Digunakan untuk evaluasi ekspresi aritmetika :
Ekspresi Infiks
 Operator berada di antara operan, Misalnya 4 + 5 (4 dan 5 adalah operan)
Ekspresi Posfiks
Operator berada setelah operan, misalnya 4 + 5 ditulis sebagai 4 5 +
Interface : Client bisa menggunakan empat operasi
Disimpan dalam STACK.h
NOTASI POSFIKS
berikut ini contoh penggunaan notasi Posfiks :
Apa notasi posfiks untuk ekspresi infiks :
6 + 5 * 9 ?
Apa notasi infiks untuk ekspresi posfiks :
5 9 8 + 4 6 * * 7 + * ?
5 9 8 – 7 1 – * + 7 * ?
Catatan : tanda kurung tidak diperlukan pada notasi posfiks
NOTASI POSFIKS DAN PUSHDOWN STACK
Berikut ini contoh penggunaan Notasi Posfiks dan Pushdown Stack :
Notasi Posfiks dan Pushdown Stack
Add caption
TIPE DATA ABSTRAK (TDA) ARRAY
Tipe data abstrak array mempunya sifat setiap instan objek data adalah himpunan pasangan berbentuk (indeks, harga) dan tidak ada pasangan himpunan dengan indeks sama
FUNGSI-FUNGSI YANG DIBERLAKUKAN PADA ARRAY :
a. Buat  = membuat array kosong awal.
b. Simpan = menambah pasangan berbentuk (indeks, harga) ke dalam himpunan, dan jika terdapat.
c. pasangan dengan indeks sama = hapus pasangan lama.
d. Tampilkan = tampilkan harga dari pasangan bila diberikan indeksnya.
Sebagai contoh, berikut ini tertuang TDA array pada sebuah program :
TDA Array
instans
  himpunan pasangan berbentuk (indeks, harga), tidak ada pasangan dengan indeks sama
operasi
buat()
simpan(indeks, harga)
tampilkan(indeks)
#1 Contoh Program C++ Array 1 Dimensi
Berikut cara mendeklarasikan array 1 dimensi pada C++:
tipedata [totalindex];

//atau

tipedata [] = { nilai1, nilai2, dst };
Jadi, ada dua cara mendeklarasikan sebuah array berdimensi satu cara pertama cukup dengan menggunakan tipe data dan total index yang diinginkan, contoh:
int umur[5];
Artinya, anda menyediakan varibel array bernama umur dengan tipe data integer yang mampu menampung 5 data yang sama mulai dari index 0 - 4.
Ingat: Index pada array selalu dimulai dari nol.
Kemudian untuk mengisi nilai untuk tiap index pada array dengan cara:
umur[0] = 18;
umur[1] = 19;
umur[2] = 20;
umur[3] = 21;
umur[4] = 22;
Cara kedua, anda bisa langsung memberi nilai untuk tiap index pada saat pendeklarasian array. Contoh kodenya sebagai berikut:
int umur[] = {18,19,20,21,22};
Untuk penerapan array dalam program biasanya dipadukan dengan perulangan for, while-do, dan do-while. Pilih salah satu namun yang paling umum adalah for.
Berikut contoh program sederhana array 1 dimensi pada c++:
#include <iostream>
using namespace std;

int umur[] = {18, 19, 20, 21, 22};
int n, hasil=0;

int main ()
{
  for ( n=0 ; n<5 ; ++n )
  {
    hasil+= umur[n];
  }
  cout << hasil;
  return 0;
}
Dalam program diatas, saya ingin menjumlahkan nilai dari tiap index umur dan hasilnya saya simpan kedalam variabel hasil untuk ditampilkan di akhir program.

#2 Contoh Program C++ Array 2 Dimensi
Sama halnya dengan array 1 dimensi, array 2 dimensi juga memiliki cara yang sama dalam pendeklarasiannya. Berikut contoh array berdimensi 2:
Deklarasi array 2 dimensi:
tipedata [totalbaris][totalkolom];
Pemberian nilai array 2 dimensi:
namatabel [indexbaris][indexkolom] = nilai;
Sehingga untuk memberi nilai secara manual menjadi sebagai berikut:
tabel[0][0]= 1; tabel[0][1]= 2; tabel[0][2]= 3; tabel[0][3]= 4; tabel[0][4]= 5;
tabel[1][0]= 2; tabel[1][1]= 4; tabel[1][2]= 6; tabel[1][3]= 8; tabel[1][4]= 10;
tabel[2][0]= 3; tabel[2][1]= 6; tabel[2][2]= 9; tabel[2][3]= 12; tabel[2][4]= 15;
Catatan: anda akan menggunakan looping bersarang untuk mengakses array dua dimensi (array dua dimensi seperti sebuah tabel dengan baris dan kolom).
Berikut ini merupakan contoh program sederhana array 2 dimensi pada c++:
#include <iostream>
using namespace std;

int x,y;
int tabel[3][5] = {
                  {1, 2, 3, 4, 5},
                  {2, 4, 6, 8, 10},
                  {3, 6, 9, 12, 15}
                  };

int main ()
{
  for (x=0; x<3; x++)
    for (y=0; y<5; y++)
    {
      cout << tabel[x][y] << " ";
    }
    cout << "\n";
}
Dalam program diatas kita mendeklarasikan variabel x dan y sebagai iterator.
Lalu kita mendeklarasikan varibel tabel dengan tipe array dua dimensi (jumlah baris = 3, jumlah kolom = 5). Selain itu, kita langsung melakukan inisialisasi pada array tersebut.
Kemudian dalam program utama kita menggunakan nested loop dengan fungsi for untuk mengakses baris dan kolom secara otomatis supaya dapat mencetak isi array tabel.

Sumber:

Komentar

Postingan Populer