You are on page 1of 73

Belajar Pemrograman C #3: Struktur Dasar

dan Aturan Penulisan Program C yang


Harus dipahami
#C

Kita sudah belajar membuat program C pertama, yaitu program Hello World!

Selanjutnya kita akan belajar tentang stuktur kode program pada bahasa C.

Bagaimana bentuk stuktur dasar program C?

Mari kita perhatikan program C berikut ini:

#include <stdio.h>

int main(){
printf("Hello World!");
return 0;
}
Ini adalah struktur dasar

Jika kamu baru pertama kali melihat program ini, barangkali akan menyanyakan
banyak hal.

Seperti:

 Apa itu #include <stdio.h>?


 Apa itu int?
 Apa itu main?
 apa itu printf?
 dll.

Struktur Dasar Program C


Setiap kita ingin membuat program C, kita harus menuliskan struktur seperti berikut
ini:

#include <stdio.h>

int main(){
// kode atau logika program kita di sini
return 0;
}

Ini adalah struktur dasar yang wajib dipahami.

Kalau kita perhatikan, struktur program tersebut dibagi menjadi dua bagian utama:

1. Bagian Include;
2. Blok Fungsi Main.
Mari kita bahas lebih detail…

Apa itu #include?Pada program C, #include berfungsi untuk mengimpor fungsi-fungsi


yang sudah didefinisikan pada header file.

Header file adalah file yang berisi definisi fungsi yang sudah dibuat. Tujuannya agar
bisa digunakan pada program C yang lainnya. File ini berekstensi .h, contoh: stdio.h.

Pada contoh di atas, kita mengimpor file stdio.h. File ini berisi deklarasi fungsi-fungsi
dasar yang kita butuhkan untuk membuat program C, seperti printf().

File stdio.h sudah ada di dalam komputer kita saat menginstal gcc.

Apa itu Fungsi main()?

Fungis main() adalah fungsi utama dalam program. Fungsi ini akan dieksekusi


pertamakali saat program dijalankan.

Karena itu, kita harus menuliskan logika program di dalam fungsi ini.

Pada contoh di atas kita membut fungsi main dengan deklarasi seperti ini:

int main(){
//...
return 0
}
Maksud dari int di depan main adalah tipe data yang akan dikembalikan. Maka di dalam
fungsi main(), wajib kita sertakan return 0. Artinya, fungsi main akan mengembalikan
nilai 0 setelah selesai dieksekusi.

Cara lain kita bisa menggunakan void.

Contoh:

void main(){
//...
}

void artinya tidak ada (kosong). Jika kita menggunakan void, maka kita tidak perlu
menuliskan kata kunci return di akhir fungsi. Karena fungsi void tidak akan
mengembalikan nilai apapun.

Penulisan Statement
Statemen adalah perintah-perintah atau fungsi untuk melakukan sesuatu.

Contoh:

printf("Hello World!");

Artinya: kita menyuruh komputer untuk mencetak teks Hello World! ke console.

Setiap statement di dalam program C warjib diakhiri dengan titik koma (;), kalau tidak…

…maka program akan error.

Penulisan Blok Kode


Blok kode adalah kumpulan statement atau ekspresi. Blok kode pada prgram C
dibungkus dengan kurung kurawal { ... }.

Contoh blok kode:


if (x == y) {
// di dalam sini adalah blok kode
// sampai akhir kurung
}

for (int i = 0; i < 10; i++){


// di dalam sini adalah blok kode
// sampai akhir kurung
}

Kita akan banyak menggunakan blok kode untuk membungkus beberapa statement di
dalam blok if, for, while, do/while, fungsi, dll.

Penulisan Komentar
Komentar adalah bagian yang tidak akan dieksekusi oleh komputer. Komentar bisanya
digunakan untuk membuat keterangan pada kode program.

Contoh Komentar:

// ini adalah komentar

Kita bisa menggunakan garis miring ganda (//) untuk membut komentar satu baris dan
tanda /**/ untuk membuat komentar beberapa baris.

Contoh:

#include <stdio.h>

int main(){
// ini adalah komentar satu baris
printf("Hello World!");

/*
ini adalah komentar
yang lebih
dari satu baris
*/
return 0;
}

Case Bersifat Sensitive


Case Sensitive artinya bahasa C akan memperhatikan huruf besar dan huruf kecil dalam
penulisan kode.

Contoh:

// misalkan kita membuat variabel seperti ini


string nama = "Petani";
string Nama = "Kode";

Variabel nama dengan Nama akan diganggap variabel yang berbeda, karerna ada yang


pakai huruf besar (kapital) dan hutuf kecil.

Biasanya para pemula sering membuat kesalahan dengan case, alhasil program akan
error.

Apa Selanjutnya?
Aturan-aturan di atas adalah aturan penulsan dasar yang harus dipahami. Selanjutnya
kita bisa praktik lebih dalam lagi agar semakin memahami bahasa pemrograman C.

Berikutnya silahkan pelajari:

 Belajar C #04: Fungsi input dan output pada program C


 Belajar C #05: Variabel dan Tipe data Pada C
 Belajar C #06: Operator pada C
 Belajar C #07: Blok Percabangan pada C
 Belajar C #08: Blok Perulangan pada C
 Belajar C #09: Mengenal Array pada C
 Belajar C #10: Mengenal Pointer pada C
 Belajar C #11: Mengenal Fungsi pada C

Belajar C++ #04: Mengenal Fungsi Input


dan Output pada C++

#C++

Pada dasarnya, program komputer hanya terdiri dari tiga bagian:


Input adalah sesuatu data yang kita masukan ke dalam program.

Input biasanya diambil dari perangakat inputan seperti keyboard, mouse, kamera,
microphone, dll.

Proses adalah langkah-langkah yang harus dilakukan program untuk menghasilkan


output.

Output adalah informasi yang dihasilkan setelah dilakukan proses. Output biasanya


ditampilkan ke layar komputer.

Pada bahasa pemrograman C++, terdapat beberapa fungsi dasar untuk menampilkan
output dan mengambil input.

Apa saja itu?

Mari kita bahas…

Fungsi Output pada C++


C++ memiliki empat fungsi dasar untuk menampilkan output:
1. cout untuk menampilkan teks ke layar;
2. cerr untuk menampilkan error;
3. clog untuk menampilkan log;
4. printf() untuk menampilkan output, fungsi ini dari C;

Kita akan fokus memabahas yang dua saja, yakni cout dan printf().

Soalnya cerr dan clog, cara pakainya sama seperti cout.

Bedanya sih pada konteks penggunaannya, yakni untuk error dan log.

1. Fungsi cout
Fungsi cout adalah fungsi standar pada C++ untuk menampilkan output ke layar.

Berikut ini struktur dasar fungsi cout:

Setelah simbol << kita bisa menuliskan teks yang akan ditampilkan ke layar.

Teks harus diapit dengan tanda petik dan untuk membuat baris baru bisa
menggunakan endl atau simbol \n.

Pembuatan baris baru bersifat opsional, terserah kita mau ditambahkan atau tidak.
Contoh:

cout << "Namaku adalah ";


cout << "Petani kode";

Maka outputnya akan ditampilkan dalam satu baris:

Namaku adalah Petani Kode

Sedangkan kalau kita menggunakan endl atau \n.

cout << "Namaku adalah " << endl;


cout << "Petani kode";

Hasilnya akan ditampilkan dalam dua baris:

Namaku adalah
Petani kode

Apapun setelah simbol << akan ditampilkan ke layar. Jika kita ingin menampilkan


variabel, kita bisa menulisnya seperti ini:

string nama = "Petani Kode";


cout << "Hello " << nama << endl;

Hasilnya:

Hello Petani Kode

Gampang ‘kan?

Mari kita coba berlatih.

Buatlah program bernama program_output.cpp, kemudian isi dengan kode berikut:

#include <iostream>
using namespace std;

int main(){

cout << "=========== PROGRAM OUTPUT ===========" << endl;


cout << "Progarm ini adalah program untuk\n";
cout << "Menampilkan output ke layar komputer.\n";
cout << "Output sangat penting buat menampilkan\n";
cout << "informasi kepada user.\n";
cout << "======================================" << endl;

cout << endl;


cout << "Program ini dibuat oleh Dian" << endl;

return 0;
}

Coba compile dan jalankan, maka hasilnya:

2. Fungsi printf()
Fungsi printf() merupakan fungsi yang aslinya dari bahasa C, tapi bisa juga dipakai pada
C++.

Fungsi printf() merupakan fungsi untuk menampilkan output ke layar komputer.

Fungsi ini terdapat pada library <stdio.h> dan juga <iostream>.

Berikut ini struktur dasar fungsi printf():


Perhatikan:

"format" adalah sebuah teks (string) untuk ditampilkan. Lalu tanda ... akan berisi sebuah
variabel atau nilai untuk ditampilkan berdasarkan format yang diberikan pada
teks "format".

Mari kita lihat contohnya:

Buatlah sebuah program C++ bernama program_output_printf.cpp, lalu isi dengan kode


berikut.

#include <iostream>
using namespace std;

int main(){
printf("Hello, ini adalah teks output\n");
printf("Nama saya %s\n", "Dian");
printf("Usia saya %d\n", 20);
return 0;
}

Hasilnya:
Ada beberapa hal yang perlu di perhatikan…

Pada fungsi printf() kita menggunakan simbol %s, %d, dan \n untuk format teks.

Mari kita bahas arti dari simbol tersebut:

 %s adalah simbol untuk menampilkan nilai string;


 %d adalah simbol untuk menampilkan nilai angka atau bilangan desimal;
 \n adalah simbol untuk membuat baris baru.

Selain tiga simbol tersebut, masih banyak lagi simbol yang lain.

Simbol Arti atau Fungsi

%c untuk menampilkan karakter

%s untuk menampilkan teks (string)

%d, %i untuk menampilkan bilangan desimal


Simbol Arti atau Fungsi

%f untuk menampilkan bilangan pecahan

%o untuk menampilkan bilangan oktal

%x untuk menampilkan bilangan heksadesimal

\t untuk membuat tabs

Fungsi Input pada C++


Sementara untuk mengambil input, C++ memiliki fungsi cin dan bisa juga
menggunakan scanf() dari bahasa C.

1. Fungsi cin
Fungsi cin (c input) adalah fungsi untuk mengambil input dari keyboard.

Berikut ini bentuk dasar fungsi cin:


Fungsi cin membutuhkan variabel untuk menyimpan data yang diinputkan.

Kita akan bahas variabel nanti di:

 Belajar C++ #05: Mengenal Variabel, Konstanta, dan Tipe Data

Intinya variabel berfungsi untuk meyimpan data saat program berjalan.

Mari kita coba menggunakan fungsi cin.

Buatlah program baru bernama program_input.cpp, kemudian isi dengan kode berikut:

#include <iostream>
using namespace std;

int main(){
string nama;
cout << "Tuliskan nama: ";
cin >> nama;

cout << "Hi " << nama;


cout << " elamat datang di club!" << endl;

return 0;
}

Setelah itu, coba compile dan jalankan.

Maka hasilnya:
2. Fungsi scanf()
Fungsi scanf() sebenarnya dari bahasa C, tapi bisa juga digunakan pada C++.

Fungsi scanf() adalah fungsi untuk mengambil input dari keyboard. Fungsi ini memiliki
format seperti fungsi printf().

Format yang diberikan tergantung dari jenis tipe data apa yang ingin kita ambil.

Misalnya mau mengambil angka, maka kita bisa pakai %d atau %i.


Mari kita lihat contohnya:

#include <iostream>
using namepsace std;

int main () {
// membuat variabel
char name[20], web_address[30];

printf("Nama: ");
scanf("%s", &name);

printf("Alamat web: ");


scanf("%s", &web_address);

printf("\n------------------------------\n");
printf("Nama yang diinputkan: %s\n", name);
printf("Alamat Web yang diinputkan: %s\n", web_address);

return 0;
}

Hasilnya:
Tapi saat kita menginputkan teks yang mengandung spasi, hasilnya akan dipecah
menjadi dua seperti ini:

Untuk mengatasi masalah ini, kita bisa ubah format yang digunakan
pada scanf() menjadi seperti ini:

printf("Nama: ");
scanf("%[^\n]s", name);

Maka fungsi scanf() akan menerima spasi.

Dalam menggunakan scanf(), kita dianjurkan menggunakan simbol & sebelum nama


variabel.

Contoh:

#include <stdio.h>

void main(){

int a, b, c;

printf("Inputkan nilai a: ");


scanf("%i", &a);

printf("Inputkan nilai b: ");


scanf("%i", &b);

c = a + b;

printf("Hasil a + b: %i", c);

Simbol & berfungsi untuk mengambil alamat memori dari sebuah variabel.

Fungsi scanf() membutuhkan tempat untuk menyimpan nilai yang akan diinputkan.

Karena itu kita memberikan simbol & di depan nama variabel untuk menentukan
alamat memori yang akan digunakan oleh scanf().

Apa Selanjutnya?
Nah itulah fungsi-fungsi dasar yang digunakan untuk mengambil input dan
menampilkan output pada C++.

Kita bisa menggunakan fungsi bawaan C++ atauapun fungsi dari bahasa C
seperti printf(), scanf(), puts() dll.

Kalau saya sih lebih senang menggunakan cin untuk mengambil input dan printf() untuk


menampilkan output.

Kalau kamu bagaimana?

Oh iya, selanjutnya silahkan pelajari tentang:

 Belajar C++ #05: Mengenal Variabel, Konstanta, dan Tipe Data

Belajar Pemrograman C #5: Mengenal


Variabel, Tipe Data, Konstanta

#C
Inti dari sebuah program komputer adalah menerima input, melakukan pemrosesan,
dan menghasilkan output.

Nilai input bisa kita dapatkan dari keyboard, file, kamera, mikrofon, dan sebagainya.

Sementara output dapat kita tampilkan ke monitor, cetak ke dokumen, atau ke dalam
sebuah file.

Pada tahap pemrosesan, program membutuhkan bantuan variabel untuk menyimpan


nilai sementara.

Sama seperti waktu kita berpikir… kita akan membutuhkan beberapa ingatan untuk
memproses informasi.

Pada tutorial ini, saya akan bahas tuntas tentang cara penggunaan variabel dan tipe
data dalam pemrograman C.

Siap?

Mari kita mulai…

Apa itu Variabel dan Tipe Data?


Variabel adalah sebuah tempat menyimpan sebuah nilai. Sementara tipe data adalah
jenis nilai yang akan tersimpan dalam variabel.

Pada pelajaran matematika, kita sering menemukan x dan y.

Nah Si x dan y ini disebut variabel, karena tugasnya menyimpan nilai.

x = 3;
y = 4;

Masih bingung?
Anggap saja variabel itu sebuah wadah, lalu tipe data itu jenis-jenis benda yang akan
disimpan dalam wadah tersebut.

Lalu…

Bagaimana Cara Membuat Variabel pada Bahasa


Pemrograman C?
Berikut ini cara membuat variabel pada C:

Jadi, pertama kita harus menuliskan tipe data lalu diikuti dengan nama variabelnya.

Contoh:

int tinggi;

Artinya:

Kita akan membuat variabel dengan nama tinggi dan tipe datanya adalah int (integer).

Jangan lupa, di setiap pembuatan variabel harus diakhiri dengan titik koma.

Oh iya, saat membuat variabel…

…kita juga dapat mengisi langsung dengan nilai yang ingin kita simpan.

Contoh:

int berat = 49;

Artinya:

Kita akan membuat variabel dengan nama berat dan tipe data integer, lalu langsung diisi
dengan nilai 49.
Aturan Penulisan Variabel pada C
Ada beberapa aturan penulisan variabel yang harus kamu ketahui:

1. Nama variabel tidak boleh didahului dengan simbol dan angka.


2. Nama variabel tidak boleh menggunakan kata kunci yang sudah ada pada bahasa C,
contoh: if, int, void, dll.
3. Nama variabel bersifat case sensitive, artianya huruf besar dan kecil dibedakan,
contoh: nama dan Nama adalah dua variabel yang berbeda.
4. Disarankan menggunakan underscore untuk nama variabel yang terdiri dari dua suku
kata, contoh: nama_lengkap.

Contoh Program dengan Variabel


Baiklah, mari kita coba menggunakan variabel dalam program…

Buka Codeblocks!

Kemudian buat program baru bernama contoh_variabel.c, kemudian isi dengan kode


berikut.

#include <stdio.h>

int main(){
// membuat variabel dengan tipe data integer
int berat;
// membuat variabel dan langsung mengisinya
int tinggi = 178;

// mengisi nilai ke variabel


berat = 54;

// mencetak isi variabel ke layar


printf("Berat badan saya adalah %ikg dan tinggi %icm", berat, tinggi);ode
return 0;
}

Setelah itu coba jalankan programnya…

Maka hasilnya:

Jadi kita cukup menuliskan nama variabel pada fungsi printf() untuk menampilkan


isinya.

Apa yang akan terjadi jika kita lupa mengisi nilai variabel.

Misalnya di bagian pengisian nilai untuk variabel berat kita hapus seperti ini.

Maka hasil outputnya:

Berat badan saya adalah 0kg dan tinggi 178cm

Isi dari variabel berat akan sama dengan nol 0, karena kita tidak mengisinya.

Ini adalah nilai default yang diberikan.

Saran saya:

Selalu isi variabel yang kamu buat, agar tidak sia-sia.

Percuma ‘kan sudah dibuat, tapi tidak dipakai.

Tipe Data pada Bahasa C


Tipe data adalah jenis data…

Menurut Wikipedia:
“Tipe data atau kadang disingkat dengan ‘tipe’ saja adalah sebuah pengelompokan data
untuk memberitahu compiler atau interpreter bagaimana programmer ingin mengolah
data tersebut” 1

Ada delapan jenis tipe data pada C:

1. Char
2. Integer
3. Float
4. Array
5. Structure
6. Pointer
7. Enum
8. Void

Apabila kita kelompokkan, maka akan terdapat empat kelompok tipe data.

Pada tutorial ini, kita akan bahas tipe data dasar dan void saja.

Untuk tipe data yang lainnya akan dibahas di tutorial yang beda.

Tipe Data Dasar pada C


Sesuai namanya, tipe data dasar adalah tipe data yang paling dasar dalam bahasa
pemrograman C.

Tipe data dasar terdiri dari…

1. Char: adalah tipe data yang berisi 1 huruf atau 1 karakter;


2. Integer: adalah tipe data yang berupa angka;
3. Float: adalah tipe data yang berupa bilangan pecahan
4. Double: adalah tipe data sama seperti float, namun double memiliki ukuran
penyimpanan yang lebih besar dibandingkan float.

Setiap tipe data memiliki panjang dan ukuran, perhatikan tabel berikut.

Tipe
Ukuran Panjang Contoh
Data

char 1 byte -128 — 127 atau 0 — 255 'A', 'a', '3'

-32,768 — 32,767 atau -2,147,483,648 —


int 2 byte 32, 1, 4
2,147,483,647

float 4 byte 1.2E-38 — 3.4E+38 4.3, 2.2, 6.0

double 8 byte 2.3E-308 — 1.7E+308 4.2, 4.22, 3.2

Format penulisan koma untuk tipe data float dan double menggunakan tanda titik,


mengikuti format internasional.

Jika kamu menulis seperti ini 2,5 maka akan salah. Penulisan yang benar adalah 2.5.

Lalu untuk penulisan tipe data char harus diapit dengan tanda petik.

Mengapa?

Karena kalau misalnya karakter itu adalah spasi— tanpa tanda petik—kita tidak akan
bisa mengisinya dengan karakter spasi.

Contoh Program:

Buatlah program baru dengan nama contoh_tipedata.c, kemudian isi dengan kode


berikut.
#include <stdio.h>

int main(){
int usia = 19;
float berat = 65.3;
double tinggi = 178.43;
char jenis_kelamin = 'L';

printf("Usia: %i tahun\n", usia);


printf("Tinggi: %.2f cm\n", tinggi);
printf("Berat: %.2f Kg\n", berat);
printf("Jenis kelamin: %c\n", jenis_kelamin);

return 0;
}

Hasilnya:

Mungkin kamu akan bertanya:

Mengapa kita menggunakan %.2f pada saat mencetak tipe data float dan double?

Kita bisa saja mencetakanya dengan format %f saja, akan tetapi akan dicetak dengan
angka yang panjang.

Tinggi: 178.430000 cm
Berat: 65.300003 Kg

Kita menggunakan %.2f untuk menentukan batas jumlah angka setelah koma.


Angka 2 sebelum f artinya dua angka di belakang koma.

Tinggi: 178.43 cm
Berat: 65.30 Kg
Tipe Data Void pada C
Tipe data void adalah tipe data khusus untuk menyatakan tidak ada data.
Apakah nol 0 sama dengan void?

Tidak, nol memiliki nilai yaitu 0 sementara void tidak ada.

Bingung?

Coba bayangkan seperti ini:

Nol 0 artinaya tisunya habis, null atau void artinya tisunya tidak ada.


Lalu undefined artinya variabelnya belum dibuat dalam memori.

Biasanya, undefined akan kamu temukan saat belajar Javascript.

Tipe data void jarang digunakan dalam pembuatan variabel. Tapi biasanya dipakai pada
nilai kembalian sebuah fungsi.

Contoh:

void main(){
//...
}

Artinya fungsi main() tidak akan mengembalikan nilai apa-apa.

Konversi Tipe Data


Konversi tipe data atau type casting adalah proses mengubah tipe data menjadi tipe
yang lain.

Kenapa kita perlu konversi tipe data?

Untuk menjawabnya, saya ingin tunjukan ilustrasi berikut ini:

Air yang bentuknya cair tidak bisa disimpan dalam kardus. Karena itu, air harus
konversi dulu menjadi bentuk padat (es) agar bisa disimpan dalam kardus.
Begitu juga dengan variabel…

Cara mengubah tipe data pada C, cuku dengan menuliskan nama tipe datanya di depan
nilai atau variabel yang ingin dibuah.

float a = (float) 10;

Artinya nilai 10 akan diubah menjadi tipe float.

Contoh:

#include <stdio.h>

void main(){
int a = 5;
int b = 2;

float c = a / b;

printf("Hasil a / b = %.2f\n", c);


}

Program di atas akan menghasilkan output:

Hasil a / b = 2.00

Mengapa 2.00? bukannya 2.50?

Ini disebabkan karena variabel a dan b bertipe intger. Nah hasil pembagian dari tipe
data integer akan selalu dibulatkan.

Agar tidak dibulatkan, kita harus mengubahnya menjadi float. Kemudian melakukan


pembagian.

Mengenal Konstanta pada C


Konstanta adalah sebuah nilai tetapan.

Bisa juga dibilang sebagai variabel yang tidak bisa diubah nilainya.

Ada dua cara pembuatan konstanta pada C:

1. Menggunakan #define;
2. dan Menggunakan const.

Contoh menggunakan define:

#include <stdio.h>
#define SEPULUH 10
#define VERSI 4.5
#define JENIS_KELAMIN 'L'

void main(){
printf("isi konstanta SEPULUH adalah %i\n", SEPULUH);
printf("isi konstanta VERSI adalah %f\n", VERSI);
printf("isi konstanta JENIS_KELAMIN adalah %c\n", JENIS_KELAMIN);
}

Hasil outputnya:

isi konstanta SEPULUH adalah 10


isi konstanta VERSI adalah 4.500000
isi konstanta JENIS_KELAMIN adalah L

Contoh menggunakan const:

#include <stdio.h>

void main(){
const double PI = 3.14;
const char JENIS_KELAMIN = 'P';
const int VERSI = 11;

printf("isi konstanta PI adalah %f\n", PI);


printf("isi konstanta JENIS_KELAMIN adalah %c\n", JENIS_KELAMIN);
printf("isi konstanta VERSI adalah %i\n", VERSI);
}

Hasil outputnya:

isi konstanta PI adalah 3.140000


isi konstanta JENIS_KELAMIN adalah P
isi konstanta VERSI adalah 11

Perbedaan pembuatan konstanta yang menggunakan #define dan const terletak pada


format penulisannya.

Pada #define kita tidak perlu menuliskan tipe data, sedangkan const harus.

Pada #define kita tidak membutuhkan titik koma di akhir, sedangkan pada const kita


harus menuliskan titik koma.

Posisi penulisan untuk #define dan const bisa ditulis di dalam main() maupun di luar.

Oh iya, untuk nama konstanta disarankan menggunakan huruf kapital untuk


menandakan itu sebuah konstanta.

Apa yang akan terjadi jika saya mencoba mengisi nilai ke dalam konstanta?

Ya programnya akan error.

Belajar C++ #06: Enam Jenis Operator yang


Harus Kamu Ketahui di C++
#C++
Ads by

Ads by

Pada tutorial sebelumnya kita sudah belajar tentang variabel dan tipe data.

Buat kamu yang belum membacanya, saya sarankan untuk membacanya dulu sebelum
mengikuti tutorial ini.

Silahkan buka: Variabel dan Tipe data pada C++

Berkat variabel kita jadi bisa menyimpan data di dalam program. Tapi sejauh ini, kita
belum melakukan opersi apapun terhadapnya.

Percuma kan kita simpan data, tapi tidak diolah.

Nah, untuk mengolahnya kita membutuhkan operator.

Apa itu Operator?

dan bagaimana cara menggunakannya?

Mari kita bahas…


Apa itu Operator?
Operator adalah sebuah simbol…

Simbol yang digunakan untuk melakukan operasi tertentu.

Misalnya:

Kita ingin menjumlahkan nilai dari variabel x dan y, maka kita bisa menggunakan
operator penjumlahan (+).

x+y

Ada enam jenis kelompok operator dalam pemrograman C++ yang harus kamu ketahui:

1. Operator Artimatika;
2. Operator Penugasan;
3. Operator Pembanding;
4. Operator Logika;
5. Operator Bitwise;
6. dan Operator Lain-lain.

Apa saja perbedaan dari semua jenis operator ini?

Mari kita bahas, satu per satu…

1. Operator Aritmatika
Operator aritmatika merupakan operator yang digunakan untuk melakukan operasi
aritmatika.

Operator ini terdiri dari:


Nama Operator Simbol

Penjumlahan +

Pengurangan -

Perkalian *

Pembagian /

Sisa Bagi %

Bagaimana cara pakainya?

Mari kita coba dalam contoh program:

Buatlah program baru bernama operator_aritmatika.cpp, kemudian isi dengan kode berikut.

#include <iostream>
using namespace std;

int main(){

int a, b, c;

cout << "Inputkan nilai a: ";


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

// menggunakan operator penjumlahan


c = a + b;
cout << "Hasil a + b = " << c << endl;

return 0;
}

Maka hasilnya:

Coba juga untuk contoh operator yang lain seperti pengurangan, perkalian, pembagian,
dan sisa bagi.

Ubah programnya menjadi seperti ini:

#include <iostream>
using namespace std;

int main(){

int a, b;

cout << "Inputkan nilai a: ";


cin >> a;

cout << "Inputkan nilai b: ";


cin >> b;
cout << "Hasil a + b: " << a + b << endl;
cout << "Hasil a - b: " << a - b << endl;
cout << "Hasil a * b: " << a * b << endl;
cout << "Hasil a / b: " << a / b << endl;
cout << "Hasil a % b: " << a % b << endl;

return 0;
}

Maka hasilnya:

Pada operasi pembagian, 7/2 hasilnya adalah 3.

Mengapa demikian?

Bukannya seharusnya 3.5…

Ini karena kita melakukan operasi terhadap tipe data integer.

Bila kita ubah programnya menggunakan tipe data float:

#include <iostream>
using namespace std;
int main(){

float a, b;

cout << "Inputkan nilai a: ";


cin >> a;

cout << "Inputkan nilai b: ";


cin >> b;

cout << "Hasil a / b: " << a / b << endl;

return 0;
}

Maka hasilnya akan seperti ini:

2. Operator Penugasan
Operator penugasan (Assignment Operator) merupakan operator untuk meberikan
tugas pada variabel. Biasanya untuk mengisi nilai.
Operator Penugasan terdiri dari:

Nama Operator Sombol

Pengisian Nilai =

Pengisian dan Penambahan +=

Pengisian dan Pengurangan -=

Pengisian dan Perkalian *=

Pengisian dan Pembagian /=

Pengisian dan Sisa bagi %=

Pengisian dan shift left <<=

Pengisian dan shift right >>=

Pengisian dan bitwise AND &=

Pengisian dan bitwise OR |=

Pengisian dan bitwise XOR ^=

Mari kita coba dalam program…

Buatlah program baru bernama operator_penugasan.cpp, kemudian isi dengan kode berikut:


#include <iostream>
using namespace std;

int main(){

int a, b;

// pengisian nilai dengan operator =


a = 5;
b = 10;

// pengisian sekaligus penambahan


b += a; // ini sama seperti b = b + a
cout << "Hasil b += a adalah " << b << endl;

// pengisian sekaligus pengurangan


b -= a; // ini sama seperti b = b - a
cout << "Hasil b -= a adalah " << b << endl;

// pengisian sekaligus perkalian


b *= a; // ini sama seperti b = b * a
cout << "Hasil b *= a adalah " << b << endl;

// pengisian sekaligus pembagian


b /= a; // ini sama seperti b = b / a
cout << "Hasil b /= a adalah " << b << endl;

// pengisian sekaligus penambahan


b %= a; // ini sama seperti b = b % a
cout << "Hasil b %= a adalah " << b << endl;

return 0;
}

Hasilnya:
Pada program tersebut, variabel b kita isi ulang dengan operator penugasan.

Sebagai contoh, operasi:

b += a

Sama seperti operasi:

b=b+a

Artinya kita akan mengisi nilai untuk b dengan nilai b ditambah nilai a.

Begitu juga dengan opeartor yang lain.

b *= a; // -> b = b * a

Isi b dengan nilai dari perkalian b dengan a.

Intinya, yang perlu kamu ingat:

“operator penugasan digunakan untuk mengisi nilai.”

3. Operator Pembanding
Operator pembanding adalah operator untuk memabndingkan dua buah nilai. Operator
ini juga dikenal dengan operator relasi.

Operator pembanding terdiri dari:

Nama Operator Simbol

Lebih Besar >

Lebih Kecil <

Sama Dengan ==
Nama Operator Simbol

Tidak Sama dengan !=

Lebih Besar Sama dengan >=

Lebih Kecil Sama dengan <=

Nilai yang dihasilkan dari operasi pembanding akan berupa true dan false.

Pada bahasa C++, nilai true akan samadengan 1 dan false akan samadengan 0.

Mari kita coba dalam program…

Buatlah program baru dengan nama operator_pembanding.cpp, kemudian isi dengan kode


berikut:

#include <iostream>
using namespace std;

int main(){
int a = 4, b = 3;
bool hasil;

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


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

// menggunakan operator pembanding


hasil = a > b;
cout << "a > b = " << hasil << endl;
hasil = a < b;
cout << "a < b = " << hasil << endl;

hasil = a >= b;
cout << "a >= b = " << hasil << endl;

hasil = a <= b;
cout << "a <= b = " << hasil << endl;

hasil = a == b;
cout << "a == b = " << hasil << endl;

hasil = a != b;
cout << "a != b = " << hasil << endl;

return 0;
}

Maka hasilnya:

Operator perbandingan biasanya akan kita pakai saat membuat percabangan.

4. Operator Logika
Kalau kamu pernah belajar logika matematika, pasti tidak akan asing dengan operator
ini.

Nama Operator Simbol

Logika AND &&

Logika OR ||
Nama Operator Simbol

Negasi/kebalikan !

Operator Logika digunakan untuk membuat operasi logika.

Misalnya seperti ini:

 Pernyataan 1: Petani Kode seorang programmer


 Pernyattan 2: Petanikode menggunakan Linux

Jika ditanya, apakah Petani Kode programmer yang menggunakan Linux?

Tentu kita akan cek dulu kebenarannya

 Pernyataan 1: Petani Kode seorang programmer = true.


 Pernyataan 2: Petanikode menggunakan Linux = true.

Apa petanikode programmer dan menggunakan Linux?

Pertnyataan 1 && Pernyataan 2 = true

Bingung?

Coba cek lagi tabel kebenaran untuk logika AND.

Pernyatan 1 Pernytaan 2 Hasil Logika AND

true true true

true false false

false true false


Pernyatan 1 Pernytaan 2 Hasil Logika AND

false false false

Masih bingung…?

Sepertinya kamu harus buka lagi pelajarann logika matematika 😄.

Lalu bagaimana pengunaanya di program?

Mari kita lihat contohnya…

Buatlah program baru bernama operator_logika.cpp, kemudia ini dengan kode berikut.

#include <iostream>
using namespace std;

int main(){
int a = 1; // true
int b = 0; // false
bool hasil;

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


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

// logika AND
hasil = a && b;
cout << "a && b = " << hasil << endl;

// logika OR
hasil = a || b;
cout << "a || b = " << hasil << endl;

// logika NOT
cout << "!a = " << !a << endl;
return 0;
}

Hasilnya:

5. Operator Bitwise
Operator bitwise merupkan operator yang digunakan untuk operasi berdasarkan bit
(biner) dari sebuah nilai.

Operator bitwise terdiri dari:

Nama Operator Simbol di Java

AND &

OR |

XOR ^

NOT/komplemen ~

Left Shift <<

Right Shift >>

Buat kamu yang sudah pernah belajar sistem bilangan dan sistem digital akan mudah
memahami cara kerja operator ini.

Tapi buat kamu yang belum…


Saya akan coba menjelaskan dengan cara yang mudah.

Baiklah!

Misalkan kita punya nilai 6 dan 3.

Nilai 6 dan 3 kemudian kita ubah ke dalam bentuk bilangan biner.

Sehiga akan menjadi seperti ini:

6 = 0110
3 = 0011

Nah, operator bitwise akan melakukan operasi berdasarkan biner-biner tersebut.

Mari kita lihat contoh yang pertama:

Bitwise AND (&)

Bitwise AND merupakan operasi bit berdasarkan logika AND, perhatikan gambar ini.

Perhatikan bilangan biner untuk nilai 6 dan 3.

Apbila kita melakukan operasi AND di sana, maka akan menghasilkan bilangan biner
baru.

Kemudian biner yang dihasilkan tersebut diubah kembali ke dalam bilangan desimal.

Maka hasilnya adalah 2.

Mari kita coba dalam program.

Buatlah program baru bernama bitwise_and.c, kemudian isi dengan kode berikut:

#include <iostream>
using namespace std;
int main(){
int a = 6;
int b = 3;
int hasil;

// menggunakan operator bitwise and


hasil = a & b;
cout << "a & b = " << hasil << endl;

return 0;
}

Maka hasilnya:

Bitwise OR (|)

Operator bitwise OR juga sama seperti bitwise AND.

Operator bitwise OR akan menghasilkan nilai false atau 0 saat keduanya false.

Contoh Program: bitwise_or.c

#include <iostream>
using namespace std;

int main(){
int a = 6;
int b = 3;
int hasil;

// menggunakan operator bitwise or


hasil = a | b;
cout << "a & b = " << hasil << endl;
return 0;
}

Hasil outputnya:

a|b=7

Bitwise XOR (^)

Operator XOR (Exclusive OR) akan menghasilkan nilai 1 saat kedua nilai tidak sama.

Contoh Program: bitwise_xor.c

#include <iostream>
using namespace std;

int main(){
int a = 6;
int b = 3;
int hasil;

// menggunakan operator bitwise xor


hasil = a ^ b;
cout << "a ^ b = " << hasil << endl;

return 0;
}

Hasil outputnya:

a^b=5

Bitwise NOT (~)

Bitwise NOT dikenal juga dengan komplemen.


Operator ini akan menghasilkan nilai biner yang terbalik dari biner aslinya.

Kemudian direpresentasikan dengan komplemen dua.

Contoh program: bitwise_not.c

#include <iostream>
using namespace std;

int main(){
int a = 6;
int hasil;

// menggunakan operator bitwise not


hasil = ~a;
cout << "~a = " << hasil << endl;

return 0;
}

Hasil outputnya:

~a = -7

Bitwise Left Shift (<<)

Operator bitwise left shift akan menghasilkan nilai biner yang digeser ke kiri.

Contoh:

6 << 1

Maka niai biner dari 6 akan digeser sebanyak 1 bit ke arah kiri.

Contoh program: left_shift.c
#include <iostream>
using namespace std;

int main(){
int a = 6;
int hasil;

// menggunakan operator bitwise left shift


hasil = a << 1;
cout << "a << 1 = " << hasil << endl;

return 0;
}

Hasilnya:

a << 1 = 12

Bitwise Right Shift (>>)

Bitwise right shift sama seperti left shift. Perbedaanya terletak pada arahnya.

Right shift akan menggeser bit ke arah kanan.

Contoh:

6 >> 1

Maka nilai biner dari 6 akan digeser ke arah kanan sebanyak 1 bit.

Contoh program: right_shift.c

#include <iostream>
using namespace std;

int main(){
int a = 6;
int hasil;

// menggunakan operator bitwise left shift


hasil = a >> 1;
cout << "a >> 1 = " << hasil << endl;

return 0;
}

Hasilnya:

a >> 1 = 3

6. Operator Lain-lain
Selain dari operator yang kita bahas di atas, terdapat beberapa operator lain yang harus
diketahui:

Nama Operator Simbol Keterangan

Alamat memori & untuk mengambil alamat memori

Pointer * untuk membuat pointer

Ternary ?: untuk membuat kondisi

Increment ++ untuk menambah 1

Decrement -- untuk mengurangi 1

Operator & jika digunakan pada satu variabel, akan berfungsi untuk mengambil alamat
memori dari variabel tersebut.

Dan operator * kan berfungsi untuk membut sebuah pointer.


Contoh:

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

Hasilnya:

Berikutnya ada operator ternary untuk membuat kondisi. Cara kerjanya


seperti percabangan if/else.
Contoh:

#include <iostream>
using namespace std;

int main(){
int a = 4;

// menggunakan operator ternary


string hasil = a > 1 ? "benar": "salah";

cout << "a > 1 adalah " << hasil << endl;

return 0;
}

Hasil outputnya:

a > 1 adalah benar

Terakhir ada operator increment dan decrement untuk menambah dan mengurangi


nilai dengan 1.

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

Hasil outputnya:

a++ = 5
++a = 6
a-- = 5
--a = 4

Operator increment dan decrement dapat ditaruh di depan maupun di belakang


variabel atau nilai.

Operator ini biasanya digunakan pada blok perulangan.


Belajar C++ #07: Memahami 6 Macam
Bentuk Blok Percabangan pada C++

#C++

Mungkin kalian akan bertanya:

Apa itu percabangan dan kenapa dinamakan percabangan?

Buat yang belum pernah kuliah atau belajar tentang algoritma dan flowchart, mungkin
ini istilah yang baru pertama kamu dengar.

Isitilah ini sebenarnya untuk menggambarkan alur program yang bercabang.

Pada flow chart, logika “jika…maka” digambarkan dalam bentuk cabang.


Karena itu, ini disebut percabangan.

Selain percabangan, struktur ini juga disebut: control flow, decision, struktur kondisi,


Struktur if, dsb.

Percabangan akan mampu membuat program berpikir dan menentukan tindakan sesuai
dengan logika/kondisi yang kita berikan.

Pada pemrograman C++, terdapat 6 bentuk percabangan yang harus kita kitahui.

Apa saja itu?

Mari kita bahas…

1. Percabangan if
Percabangan if merupakan percabangan yang hanya memiliki satu blok pilihan saat
kondisi bernilai benar.

Coba perhatikan flowchart berikut ini:


Flowchart tersebut dapat kita baca seperti ini:

“Jika total belanja lebih besar dari Rp 100.000, Maka tampilkan pesan Selamat, Anda
dapat hadiah”

Kalau dibawah Rp 100.000 bagaimana?

Ya pesannya tidak akan ditampilkan.

Mari kita coba dalam program C++.

Buatlah file bernama if.cpp, kemudian isi dengan kode berikut.

#include <iostream>
using namespace std;

int main(){
cout << "=== Program Pembayaran ===" << endl;
unsigned int total_belanja;

cout << "Masukan total belanja: ";


cin >> total_belanja;

// menggunakan percabangan if
if(total_belanja > 100000){
cout << "Selamat! anda dapat hadiah" << endl;
}

cout << "Terimakasih sudah berbelanja di toko kami" << endl;

return 0;
}

Kompilasi kode tersebut dengan perintah:

g++ if.cpp -o if

Lalu eksekusi dengan perintah:

./if

Hasilnya:
Perhatikan pada bagian ini:

// menggunakan percabangan if
if(total_belanja > 100000){
cout << "Selamat! anda dapat hadiah" << endl;
}

Inilah yang disebut blok program.

Blok program berisi sekumpulan ekpresi dan statement untuk dikerjakan oleh
komputer.

Blok program pada C++, selalu diawali dengan tanda buka kurung kurawal { dan akan
diakhiri dengan tutup kurung kurawal }.

Apabila di dalam blok hanya terdapat satu baris ekspresi atau statement, maka boleh
tidak ditulis tanda kurungnya.

if (total_belanja > 100000)


cout << "Selamat! anda dapat hadiah" << endl;
2. Percabangan if/else
Percabangan if/else merupakan percabangan yang memiliki dua blok pilihan.

Blok pilihan pertama untuk kondisi benar, dan pilihan kedua untuk


kondisi salah (else).

Coba perhatikan flowchart ini:

Ini adalah flowchart untuk mengecek password.

Apabila password benar, pesan yang ada pada blok hijau akan ditampilkan: “Selamat
datang bos!"
Tapi kalau salah, maka pesan yang ada di blok merah yang akan
ditampilkan: “Password salah, coba lagi!"

Kemudian, pesan yang berada di blok abu-abu akan tetap ditampilkan, karena dia
bukan bagian dari blok percabangan if/else.

Perhatikan arah panahnya, setiap blok if/else mengarah ke sana…

Untuk lebih jelasnya, mari kita coba dalam program.

Buatlah file baru bernama if_else.cpp, kemudian isi dengan kode berikut:

#include <iostream>
using namespace std;
int main(){

string password;

cout << "========= Login =========" << endl;


cout << "Masukan password: ";
cin >> password;

// percabangan if/else
if (password == "kopi"){
cout << "Selamat datang bos!" << endl;
} else {
cout << "Password salah, coba lagi!" << endl;
}

cout << "Terimakasih sudah menggunakan aplikasi ini!" << endl;

return 0;
}

Hasilnya:
3. Percabangan if/else/if
Percabangan if/else/if merupakan percabangan yang memiliki lebih dari dua blok
pilihan.

Coba perhatikan flowchart berikut:


Perhatikan blok yang saya beri warna…
Ini adalah blok untuk percabangan if/else/if. Kita bisa menambahkan berapapun blok
yang kita inginkan.

Contoh Program:

#include <iostream>
using namespace std;

int main(){

int nilai;
string grade;

cout << "=== Program Grade Nilai ===" << endl;


cout << "Inputkan nilai akhir: ";
cin >> nilai;

// menggunakan percabangan if/esle/if


if (nilai >= 90) {
grade = "A";
} else if (nilai >= 80) {
grade = "B+";
} else if (nilai >= 70) {
grade = "B";
} else if (nilai >= 60) {
grade = "C+";
} else if (nilai >= 50) {
grade = "C";
} else if (nilai >= 40) {
grade = "D";
} else if (nilai >= 30) {
grade = "E";
} else {
grade = "F";
}
cout << "Grade anda: " << grade << endl;

return 0;
}

Hasilnya:

4. Percabangan Switch/Case
Percabangan switch/case adalah bentuk lain dari percabangan if/else/if.

Strukturnya seperti ini:

switch(variabel){
case <value>:
// blok kode
break;
case <value>:
// blok kode
break;
default:
// blok kode
}

Kita dapat mermbuat blok kode (case) sebanyak yang diinginkan di dalam blok switch.

Pada <value>, kita bisa isi dengan nilai yang nanti akan dibandingkan dengan varabel.

Setiap case harus diakhiri dengan break. Khusus untuk default, tidak perlu diakhiri


dengan break karena dia terletak di bagian akhir.

Pemberian break bertujuan agar program berhenti mengecek case berikutnya saat


sebuah case terpenuhi.

Contoh:

#include <iostream>
using namespace std;

int main(){

char grade;

cout << "Inputkan grade: ";


cin >> grade;

switch (toupper(grade)){
case 'A':
cout << "Luar biasa!" << endl;
break;
case 'B':
case 'C':
cout << "Bagus!" << endl;
break;
case 'D':
cout << "Anda lulus" << endl;
break;
case 'E':
case 'F':
cout << "Anda remidi" << endl;
break;
default:
cout << "Grade Salah!" << endl;
}

return 0;
}

Hasilnya:

Perhatikan program di atas…

Kita menggunakan fungsi toupper() untuk mengubah huruf kecil menjadi huruf kapital


atau huruf besar.
switch (toupper(grade)){
...
}

Mengapa menggunakan toupper()?

Ini karena agar kita dapat menginputkan huruf kecil dan huruf besar untuk mengecek
grade.

Berikutnya coba perhatikan case 'B' dan case 'E'.

Kedua case ini tidak memiliki isi.


Ini artinya…dia akan mengikut pada case berikutnya.

Sebagai contoh, apabila kita inputkan B maka case C yang akan terpilih.

Begitu juga saat kita inputkan E, maka case F yang akan terpilih.

5. Percabangan dengan Opertor Ternary


Percabangan menggunakan opreator ternary merupakan bentuk lain dari percabangan
if/else.

Bisa dibilang:

Bentuk singkatnya dari if/else.

Operator ternary juga dikenal dengan sebutan operator kondisi (conditional operator).

Bentuk strukturnya seperti ini:

(kondisi) ? true : false

Bagian kondisi dapat kita isi dengan ekspresi yang menghasilkan nilai true dan false.

Lalu setlah tanda tanya ? adalah bagian pilihan.

Jika kondisi bernilai benar, maka true yang akan dipilih. Tapi kalau salah, maka false yang


akan dipilih.

Untuk lebih jelasnya, mari kita coba…

Buatlah file baru bernama ternary.cpp, kemudian isi dengan kode berikut:

#include <iostream>
using namespace std;

int main(){
int jawaban;

cout << "Berapakah hasil 3+4?" << endl;


cout << "jawab> ";
cin >> jawaban;

string hasil = (jawaban == 7) ? "Benar" : "Salah";

cout << "Jawaban anda: " << hasil << endl;

return 0;
}

Hasilnya:

6. Percabangan Bersarang (Nested)
Kita juga dapat membuat blok percabangan di dalam percabangan. Ini disebut
percabangan bersarng atau nested if.

Contoh: 📄 nested.cpp
#include <iostream>
using namespace std;

int main(){

string username, password;

cout << "=== Welcome ===" << endl;


cout << "Username: ";
cin >> username;
cout << "Password: ";
cin >> password;

if (username == "petanikode"){
if (password == "kopi"){
cout << "Selamat datang bos!" << endl;
} else {
cout << "Password salah, coba lagi!" << endl;
}
} else {
cout << "Anda tidak terdaftar" << endl;
}

return 0;
}

Hasilnya:

You might also like