Pinned

Specifier %d dan %i Bahasa C dan Fungsinya

Sebuah format specifier adalah urutan sekuensial oleh inisial tanda persen (%) yang mengindikasikan sebuah format specifier, yang digunakan untuk menentukan tipe dan format dari data untuk diambil dari stream dan menyimpannya menuju lokasi yang ditunjuk oleh argumen tambahan. Singkatnya, hal ini memberitahukan tipe dari data mana yang akan disimpan dan tipe data apa yang akan dicetak.

2 Perbedaan Utama Format Specifier %d dan %i pada Bahasa C
Format Specifier %d dan %i Bahasa C

Sebelum memahami lebih dalam materi tentang Specifier %d dan %i Bahasa C dan Fungsinya, terlebih dahulu pelajari materi tentang: Getc, Getchar, Getch, dan Getche Bahasa C Beserta Perbedaannya [klik], Printf, Sprintf, dan Fprintf Bahasa C Beserta Fungsinya [klik], dan Mencetak Simbol % Menggunakan Printf Bahasa C [klik].

Contoh: jika ingin membuat program yang membaca dan mencetak integer menggunakan fungsi scanf() dan printf(), apakah menggunakan %i dan %d? Terdapat sedikit perbedaan antara format specifier %i dan %d.

"%d menentukan bilangan bulat desimal, sedangkan %i menentukan bilangan bulat."

%d dan %i memiliki behavior sama dengan printf
Tidak ada perbedaan antara format specifier %i dan %d. Perhatikan contoh berikut ini.

Contoh:

// 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;

}

Output:
Nilai dari num menggunakan %d adalah = 9
Nilai dari num menggunakan %i adalah = 9

Baca Juga:

%d dan %i memiliki behavior berbeda dengan scanf
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".

Contoh: Perhatikan program berikut ini.

// 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;

}

Output:
Masukkan nilai a dalam format desimal:12
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.

Artikel ini didedikasikan kepada: Anisya Sekar Sari, Arvidhea Safira Gunawan, Dovan Ardy Setyawan, Dyas Sangga Anggita, dan Elisa Martha Hanum Basyaroh.

5 komentar:

  1. %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
  2. %d seperti yang sering digunakan dalam beberapa fungsi lainnya dalam bahasa C, sebenarnya bukan bagian dari bahasa C, melainkan bagian dari standard library.

    Khususnya adalah "printf", "scanf", dan semua fungsi turunannya.

    BalasHapus
  3. %d digunakan untuk memformat keluaran output dari integer menggunakan printf() atau fprintf() dalam bahasa C.

    Tanda "%" 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.

    BalasHapus
  4. Dalam bahasa pemrograman C, nilai-nilai akan disimpan dalam memori dalam bentuk integer, char, double, fload, dan lain sebagainya.

    Jadi 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.

    BalasHapus
  5. 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.

    Tidak 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.

    BalasHapus

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 -
- Big things come from small things -