Anda di halaman 1dari 58

MODUL 2: Dasar Pemrograman,

Tipe Data, Identifier & Operator


Oleh : Tim Penyusun MKU Koding UNP
Lisensi Dokumen:
Copyright © 2020 Universitas Negeri Padang
Seluruh dokumen di e-Learning Universitas Negeri Padang, hanya digunakan untuk kalangan
Internal Universitas, untuk kebutuhan Perkuliahan Online. Penggunaan dokumen ini di luar UNP
tidak diizinka dan tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin
terlebih dahulu dari Penulis dan Universitas Negeri Padang.

A. Capaian Pembelajaran
Mahasiswa Mampu menjelaskan dan menentukan Tipe data, identifier dan operator
dalam pemrograman.

B. Indikator Pencapaian Kompetensi


1. Tepat membedakan pengertian dan karakteristik data berdasar tipe data.
2. Tepat menjelaskan jenis identifier dan karakteristiknya (variabel & konstanta)
3. Tepat menjelaskanberbagai jenis operator yang digunakan dalam pemrograman
(aritmatik, perbandingan, logika, dan lain lain).
4. Tepat memilih tipe data, identifier dan operator dalam program sesuai persoalannya.

C. Pokok – Pokok Materi


1. Tipe data,
2. Identifier,
3. Operator.

D. Uraian Materi*)
1. Teks Algoritma Pemrograman
Paradigma pemrograman procedural memisahkan bagian data dan bagian instruksi
dipisahkan tempatnya. Pada dasarnya, teks algoritma selalu disusun 3 bagian (blok): bagian
kepala (header) algortima, bagian deklarasi dan bagian deskripsi algoritma program. Setiap
bagian sebaiknya dilengkapi komentar untuk memperjelas maksud teks yang dituliskan. Bagian
komentar pada pemrograman bahasa C (C++) adalah kalimat yang diapit oleh pasangan tanda
slash (/ garis miring) dan bintang (* asterisk) ( /* …. */ )
Struktur umum Algoritma
NAMA_ALGORITMA
/* Penjelasan tentang algoritma/program, berisi uraian singkat mengenai apa yang dilakukan
oleh algoritma. Pada bahasa C hal ini tidak wajib/perlu */

DEKLARASI
/* Semua nama yang dipakai, meliputi nama tipe, nama tetapan (konstanta), nama peubah
(variabel), nama prosedur & nama fungsi didefinisikan di sini */

DESKRIPSI
/* Semua langkah/aksi algoritma dituliskan di sini */

Selanjutnya, sebuah file program bahasa C tersusun atas beberapa unsur, yaitu mulai dari
dokumentasi program, pengarah pengolahan, bagian Deklarasi global, sebuah fungsi main()
maupun fungsi buatan. Berikut Struktur Susunan Program Bahasa C :
/* NAMA PROGRAM */ /* Nama program berupa keterangan bersifat opsional */
[ Dokumentas program ] /* bersifat opsional */
[ Pengarah pra pengolahan ] /* bersifat opsional */

DEKLARASI
[ Deklarasi global ] /* DEKLARASI bila diperlukan bersifat opsional */
[ Jenis data ] main( [daftar argument] )
DESKRIPSI
{ /* awal deskripsi algoritma/program */
[ Deklarasi lokal ]
[ Kode program yang dapat dieksekusi ]
} /* akhir deskripsi algoritma/program */
[ Fungsi-fungsi buatan pemrogram ]
Kurung siku pada tiap-tiap bagian program pada bingkai Struktur Susunan Program
Bahasa C yang tampil sebelumnya (di atas ini) bersifat opsional, boleh ada boleh tidak dalam
suatu program bahasa C.
2. Tipe Data

Pengertian
Dalam ilmu komputer dan pemrograman komputer, tipe data adalah suatu
pengklasifikasian data berdasarkan jenis data tersebut. Tipe data dibutuhkan agar compiler
atau penerjemah bagaimana programmer bermaksud untuk menggunakan data.program. compiler
dapat mengetahui bagaimana sebuah data akan digunakan.
Untuk mengembangkan sebuah, ada beberapa tipe data yang akan kita pelajari. ialah
klasifikasi data yang mengenalkan kompilator Sebagian besar bahasa pemrograman mendukung
tipe data dasar akan bilangan integer, bilangan titik mengambang (floating
point), karakter dan boolean. Sebuah tipe data menyediakan sekumpulan nilai-nilai
dari ekspresi (yaitu variabel, fungsi) yang dapat mengambil nilai tersebut. Tipe data ini
mendefinisikan operasi yang akan dilakukan pada data, maksud dari data dan jurusan nilai dari tipe
tersebut dapat disimpan.

Pengertian Tipe Data char Bahasa C


Tipe data char di dalam bahasa C digunakan untuk menampung 1 digit karakter, entah itu berupa huruf
maupun angka. Variabel yang didefinisikan untuk menampung tipe data char membutuhkan 1 byte
memory. Secara teknis, char ini dikodekan dari charset ASCII.

Contoh Kode Program Tipe Data char Bahasa C


Contoh penggunaan tipe data char sudah pernah kita coba beberapa kali. Berikut contoh lain dari tipe
data char dalam bahasa C:

1#include <stdio.h>
2
3int main(void)
4{
5 char huruf;
6 huruf = 'Z';
7 printf("Huruf yang tersimpan adalah: %c",huruf);
8
9 printf("\n");
10 return 0;
11}
Dalam contoh ini, kita mendefinisikan variabel huruf yang bertipe char. Huruf ini kemudian diisi dengan
karakter Z dan kemudian ditampilkan dengan perintah printf. Sangat sederhana.

Untuk contoh kedua, kita akan buat konstanta dengan tipe data char:

1#include <stdio.h>
2
3int main(void)
4{
5 const char huruf = 'a';
6 printf("Huruf yang tersimpan adalah: %c",huruf);
7
8 printf("\n");
9 return 0;
10}

Disini huruf berupa sebuah konstanta bertipe char, bukan lagi variabel seperti sebelumnya. Mengenai
perbedaan antara variabel dengan konstanta, sudah pernah kita bahas dalam sebelumnya

Sebagai contoh, kita akan kombinasikan dengan perintah scanf agar lebih dinamis:

1#include <stdio.h>
2
3int main(void)
4{
5 char karakter1, karakter2, karakter3;
6
7 printf("Input 3 karakter sembarang \n");
8 printf("========================== \n");
9 printf("\n");
10
11 printf("Karakter pertama: ");
12 scanf(" %c",&karakter1);
13
14 printf("Karakter kedua: ");
15 scanf(" %c",&karakter2);
16
17 printf("Karakter ketiga: ");
18 scanf(" %c",&karakter3);
19
20 printf("\n");
21 printf("karakter yang diinput adalah: %c %c %c", karakter1,
karakter2, karakter3);
22
23
printf("\n");
24
return 0;
25
}

Di awal kode program, kita menyiapkan 3 buah variabel bertipe data char. Ketiga variabel ini
bernama karakter1, karakter2 dan karakter3. Isi program akan meminta inputan dari user untuk 3
karakter tersebut, kemudian menampilkannya kembali.

Yang juga patut diingat, karakter disini bisa terdiri dari huruf, angka, serta karakter khusus seperti ?, *,
%, #. Jadi tidak masalah jika kita menginput angka ke dalam tipe data char. Namun angka tersebut tetap
harus 1 digit.

Angka yang diinput ke dalam tipe data char tidak bisa diolah, misalnya dipakai untuk perhitungan atau
penambahan. Jika kita menginginkan hal ini, harus menggunakan tipe data khusus angka seperti integer
atau float.

Bagaimana dengan karakter yang lebih dari 1 digit, seperti kata atau kalimat? Di dalam bahasa C, kata
atau kalimat (di kenal juga sebagai string) dianggap sebagai array dari tipe data char. Lebih lanjut akan
kita pelajari setelah membahas tentang tipe data array nanti.

Sampai disini kita sudah membahas tentang pengertian tipe data char serta cara penggunaan
tipe data char di dalam bahasa pemrograman C..

Pengertian dan Contoh Kode Program Tipe Data Integer


Tipe data berikutnya yang akan kita pelajari dalam lanjutan tutorial belajar bahasa pemrograman C di
Duniailkom kali ini adalah tipe data integer.

Pengertian Tipe Integer Bahasa C


Tipe data integer adalah tipe data yang dipakai untuk menampung angka bulat positif maupun negatif,
seperti: 1, 99, dan -463.

Di dalam bahasa C, terdapat beberapa sub-tipe integer yang dibedakan berdasarkan jangkauan angka
yang bisa ditampung. Setidaknya terdapat 4 tipe data integer di dalam bahasa C:
 char
 short
 int
 long

Loh, bukannya char adalah tipe data untuk karakter? Kenapa juga ada di dalam integer? Betul, inilah
keunikan tipe data char di dalam bahasa C.

Secara internal, char sebenarnya bertipe integer. Untuk membedakan apakah char ini berisi karakter
atau huruf dilakukan pada saat menampilkannya.

Jika di dalam perintah printf menggunakan kode %c, karakter lah yang akan ditampilkan. Sedangkan jika
di dalam perintah printf menggunakan kode %d, maka akan menampilkan tipe data integer. Kita akan
lihat perbedaannya dengan contoh kode program sesaat lagi.

Tabel berikut merangkum jangkauan setiap tipe data integer dalam bahasa C:

Jenis Ukuran Memory Jangkauan


Tipe Penyimpanan
Data

char 1 byte -128 hingga 127

short 2 bytes -32,768 hingga 32,767

int 2 bytes -32,768 hingga 32,767

int 4 bytes -2,147,483,648 hingga


2,147,483,647

long 4 bytes -2,147,483,648 hingga


2,147,483,647

Ukuran Memory Penyimpanan adalah jumlah memory yang dibutuhkan untuk menyimpan angka
tersebut. Semakin besar jangkauan, semakin banyak juga ruang memory yang dibutuhkan.

Khusus untuk tipe data int, bisa terdiri dari 2 byte maupun 4 byte. Ini tergantung sistem komputer dan
compiler bahasa C yang dipakai.

Jangkauan tipe data diatas adalah untuk angka yang bertanda (signed). Maksudnya, setiap tipe data bisa
menampung angka positif dan negatif. Kita bisa mengorbankan nilai negatif ini untuk memperbesar
jangkauan angka positif dengan menambahkan keyword unsigned sebelum penulisan tipe data.

Jika tipe data integer di-set sebagai unsigned (tidak bertanda), maka tipe data tersebut tidak bisa
menampung angka negatif, namun jatah untuk angka negatif akan dialihkan kepada angka positif
sehingga jangkauannya menjadi 2 kali lipat.
Berikut tabel jangkauan setiap tipe data unsigned integer dalam bahasa C:

Jenis Tipe Data Ukuran Memory Penyimpanan Jangkauan

unsigned char 1 byte 0 hingga 255

unsigned short 2 bytes 0 hingga 65,535

unsigned int 2 bytes 0 hingga 65,535

unsigned int 4 bytes 0 hingga 4,294,967,295

unsigned long 4 bytes 0 hingga 4,294,967,295

Terlihat jangkauan angkanya menjadi lebih besar, tapi tidak bisa menampung angka negatif. Tipe
data unsigned ini cocok untuk data yang tidak pernah negatif, seperti tinggi badan, berat badan, jumlah
orang, dsb.

Contoh Kode Program Tipe Data Integer Bahasa C


Cukup dengan teorinya, mari kita masuk ke contoh praktek. Dalam kode program berikut ini kita
menampilkan ke-4 tipe data integer dalam bahasa C:

1#include <stdio.h>
2
3int main(void)
{
4
char angka1;
5
short angka2;
6
int angka3;
7
long angka4;
8
9
angka1 = 127;
10
angka2 = 32767;
11
angka3 = 2147483647;
12 angka4 = 2147483647;
13
14 printf("Isi variabel angka1 (char): %d \n",angka1);
15 printf("Isi variabel angka2 (short) %d \n",angka2);
16 printf("Isi variabel angka3 (int): %d \n",angka3);
17 printf("Isi variabel angka4 (long): %d \n",angka4);
18
19 printf("\n");
return 0;
20
}
21
22

Kode program ini cukup sederhana. Pertama, kita membuat 4


variabel: angka1, angka2, angka3 dan angka4. Setiap variabel di-set dengan tipe data yang berbeda-
beda, dimana variabel angka1 sebagai char, variabel angka2 sebagai short, variabel angka3 sebagai int,
dan variabel angka4 sebagai long.

Setelah pendefinisian variabel, setiap variabel diisi dengan angka. Angka yang ada sengaja kita set
dengan nilai maksimum untuk setiap tipe data. Terakhir setiap variabel ditampilkan menggunakan
perintah printf.

Khusus untuk char, ini memang cukup unik. Karena fungsinya akan berbeda tergantung cara
menampilkan tipe data ini. Berikut contoh perbedannya:

1#include <stdio.h>
2
3int main(void)
{
4
char foo = 65;
5
char bar = 'Z';
6
7
printf("Isi variabel foo (char): %d \n",foo);
8
printf("Isi variabel foo (char): %c \n",foo);
9
10
printf("\n");
11
12 printf("Isi variabel bar (char): %d \n",bar);
13 printf("Isi variabel bar (char): %c \n",bar);
14
15 printf("\n");
16
17 return 0;
18}
19

Dalam contoh ini kita membuat 2 buah variabel bertipe char: foo dan bar. Variabel foo diisi angka 65,
sedangkan variabel bar diisi dengan karakter Z .

Hasilnya akan berbeda ketika di dalam perintah printf kita menggunakan pola %d untuk tipe integer,
atau %c untuk tipe data char.

Ketika variabel foo diakses sebagai integer, hasilnya adalah 65. Ini sesuai dengan nilai awal variabel.
Namun ketika variabel foo diakses sebagai char, hasilnya adalah huruf A . Dari mana datangnya huruf
A?

Ini berasal dari kode karakter ASCII dimana huruf A bernilai desimal 65. Dengan kata lain, di dalam
daftar karakter ASCII, huruf A berada di urutan ke 65.

Hal yang sama juga berlaku untuk variabel bar yang diisi karakter Z . Ketika diakses sebagai integer,
hasilnya berupa angka 90, karena huruf Z berada di urutan ke 90 daftar karakter ASCII. Untuk tabel
karakter ASCII ini bisa dilihat ke id.wikipedia.org/wiki/ASCII.

Kembali ke pembahasan tipe data integer. Bagaimana untuk membuat tipe data ini sebagai unsigned?
Caranya tambahkan keyword unsigned sebelum penulisan tipe data, seperti contoh berikut:

1#include <stdio.h>
2
3int main(void)
{
4
unsigned char angka1;
5
unsigned short angka2;
6
unsigned int angka3;
7
unsigned long angka4;
8
9
angka1 = 255;
10
angka2 = 65535;
11
angka3 = 4294967295;
12 angka4 = 4294967295;
13
14 printf("Isi variabel angka1 (char): %d \n",angka1);
15 printf("Isi variabel angka2 (short) %d \n",angka2);
16 printf("Isi variabel angka3 (int): %d \n",angka3);
17 printf("Isi variabel angka4 (long): %d \n",angka4);
18
printf("\n");
19
return 0;
20
}
21
22

Sekarang, jangkauan setiap tipe data sudah membesar 2 kali lipat dengan mengorbankan angka negatif.
Efek sampingnya, kita tidak bisa lagi menginput angka negatif ke dalam variabel diatas.

Tipe data char yang sebelumnya hanya bisa sampai angka 127 sekarang bisa menampung nilai 0 255.
Begitu juga dengan tipe data unsigned short yang bisa menampung 0 65535.

Tapi kenapa tipe data unsigned int dan unsigned long menghasilkan -1? Ternyata khusus untuk
jenis unsigned, kita tidak bisa menggunakan pola karakter %d, tapi harus diganti menjadi %u.

Dengan demikian, kode program sebelumnya akan kita modifikasi sebagai berikut:

1#include <stdio.h>
2
3int main(void)
{
4
unsigned char angka1;
5
unsigned short angka2;
6
unsigned int angka3;
7
unsigned long angka4;
8
9
angka1 = 255;
10
angka2 = 65535;
11
angka3 = 4294967295;
12 angka4 = 4294967295;
13
14
15 printf("Isi variabel angka1 (char): %d \n",angka1);
16 printf("Isi variabel angka2 (short) %d \n",angka2);
17 printf("Isi variabel angka3 (int): %u \n",angka3);
18 printf("Isi variabel angka4 (long): %u \n",angka4);
19
printf("\n");
20
return 0;
21
}
22

Perubahannya hanya mengganti pola %d menjadi %u untuk menampilkan variabel angka3 dan angka4.
Yakni variabel untuk tipe data unsigned int dan unsigned long.

Apa yang terjadi apabila menginput angka diluar batas maksimum? Mari kita coba:

1#include <stdio.h>
2
3int main(void)
{
4
unsigned char angka1;
5
unsigned short angka2;
6
unsigned int angka3;
7
unsigned long angka4;
8
9
angka1 = 299;
10
angka2 = 65599;
11
angka3 = 4294967299;
12 angka4 = 4294967299;
13
14 printf("Isi variabel angka1 (char): %d \n",angka1);
15 printf("Isi variabel angka2 (short) %d \n",angka2);
16 printf("Isi variabel angka3 (int): %u \n",angka3);
17 printf("Isi variabel angka4 (long): %u \n",angka4);
18
19 printf("\n");
20 return 0;
21}
22

Hasilnya, angka yang tersimpan tidak lagi sesuai.

Sebagai kode program terakhir, kita akan menambah sebuah file header baru, yakni limits.h. File header
ini berisi berbagai konstanta dan fungsi agar kita bisa melihat berapa sebenarnya nilai maksimum dan
minimum dari setiap tipe data. Berikut contoh penggunaannya:

1#include <stdio.h>
2#include <limits.h>
3
int main(void)
4
{
5
printf("Ukuran memory untuk tipe data char: %d byte
6\n", sizeof(char));
7 printf("Ukuran memory untuk tipe data short: %d byte
\n", sizeof(short));
8
printf("Ukuran memory untuk tipe data int: %d byte \n",
9sizeof(int));
10 printf("Ukuran memory untuk tipe data long: %d byte
\n", sizeof(long));
11
printf("\n");
12
13
printf("Nilai minimal tipe data char: %d \n",
14SCHAR_MIN);

15 printf("Nilai minimal tipe data short: %d \n",


SHRT_MIN);
16
printf("Nilai minimal tipe data int: %d \n", INT_MIN);
17 printf("Nilai minimal tipe data long: %d \n",
18LONG_MIN);
printf("\n");
19
20
21 printf("Nilai maksimal tipe data char: %d \n",
SCHAR_MAX);
22
printf("Nilai maksimal tipe data short: %d \n",
23SHRT_MAX);
24 printf("Nilai maksimal tipe data int: %d \n", INT_MAX);
25 printf("Nilai maksimal tipe data long: %d \n",
LONG_MAX);

printf("\n");

return 0;
}

Perhatikan tambahan perintah #include <limits.h> di baris kedua. Inilah cara kita menambahkan fungsi-
fungsi baru ke dalam kode program C.

Dengan tambahan perintah ini, kita bisa menggunakan fungsi sizeof() untuk melihat berapa jumlah
memory yang dipakai untuk setiap tipe data, serta mengakses konstanta seperti SCHAR_MIN untuk
melihat nilai minimum dari tipe data char, serta SCHAR_MAX untuk melihat nilai maksimum tipe data
char. Begitu juga dengan tipe data integer lainnya.

Dalam tutorial kali ini kita telah membahas pengertian tipe data integer, melihat 4 jenis tipe data integer
bahasa C, serta menjalankan beberapa contoh kode program untuk tipe data integer bahasa
pemrograman C.

Tipe data integer hanya bisa dipakai untuk menampung angka bulat. Bagaimana dengan angka pecahan?

Pengertian dan Contoh Kode Program Tipe Data Float


Tipe data float adalah tipe data untuk angka pecahan. Dalam tutorial belajar bahasa pemrograman C di
Duniailkom kali ini kita akan bahas tentang pengertian, jenis-jenis serta contoh kode program untuk tipe
data float dalam bahasa C.

Pengertian Tipe Data Float Bahasa C


Tipe data float digunakan untuk menampung angka pecahan seperti 3.14, 62.22 atau -0.01234. Sama
seperti bahasa pemrograman pada umumnya, kita menggunakan tanda titik sebagai pemisah angka
bulat dan pecahan, bukan tanda koma seperti yang kita pakai sehari-hari.

Di dalam bahasa C, selain float juga terdapat tipe data double yang juga bisa dipakai untuk menyimpan
angka pecahan. Perbedaan antara float dan double terletak dari jangkauan angka serta tingkat ketelitian
angka.

Berikut tabel perbedaan antara tipe data float dan double dalam bahasa C:

Jenis Tipe Ukuran Jangkauan Ketelitian


Data Memory
float 4 byte 1.2E-38 hingga 6 tempat
3.4E+38 desimal

double 8 byte 2.3E-308 hingga 15 tempat


1.7E+308 desimal

Sebenarnya masih ada 1 lagi jenis tipe data untuk angka pecahan, yakni long double dengan jangkauan
yang lebih besar dari double. Namun tidak semua compiler bahasa C mendukung tipe data ini.

Penulisan angka pecahan juga bisa menggunakan notasi ilmiah, seperti 3.12e2 atau 4E-3. Tanda e atau E
mewakili pangkat 10, sehingga 3.12e2 = 3.12 x 10^2 = 312. Sedangkan 4E-3 = 4 x 10^-3 = 0.004.

Meskipun tipe data float bisa menyimpan angka yang sangat besar, tapi tipe data ini memiliki
kelemahan yang umum di setiap bahasa pemrograman (tidak bahasa C saja). Yakni terdapat batas
tingkat ketelitian. Hal ini berhubungan dengan mekanisme penyimpanan di dalam komputer yang
berupa angka biner. Kita akan lihat contohnya beberapa saat lagi.

Contoh Kode Program Tipe Data Float Bahasa C

Sebagai contoh kode program pertama, kita akan membuat 2 buah variabel bertipe float dan double,
menginput angka, lalu menampilkannya:

1#include <stdio.h>
2
3int main(void)
{
4
float angka1;
5
double angka2;
6
7
angka1 = 4.323;
8
angka2 = 0.0067;
9
10
printf("Isi variabel angka1 (float): %f \n",angka1);
11
printf("Isi variabel angka2 (double) %f \n",angka2);
12
13 printf("\n");
14 return 0;
15}
16

Untuk menampilkan angka float, kita menggunakan kode %f di dalam perintah printf.

Berikutnya, kita akan input angka dengan penulisan notasi ilmiah:

1#include <stdio.h>
2
3int main(void)
{
4
float angka1 = 9.13e5;
5
double angka2 = 3.99E-4;
6
7
printf("Isi variabel angka1 (float): %f \n",angka1);
8
printf("Isi variabel angka2 (double) %f \n",angka2);
9
10
printf("\n");
11
return 0;
12}
13

Dari kedua contoh diatas, kita bisa melihat bahwa secara default bahasa C menampilkan angka desimal
dengan 6 angka di belakang koma. Maksudnya, jika yang ditulis adalah 4.323, maka yang ditampilkan
menjadi 4.323000. Bagaimana mengubahnya, misalnya menjadi 2 angka dibelakang koma?

Perintah printf memiliki aturan khusus untuk hal ini. Untuk mengatur agar bahasa C menampilkan
jumlah angka di belakang koma, kita bisa menambahkan 3 cara penulisan ke dalam pola %f. Dimana
formatnya adalah sebagai berikut:

1%(0)(jumlah total digit).(jumlah angka di belakang


koma)%f

Kode yang ada di dalam tanda kurung bersifat opsional dan boleh tidak ditulis. Mari kita lihat prakteknya
menggunakan contoh kode program:

1#include <stdio.h>
2
3int main(void)
4{
5 float angka1 = 1234.5678;
6
printf("Isi variabel angka1: %f \n",angka1);
7
printf("Isi variabel angka1: %15f \n",angka1);
8
printf("Isi variabel angka1: %015f \n",angka1);
9
printf("Isi variabel angka1: %.3f \n",angka1);
10
printf("Isi variabel angka1: %010.3f \n",angka1);
11
12
printf("Isi variabel angka1: %e \n",angka1);
13
printf("Isi variabel angka1: %E \n",angka1);
14
15 printf("\n");
16 return 0;
17}
18

Di awal kode program kita mendefinisikan variabel angka1 sebagai float dan diisi dengan angka
1234.5678.

Dalam perintah printf pertama, terlihat bahwa angka1 berisi 1234.567749. Loh, kenapa berbeda? inilah
salah satu kelemahan dari tipe data float, yakni tidak bisa secara persis menyimpan angka. Kesalahan
pembulatan ini umum di setiap bahasa pemrograman yang bersala dari mekanisme konversi angka di
dalam komputer (digit biner).

Untuk perintah printf kedua, kita menggunakan pola %15f. Pola ini akan menampilkan angka pecahan
dengan 15 digit (termasuk karakter titik). Karena variabel angka1 tersimpan sebagai 1234.567749 (total
11 digit), maka akan ditambah 4 spasi sebelum angka agar total menjadi 15 digit.

Untuk perintah printf ketiga, kita menggunakan pola %015f. Pola ini juga akan menampilkan angka
pecahan dengan 15 digit, namun 4 spasi sebelumnya akan diganti dengan angka 0.

Perintah printf keempat, kita menggunakan pola %.3f. Pola ini akan menampilkan angka pecahan dengan
3 digit dibelakang koma.

Perintah printf kelima, kita menggunakan pola %010.3f. Pola ini akan menampilkan angka pecahan
dengan 3 digit dibelakang koma. Selain itu angka akan ditampilkan dengan jumlah total 10 digit. Jika
kurang, akan ditambah dengan angka 0 di sisi kiri angka bulat.
Dua perintah printf terakhir menggunakan pola %e dan %E. Ini dipakai untuk menampilkan angka dalam
format notasi ilmiah, yakni 8.012457e+003 dan 8.012457E+003. Perbedaannya hanya menggunakan
huruf e kecil atau E besar.

Sebagai penutup tutorial tentang tipe data float di dalam bahasa C, kita akan akses file
header float.h yang berisi berbagai konstanta untuk melihat ukuran memory, nilai minimum, nilai
maksimum serta jumlah digit ketelitian dari tipe data float di bahasa C:

1#include <stdio.h>
2#include <float.h>
3
int main(void)
4
{
5
printf("Ukuran memory untuk tipe data float: %d byte \n",
6sizeof(float));
7 printf("Ukuran memory untuk tipe data double: %d byte
\n", sizeof(double));
8
printf("\n");
9
10
printf("Nilai minimal tipe data float: %E \n", FLT_MIN);
11
printf("Nilai maksimal tipe data float: %E \n", FLT_MAX);
12
printf("\n");
13
14 printf("Nilai minimal tipe data double: %E \n", DBL_MIN);
15 printf("Nilai maksimal tipe data double: %E \n",
DBL_MAX);
16
printf("\n");
17
18
printf("Ketelitian float: %d digit\n", FLT_DIG );
19
printf("Ketelitian double: %d digit\n", DBL_DIG );
20
21
printf("\n");
22
return 0;
23}

Dengan kode program ini, kita bisa melihat informasi seputar tipe data float.
4. Identifier
Identifier adalah pengenal yang didefinisikan sendiri oleh programmer. Identifier dapat berupa
nama konstanta, nama variabel, nama fungsi dan lain-lain.

a. Konstanta
Konstanta adalah sebuah tempat atau container dari suatu nilai. Sesuai dengan namanya, nilai
dari konstanta bersifat tetap (konstan) dan tidak bisa diubah sepanjang program berjalan.
Jika di dalam kode program kita ingin mengubah nilai ini, harus menggunakan variabel yang
akan dipelajari dalam tutorial selanjutnya.
Untuk membuat konstanta dalam bahasa C, terdapat 2 cara. Yakni menggunakan
keyword #define atau menggunakan keyword const.

Membuat konstanta menggunakan “#define”

Jika ingin membuat konstanta dengan keyword #define, konstanta ini ditulis sebelum main().
Berikut contoh cara pembuatan konstanta menggunakan #define:

1#include <stdio.h>
2
3#define PANJANG 10
4#define LEBAR 5
5
6main(void)
7{
8 printf("Panjang = %d",PANJANG);
9 printf("\n");
10
11 printf("Lebar = %d",LEBAR);
12 printf("\n");
13
14 //menampilkan PANJANG*LEBAR
15 printf("Luas (panjang*lebar) = %d",PANJANG*LEBAR);
16 printf("\n");
17
18}

Cobalah anda ketik dan jalankankan program tersebut.

Format pembuatan konstanta menggunakan perintah #define adalah:


#define nama_konstanta nilai_konstanta

Dalam kode program diatas, perintah #define PANJANG 10 artinya kita membuat konstanta
bernama PANJANG yang bernilai 10. Sedangkan perintah #define LEBAR 5 artinya kita membuat
konstanta bernama LEBAR yang bernilai 5.

Di bagian program utama, yakni di dalam main(void), nilai dari masing-masing konstanta
ditampilkan dengan perintah printf.

Penjelasan tentang perintah printf akan kita pelajari dalam modul terpisah. Tanda %d di dalam
perintah printf digunakan untuk menampilkan angka bulat. Angka yang ingin ditampilkan berada
di akhir perintah printf, yakni berupa sebuah konstanta.

Perintah printf( \n ) dipakai untuk membuat karakter new line (baris baru). Fungsinya
supaya baris berikutnya tampil di baris baru. Tanpa perintah ini, teks akan disambung terus ke
kanan.

Lebih jauh tentang cara penggunaan perintah printf juga akan kita bahas dalam tutorial
tersendiri. Untuk saat ini silahkan fokus ke cara pembuatan konstanta PANJANG dan LEBAR.

Namun menjadi kebiasaan mayoritas programmer untuk membuat nama konstanta


menggunakan HURUF BESAR, agar mudah dibedakan dengan variabel yang menggunakan huruf
kecil. Meskipun begitu, kita juga bisa membuat konstanta dengan huruf kecil.

Berikut contoh lain pembuatan konstanta dalam bahasa pemrograman C:

1#include <stdio.h>
2
3#define kampus "Universitas Negeri Padang"
4#define ipk 4.00
5
6main(void)
7{
8 printf("Sedang belajar bahasa C di %s",kampus);
9 printf("\n");
10
11 printf("Semoga dapat IPK %f",ipk);
12 printf("\n");
13
14}
15

Cobalah anda ketik dan jalankankan program tersebut.

Nilai konstanta kampus berupa teks, harus ditulis dalam tanda kutip.

Bisa anda perhatikan juga bahwa untuk perintah printf, kita menggunakan tanda %s karena
konstanta kampus berisi nilai string (teks), sedangkan untuk menampilkan nilai konstanta ipk,
kita menggunakan %f karena nilainya berisi angka float (pecahan).

Membuat konstanta menggunakan “const”

Selain menggunakan perintah #define, konstanta juga bisa dibuat menggunakan perintah const.
Bedanya, pembuatan konstanta ditempatkan di dalam main() dan juga harus ditulis tipe data
dari konstanta tersebut.

Berikut contoh kode program bahasa C untuk membuat konstanta menggunakan keyword const:

1#include <stdio.h>
2
3main(void)
4{
5 const char kampus[26] = "Universitas Negeri Padang”;
6 const float ipk = 4.00;
7
8 printf("Sedang belajar bahasa C di %s",kampus);
9 printf("\n");
10
11 printf("Semoga dapat IPK %f",ipk);
12 printf("\n");
13
14
15}
Cobalah anda ketik dan jalankankan program tersebut.

Format pembuatan konstanta menggunakan perintah const adalah:


const tipe_data nama_konstanta = nilai_konstanta;

Dalam kode program diatas, perintah const char kampus[26] = Universitas Negeri Padang ,
artinya kita membuat konstanta bernama kampus dengan tipe data char [] yang
isinya Universitas Negeri Padang .

Sedangkan perintah const float ipk = 4.00 artinya kita membuat konstanta bernama ipk dengan
tipe data float yang isinya 4.00.

Sekarang, mari kita coba mengubah nilai sebuah konstanta setelah di definisikan:

1#include <stdio.h>
2
3main(void)
4{
5 const float ipk = 4.00;
6
7 printf("Semoga dapat IPK %f",ipk);
8 printf("\n");
9
10 ipk = 2.00; // error: assignment of read-only variable
'ipk'
11
12
}

Cobalah anda ketik dan jalankankan program tersebut.

Setelah membuat dan mengisi konstanta ipk dengan nilai 4.00, kita mencoba mengisinya dengan
nilai 2.00 menggunakan perintah ipk = 2.00. Hasilnya tampil error: assignment of read-only
variable ipk . Artinya nilai ipk bersifat read-only dan tidak bisa diubah.

Variabel

Pengertian Variabel dalam Bahasa C


Variabel adalah salah satu identifier berupa penanda identitas yang digunakan untuk menampung
suatu nilai. Nilai tersebut dapat diubah sepanjang kode program. Secara teknis, variabel merujuk kepada
suatu alamat di memory komputer. Setiap variabel memiliki nama sebagai identitas untuk variabel
tersebut.

Sesuai dengan namanya, isi dari variabel bisa berubah dari waktu ke waktu tergantung kebutuhan. Ini
berbeda dari konsep konstanta yang kita bahas sebelumnya. Untuk konstanta, nilai tersebut akan tetap
dan tidak bisa diubah sepanjang kode program.

Sebagai contoh, jika kita membuat program menghitung luas lingkaran, kita bisa membuat variabel
jari2 dan mengisinya dengan nilai 7 , kemudian di dalam kode program, kita bisa mengubah nilainya
menjadi 8 , 10 atau 1000 . Sedangkan jika jari2 ini dibuat sebagai konstanta, maka nilainya akan tetap
7 sepanjang program dijalankan.

Aturan Penamaan Variabel dalam Bahasa C

Penamaan variabel merujuk ke aturan identifier yang pernah kita bahas beberapa tutorial sebelumnya.
Berikut aturan penamaan variabel di dalam bahasa pemrograman C:

 Variabel bisa terdiri dari huruf, angka dan karakter underscore/garis bawah ( _ ).
 Karakter pertama dari variabel hanya boleh berupa huruf dan underscore ( _ ), tidak bisa berupa
angka. Meskipun dibolehkan, sebaiknya tidak menggunakan karakter underscore sebagai awal dari
variabel karena bisa bentrok dengan beberapa variabel settingan program.
 Variabel harus selain dari keyword. Sebagai contoh, kita tidak bisa memakai kata int sebagai nama
variabel, karena int merupakan keyword untuk menandakan tipe data integer.
 Beberapa compiler bahasa C ada yang membatasi panjang variabel maksimal 31 karakter. Agar
lebih aman, sebaiknya tidak menulis nama variabel yang lebih dari 31 karakter.

Cara Penulisan Variabel di dalam bahasa C

Ketika akan menulis variabel, dalam hampir semua bahasa pemrograman terdapat 2
proses: deklarasi dan inisialisasi.

Deklarasi adalah proses untuk memberitahukan compiler bahasa C bahwa kita akan membuat sebuah
variabel. Bahasa C termasuk bahasa pemrograman yang menggunakan konsep strongly typed
programming language, yang artinya untuk setiap variabel harus ditulis akan berisi tipe data apa.
Apakah itu angka bulat (integer), angka pecahan (float), huruf (char), atau yang lain.

Ketika kita ingin membuat variabel, harus ditentukan dulu apa tipe data dari variabel tersebut.
Pembahasan mengenai tipe data di dalam bahasa C akan kita bahas dalam tutorial tersendiri, namun
berikut tipe data yang sering dipakai:

 Tipe data integer, yakni tipe data angka bulat seperti 1, 5 atau 1000. Tipe data integer ditulis
dengan keyword int.
 Tipe data float, yakni tipe data angka pecahan seperti 1.33, 5.90 atau 1000.99. Tipe data float
ditulis dengan keyword float.
 Tipe data character, yakni tipe data huruf seperti A , a , atau Z . Tipe data character ditulis dengan
keyword char.

Sebagai contoh, dalam kode program berikut kita mendeklarasikan 3 buah variabel:

1#include <stdio.h>
2
3main(void)
4{
5 int a;
6 char b;
7 float c;
8
9}
10

Disini perintah int a akan membuat variabel a dengan tipe data int. Artinya variabel a hanya bisa diisi
dengan angka bulat. Variabel b bertipe char, sehingga hanya bisa menampung huruf. Sedangkan
variabel c bertipe data float yang hanya bisa diisi dengan angka pecahan.

Setelah sebuah variabel di deklarasikan, kita bisa menginput atau memberikan nilai awal ke dalam
variabel tersebut. Proses pemberian nilai awal ini dikenal dengan istilah inisialisasi.

Nilai yang diberikan harus sesuai dengan tipe data. Misalnya variabel a bertipe int, sehingga hanya bisa
diisi dengan angka bulat. Berikut contoh proses deklarasi dan inisialisasi dari contoh sebelumnya:

1#include <stdio.h>
2
3main(void)
4{
5 int a;
6 char b;
7 float c;
8
9 a = 34;
10 b = 'B';
11 c = 3.14;
12
13}
14

Sekarang masing-masing variabel sudah berisi nilai. Tanda sama dengan ( = ) disini berfungsi
sebagai operator assignment, yakni operator yang akan mengisi sebuah nilai. Proses assignment
dilakukan dari kanan ke kiri. Perintah a = 34 artinya memasukkan angka 34 ke dalam variabel a.

Untuk menampilkan isi dari variabel, kita bisa menggunakan perintah printf seperti contoh berikut:

1#include <stdio.h>
2
3main(void)
4{
5 int a;
6 char b;
7 float c;
8
9 a = 34;
10 b = 'B';
11 c = 3.14;
12
13 printf("%i",a);
14 printf("\n");
15
16 printf("%c",b);
17 printf("\n");
18
19 printf("%f",c);
20 printf("\n");
21
22
23}

Proses deklarasi dan inisialisasi variabel juga bisa dilakukan sekaligus, seperti contoh berikut:

1#include <stdio.h>
2
3main(void)
4{
5 int a = 34;
6 char b = 'B';
7 float c = 3.14;
8
9 printf("%i",a);
10 printf("\n");
11
12 printf("%c",b);
13 printf("\n");
14
15 printf("%f",c);
16 printf("\n");
17
18}
19

Sekarang variabel a, b dan c masing-masing sudah berisi nilai awal.

Kita juga bisa mendeklarasikan beberapa variabel dalam 1 baris perintah, selama variabel tersebut
memiliki tipe data yang sama, seperti contoh berikut:

1#include <stdio.h>
2
3int main(void)
4{
5 int a,b,c;
6
7 a = 12;
8 b = 9;
9 c = 2;
10
11 printf("%i",a);
12 printf("\n");
13
14 printf("%i",b);
15 printf("\n");
16
17 printf("%i",c);
18 printf("\n");
19
20 return 0;
21}

Setelah variabel di deklarasikan dan diberikan nilai awal, kita bisa mengubah nilai-nilai ini sepanjang
kode program. Berikut contohnya:

1#include <stdio.h>
2
3int main(void)
{
4
int a,b,c;
5
6
a = 3;
7
b = a;
8
a = a + b;
9
c = b + b + a;
10
11
printf("%i",a);
12 printf("\n");
13
14 printf("%i",b);
15 printf("\n");
16
printf("%i",c);
17
printf("\n");
18
19
return 0;
20
}
21
22

Bisakah anda menebak apa hasil akhir dari variabel a, b, dan c?

Diawal kode program, kita mendeklarasikan 3 buah variabel: a, b, dan c. Variabel a kemudian diisi
dengan angka 3 dengan perintah a = 3.

Di baris berikutnya terdapat perintah b = a, artinya variabel b akan diisi dengan nilai dari variabel a (ingat,
proses assignment berlaku dari kiri ke kanan). Karena variabel a berisi angka 3, maka variabel b juga akan
berisi angka 3.

Selanjutnya terdapat perintah a = a + b. Kembali, proses pemberian nilai (assignment) akan dilakukan
dari sisi kanan tanda sama dengan ( = ) terlebih dahulu.

Berapakah hasil dari a + b? karena a dan b sama-sama bernilai 3, maka hasilnya adalah 6. Angka enam ini
akan menjadi nilai baru untuk variabel a. Nilai variabel a yang sebelumnya 3, akan tertimpa menjadi 6.

Proses terakhir adalah c = b + b + a. Kembali, kita selesaikan dulu perhitungan di sisi kanan, yakni b + b +
a. Variabel b saat ini bernilai 3, sedangkan variabel a sudah bernilai 6 akibat perintah sebelumnya.
Sehingga proses yang terjadi adalah 3 + 3 + 6 = 12. Angka 12 ini akan menjadi nilai inputan untuk
variabel c.

Dari penjelasan diatas, maka variabel a akan berisi angka 6, variabel b angka 3, dan variabel c angka 12.
Mari kita buktikan dengan menjalankan kode program tersebut:

b. Operator.
Operator adalah simbol atau karakter khusus yang digunakan untuk melakukan suatu
operasi membantu kompilator untuk memanipulasi secara matematis atau logis pada data yang
diberikan.
Bahasa pemrograman C menyediakan banyak operator yang sangat berguna untuk
melakukan operasi. pada artikel ini penulis akan membahas beberapa informasi tentang operator
yang umum harus diketahui.
A + B;

Di atas adalah contoh bentuk dari operasi, dalam suatu operasi umumnya mempunyai
istilah “operand” dan “operator”. operand merupakan data yang akan dimanipulasi oleh
operator merupakan A dan B , untuk operator merupakan simbol atau tanda yang berfungsi
untuk memanipulasi sebuah data atau beberapa data, dalam contoh di atas adalah tanda + .

Sifat-Sifat Operator
Dalam banyaknya macam-macam operator kita biasa menggolongkanya berdasarkan
sifatnya, berikut sifat-sifat dari operator:
 Unary: Sifat Unary adalah operator yang hanya melibatkan sebuah operand pada suatu
operasi. Ada dua operator unary utama yaitu increment dan decrement operator.
Bentuk Penulisan : -a;

 Binary: Sifat Binary adalah operator yang melibatkan dua operand dan satu operator di
tengah dua operand pada suatu operasi.
Bentuk Penulisan : a + b;

 Ternary: Sifat Tenary pada operator adalah operator kondisi (atau Conditional Operator)
yang melibatkan tiga buah operand pada suatu operasi.
Bentuk Penulisan
pernyataan: expresi?pilhan1:pilihan2;

Jenis-jenis Operator dalam Bahasa C

Pada sesi tutorial belajar bahasa pemrograman C sebelumnya, kita telah membahas jenis-jenis tipe
data di dalam bahasa C. Untuk mengolah data tersebut, butuh operator. Karena itulah dalam beberapa
tutorial ke depan, kita akan membahas tentang jenis-jenis operator dalam bahasa pemrograman C.

Kali ini kita akan melihat secara ringkas apa saja jenis-jenis operator dalam Bahasa C. Penjelasan lebih
lanjut beserta contoh kode programnya akan dibahas dalam tutorial terpisah.

Pengertian Operand dan Operator


Sebelum masuk ke jenis-jenis operator di dalam bahasa C, terdapat
istilah operand dan operator. Operand adalah nilai asal yang dipakai dalam sebuah proses operasi.
Sedangkan Operator adalah instruksi yang diberikan untuk mendapatkan hasil dari proses tersebut.

Biasanya operator berupa karakter matematis atau perintah singkat sederhana. Sebagai contoh, pada
operasi: 10 + 2. Angka 10 dan 2 disebut sebagai operand, sedangkan tanda tambah (karakter +)
adalah operator.
Operator Unary, Binary dan Ternary
Berdasarkan jumlah operand-nya, operator dibagi menjadi 3 jenis: Operator Unary, Operator
Binary dan Operator Ternary.

 Operator Unary adalah operator yang hanya terdiri dari 1 operand. Contohnya adalah operator
positif (plus): +7, +9, +10.111
 Operator Binary adalah operator yang terdiri dari 2 operand. Sebagian besar operator di dalam
bahasa C termasuk ke dalam operator binary. Contohnya seperti operator aritmatika: 4 + 8, 9 * 2, 8
% 2, dll.
 Operator Ternary adalah operator yang terdiri dari 3 operand. Bahasa C memiliki 1 operator
ternary, yakni ? : seperti (a == 1) ? 20: 30.

Jenis-jenis Operator dalam Bahasa Pemrograman C


Berikut jenis-jenis operator dalam bahasa pemrograman C:

 Operator Aritmatika
 Operator Increment dan Decrement
 Operator Perbandingan / Relasional
 Operator Logika / Boolean
 Operator Bitwise
 Operator Assignment
 Operator Lainnya

Daftar di atas bisa saja berbeda karena cara pengelompokkan yang dipakai, misalnya
operator increment atau decrement kadang dimasukkan ke dalam operator artmatika. Kita akan bahas
sekilas tentang pengertian dari operator-operator ini.

Operator Aritmatika
Operator aritmatika adalah operator yang biasa kita temukan untuk operasi matematika. Aritmatika
sendiri merupakan cabang ilmu matematika yang membahas perhitungan sederhana, seperti kali, bagi,
tambah dan kurang (kabataku)

Selain keempat operasi tersebut, bahasa C juga memiliki operasi modulo division, atau operator % yang
dipakai untuk mencari sisa hasil bagi.

Tabel berikut merangkum operator aritmatika dalam bahasa pemrograman C:

Operator Penjelasan Contoh

+ Penambahan a=5+2
Pengurangan a=5 2

* Perkalian a=5*2

/ Pembagian (real/pecahan) a=5/2

% Sisa hasil bagi (modulus) a=5%2

Operator Aritmatika Unary

Operator Penjelasan Contoh

+ Positif (plus) +5

Negatif (min) -3

Penjelasan lebih lanjut tentang operator Aritmatika dalam bahasa C beserta contoh kode program bisa
ke: Jenis-jenis Operator Aritmatika Bahasa C.

Operator Increment dan Decrement


Operator increment dan decrement adalah sebutan untuk operasi seperti a++, dan a--. Ini sebenarnya
penulisan singkat dari operasi a = a + 1 serta a = a 1.

Increment digunakan untuk menambah variabel sebanyak 1 angka, sedangkan decrement digunakan
untuk mengurangi variabel sebanyak 1 angka.

Penulisannya menggunakan tanda tambah 2 kali untuk increment, dan tanda kurang 2 kali
untuk decrement. Penempatan tanda tambah atau kurang ini boleh di awal seperti ++a dan --a, atau di
akhir variabel seperti a++ dan a--.

Dengan demikian terdapat 4 jenis increment dan decrement dalam bahasa C:

Operator Contoh Penjelasan

Pre-increment ++a Tambah a sebanyak 1 angka, lalu tampilkan hasilnya

Post-increment a++ Tampilkan nilai a, lalu tambah a sebanyak 1 angka

Pre-decrement --a Kurangi a sebanyak 1 angka, lalu tampilkan hasilnya

Post-decrement a-- Tampilkan nilai a, lalu kurangi a sebanyak 1 angka

Operator Perbandingan / Relasional


Operator perbandingan dipakai untuk membandingkan 2 buah nilai, apakah nilai tersebut sama besar,
lebih kecil, lebih besar, dll. Hasil dari operator perbandingan ini adalah boolean True atau False, namun
karena bahasa C tidak memiliki tipe data boolean bawaan, maka hasilnya adalah integer 1 atau 0.

Operator Penjelasan Contoh Hasil

== Sama dengan 5 == 5 1 (true)

!= Tidak sama dengan 5 != 5 0 (false)

> Lebih besar 5>6 0 (false)

< Lebih kecil 5<6 1 (true)

>= Lebih besar atau sama dengan 5 >= 3 1 (true)

<= Lebih kecil atau sama dengan 5 <= 5 1 (true)

Operator Logika / Boolean


Operator logika dipakai untuk menghasilkan nilai boolean true atau false dari 2 kondisi atau lebih.

Operator Nama Penjelasan Contoh

&& And Akan menghasilkan 1 jika kedua operand 1 1 && 0, hasilnya: 0

|| Or Akan menghasilkan 1 jika salah satu operand 1 1 || 0, hasilnya: 1

! Not Akan menghasilkan 1 jika operand 0 !0, hasilnya: 1

Rumus yang dipakai adalah sebagai berikut:

 Operator && hanya akan menghasilkan 1 jika kedua operand bernilai 1, selain itu hasilnya 0.
 Operator || hanya akan menghasilkan 0 jika kedua operand bernilai 0, selain itu hasilnya 1.
 Operator ! Akan membalikkan logika, !0 menjadi 1, !1 menjadi 0.

Operator Bitwise
Bitwise adalah operator khusus untuk menangani operasi logika bilangan biner dalam bentuk bit.

Bilangan biner sendiri merupakan jenis bilangan yang hanya terdiri dari 2 jenis angka, yakni 0 dan 1. Jika
nilai asal yang dipakai bukan bilangan biner, akan dikonversi secara otomatis oleh compiler C menjadi
bilangan biner. Misalnya 7 desimal = 0111 dalam bilangan biner.

Bahasa C mendukung 6 jenis operator bitwise. Daftar lengkapnya dapat dilihat pada tabel berikut:

Operator Nama Contoh Biner Hasil (biner) Hasil (desimal)

& AND 10 & 12 1010 & 1100 1000 8


| OR 10 | 12 1010 | 1100 1110 14

^ XOR 10 ^ 1 1010 ^ 1100 0110 6

~ NOT ~5 ~0101 1011 -11 (Two s complement)

<< Left shift 10 << 1 1010 << 1 10100 20

>> Right shift 10 >> 1 1010 >> 1 101 5

Operator Assignment
Operator assignment adalah operator yang digunakan untuk memberikan nilai ke dalam suatu variabel.
Di dalam bahasa C, operator assignment menggunakan tanda sama dengan = . Nantinya juga terdapat
operator assignment gabungan, seperti += , -= , dsb.

Operator Lainnya
Operator Lainnya ini adalah kelompok operator khusus yang tidak termasuk ke dalam kelompok
sebelumnya, diantaranya adalah operator sizeof dan operator ternary ? : .

Itulah jenis-jenis operator yang terdapat di dalam bahasa pemrograman C. Penjelasan lebih detail,
termasuk pengertian, cara penggunaan serta contoh kode programnya akan kita bahas pada tutorial
terpisah.

Jenis-jenis Operator Aritmatika Bahasa C

Operator artimatika cukup sering dipakai dalam programming, dan penggunaannya juga tidak terlalu
rumit. Dalam tutorial belajar bahasa C kali ini kita akan mempelajari tentang Jenis-jenis Operator
Aritmatika dalam Bahasa pemrograman C.

Pengertian dan Jenis Operator Aritmatika Bahasa C


Aritmatika adalah cabang ilmu matematika yang membahas perhitungan dasar kabataku , yakni
operasi perkalian, pembagian, penambahan dan pengurangan.

Selain keempat operasi di atas, bahasa C juga memiliki operasi modulo division, atau operator % yang
dipakai untuk mencari sisa hasil bagi.

Tabel berikut merangkum operator aritmatika dalam bahasa pemrograman C:


Operator Penjelasan Contoh

+ Penambahan a=5+2

– Pengurangan a=5–2

* Perkalian a=5*2

/ Pembagian (real/pecahan) a=5/2

% Sisa hasil bagi (modulus) a=5%2

Operator Aritmatika Unary

Operator Penjelasan Contoh

+ Positif (plus) +5

– Negatif (min) -3

Kita akan bahas dengan contoh kode program sesaat lagi.

Contoh Kode Program Operator Aritmatika Bahasa C


Berikut contoh kode program penggunaan berbagai operator aritmatika dalam bahasa C:

1#include <stdio.h>
2
3int main(void)
{
4
int a, b, c, d, e, f;
5
6
a = 8 + 4;
7
b = 9 - 2;
8
c = 2 * 3;
9
d = 10 + 3 - 7 * 4;
10
e = ( ( 10 +3 ) -7) * 4;
11
f = -79;
12
13 printf("Isi variabel a: %d \n",a);
14 printf("Isi variabel b: %d \n",b);
15 printf("Isi variabel c: %d \n",c);
16 printf("Isi variabel d: %d \n",d);
17 printf("Isi variabel e: %d \n",e);
printf("Isi variabel f: %d \n",f);
18
19
return 0;
20
}
21
22

Dalam contoh ini kita membuat beberapa operasi aritmatika,


yakni penambahan, pengurangan dan perkalian.

Aturan prioritas operator berlaku di sini, dimana operator perkalian dan pembagian akan dijalankan
terlebih dahulu daripada operator pengurangan dan penambahan. Untuk operator yang sama kuat
(seperti penambahan dan pengurangan), akan diproses dari kiri ke kanan.

Tanda kurung bisa dipakai untuk memprioritaskan operator tertentu, seperti untuk menghitung
variabel e dalam contoh di atas.

kita sengaja tidak menampilkan operator pembagian karena ada beberapa hal yang akan kita bahas.
Perhatikan kode berikut ini:

1#include <stdio.h>
2
3int main(void)
{
4
int a, b, c;
5
6
a = 8 / 4;
7
b = 8 / 3;
8
c = 8 / 2;
9
10
printf("Isi variabel a: %d \n",a);
11
printf("Isi variabel b: %d \n",b);
12 printf("Isi variabel c: %d \n",c);
13 return 0;
14}
15

Di sini kita membuat 3 variabel integer: a, b, c. Untuk operasi a dan c tidak ada masalah, hasilnya sesuai
dimana 8 / 4 = 2 dan 8 /2 = 4.

Tapi kenapa 8 / 3 menghasilkan angka 2? Mungkin ini karena b di set sebagai integer,
bukan float atau double. Mari kita ubah tipe datanya:

1#include <stdio.h>
2
3int main(void)
{
4
double a;
5
a = 8 / 3;
6
7
printf("Isi variabel a: %f \n",a);
8
return 0;
9
}
10

Mengapa hasilnya tetap 2? Ini terjadi karena bahasa C melihat tipe data operand yang dipakai. Di sini
operand nya adalah 8 dan 3 yang merupakan integer (angka bulat).

Agar operasi pembagian menghasilkan nilai float, kedua operand harus ditulis dalam format pecahan,
yakni 8.0 dan 3.0. Berikut hasilnya:

1#include <stdio.h>
2
3int main(void)
{
4
double a;
5
a = 8.0 / 3.0;
6
7
printf("Isi variabel a: %f \n",a);
8
9 return 0;
10}

Yup, sekarang hasilnya sudah sesuai, dimana 8.0 / 3.0 adalah 2.666667. Untuk memformat tampilan
akhir misalnya menjadi 2.66, bisa menggunakan berbagai teknik yang pernah kita bahas pada tutorial
tipe data floa.

Pengertian Operator Mod (Modulus)


Operator mod (singkatan dari modulo atau modulus) dipakai untuk mencari nilai sisa pembagian.
Operator mod perlu penjelasan tersendiri terutama bagi yang baru pertama kali belajar bahasa
pemrograman komputer. Operator ini terdengar asing tapi sebenarnya cukup sederhana.

Sebagai contoh:

 8 mod 5 = 3, karena 3 adalah angka sisa pembagian.


 100 mod 7 = 2, karena hanya 98 yang habis dibagi 7 (bersisa 2).
Berikut contoh kode program penggunaan operator mod dalam bahasa C:

1#include <stdio.h>
2
3int main(void)
{
4
int a, b, c, d;
5
6
a = 8 % 4;
7
b = 8 % 5;
8
c = 10 % 2;
9
d = 100 % 7;
10
11
printf("Isi variabel a: %d \n",a);
12 printf("Isi variabel b: %d \n",b);
13 printf("Isi variabel c: %d \n",c);
14 printf("Isi variabel d: %d \n",d);
15
16 return 0;
17}
18

Hasil kode program:


Isi variabel a: 0
Isi variabel b: 3
Isi variabel c: 0
Isi variabel d: 2

Operator modulus ini cukup sering dipakai, misalnya menentukan sebuah bilangan genap atau ganjil.
Untuk keperluan ini kita bisa memeriksa apakah a % 2 menghasilkan 0? Jika iya, maka a berisi bilangan
genap.

Dalam tutorial bahasa C kali ini kita telah membahas cara penggunaan operator aritmatika. Selain itu
juga disinggung cara penggunaan operasi pembagian bahasa C yang butuh sedikit trik, serta pengertian
dari operator modulus.

Jenis-jenis Operator Increment & Decrement Bahasa C

Melanjutkan materi tentang operator dalam bahasa pemrograman C, kali ini kita akan membahas Jenis-
jenis Operator Increment dan Decrement dalam Bahasa C. Beberapa sumber ada yang mengelompokkan
operator ini ke dalam operator aritmatika, namun kita akan memisahkannya menjadi bahasan tersendiri.

Pengertian Increment dan Decrement Bahasa C


Operator increment dan decrement adalah sebutan untuk operasi seperti a++, dan a--. Ini sebenarnya
penulisan singkat dari operasi a = a + 1 serta a = a 1.

Increment digunakan untuk menambah variabel sebanyak 1 angka, sedangkan decrement digunakan
untuk mengurangi variabel sebanyak 1 angka.

Penulisannya menggunakan tanda tambah 2 kali untuk increment, dan tanda kurang 2 kali
untuk decrement. Penempatan tanda tambah atau kurang ini boleh di awal seperti ++a dan --a, atau di
akhir variabel seperti a++ dan a--.

Dengan demikian terdapat 4 jenis increment dan decrement dalam bahasa C:


Operator Contoh Penjelasan

Pre-increment ++a Tambah a sebanyak 1 angka, lalu tampilkan hasilnya

Post-increment a++ Tampilkan nilai a, lalu tambah a sebanyak 1 angka

Pre-decrement --a Kurangi a sebanyak 1 angka, lalu tampilkan hasilnya

Post-decrement a-- Tampilkan nilai a, lalu kurangi a sebanyak 1 angka

Untuk melihat apa perbedaan dari setiap operator akan kita bahas dengan contoh kode program.

Contoh Kode Program Increment dan Decrement


Secara umum, penulisan tanda di awal maupun di akhir akan menghasilkan nilai yang sama. Berikut
contohnya:

1#include <stdio.h>
2
3int main(void)
{
4
int a = 5;
5
a++;
6
printf("Isi variabel a: %d \n",a);
7
8
int b = 5;
9
++b;
10
printf("Isi variabel b: %d \n",b);
11
12 return 0;
13}
14

Di sini kita mengisi angka 5 sebagai nilai awal untuk variabel a dan b. Hasilnya, setelah
operasi a++ dan ++b, kedua variabel sama-sama berisi angka 6. Artinya variabel a dan b akan bertambah
1 angka.

Hal yang sama juga berlaku di decrement:

1#include <stdio.h>
2
3int main(void)
4{
int a = 5;
5
a--;
6
printf("Isi variabel a: %d \n",a);
7
8
int b = 5;
9
--b;
10
printf("Isi variabel b: %d \n",b);
11
12
return 0;
13}
14

Hasil kode program:

1Isi variabel a: 4
2Isi variabel b: 4

kita kembali mengisi angka 5 sebagai nilai awal untuk variabel a dan b. Hasilnya, setelah operasi a-- dan --
b, kedua variabel sama-sama berisi angka 4. Artinya variabel a dan b akan berkurang 1 angka.

Perbedaan Pre-Increment dengan Post-Increment


Jadi apa beda antara pre-increment (++a) dengan post-increment (a++)? Perbedaannya baru terlihat jika
kita akses pada saat operasi berlangsung, seperti contoh berikut:

1#include <stdio.h>
2
3int main(void)
{
4
int a = 5;
5
printf("Post Increment \n");
6
printf("Isi variabel a: %d \n",a);
7
printf("Isi variabel a: %d \n",a++);
8
9 printf("Isi variabel a: %d \n",a);
10
11 printf("\n");
12
13 int b = 5;
printf("Pre Increment \n");
14
printf("Isi variabel b: %d \n",a);
15
printf("Isi variabel b: %d \n",++a);
16
printf("Isi variabel b: %d \n",a);
17
18
return 0;
19
}
20

Perbedaannya ada di baris 8 dan 16, yakni ketika kita akses langsung pada saat operasi increment
dilakukan.

Terlihat bahwa post-increment (a++), akan menampilkan hasilnya terlebih dahulu, baru nilai variabel a
naik 1 angka, namun dengan pre-increment (++a), variabel a akan ditambahkan 1 angka, baru nilainya
ditampilkan.

Begitu juga hal nya dengan operasi post-decrement dan pre-decrement:

1#include <stdio.h>
2
3int main(void)
{
4
int a = 5;
5
printf("Post Decrement \n");
6
printf("Isi variabel a: %d \n",a);
7
printf("Isi variabel a: %d \n",a--);
8
printf("Isi variabel a: %d \n",a);
9
10
printf("\n");
11
12 int b = 5;
13 printf("Pre Decrement \n");
14 printf("Isi variabel b: %d \n",b);
15 printf("Isi variabel b: %d \n",--b);
16 printf("Isi variabel b: %d \n",b);
17
return 0;
18
}
19
20

Hasil kode program:


Post Decrement
Isi variabel a: 5
Isi variabel a: 5
Isi variabel a: 4

Pre Decrement
Isi variabel b: 5
Isi variabel b: 4
Isi variabel b: 4

Terlihat bahwa post-decrement (a--), akan menampilkan hasilnya terlebih dahulu, baru nilai variabel a
dikurangi 1 angka. Dengan pre-decrement (--a), variabel a langsung dikurangi 1 angka, lalu nilainya
ditampilkan.

Operator increment dan decrement yang kita bahas disini nantinya banyak di terapkan dalam perulangan
(looping). Selain itu kebiasaan banyak programmer lebih sering menggunakan post-increment (a++) dan
post-decrement (a--). Nama bahasa pemrograman C++ juga terinspirasi dari post increment dari bahasa
C, yakni penambahan dari bahasa C.

Jenis-jenis Operator Perbandingan / Relasional Bahasa C

Menyambung materi tentang operator di bahasa pemrograman C, kali ini kita akan membahas Jenis-
jenis Operator Perbandingan / Relasional dalam Bahasa C.
Operator Perbandingan Bahasa C
Operator perbandingan dipakai untuk membandingkan 2 buah nilai, apakah nilai tersebut sama besar,
lebih kecil, lebih besar, dst. Hasil dari operator perbandingan ini adalah boolean True atau False, namun
karena bahasa C tidak memiliki tipe data boolean bawaan, maka hasilnya adalah integer 1 atau 0.

Di dalam bahasa C, terdapat 6 operator perbandingan:

Operator Penjelasan Contoh Hasil

== Sama dengan 5 == 5 1 (true)

!= Tidak sama dengan 5 != 5 0 (false)

> Lebih besar 5>6 0 (false)

< Lebih kecil 5<6 1 (true)

>= Lebih besar atau sama dengan 5 >= 3 1 (true)

<= Lebih kecil atau sama dengan 5 <= 5 1 (true)

Operator perbandingan ini biasa dipakai dalam proses pengambilan keputusan atau percabangan kode
program. Sebagai contoh, jika angka pertama lebih besar dari kedua, maka jalankan perintah ini. Atau
jika string password = qwerty maka berikan hak akses.

Operator perbandingan kadang disebut juga dengan operator relasional karena kita membandingkan
hubungan (relasi) sebuah nilai dengan nilai lainnya.

Contoh Kode Program Operator Perbandingan Bahasa C


Berikut contoh kode program untuk operasi perbandingan dalam bahasa pemrograman C:

1#include <stdio.h>
2
3int main(void)
{
4
int a;
5
6
a = 5 == 5;
7
printf("Isi variabel a: %d \n",a);
8
9
a = 5 != 5;
10 printf("Isi variabel a: %d \n",a);
11
12 a = 5 > 5;
13 printf("Isi variabel a: %d \n",a);
14
a = 5 >= 5;
15
printf("Isi variabel a: %d \n",a);
16
17
a = 5 < 5;
18
printf("Isi variabel a: %d \n",a);
19
20
a = 5 <= 5;
21
printf("Isi variabel a: %d \n",a);
22
23
return 0;
24}
25
26

Karena bahasa C tidak memiliki tipe data boolean, maka hasilnya antara 1 (sebagai pengganti true)
atau 0 (sebagai pengganti false)

Operasi perbandingan tidak hanya untuk tipe data angka saja, tapi juga bisa berbagai tipe data lain
seperti char. Berikut contohnya:

1#include <stdio.h>
2
3int main(void)
{
4
int a;
5
6
a = 'a' == 'a';
7
printf("Isi variabel a: %d \n",a);
8
9 a = 'A' != 'B';
10 printf("Isi variabel a: %d \n",a);
11
12 a = "Duniailkom" == "duniailkom";
13 printf("Isi variabel a: %d \n",a);
14
a = 'A' > 'B';
15
printf("Isi variabel a: %d \n",a);
16
17
return 0;
18
}
19
20

Hasil kode program:

1Isi variabel a: 1
2Isi variabel a: 1
Isi variabel a: 0
3
Isi variabel a: 0
4

Jika yang dibandingkan berupa karakter, hasilnya dilihat dari urutan karakter ASCII. Dalam tabel ASCII,
karakter A memiliki nomor urut yang lebih rendah daripada B , sehingga A > B adalah false (0).

Dalam prakteknya, operasi perbandingan baru berguna dalam percabangan kode program seperti
struktur IF. Berikut contohnya:

1#include <stdio.h>
2
3int main(void)
{
4
int a;
5
6
printf("Input angka sembarang: ");
7
scanf("%d",&a);
8
9
if (a % 2 == 0) {
10 printf("%d adalah angka genap \n",a);

11 }
12 else {
13 printf("%d adalah angka ganjil \n",a);

}
14
15
return 0;
16
}
17
18

Kita memang belum membahas tentang struktur if, tapi konsepnya cukup sederhana. Di awal kode
program kita meminta user untuk menginput sebuah angka. Angka ini kemudian disimpan ke dalam
variabel a hasil dari perintah scanf( %d ,&a).

Pada baris 10, kita melakukan sebuah operasi perbandingan: if (a % 2 == 0)? Yakni apakah a habis dibagi
2? Jika anda ragu dengan tanda %, itu adalah operator modulus yang pernah kita bahas dalam tutorial
operator aritmatika.

Kondisi di atas hanya akan true (1) jika a diisi dengan angka genap. Jika ini yang terjadi, jalankan
perintah printf( %d adalah angka genap \n ,a). Jika hasilnya false, jalankan printf( %d adalah angka
ganjil \n ,a). Inilah salah satu penerapan dari operasi perbandingan / relasi.

Jenis-jenis Operator Logika Bahasa C

Dalam tutorial belajar bahasa C di duniailkom kali ini kita akan membahas jenis-jenis operator
logika. Operator logika ini sering juga disebut sebagai operator boolean.

Pengertian Operator Logika dalam Bahasa C


Operator logika adalah operator yang digunakan untuk membuat kesimpulan logis dari 2 kondisi
boolean: true atau false. Karena bahasa C tidak memiliki tipe data boolean, maka kita menggunakan
angka 1 untuk pengganti true, dan angka 0 untuk pengganti false.

Dalam bahasa C terdapat 3 operator logika:

OperatorNamaPenjelasan Contoh

&& And Akan menghasilkan 1 jika kedua operand 1 1 && 0,


hasilnya: 0
|| Or Akan menghasilkan 1 jika salah satu 1 || 0,
operand 1 hasilnya: 1

! Not Akan menghasilkan 1 jika operand 0 !0, hasilnya: 1

Pada prakteknya, operator logika ini banyak dipakai untuk menggabungkan beberapa hasil operasi
perbandingan (contohnya akan kita lihat sesaat lagi).

Catatan: operator OR menggunakan karakter pipe | , bukan huruf L kecil. Karakter pipe ini bergabung
dengan tombol \ dan ditekan menggunakan tombol shift.

Contoh Kode Program Operator Logika Bahasa C


Dalam bentuk paling sederhana, operator logika bisa diproses untuk integer 1 dan 0. Dimana 1
mewakili true, dan 0 mewakili false. Berikut contoh kode programnya:

1#include <stdio.h>
2
3int main(void)
{
4
int a;
5
6
a = 0 && 1;
7
printf("Isi variabel a: %d \n",a);
8
9
a = 1 && 1;
10
printf("Isi variabel a: %d \n",a);
11
12
a = 0 || 1;
13 printf("Isi variabel a: %d \n",a);
14
15 a = 0 || 0;
16 printf("Isi variabel a: %d \n",a);
17
18 a = !0;
19 printf("Isi variabel a: %d \n",a);
20
21 return 0;
22}
23

Di sini kita membuat beberapa percobaan menggunakan operator logika. Rumus yang dipakai adalah
sebagai berikut:

 Operator && hanya akan menghasilkan 1 jika kedua operand bernilai 1, selain itu hasilnya 0.
 Operator || hanya akan menghasilkan 0 jika kedua operand bernilai 0, selain itu hasilnya 1.
 Operator ! Akan membalikkan logika, !0 menjadi 1, !1 menjadi 0.

Kita juga bisa menggabungkan lebih dari satu operasi seperti contoh berikut:

1#include <stdio.h>
2
3int main(void)
{
4
int a;
5
6
a = (0 && 1) || (1 || 0);
7
printf("Isi variabel a: %d \n",a);
8
9
a = !0 && (0 || 1);
10
printf("Isi variabel a: %d \n",a);
11
12
a = ((1 && 1) || (1 || 0)) && !1;
13 printf("Isi variabel a: %d \n",a);
14
15 return 0;
16}
17

Hasil kode program:


1Isi variabel a: 1
2Isi variabel a: 1
Isi variabel a: 0
3

Untuk operasi seperti ini, akan diproses dari kiri ke kanan, kecuali ditemukan tanda kurung maka itulah
yang akan diproses terlebih dahulu.

 Di baris 7, operasi (0 && 1) || (1 || 0) akan diproses menjadi 0 || 1, hasilnya 1.


 Di baris 10, operasi !0 && (0 || 1) akan diproses menjadi 1 && 1, hasilnya 1.
 Di baris 13, operasi ((1 && 1) || (1 || 0)) && !1 akan diproses menjadi (1 || 1) && 0, kemudian
menjadi 1 && 0, hasilnya 0.

Nilai boolean true (1) dan false (0) ini biasanya di dapat dari hasil operasi perbandingan. Inilah praktek
yang sering dibuat untuk operator logika, berikut contohnya:

1#include <stdio.h>
2
3int main(void)
{
4
int a;
5
6
a = (5 > 4) && (10 > 9);
7
printf("(5 > 4) && (10 > 9): %d \n",a);
8
9
a = (15 <= 15) && (15 < 15);
10
printf("(15 <= 15) && (15 < 15): %d \n",a);
11
12
a = ('a' == 'a') || ('a' == 'b');
13 printf("'a' == 'a') || ('a' == 'b'): %d \n",a);
14
15 a = (10 > 7) && ('duniailkom' == 'duniailkom');
16 printf("(10 > 7) && ('duniailkom' == 'duniailkom'): %d
\n",a);
17
18
return 0;
19}
20

 Di baris 7, operasi (5 > 4) && (10 > 9) akan diproses menjadi 1 && 1, hasilnya 1.
 Di baris 10, operasi (15 <= 15) && (15 < 15) akan diproses menjadi 1 && 0, hasilnya 0.
 Di baris 13, operasi ( a == a ) || ( a == b ) akan diproses menjadi 1 || 0, hasilnya 1.
 Di baris 16, operasi (10 > 7) && ( duniailkom == duniailkom ) akan diproses menjadi 1 && 1,
hasilnya 1.

Sama seperti operasi perbandingan, operasi logika ini akan banyak dipakai pada percabangan kode
program, misalnya untuk bisa login seseorang harus memiliki username DAN password yang sesuai. Jika
salah satu saja tidak terpenuhi, maka tidak bisa login.

Jenis-jenis Operator Bitwise Bahasa C

Melanjutkan pembahasan tentang operator bahasa C, dalam tutorial ini kita akan
mempelajari Pengertian dan Jenis-jenis Operator Bitwise dalam bahasa pemrograman C.

Pengertian Operator Bitwise dalam Bahasa C


Bitwise adalah operator khusus untuk menangani operasi logika bilangan biner dalam bentuk bit.

Bilangan biner sendiri merupakan jenis bilangan yang hanya terdiri dari 2 jenis angka, yakni 0 dan 1. Jika
nilai asal yang dipakai bukan bilangan biner, akan dikonversi secara otomatis oleh compiler C menjadi
bilangan biner. Misalnya 7 desimal = 0111 dalam bilangan biner.

Dalam penerapannya, operator bitwise tidak terlalu sering dipakai, kecuali anda sedang membuat
program yang harus memproses bit-bit komputer. Selain itu operator ini cukup rumit dan harus memiliki
pemahaman tentang sistem bilangan biner. Dalam bahasan kali ini kita menganggap anda sudah paham
beda antara bilangan biner (basis 2) dan bilangan desimal (basis 10).

Bahasa C mendukung 6 jenis operator bitwise. Daftar lengkapnya dapat dilihat pada tabel berikut:

Operator Nama Contoh Biner Hasil (biner) Hasil (decimal)

& AND 10 & 12 1010 & 1100 1000 8

| OR 10 | 12 1010 | 1100 1110 14

^ XOR 10 ^ 12 1010 ^ 1100 0110 6

~ NOT ~ 10 ~1010 0101 -11 (two complement)


<< Left shift 10 << 1 1010 << 1 10100 20

>> Right shift 10 >> 1 1010 >> 1 101 5

Contoh Kode Program Operator Bitwise Bahasa C


Langsung saja kita bahas dengan contoh kode program berikut:

1#include <stdio.h>
2
3int main(void)
{
4
int a, b, hasil;
5
6
a = 181;
7
b = 108;
8
9
printf("=== Operator Bitwise Bahasa C === \n\n");
10
11
hasil = a & b;
12
printf("a & b: %d \n",hasil);
13
14 hasil = a | b;
15 printf("a | b: %d \n",hasil);
16
17 hasil = a ^ b;
18 printf("a ^ b: %d \n",hasil);
19
20 hasil = ~a;
21 printf("~a: %d \n",hasil);
22
23 hasil = a >> 1;
printf("a >> 1: %d \n",hasil);
24
25 hasil = b << 2;
26 printf("b << 2: %d \n",hasil);
27 return 0;
28}
29
30

Dalam contoh di atas, kita mendefinisikan 2 variabel: a dan b. Kemudian memberikan nilai
awal 181 dan 108. Jika di konversi ke dalam bentuk biner, keduanya berisi angka berikut:
a = 181 (desimal) = 10110101 (biner)
b = 108 (desimal) = 01101100 (biner)

Di baris 12 kita melakukan operasi & (AND) terhadap kedua variabel. Operasi bitwise and ini akan
memproses bit per bit dari kedua variabel, jika kedua bit sama-sama 1, maka hasilnya juga 1, selain
kondisi tersebut, nilai akhirnya adalah 0. Berikut perhitungan bitwise and :

a = 10110101

b = 01101100

--------
a & b = 00100100 = 36 (desimal)

Dan dari hasil printf, terlihat bahwa hasilnya adalah 36 (dalam bentuk desimal).

Di baris 15 terdapat operasi | (OR), hasilnya akan bernilai 0 jika kedua bit bernilai 0, selain itu nilai bit
akan di set menjadi 1. Berikut cara perhitungan bitwise or :

a = 10110101

b = 01101100

--------
a | b = 11111101 = 253 (desimal)

Di baris 18 terdapat operasi ^ (XOR), hasilnya akan bernilai 1 jika salah satu dari kedua variabel bernilai 1
(namun tidak keduanya). Atau dengan kata lain jika kedua bit berlainan, hasilnya 1 tapi kalau sama-sama
0 atau sama-sama 1, hasilnya 0.

Berikut cara perhitungan bitwise xor :

a = 10110101

b = 01101100

--------
$a ^ $b = 11011001 = 217 (desimal)

Di baris 21, kita membuat operasi ~ atau not, yang akan membalikkan nilai bit sebuah variabel dari 0
menjadi 1, dan 1 menjadi nol. Namun perhitungan bit not ini sedikit membingungkan karena jika kita
hanya membalikkan seluruh bit saja, hasilnya tidak sesuai dengan apa yang dihitung oleh compiler C:

a = 10110101

--------
~a = 01001010 = 74 (desimal) ==> salah ???

Dari hasil menjalankan program, dapat dilihat bahwa ~a = -182, dari manakah datangnya angka -182?

Ini berkaitan dengan cara compiler bahasa C menyimpan angka biner (dan juga hampir semua bahasa
pemrograman komputer modern). Angka biner di dalam bahasa C disimpan dalam format Two s
complement . Penjelasan tentang Two s complement ini cukup panjang, Anda dapat mencari sumber
yang membahas hal ini.

Secara singkat, rumusnya adalah -a - 1, sehingga ~a = -181 - 1 = -182 (desimal)

Di baris 24, terdapat operator shift right >> dimana bahasa C akan menggeser posisi bit dalam variabel
a ke kanan sebanyak 1 tempat. Berikut proses yang terjadi:

a = 10110101 = 181

a >> 1 = 1011010 = 90 (desimal)

Operator shift right menggeser nilai biner variabel a ke arah kanan, sehingga digit paling kanan akan
dihapus. Operator shift right ini akan menghasilkan nilai asal / 2. Dalam contoh kita, hasilnya adalah
180/2 = 90 (dibulatkan). Setiap penggeseran 1 tempat ke kanan akan membagi 2 nilai asal.

Di baris 27 adalah operator shift left << dimana nilai variabel b akan digeser sebanyak 2 digit ke kiri.
Berikut proses yang terjadi:

b = 01101100 = 108

b << 1 = 011011000 = 216 (desimal)

b << 2 = 0110110000 = 432 (desimal)

Ketika hasil pergeseran ke kiri, digit paling kanan akan diisi angka 0. Setiap penggeseran 1 tempat ke kiri
akan mengkali 2 nilai asal. Karena variabel b berisi desimal 108, maka hasil dari << 2 sama dengan 108 *
2 = 216, 216 * 2 = 432.

Jenis-jenis Operator Assignment Bahasa C

Dalam tutorial bahasa pemrograman C di Duniailkom kali ini kita akan membahas Jenis-jenis Operator
Assignment Bahasa C.
Pengertian Operator Assignment / Penugasan
Operator assignment adalah operator untuk memasukkan suatu nilai ke dalam variabel. Operator ini
sebenarnya sudah sering kita pakai sepanjang tutorial bahasa C di Duniailkom. Dalam bahasa C, operator
assignment menggunakan tanda sama dengan ( = ).

Pembacaan operasi assignment dilakukan dari kanan ke kiri, bukan dari kiri ke kanan seperti yang biasa
kita pahami dalam matematika.

Kode berikut:
a = 500;

Berarti memasukkan nilai 500 ke dalam variabel a . Dalam bahasa pseudo code (jika anda membaca
buku tentang algoritma), ini biasa ditulis dengan simbol panah ke kiri:
a <- 500

Operator assignment ini disebut juga sebagai operator penugasan.

Contoh Kode Program Operator Assignment Bahasa C


Dalam prakteknya, operator assignment juga bisa dipakai bertingkat seperti contoh berikut:

1#include <stdio.h>
2
3int main(void)
{
4
int a, b, c, d, e;
5
a = 5;
6
b = 3;
7
b = b + 1;
8
c = a + b;
9
d = c + c + a;
10
e = (c + d)* a;
11
12 printf("Isi variabel a: %d \n",a);
13 printf("Isi variabel b: %d \n",b);
14 printf("Isi variabel c: %d \n",c);
15 printf("Isi variabel d: %d \n",d);
16 printf("Isi variabel e: %d \n",e);
17
18 return 0;
19}
20

Di awal kode program kita mendefinisikan 5 variabel, yakni a, b, c, d, dan e sebagai integer. Kemudian
menginput angka 5 ke dalam variabel a (baris 6), dan angka 3 ke dalam variabel b (baris 7).

Di baris 8, perintah b = b + 1 mungkin bisa membuat bingung. Tapi intinya adalah, operator assignment
di proses dari kanan ke kiri, jadi operasi tersebut bisa dibaca: tambah isi variabel b dengan 1, lalu
simpan kembali ke dalam variabel b . Karena variabel b sudah berisi angka 3, maka hasil akhirnya
variabel b akan bernilai 4.

Di baris 9, perintah c = a + b akan di proses sebagai c = 5 + 4, hasilnya c berisi angka 9.

Di baris 10, perintah d = c + c + a akan di proses sebagai d = 9 + 9 + 5, hasilnya c berisi angka 23.

Terakhir, di baris 11, perintah e = (c + d)* a akan di proses sebagai e = (9 + 23) * 5, hasilnya c berisi
angka 160.

Operator Assignment Gabungan Bahasa C


Operator assignment gabungan adalah cara penulisan singkat operator assignment yang digabung
dengan dengan operator lain. Dalam bahasa C (dan juga bahasa turunan C seperti C++, PHP, JavaScript
atau Java), operator assignment gabungan ini terdiri dari operator assignment dengan operator lain
seperti operator aritmatika dan bitwise.

Sebagai contoh, operasi a = a + 1 bisa disingkat (dan digabung) menjadi a += 1. Contoh lain operasi b >>=
1 adalah penulisan singkat dari b = b >> 1.

Tidak ada pengaruh apa-apa dari penulisan singkat seperti ini, anda boleh memilih penulisan yang
panjang a = a + 1, atau di singkat menjadi a += 1.

Tabel berikut merangkum semua operator assignment dalam bahasa C:

Operator Contoh Penjelasan

+= a += b a=a+b

-= a -= b a=a–b

*= a *= b a=a*b

/= a /= b a=a/b

%= a %= b a=a%b
&= a &= b a=a&b

|= a |= b a=a|b

^= a ^= b a=a^b

<<= a <<= b a = a << b

>>= a >>= b a = a >> b

Contoh Kode Program Operator Assignment Gabungan Bahasa C


Berikut contoh praktek dari operator gabungan dalam bahasa C:

1#include <stdio.h>
2
3int main(void)
{
4
int a = 10, b = 10, c = 10, d = 10, e = 10, f = 10;
5
6
printf("Operator assignment gabungan bahasa C \n");
7
printf("===================================== \n\n");
8
printf("Variabel a, b, c, d, e, f = 10 \n\n");
9
a += 5;
10
printf("Hasil operasi 'a += 5': %d \n",a);
11
12 b -= 3;
13 printf("Hasil operasi 'b -= 3': %d \n",b);
14
15 c *= 3;
16 printf("Hasil operasi 'c *= 3': %d \n",c);
17
18 d /= 3;
19 printf("Hasil operasi 'd /= 3': %d \n",d);
20
21 e %= 3;
22 printf("Hasil operasi 'e %%= 3': %d \n",e);
23
24 f <<= 2;
25 printf("Hasil operasi 'f <<= 2': %d \n",f);
26
return 0;
27
}
28
29

Dalam kode program ini kita membuat 6 buah operator assignment gabungan. Variabel a, b, c, d, e, dan
f semuanya diisi dengan nilai awal 10, kemudian di proses dengan berbagai operator assignment
gabungan.

Catatan: Jika Anda ingin menguasai bahan pelajaran ini, penting diperhatikan, Anda harus
mencobakan semua contoh program yang telah dibahas!

3. Aktivitas Pembelajaran*)
Menu Aktifitas Keterangan
Informasi, Kehadiran dan Tatap Maya
1. Informasi Mahasiswa melihat informasi
Perkuliahan terbaru terkait perkuliahan
melalui menu Announcement
2. Presensi Mahasiswa melakukan
Online pengisian presensi online
3. Tatap Maya Mahasiswa melakukan tatap
maya (web conference) sesuai
dengan jadwal yang ditetapkan
oleh dosen (opsional)
Sumber Belajar
3. Modul Ajar Mahasiswa mempelajari materi
kuliah melalui Modul Ajar
4. Slide Mahasiswa mempelajari intisari
materi melalui slide presentasi
5. Video Mahasiswa menyaksikan
Pendukung tayangan video pendukung
yang berisi materi contoh
pemrograman dengan
menerapkan struktur kontrol
sekuensial, percabangan dan
perulangan.
Aktifitas Belajar
6. Latihan Mahasiswa mengerjakan
Latihan membuat program
sederhana.
7. Tugas Mahasiswa mengerjakan tugas
proyek dengan menerapkan
struktur kontrol sekuensial,
percabangan dan perulangan
dalam menyelesaikan masalah
sederhana.
8. Tes Online Mahasiswa mengikuti Tes yang
dilakukan pada akhir topik
bahasan materi (Opsional)

4. Kasus/Tugas**)
1) Mengkonversikan jam-menit-detik (hh:mm:ss) menjadi total detik. Data jam-menit-detik
diberikan nilainya pada bagian deklarasi program.
Ingatlah bahwa : 1 menit = 60 detik
1 jam = 3600 detik
Misal, 1 jam, 5 menit, 40 detik adalah (1 x 3600) + (5 x 60) + 40 = 3940 detik.

2) Dibaca lama sebuah percakapan telepon dalam satuan detik. Tulislah algoritma program
dalam bahasa C untuk menghitung berapa jam, berapa menit, berapa detik percakapan
telepon tersebut.
Contoh 4000 detik = 1 Ingatlah bahwa : 1 menit jam + 6 menit + 40 detik, ini diperoleh
dengan cara :
4000 div 3600 = 1 (jam)
4000 mod 3600 = 400 (sisa detik)
400 div 60 = 6 (menit)
400 mod 60 = 40 (detik)
Masalah pada soal kasus ini merupakan kebalikan dari kasus/tugas soal sebelumnya.

3) Buatlah algoritma program dalam bahasa C/C++ bagaimana cara mempertukarkan nilai dua buah
variable drum-A dan drum-B…? Misalnya sebelum pertukaran nilai (isi) drum-A adalah 18, dan
nilai drum-B adalah 25, maka setelah pertukaran, nilai drum-A adalah 25 dan nilai drum-B adalah
18. Andaikan nilai yang dipertukarkan adalah bertipe long-integer. Buatlah algoritma programnya
dalam bahasa C/C++.

4) Buatlah program untuk menerima daftar nilai mahasiswa sbb :


Input : - Jumlah data (n)
- Nilai ke-1 s/d Nilai ke-n
Output : - Nilai minimal
- Nilai maksimal
- Nilai rata-rata (rata-rata = nilai total / jumlah data)

5) Buatlah program untuk menerima 2 buah bilangan bulat masukan. Tampilkan hasil dari
pembagian bilangan pertama dengan bilangan kedua, dengan ketelitian 3 desimal.
Input : bil1 dan bil2
Output : hasil bagi bil1 dengan bil2
Nilai tambah: program bisa mengecek pembagian dengan nol, yaitu jika bilangan kedua
adalah nol, maka tidak dilakukan proses pembagian, namun ditampilkan pesan
kesalahannya (division by zero).

f. Soal Teori :
1) Jelaskan struktur beberapa komponen dasar sebuah program sederhana yang
ditulis dengan bahasa C.
2) Apakah yang dimaksudkan dengan men-deklarasi (declare) atau menyatakan ?
3) Apakah arti format spesifikasi (specification) %x ?
4) Terangkan apa maksud dari escape sequence \v ?
5) Jelaskanlah dengan kalimat sendiri kegunaan dari file header
6) Tuliskan dan terangkan minimal tujuh macam operator
7) Jelaskan perbedaan antara variable statis (static variable) dan variable otomatis
(automatic variable).

g. Daftar Rujukan**)
1) Munir, Rinaldi. (2016). Algoritma dan pemrograman : Dalam bahasa pascal, C, dan
C++. Informatika, Bandung., Penerbit Andi Offset, Yogyakarta..
2) Gudono , MBA., (1995)., Pemrograman C dan C++
3) G.Kochan, S. (2001). Programming in C, Third Edition (Vol. 40).
https://doi.org/10.1002/1521-3773(20010316)40:6<9823::AIDANIE9823

Anda mungkin juga menyukai