Dasar Bahasa C · Pelajaran 3 dari 12

Masukan dengan scanf dan operator

9 menit baca · BelajarCode

Membaca masukan

scanf membaca masukan sesuai format, lalu menyimpannya ke alamat variabel. Karena itu nama variabel diawali tanda &.

C
1#include <stdio.h>23int main(void) {4    int a, b;5    if (scanf("%d %d", &a, &b) != 2) {6        printf("Masukan harus dua bilangan bulat\n");7        return 1;8    }9    printf("%d + %d = %d\n", a, b, a + b);10    printf("%d / %d = %d sisa %d\n", a, b, a / b, a % b);11    printf("%d / %d = %.2f\n", a, b, (double)a / b);12    return 0;13}
Masukan
17 5
Keluaran
17 + 5 = 22
17 / 5 = 3 sisa 2
17 / 5 = 3.40
  • scanf mengembalikan banyaknya nilai yang berhasil dibaca. Memeriksanya adalah kebiasaan baik, supaya program tidak memakai nilai sampah jika masukannya salah.
  • Pembagian dua int menghasilkan int: 17 / 5 = 3, bagian desimalnya dibuang.
  • (double)a adalah casting, yaitu mengubah tipe a menjadi double sebelum dibagi, sehingga hasilnya 3.40.

Masukan di Playground

C dijalankan di server, jadi program tidak bisa berhenti menunggu ketikanmu di tengah jalan. Ketik masukannya lebih dulu di kotak masukan Playground, satu baris setiap Enter, lalu tekan Jalankan.

Dua kesalahan scanf yang paling sering

- Lupa &: scanf("%d", x) membuat program menulis ke alamat yang salah dan biasanya berhenti mendadak. - Untuk double, scanf memakai %lf, bukan %f. Di printf, keduanya boleh.

Operator penugasan dan increment

C
1#include <stdio.h>23int main(void) {4    int x = 10;5    x += 5;6    x *= 2;7    x -= 4;8    printf("x = %d\n", x);910    int i = 5;11    int a = i++;12    int b = ++i;13    printf("a = %d, b = %d, i = %d\n", a, b, i);14    return 0;15}
Keluaran
x = 26
a = 5, b = 7, i = 7
  • i++ (postfix) memakai nilai lama dulu, baru menambah 1.
  • ++i (prefix) menambah 1 dulu, baru memakai nilainya.

Untuk menghindari kebingungan, banyak programmer menulis i++ sebagai pernyataan tersendiri, tidak dicampur dengan ekspresi lain.

Cek pemahaman

Berapa nilai 7 / 2 * 2.0 di C?

Latihan

Konversi detik

Baca sebuah bilangan bulat berupa total detik, lalu tampilkan dalam format jam:menit:detik dengan dua digit, misalnya 3725 menjadi 01:02:05.

Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler C online.

Tandai pelajaran ini selesai

Masuk ke aplikasi untuk mencatat kemajuan, lalu lanjutkan ke pelajaran berikutnya dari perangkat mana pun.

Buka di aplikasi