Specifier %d dan %i Bahasa C dan Fungsinya
"%d menentukan bilangan bulat desimal, sedangkan %i menentukan bilangan bulat."
Tidak ada perbedaan antara format specifier %i dan %d. Perhatikan contoh berikut ini.
// Program C yang digunakan
// untuk mendemostrasikan
// behavior dari %1 dan %d
// dengan menggunakan
// statement printf
#include <stdio.h>
int main()
{
int num = 9;
// Mencetak nilai variabel num
// menggunakan %d
printf("Nilai dari num"
" menggunakan %%d adalah ="
" %d\n", num);
// Mencetak nilai variabel num
// menggunakan %i
printf("NIlai dari num"
" menggunakan %%i adalah ="
" %i\n", num);
return 0;
}
Nilai dari num menggunakan %i adalah = 9
Diasumsikan %d nilai basisnya adalah 10 dan %i secara otomatis mendeteksi nilai basisnya. Karena hal ini, kedua specifier tersebut memiliki perlakukan berbeda ketika keduanya digunakan sebagai input specifier. Sehingga nilai 012 yang ditampilkan sebagai 10 pada specifier %i akan ditampilakn sebagai 12 pada specifier %d.
- %d mengambil nilai integer sebagai nilai bilangan bulat desimal, dengan kata lain %d mengambil nilai negatif beserta nilai positif tetapi nilai tersebut dalam bentuk desimal, jika tidak maka angka yang dihasilkan adalah nilai garbage.
- %i mengambil nilai integer dengan tipe desimal, hexadesimal, dan oktadesimal. Untuk menyimpan nilai dengan format hexadesimal, nilai harus disediakan oleh preceding "0x" dan untuk nilai dengan format oktadesimal, nilai harus disediakan oleh preceding "0".
// Program bahasa C untuk
// mendemonstrasikan perbedaan
// antara specifier %i dan %d
#include <stdio.h>
int main()
{
int a, b, c;
printf("Masukkan nilai a dala"
"m format desimal:");
scanf("%d", &a);
printf("Masukkan nilai b dala"
"m format oktadesimal: ");
scanf("%i", &b);
printf("Masukkan nilai c dala"
"m format hexadesimal: ");
scanf("%i", &c);
printf("a = %i, b = %i, c ="
" %i", a, b, c);
return 0;
}
Masukkan nilai b dalam format oktadesimal: 012
Masukkan nilai c dalam format hexadesimal: 0x12
a = 12, b = 10, c = 18
Penjelasan:
- Nilai desimal dari a dengan nilai 12 adalah 12.
- Nilai desimal dari b dengan nilai 12(oktadesimal) adalah 10.
- Nilai desimal dari c dengan nilai 12(hexadesimal) adalah 18.
- 2 Solusi Utama untuk Fgets dan Gets Ketika Digunakan Setelah Scanf pada Bahasa C [klik]
- Perbedaan Karakter Kontrol dan Karakter Cetak pada Bahasa C [klik]
- 2 Perbedaan Utama Rand dan Srand pada Bahasa C [klik]
- 5 Jenis Utama Operator Aritmatika Bahasa C dan C++ [klik]
- 6 Jenis Utama Operator Relasi dan 3 Jenis Operator Logika pada Bahasa C [klik]
- 6 Jenis Utama Operator Bitwise pada Bahasa C, Beserta 3 Fakta Menariknya [klik]
- 5 Fakta tentang Operator Precedence dan Asosiatifitas pada Bahasa C [klik]
%d adalah format penentu untuk nilai integer dalam desimal yang diguakan dalam fungsi output yang diformat dalam printf() untuk mengeluarkan nilai apapun dari jenis bilangan bulat dalam desimal dan digunakan untuk mengambil inputan jenis bilangan bulat dalam desimal melalui fungsi scanf().
BalasHapus%d seperti yang sering digunakan dalam beberapa fungsi lainnya dalam bahasa C, sebenarnya bukan bagian dari bahasa C, melainkan bagian dari standard library.
BalasHapusKhususnya adalah "printf", "scanf", dan semua fungsi turunannya.
%d digunakan untuk memformat keluaran output dari integer menggunakan printf() atau fprintf() dalam bahasa C.
BalasHapusTanda "%" pada "%d" menunjukkan bahwa fungsi tersebut akan mengubah bagian dari teks input dengan beberapa variabel yang akan diteruskan sebagai argumen. Tanda "d" pada "%d" berarti adalah variabel integer.
Dalam bahasa pemrograman C, nilai-nilai akan disimpan dalam memori dalam bentuk integer, char, double, fload, dan lain sebagainya.
BalasHapusJadi tipe data yang diperlukan tersebut akan disimpan sesuai dengan tipe data yang diperlukan oleh user. Namun, jika ingin menyimpan nilai dalam tipe integer atau format lain, maka dibutuh suatu penanda untuk dapat mencetak nilai integer tersebut secara khsusu.
Dalam bahasa C cara untuk mencetak nilai tersebut adalah dengan menggunakan "%" dan disertai simbol untuk menunjukkan tipe data tertentu.
1. %d digunakan untuk menampilkan nilai dengan tipe data bilangan bulat.
2. %c digunakan untuk menampilkan nilai dengan tipe data karakter tunggal.
3. %f digunakan untuk menampilkan nilai dengan tipe data float atau bilangan berkoma.
4. %lf digunakan untuk menampilkan nilai dengan tipe data double.
Dalam bahasa pemrograman C, %d dan %i adalah format penentu dimana %d digunakan untuk menampilkan nilai dengan tipe varibel desimal, dan %i adalah untuk tipe data integer.
BalasHapusTidak ada perbedaan dalam output fungsi printf() saat mencetak nilai menggunakan %d dan %i tetapi jika menggunakan scanf, maka akan terdapat perbedaan dari penggunakan kedua specifier tersebut.