Anda di halaman 1dari 21

MODUL PERKULIAHAN

Praktikum Algoritma
dan Struktur Data
Variabel, Tipe data dan Operator

Fakultas : Ilmu Komputer Tatap Muka Kode Mata Kuliah : W4119004

Program Studi : Teknik Informatika


03 Disusun Oleh : Chaerul Anhar Tanof, S.Kom,MMSI

Asbtrak Tujuan
Sebuah program berisi data yang dimasukan oleh mahasiswa mampu memahami konsep
pengguna, kemudian ditampug kedalam variabel, variabel dan tipe data yang digunakan,
kemudian diproses oleh operator dan dibantu oleh mampu menjelaskan operator dan membuat
fungsi tertentu untuk mehghasilkan suatu output. program sederhana menggunakan operator
Sesi ini membahas mengenai variabel, tipe data yang
digunakan untuk menampung nilai pada variabel,
dan pemrosesan variabel dengan operator
PEMBAHASAN

1. Variabel

Inti dari sebuah program komputer pada dasarnya adalah menerima input data dari pengguna
atau dari proses lainnya, kemudian memproses data tersebut sehingga menghasilkan suatu output.
Nilai input biasanya diperoleh dari input pada keyboard, sebuah file, tangkapan kamera, rekaman
suara dari mikrofon, dan lain sebagainya. Sementara output merupakan hasil pemrosesan data
yang dilakukan program sehingga menghasilkan sebuah objek yang dapat ditampilkan ke
monitor, dicetak ke dokumen, atau disimpan kedalam sebuah file. Nah pada tahap input inilah,
program membutuhkan tempat untuk menyimpan nilai sementara agar dapat diproses oleh logic
program tersebut. Tempat penyimpanan sementara inilah yang disebut dengan variabel.
Variabel merupakan suatu tempat yang digunakan untuk menampung data dari proses input
atau konstanta tertentu didalam memori komputer. Sebagaimana seperti saat kita berfikir, kita
membutuhkan beberapa ingatan untuk memproses informasi. Begitupun dengan program,
seluruh program komputer yang sedang berjalan akan menyimpan data sementara di dalam RAM
(Random Access Memori) menggunakan sebuah variabel.

1.1 Mendeklarasikan variabel

Sebelum variabel dapat dikenali program, maka terlebih dahulu kita harus mendeklarasikan
variabel tersebut. Untuk mendeklaraiskan variabel dibutuhkan tipe data yang mewakili jenis nilai
yang akan disimpan kedalam variabel terebut. Selain itu, ada ketentuan dalam menamai variabel,
yakni; nama variabel tidak boleh diawali dengan angka dan tidak boleh menggunakan spasi dalam
namanya. Jika harus menggunakan pemisah kata, maka dapat menggunakan underscore _ serta
penamaan variabel dalam satu blok program tidak boleh sama dengan variabel lainnya. Format
penulisan variabel pada C++ adalah dengan menulis terlebih dahulu tipe datanya, lalu diikuti
dengan nama variabelnya sebagai berikut :

string nama;
int umur;
char jenis_kelamin;

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
2 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Lebih lengkapnya berikut adalah contoh penulisan variabel pada sebuah progam

#include <iostream>
using namespace std;

int main(){

// deklarasi tipe data variabel


string nama;
int umur;

// --- proses input ---


cout << "Masukan nama anda?" << endl;
cout << "jawab: ";
// menyimpan data ke variabel
getline(cin,nama);

cout << "Berapa usia anda" << endl;


cout << "jawab: ";
// menyimpan data ke variabel
cin >> umur;

// --- proses output ---


cout << "Salam, " << nama << " Betulkah usia anda adalah " << umur ;
return 0;

Jika di perhatikan pada script diatas, kita mendefinisikan variabel didalam main function
sehingga variabel tersebut hanya dapat dikenali pada main function. Ketika kita mendefinisikan
variabel kita dapat membuatnya menjadi varibel global maupun variabel lokal. variabel lokal
didefinisikan di dalam suatu scope function sedangkan variabel global di definisikan diluar scope
function. Lebih jelasnya berikut penjabaran mengenai variabel lokal dan variabel global.

Variabel Lokal
Variabel lokal merupakan variabel yang dideklaraikan dalam suatu blok program sehingga
variabel tersebut hanya akan dikenali dan hanya dapat digunakan di dalam blok program itu saja.
variabel lokal akan dibuat disaat compiler melawati deklarasi yang ada di dalam suatu blok dan
akan dihancurkan setelah keluar dari blok tersebut, sehingga variabelnya tidak dapat dikenali
oleh blok program lainnya.

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
3 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Perhatikan contoh berikut :

#include <iostream>
using namespace std;

int main ()
{
int id = 1; //[Local Variable].Variabel dideklaraiskan dalam blok main()

cout << "id yand dimasukan adalah " << id << endl;

return 0;
} //variabel "id" dihancurkan dan tidak dikenali oleh function lainnya.

Dalam suatu program, dimungkinkan untuk membuat sub blok program sehingga menjadi nested
block (blok program di dalam suatu blok program). Konsep ini juga berlaku untuk pendeklarasian
variabel lokal. artinya variabel lokal pada blok program utama akan dapat dikenali di bagian blok
utama dan juga pada sub-blok program, namun variabel lokal pada sub-blok hanya akan dikenali
pada sub-blok tersebut dan tidak dapat dikenali pada blok utama. Perhatikan script berikut :

#include <iostream>
using namespace std;

int main ()
{
int id = 1; //[Local Variable pada blok utama]
{
int umur = 2; //[Local Variable pada sub-blok]
cout<<id<<endl;
cout<<umur<<endl;

}//Variabel "umur" dihancurkan dan tidak dapat dikenali

return 0;
} //variabel "id" dihancurkan dan berakhir di sini.

Di dalam peraturan pemberian nama variabel, tidak boleh memiliki variabel yang sama dalam
satu ruang lingkup. artinya kita tidak dapat mendeklarasikan nama yang sama pada blok program
yang sama. Kecuali pada blok yang berbeda, kita dapat menggunakan nama variabel yang sama
selama tidak berada dalam satu blok program yang sama. Sebagai bentuk kehati-hatian,
sebaiknya gunakan nama variabel yang berbeda dalam agar tidak salah memanggil variabel.

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
4 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Variabel Global
Dalam mendeklarasikan variabel, dimungkinkan untuk mendeklarasikan variabel di luar suatu
blok program atau sebuah function. Variabel Global merupakan variabel yang dideklarasikan di
dalam sebuah file source code tapi terletak diluar dari block program atau blok function. Sehinga
variabel dapat dikenali oleh blok perogram di dalam satu file source code. Variabel global
bersifat Static Duration, yang berarti bahwa variabel akan dibuat saat program dimulai dan
dihancurkan ketika program berakhir. Pendefinisian variabel biasanya terletak pada bagian paling
atas setelah Preprocessor directive dan definisi namespace, seperti pada contoh berikut:

#include <iostream>
#include <string>
using namespace std;

string praktikum = "belajar C++ yaa !"; //Global Variabel

void fungsi_B(){
cout<< praktikum <<endl;
}

int main ()
{
string lokal_aja = "lokal variabel"; //variabel lokal
cout<< praktikum <<endl; // Var Global dpt dikenali blok program
fungsi_B();
cout<< lokal_aja <<endl; // variabel lokal dipanggil

return 0;
}

Dari program diatas dapat diketahui perbedaan variabel lokal dengan variabel global, praktikum
merupakan variabel yang dideklarasikan di luar ruang lingkup kedua function di atas (main dan
fungsi_B), oleh karena itu variabel praktium menjadi variabel global yang dapat dipanggil dari
berbagai blok program, seperti di dalam blok fungsi_B dan main function. Dalam main function
terdapat variabel lokal aja yang hanya dapat diakses di dalam ruang lingkup tersebut.

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
5 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
2. Tipe data

Tipe data digunakan untuk merepresentasikan jenis nilai dari suatu data yang akan disimpan
ke dalam variabel untuk kemudian diproses dalam program. Seperti diketahui sebelumnya bahwa
variabel merupakan sebuah tempat yang disimpan dalam memori komputer, maka pada dasarnya
ketika mendeklarasikan variabel, kita sedang memesan sebuah ruang didalam memori yang
besarnya akan dipengaruhi dengan jenis atau tipe data yang akan digunakan oleh variabel
tersebut. Ketepatan pemilihan tipe data pada variabel akan menentukan pemakaian sumberdaya
komputer (terutama memori komputer). Ada banyak tipe data yang tersedia, namun pada
dasarnya tipe data yang dapat digunakan pada C++ terbagi menjadi 3 jenis, yaitu :
• Tipe data angka - untuk meyimpan data berupa bilangan angka atau numerik
• Tipe data karakter - untuk menyimpan data dalam bentuk kata atau karakter
• Tipe data logika - untuk data-data yang hanya mengandung nilai benar atau salah
Selengkapnya, macam-macam tipe data dapat dilihat pada tabel 3.1, disertai dengan besarnya
memori yang digunakan dan jangkauan nilai yang mampu dimua oleh tipe data tersebut.

Tabel 3.1 Rangkuman tipe data pada C++

Tipe Data Ukuran Memori Jangkauan


char 1 byte -127 to 127 or 0 to 255
unsigned char 1 byte 0 to 255
signed char 1 byte -127 to 127
int 4 bytes -2147483648 to 2147483647
unsigned int 4 bytes 0 to 4294967295
signed int 4 bytes -2147483648 to 2147483647
short int 2 bytes -32768 to 32767
unsigned short int Range 0 to 65,535
signed short int Range -32768 to 32767
long int 4 bytes -2,147,483,648 to 2,147,483,647
signed long int 4 bytes -2,147,483,648 to 2,147,483,647
unsigned long int 4 bytes 0 to 4,294,967,295
float 4 bytes +/- 3.4e +/- 38 (~7 digits)
double 8 bytes +/- 1.7e +/- 308 (~15 digits)
long double 8 bytes +/- 1.7e +/- 308 (~15 digits)
wchar_t 2 atau 4 bytes 1 wide character

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
6 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
2.1 Tipe data bilangan bulat

Digunakan untuk data berjenis angka yang tidak mengandung pecahan angka dibelakang
koma (bukan bilangan desimal). Tipe data yang dapat digunakan adalah Integer dengan ukuran
memori sebesar 4 byte atau 32 bit. Integer ditulis dengan notasi int pada deklarasi variabel

#include <iostream>
using namespace std;

int main(){
int x;
iny y;
x=3; y=4;

z= x * y;
cout << "Hasil perkalian antara X dan Y adalah : " << z;
}

2.2 Tipe data bilangan pecahan

Jika kita ingin menyimpan jenis data yang mengandung nilai pecahan pada variabel, kita
dapat menggunakan tipe data Float dan Double. Kedua tipe data tersebut memugnkinkan kita
untuk menampung data berjenis numerik yang bersifat bilangan pecahan desimal atau real.
Perbedaan keduanya adalah besarnya cakupan angka desimal yang dapat ditampung. Karena
perbedaannya, maka ukuran memori yang digunakan berbeda, float membutuhkan sebesar 4 byte
atau 32 bit sedangkan double membutuhkan ruang sebesar 8 byte atau 64 bit.

#include <iostream>
using namespace std;

int main(){
float jari ;
float hasil ;
double nilai_phi = 3.1428;

cout << "Masukan Jumlah jari-jari = "; cin >> jari;


hasil = jari*(jari * p);
cout << "Luas lingkaran: " << hasil;
}

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
7 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
2.3 Tipe data karakter

Tipe data karakter merupakan tipe data yang memungkinkan kita untuk menyimpan data
berjerformat text (huruf, angka, dan simbol) dengan jumlah karakter tunggal. Artinya, tipe data
ini hanya dapat menyimpan data berbentuk karakter yang hanya berisi satu digit karakter saja.
Karena hanya menyimpan satu karakter, besarnya memori yang dibutuhkan tipe data ini hanya
1 byte atau 8 bit. Tipe data ini ditulis dengan notasi char sebelum penulisan variabel.

#include <iostream>
using namespace std;

int main(){
char nilai;
cout << "Masukan nilai (A/B/C/D): "; cin>>nilai;
cout << "Nilai anda:" << nilai;

2.4 Tipe data string

String merupakan tipe data text yang memungkinkan kita menyimpan data dalam bentuk
text dan kumpulan dari karakter yang lebih dari 1 karakter. besarnya memori yang dibutuhkan
tipe data string yaitu 4 byte atau 32 bit.

#include <iostream>
using namespace std;

int main(){
string nohp;
cout << "Masukan nomor HP: "; cin >> nohp;
cout << "Nomor HP anda: " << nohp;
}

Sebagai catatan, data pada data char dan string, hanya mengandung karakter sehingga tidak
dapat dilakukan operasi aritmatika. Meskipun dapat menampung angka, namun angka tersebut
akan dikenali sebagai sebuah karakter.

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
8 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
2.5 Tipe data logika (boolean)

Boolean merupakan salah satu tipe data hanya memiliki dua pilihan nilai yang berisi nilai
perbandingan logika, yakni benar atau salah. Nilai benar direpresentasikan dengan nilai 1
sedangkan nilai salah direpresentasikan dengan nilai 0. Tipe data ini biasanya digunakan untuk
memberikan kondisi pada program, atau bisa juga digunakan untuk memastikan kebenaran dari
sebuah operasi. Besarnya memori yang dibutuhkan tipe data bool yaitu 1 byte atau 8 bit.

#include <iostream>
using namespace std;

int main()
{
int angka;
bool hasil;
cout << "Masukan angka = "; cin >> angka;
hasil = angka > 10;
cout << hasil;
}

Pada program diatas, kita mendefinisikan 2 buah variabel, yaiktu variabel angka dengan tipe
data integer, dan variabel hasil dengan tipe data boolean. Kemduian, pada operasi program kita
akan menguji nilai yang dimasukan pada variabel angke dengan boolean pada variabel hasil
dengan membandingkan nilai dari variabel angka dengan nilai 10, jika nilai pada variabel angka
lebih dari 10, maka variabel hasil akan memiliki nilai 1 (true) namun jika nilai variabel angka
lebih kecil dari 10, maka isi dari variabel hasil bernilai 0 (false).

2.6 Tipe data bentukan dan turunan

Selain tipedata yang ditelah disebutkan, C++ juga memungkinkan kita untuk membuat tipe
data lain sesuai kebutuhan program. Tipe data ini berisi hasil kustomisasi dan kombinasi dari
beberapa tipe data. Jenis tipe data bentukan dapat berupa STRUCT atau ENUM. Selain itu, kita
juga dapat menggunakan ARRAY yang merupakan tipe data turunan dari tipe data yang ada.
Array, Struct dan Enum akan dibahas di sesi khusus karena cara deklarasi dan penggunaannya
relatif berbeda dengan tipe data lain, dan cendrung digunakan untuk pembentukan sruktur data.

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
9 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
3. Operator

Setelah data disimpan ke dalam variabel, program akan menjalankan operasi tertentu untuk
menghasilkan output, maka untuk menjalankan operasi program membutuhkan suatu operator.
Operator adalah simbol atau penanda yang memberitahu kompiler untuk melakukan tindakan
atau proses tertentu berupa operasi matematika maupun manipulasi logika untuk menghasilkan
sebuah nilai. Pada C++, opearator yang digunakan adalah sebagai berikut :

1. Operator Penugasan
2. Operator Artimatika
3. Operator Pembanding
4. Operator Logika
5. Operator Bitwise
6. dan Operator Lainnya

Cara kerja operator dalam memproses suatu variabel adalah dengan memproses nilai yang
disimpan dari suatu variabel sesuai dengan sifat atau kategori dari operator tersebut.

3.1 Operator Penugasan

Operator penugasan merupakan operator yang digunakan untuk memberikan penugasan


pada sebuah variabel yang biasanya berfungsi untuk memasukkan nilai ke dalam suatu variabel.
Operator ini dilambangkan dengan tanda sama dengan = , seperti yang dicontohkan pada
potongan program berikut :

MyChar = 'C';

MyString = "Rahasia C++";

MyInteger = 24;

MyDouble = 22.021

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
10 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
3.2 Operator Artimatika

Operator aritmatika digunakan untuk melakukan operasi penghitungan matematis. Operator


aritmatika yang digunakan dalam C++ adalah:
• Penjumlahan +
• Pengurangan -
• Perkalian *
• Pembagian /
• Sisa Bagi %
Karena operator ini berfungsi untuk melakukan perhitungan matematika, maka variabel yang
dapat diproses oleh operator ini adalah variabel dengan tipe data numerik (int atau float). Berikut
adalah contoh penggunaan operator aritmatik.

#include <iostream>
using namespace std;

int main(){

int a, b;
cout << "Inputkan nilai a: ";
cin >> a;
cout << "Inputkan nilai b: ";
cin >> b;

cout << "Hasil penjumlahan antara a + b adalah : " << a + b << endl;
cout << "Hasil pengurangan antara a - b adalah : " << a - b << endl;
cout << "Hasil perkalian antara a * b adalah : " << a * b << endl;
cout << "Hasil Pembagian dari a / b adalah : " << a / b << endl;
cout << "Sisa pembagian a % b (modulus) adalah : " << a % b << endl;
return 0;
}

Hasil eksekusi program setelah di compile :

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
11 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Jika diperhatikan hasil eksekusi program pada operasi pembagian antara 9/2 hasilnya 4 dan
bukan 4,5 ini terjadi karena tipe data yang digunanakan adalah int atau integer, tipe data ini hanya
dapat menampung bilangan bulat. Silahkan ubah tipe datanya menjadi float jika operasinya
memungkinkan untuk menghasilkan nilai angka pecahan.

3.3 Operator Pembanding

Operator pembanding adalah operator untuk membandingkan atau menguji hubungan antara
dua buah nilai atau variabel. Operator ini sering digunakan dalam program untuk menentukan
kondisi karena menghasilkan nilai benar atau salah. Berikut simbol yang digunakan dalam
operator pembanding :

• == Sama dengan
• != Tidak sama dengan
• > Lebih dari
• < Kurang dari
• >= Lebih dari atau sama dengan
• <= Kurang dari atau sama dengan

Berikut contoh program penggunaan operasi pembanding :

#include <iostream>
using namespace std;

int main() {

int a, b;
bool nilai; //menggunakan tipe data boolean untuk menampung nilai true / false

a = 5;
b = 10;

cout << "a = " << a << endl;


cout << "b = " << b << endl;

nilai = a > b ; // hasil ungkapan : salah


cout << "Nilai a > dari b = " << nilai << endl;

nilai = a < b ; // hasil ungkapan : benar


cout << "Nilai a < dari b = " << nilai << endl;
return 0;
}

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
12 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Hasil eksekusi program setelah di compile :

Hasil opearasi pembanding antara nilai a (5) dan nilai b (10), pernyataan baris pertama bernilai 0
atau false karena nilai 5 tidak lebih besar dari 10. Sebaliknya pernyataan baris kedua bernilai 1
atau true, karena memang nilai 5 lebih kecil dari 10.

3.4 Operator Logika

Operator logika merupakan operator yang digunakan untuk membandingkan dua nilai
variabel atau lebih dimana nilai yang dihasilkan dari operasi tersebut hanya bernilai benar (1)
atau salah (0). Penggunaan operator ini biasanya berhubungan dengan operator pembanding,
dimana operator logika dapat melengkapi operasi perbandinggan sederhana menjadi perbadingan
antara operand dari variabel serta perbandingan antara statement kondisi tertentu. Nilai dari
operasi ini dapat berupa benar atau salah sesudai dengan hasil perbandaingan dari operator yang
digunakan dengan ketentuan sebagaimana pada tabel 3.2

Tabel 3.2 ketentuan hasil kondisi dari operator logika

Operator Keterangan

&& AND – Jika semua operand atau statemen kondisi bernilai benar
maka hasil yang dikeluarkan bernilai benar.
OR – Jika salah satu operand atau statemen kondisi bernilai benar
maka hasil yang dikeluarkan bernilai benar.
||
hasil yang diekeluarkan akan bernilai salah jika seluruh statemen kondisi
bernilai salah (tidak ada yang benar)
NOT – Digunakan untuk membalik kondisi.
! Jika kondisi bernilai benar maka akan berubah menjadi salah
begitu pula sebaliknya.

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
13 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Berikut contoh program dari operasi logika :

#include <iostream>
using namespace std;

int main() {

int a, b;
bool nilai;

nilai = ( (5 == 5) && (3 > 6) );


cout << "<< hasil dari 5 = 5 DAN 3 > 6 adalah : " << nilai << endl;
// Hasil = FALSE, karena nilai operand ( true && false )

nilai = ( (5 == 5) || (3 > 6) );
cout << "<< hasil dari 5 = 5 ATAU 3 > 6 adalah : " << nilai << endl;
// Hasil = TRUE, karena nilai operand ( true || false )

nilai = ( (5 == 10) || (3 > 6) );


cout << "<< hasil dari 5 = 10 ATAU 3 > 6 adalah : " << nilai << endl;
// Hasil = FALSE, karena nilai operand ( false || false )

return 0;
}

Hasil eksekusi program setelah di compile :

Hasil operasi pada pernyataan baris pertama bernilai 0 atau false karena statement operand di
baris bertama bernilai true dan false, 5 sama dengan 5 (1) DAN 3 tidak lebih besar dari 6 (0).
Sesuai dengan kaidah operator DAN, hasilnya akan menjadi true jika nilai pada statemen operand
yang dibandingkan seluruhnya bernilai true. Berbeda dengan pernyataan di baris kedua, dimana
memang salah satu statement operand nya bernilai false. Pada kaidah operator OR, hasilnya akan
tetap menjadi true jika salah satu statement operand yang dibandingkan sudah bernilai true. Lain
halnya jika seluruh statemen operand bernilai false, maka hasilnya akan menjadi false,
sebagaimana pada pernyataan di baris ketiga.

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
14 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
3.5 Operator Bitwise

Operator bitwise merupakan operasi matematis khusus yang memanipulasi suatu nilai
dalam bilangan biner. Bilangan biner merupakan jenis bilangan yang hanya terdiri dari 2 angka,
yakni 0 dan 1. Operator bitwise bekerja dengan mengubah bilangan desimal menjadi bilangan
biner. Jika nilai asal bukan merupakan bilangan biner, akan dikonversi secara otomatis menjadi
bilangan biner. Misalnya nilai 7 jika diubah menjadi biner nilainya adalah 0111. Setelah itu akan
dilakukan operasi sesuai operator bitwise yang digunakan, kemudian diubah kembali menjadi
bilangan desimal. Berikut jenis operasi bitwise yang digunakan pada C++ :

∙ & atau AND : untuk bitwise dengan operasi AND


∙ | atau OR : untuk bitwise dengan operasi Inklusif OR
∙ ^ atau XOR : untuk bitwise dengan operasi Esklusif OR
∙ ~ atau NOT : untuk operasi bitwise yang membalikan nilai

Sebagaimana diketahui bahwa operator ini bekerja dengan membadingkan nilai dalam
bentuk bilangan biner, maka operator ini akan mengubah seluruh bilangan pada masing-masing
operand menjadi bilangan biner kemudian membandingkanya dengan operand dari sisi lainnya.
Perbandingan dilakukan dari setiap bit ke bit lainnya dalam bentuk biner (angka 1 dan 0)
kemudian menghasilkan nilai 1 atau 0 dari hasil perbandingan masing-masing bit berdasrkan sifat
dari operator yang digunakan, baik AND, OR, XOR ataupun NOT. Agar lebih mudah memetakan
hasil dari operasi biner, dapat dibuat tabel kebenearan sebagaimana pada tabel 3.3

Tabel 3.2 Tabel kebenaran operasi logika

Nilai bit Nilai bit Hasil Operasi AND Hasil Operasi OR Hasil Operasi XOR
pada variabel p pada variabel q (p&q) (p|q) (p^q)
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
15 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Contoh operasi bitwise AND :

181 = 10110101
108 = 01101100
-------- AND
00100100 = 36 (desimal)

Angka 181 pada bilangan pertama dibuah menjadi bilangan biner 10110101, angka 108 diubah
menjadi bilangan biner 01101100. Kemudian, pada setiap bit angka biner dilakukan operasi and
dimana hasilnya akan bernilai 1 jika kedua nilai yang dibandingkan bernilai 1. Hasil keseluruhan
hasil perbandingan dari setiap bit menghasilkan nilai 00100100. Kemduian dikonversi ke
bilangan desimal menjadi angka 36.

Berikut adalah contoh penerapan operasi bitwise pada program C++ :

1 #include <iostream>
2 using namespace std;
3
4 int main()
5 {
6 int a, b, hasil;
7
8 a = 181;
9 b = 108;
10
11 printf("=== Operator Bitwise Bahasa C === \n\n");
12
13 cout << "Diketahui a bernilai : " << a << endl;
14 cout << "dan b bernilai : " << b << endl;
15
16 hasil = a & b;
17 printf("operasi bitwise a AND b: %d \n",hasil);
18
19 hasil = a | b;
20 printf("operasi bitwise a OR b: %d \n",hasil);
21
22 hasil = a ^ b;
23 printf("operasi bitwise a XOR b: %d \n",hasil);
24
25 return 0;
26
27 }

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
16 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Hasil program setelah di compile adalah sebagai beti

Dalam script program di tersebut, kita mendefinisikan 2 variabel a dan b. Kemudian memberikan
nilai 181 dan 108. Jika di konversi ke dalam bentuk biner, keduanya berisi nilai biner berikut:

a = 181 (desimal) = 10110101 (biner)


b = 108 (desimal) = 01101100 (biner)

Di baris 16 dilakukan operasi & (AND) terhadap kedua variabel tersebut. Operasi bitwise AND
akan memproses bit per bit dari kedua variabel yang telah dikonversi ke nilai biner, jika kedua
bit sama-sama 1, maka hasil bit nya menjaadi 1, selain kondisi tersebut, nilai bit nya menjadi 0.
berikut ilustrasi perhitungan bit dengan opeasi bitwise AND :

a = 10110101
b = 01101100
-------- AND
a & b = 00100100 = 36 (desimal)

Hasil yang ditampilkan di layar adalah angka 36. Karena nilai binary 00100100 adalah 36.
Kemudian, pada baris 19 kita melakukan operasi bitwise OR, nilai variabel a dan b dikonversi ke
bilangan biner terlebih dahulu kemudian bit per bit dihitung menggunakan operasi OR. Hasil bit
nya akan bernilai 0 jika kedua bit sama-sama bernilai 0, namun jika salah satunya bernilai 1
maka hasilnya bit nya adalah 1. Berikut ilustrasi perhitungan bit dengan opeasi bitwise OR :

a =10110101
b =01101100
-------- OR
a || b = 11111101 = 253 (desimal)

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
17 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Masih melanjutkan bahasan pada script program, pada baris 19 kita melakukan operasi bitwise
XOR. Dengan operasi XOR, hasilnya akan bernilai 1 jika salah satu dari kedua bit bernilai 1,
namun tidak keduanya, dengan kata lain, jika nilai kedua bit berlainan maka dihasilkan nilai 1.
Akan tetapi, jika kedua nilai bit sama, yakni sama-sama 0 atau sama-sama 1 maka hasilnya 0.

a = 10110101
b = 01101100
-------- XOR
a ^ b = 11011001 = 217 (desimal)

3.6 Operator Lainnya

Selain dari operator yang sudah dibahas, pada C++ juga terdapat beberapa operator lain yang
mungkin dapat digunakan. Operator-operator tersebut di dijelaskan secara singkat pada tabel 3.3

Tabel 3.3 Operator lainnya dalam C++

Nama Operator Simbol Keterangan

Alamat memori & untuk mengambil suatu alamat memori

Pointer * untuk membuat pointer

Ternary ? : untuk membuat kondisi dalam statemen (boolean)

Increment ++ untuk menambahkan 1+ nilai dalam veriabel

Decrement -- untuk mengurangi -1 nilai dalam variabel

Operator & jika digunakan pada satu variabel, berfungsi untuk mengambil alamat memori
dimana variabel tersebut disimpan. Sedangkan operator * berfungsi membut sebuah pointer.

include <iostream>
using namespace std;

int main(){
int a = 5;
int *ptr_a = &a;

cout << "Alamat memori variabel a adalah " << &a << endl;

// mengubah nilai a dari pointer


cout << "Nilai a awal = " << a << endl;
*ptr_a = 21;
cout << "Nilai a diubah = " << a << endl;

return 0;
}

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
18 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Hasil eksekusi program setelah di compile :

hasil dari script program pada baris pertama merupakan hasil operasi dari operator & pada
variabel a yang memunculkan alamat memori dari variabel a tersebut. Sedangkan di baris kedua
dan ketiga, program memuncukan pointer dari variabel a sehingga nilai dari variabel a berubah
menjadi 21. Penggunaan pointer akan dibahas khusus di sesi lainnya yang membahas mengenai
struktur data dan operasi dari struktur data.
Berikutnya ada juga operator ternary yang digunakan untuk membuat operasi kondisi yang
disematkan pada sebuah statement operasi. Cara kerjanya sama seperti percabangan (if/else).
Format penulisan operasi menggunakan ternary adalah :

Statement operasi _ operator logika _ ? kondisi benar : kondisi salah ;

Untuk lebih jelasnya, perhatikan contoh program berikut :

#include <iostream>
using namespace std;

int main(){
int nilai_data = 10;
string hasil;

hasil = nilai_data > 10 ? "benar": "salah";

cout << "apakah nilai_data (10) > 1 ?? jawab : " << hasil << endl;

return 0;
}

Hasil jika di eksekusi :

apakah nilai_data (10) > 1 ?? jawab : salah

variabel hasil berisi nillai salah, karena statement dari operasi 10 > 1 bernilai false

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
19 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
Terakhir, operator lainnya yang mungkin dapat dimanfaatkan adalah operator increment dan
decrement. Yakni operator untuk menambahkan dan mengurangi nilai variabel dengan 1.

#include <iostream>
using namespace std;

int main(){
int a = 4;

// increment a
a++;
cout << "a++ = " << a << endl;

// increment lagi a
a++;
cout << "++a = " << a << endl;

// decrement a
a--;
cout << "a-- = " << a << endl;

// decrement lagi a
a--;
cout << "--a = " << a << endl;

return 0;
}

Jika diperhatikan pada script tersebut, opererator inrement ++ menambahakan nilai variabel 4
menjadi 5, dan jika digunakan lagi a++ di baris berikutnya nilai variabel a menjadi 6, begitupun
seterursnya. Selain itu, pada baris decrement, diperhatikan bahwa operator -- akan mengurangi
nilai variabel a yang sebelumnya bernilai 6 menjadi 5. Lalu operator decrement digunakan lagi
berikutnya sehingga nilai variabel a yang sudah dikurangi akan dikurangi lagi menjadi. begitupun
seterusnya, selama operator ini digunaakan berulang ulang pada suatu variabel maka nilai dari
variabelnya akan bertambah 1++ atau berkurang –1 .

***

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
20 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id
DAFTAR PUSTAKA
1. FourtMark Allen Weiss, Fourth Edition Data Structures and Algorithm Analysis in C++, Pearson,
2014
2. Andri Kristanto, Algoritma & Pemrograman dengan C++ Edisi 2, Graha Ilmu, Yogyakarta, 2009.
3. Budi Raharjo, Pemrograman C++, Informatika, Bandung, 2010.
4. Ahmad Muhardian, Belajar C++ : Mengenal variabel dan Tipe Data.
https://www.petanikode.com/cpp-variabel/ . Diakses 22 Maret 2020 jam 14.30
5. Ahmad Muhardian, Belajar C++ : Mengenal operator yang digunakan pada C++
https://www.petanikode.com/cpp-operator/ . Diakses 22 Maret 2020 jam 17.00
6. Fajar Laksono, Variabel lokal dan Variabel global.
https://www.belajarcpp.com/tutorial/cpp/variabel/ . Diakses 22 Maret 2020 jam 15.25

2020 Praktirum Algoritma dan Struktur Data Pusat Bahan Ajar dan eLearning
21 Chaerul Anhar Tanof, S.Kom, MMSI http://www.undira.ac.id

Anda mungkin juga menyukai