DAFTAR LABEL POPULER PENELITIAN.ID

Jangan Buka Artikel Ini!

Integer Promotion Bahasa C dan Fungsinya

Beberapa jenis tipe data seperti charshort int mengalokasikan jumlah byte angka lebih sedikit dari pada tipe data int, tipe data tersebut secara otomatis dipromosikan oleh int atau unsigned int ketika sedang menjalankan operasi didalamnya. Atau lebih akrab dikenal dengan integer promotion. Contohnya, tidak ada kalkulasi aritmatik yang terjadi pada tipe data ukuran kecil seperti charshort, dan enum. Pertama dilakukan konversi menjadi int atau unsigned int, setelah selesai maka proses aritmatik telah selesai. Jika int dapat merepresentasikan segala nilai dari tipe original, maka nilai akan dikonversi menjadi int atau nilai tersebut akan dikonversi ke tipe unsigned int.

Penjelasan Singkat, Integer Promotion Bahasa C
Ilustrasi Integer Promotion Bahasa C

Contoh: Perhatikan program berikut ini.

/* integer promotion 

pada bahasa C */

#include <stdio.h>

 

int main()

{

char a = 30, b = 40, c = 10;

char d = (a * b) / c;

printf ("%d ", d);

return 0;

}

Output:
120

Jika diperhatikan sekilas, ekspresi (a*b)/c akan membuat proses aritmatika akan menjadi overflow karena karakter signed mendapat nilai hanya dari -128 hingga 127 pada kebanyakan tipe kompilator, dan nilai subekspresi '(a*b)' adalah 1200 yang nilainya lebih besar dari 128. Tetapi promosi integer yang terjadi dalam proses perhitungan yang dilakukan pada tipe dan hasil yang didapat, tidak akan menjadi overflow.

Contoh: Pertimbangkan program berikut ini:

/* integer promotion 

pada bahasa C */

#include <stdio.h>

 

int main()

{

char a = 0xfb;

unsigned char b = 0xfb;

 

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

printf("\nb = %c", b);

 

if (a == b)

printf("\nBernilai sama");

else

printf("\nTidak bernilai sama");

return 0;

}

Output:
a = ?
b = ?
Tidak bernilai sama

Ketika akan mencetak nilai 'a' dan 'b', maka karakter yang sama akan dicetak, tetapi ketika nilainya dibandingkan, maka didapatkan hasil bahwa nilai 'a' dan 'b' tidak sama.

Nilai 'a' dan 'b' memiliki representasi binary yang sama sebagai char. Tetapi ketika operasi perbandingan dilakukan pada 'a' dan 'b', maka nilai keduanya akan dikonversi sebagai int. Nilai 'a' adalah signed char, dan setelah nilai dikonversi sebagai int maka nilainya menjadi -5. 'b' adalah unsigned char, ketika nilainya dikonversi ke int maka akan menjadi 251. Nilai dari -5 dan 251 memiliki representasi berbeda sebagai nilai int, sehingga hasil dari output perbandingan menjadi berbeda.

Komentar

  1. Secara sederhana, apa yang dimaksud dengan interger promotion?

    BalasHapus
    Balasan
    1. Ada beberapa tipe data yang mengambil jumlah byte dalam ukuran yang lebih sedikit daripada tipe data integer itu sendiri, seperti char, short, dan lain sebagainya. Jika ada operasi yang dilakukan pada tipe data tersebut, maka secara otomatis tipe data tersebut akan dipromosikan sebagai tipe data int.

      Hapus
    2. Udah daripada belajar integer promotion mending rakit PC aja,,

      Hapus
  2. Masih berusaha memahami apa yang dimaksud dengan integer promotion pada materi ini, soalnya bahasan materi yang diberikan terlalu sedikit,

    BalasHapus
    Balasan
    1. Jika ada waktu akan selalu dilakukan perbaikan berkala untuk setiap materi artikel yang akan disajikan pada blog ini

      Hapus

Posting Komentar

Hubungi admin melalui Wa : +62-896-2514-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 ~

Postingan populer dari blog ini (30 Hari)

Enkapsulasi Java dan Fungsinya

Specifier %d dan %i Bahasa C dan Fungsinya

4 Kesalahan Umum yang Sering Terjadi pada PTK

7 Paradigma Penelitian pada Statistika Penelitian

Cara Membuat Drag and Drop pada HTML

Postingan populer dari blog ini (All Time)

Enkapsulasi Java dan Fungsinya

Komunitas