Lompat ke konten Lompat ke sidebar Lompat ke footer

Preincrement dan Predecrement Bahasa C dan Fungsinya

Pada bahasa C, pre-increment (atau pre-decrement) dapat digunakan sebagai l-value, tetapi post-increment (atau post-decrement) tidak dapat digunakan sebagai l-value.


2 Contoh Program Preincrement (Predecrement) pada Bahasa C
Ilustrasi Preincrement Bahasa C


Sebelum memahami lebih dalam materi tentang Preincrement dan Predecrement Bahasa C dan Fungsinya, terlebih dahulu pelajari materi tentang: Operator Ternary Bahasa C dan Fungsinya [klik], Program Modulus Angka Negatif Bahasa C [klik], dan Awalan dan Akhiran Bahasa C Menggunakan Tanda ++ [klik].

Contoh: program berikut akan mencetak nilai a=20 (++a digunakan sebagai I-value).

// Ilustrasi program untuk

// Pre-increment (atau

// pre-decrement) 

#include <cstdio> 

 

int main() 

int a = 10

++a = 20;

 

printf("a = %d", a); 

getchar(); 

 

return 0

}

Output:
a=20


Program sebelumnya dapat berfungsi dengan baik jika dikompilasi oleh kompilator, namun program selanjutnya akan gagal dikompilasi karena kesalahan "non-Ivalue in assignment" (a++ digunakan sebagai I-value).

Contoh:

// Ilustrasi program bahasa C

// untuk Post-increment (atau

// post-decrement) 

#include <cstdio> 

 

int main() 

int a = 10

a++ = 20; // error 

 

printf("a = %d", a); 

getchar(); 

 

return 0

}

Output:
prog.cpp: In function 'int main()':
prog.cpp:6:5: error: lvalue required as left operand of assignment
a = 20; // error 
^

Kenapa ++a dapat berbeda terhadap a++ sebagai l-value?
Hal tersebut dapat terjadi karena ++a mengembalikan l-value, yang pada dasarnya merupakan referensi untuk nilai variabel yang dapat diberikan lebih lanjut seperti halnya variabel biasa. Juga dapat ditetapkan sebagai nilai referensi:

int &ref = ++a; // valid
int &ref = a++; // invalid

Namun, jika digunakan nilai a++ pada program, hal tersebut tidak langsung akan meningkatkan nilai dari variabel a, sederhananya nilai a dapat bertambah setelah pernyataan (++) berikutnya, setelah nilai a dieksekusi. 

int a = 10;

// Dalam kompilasi program, a++ diganti dengan nilai a yang merupakan r-value:
10 = 20; // Invalid

// Nilai a increment
a = a + 1;

Inilah alasan kenapa nilai a++=20 tidak dapat bekerja jika sebuah program dijalankan dengan nilai tersebut.

Artikel ini didedikasikan kepada: Rizqi Annisa, Sofiani Vitamara Agustina, Yuni Tri Winanti, Adila Kartika Dewi, dan Agung Kumoro Adhi.

6 komentar untuk "Preincrement dan Predecrement Bahasa C dan Fungsinya"

  1. Apa perbedaan antara operator increment dan operator decrement pada bahasa C?

    BalasHapus
    Balasan
    1. Operator increment digunakan untuk meningkatkan nilai satu per satu dari suatu variabel, sedangkan operator decrement bekerja secara berlawan daripada operator increment.

      Hapus
  2. Apa yang dimaksud dengan operator pre-increment pada bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Operator pre-increment (++i) menetapkan nilai sebelum nilai tersebut dimasukkan ke dalam variabel, atau nilai telah bertambah satu terlebih dahulu baru kemudian disimpan ke variabel.

      Hapus
  3. Apa yang dimaksud dengan operator post-increment pada bahasa pemrograman C?

    BalasHapus
    Balasan
    1. Operator post-increment (i++) menetapkan nilai setelah nilai tersebut dimasukkan ke dalam variabel, atau nilai disimpan dulu ke variabel baru mengalami penambahan nilai +1.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -