Printf Formats
Kalian semua pasti sudah sangat familiar dengan sebuah fungsi dalam bahasa pemrograman C yang bernama printf(), yang sering digunakan untuk mencetak tulisan ke console pengguna. Fungsi printf() memberikan sebuah cara bagi kita untuk membuat keluaran yang berformat. Keluaran berformat yang dimaksud di sini adalah kita tidak mengeluarkan string dan variabel yang kita berikan apa adanya, melainkan menggunakan format specifier yang diperlukan supaya compiler dapat memahami cara untuk mencetak string dan variabel yang kita berikan. Perhatikan contoh di bawah ini.
printf("Halo, %s. Hari ini tanggal %d\n", nama, tanggal);
Potongan kode di atas merupakan implementasi operasi keluaran berformat. %s dan %d di atas dapat dikenal sebagai format specifier dan digunakan sebagai placeholder atau tempat penampung bagi variabel-variabel yang akan kita pakai, secara urut. Jadi, %s di atas merupakan penampung bagi variabel nama, %d untuk variabel tanggal. Selanjutnya, \n diatas merupakan escape character yang digunakan untuk memberikan baris baru. Jika kita asumsikan variabel nama = "Dengklek" dan tanggal = 7, jika kita jalankan potongan kode di atas kita akan mendapatkan keluaran di bawah ini.
Halo, Dengklek. Hari ini tanggal 7
Selain 2 format specifier di atas, masih sangat banyak format specifier lain yang dapat kalian gunakan sesuai dengan kebutuhan kalian di waktu tertentu, saat bekerja dengan berbagai macam jenis variabel. Dokumentasi lengkap dapat kalian lihat di sini, sedangkan beberapa yang paling sering dipakai dapat dilihat di bawah.
| Format Specifier | Tipe Variabel |
|---|---|
%c | char |
%d dan %i | int |
%ld dan %i | long int |
%f | float |
%lf | double |
%s | string |
%x | hexadecimal |
Utilitas Spesial
Selain penggunaan seperti di atas, kalian dapat menggunakan format specifier yang spesial untuk lebih menyesuaikan penggunaan kita.
printf("%-20.5f");
Potongan kode di atas menggunakan beberapa utilitas spesial printf(). Karakter - digunakan untuk mengatur keluaran rata kanan, angka 20 merupakan minimum field width atau minimal panjang variabel tersebut, dan jika kurang, maka akan di-append/prepend 0. . merupakan pemisah antara minimum field width dan presicion. Terakhir, 5 adalah nilai presision, di mana jika tipe data float/double, maka floating point akan dicetak hingga 5 angka signifikan, sedangkan jika tipe data string, maka akan dicetak hanya 5 karakter pertama dalam string itu.