Panduan Membuat Kalkulator Sederhana dengan Bahasa C

0.00 + - * / 7 8 9 =

Visualisasi sederhana dari kalkulator konsol yang akan dibuat.

Pendahuluan

Bahasa C adalah bahasa pemrograman tingkat menengah yang sangat kuat dan sering digunakan untuk pengembangan sistem operasi, driver perangkat keras, dan aplikasi berkinerja tinggi. Salah satu cara terbaik untuk memahami dasar-dasar pemrograman C—seperti input/output, struktur kontrol (if-else, switch), dan tipe data—adalah dengan membuat kalkulator sederhana.

Proyek kalkulator ini akan melibatkan pengambilan dua angka dari pengguna, meminta operator matematika yang diinginkan (+, -, *, /), melakukan perhitungan berdasarkan operator, dan menampilkan hasilnya. Ini adalah proyek pemula yang fundamental namun sangat instruktif.

Langkah 1: Persiapan Lingkungan

Sebelum menulis kode, pastikan Anda memiliki kompiler C yang terinstal di sistem Anda, seperti GCC (GNU Compiler Collection). Jika Anda menggunakan IDE (Integrated Development Environment) seperti Code::Blocks atau Visual Studio, kompiler biasanya sudah terintegrasi.

Langkah 2: Struktur Dasar Program C

Setiap program C harus dimulai dengan menyertakan pustaka standar yang diperlukan. Untuk input dan output (seperti mencetak ke konsol dan membaca masukan), kita perlu menyertakan stdio.h.

Kita akan mendeklarasikan variabel untuk menyimpan dua angka (operand) dan operator. Karena kita ingin mendukung pembagian desimal, kita akan menggunakan tipe data double untuk angka.

Langkah 3: Kode Lengkap Kalkulator Sederhana

Berikut adalah contoh kode lengkap untuk membuat kalkulator dengan bahasa C yang dapat melakukan empat operasi dasar:


#include <stdio.h>

int main() {
    // Deklarasi variabel
    char operator;
    double num1, num2, result;

    printf("Selamat Datang di Kalkulator Sederhana C\n");
    printf("-----------------------------------------\n");

    // 1. Meminta input angka pertama
    printf("Masukkan angka pertama: ");
    scanf("%lf", &num1);

    // 2. Meminta operator
    printf("Masukkan operator (+, -, *, /): ");
    scanf(" %c", &operator); // Perhatikan spasi sebelum %c untuk membersihkan whitespace

    // 3. Meminta input angka kedua
    printf("Masukkan angka kedua: ");
    scanf("%lf", &num2);

    // 4. Logika perhitungan menggunakan switch-case
    switch(operator) {
        case '+':
            result = num1 + num2;
            printf("%.2lf + %.2lf = %.2lf\n", num1, num2, result);
            break;

        case '-':
            result = num1 - num2;
            printf("%.2lf - %.2lf = %.2lf\n", num1, num2, result);
            break;

        case '*':
            result = num1 * num2;
            printf("%.2lf * %.2lf = %.2lf\n", num1, num2, result);
            break;

        case '/':
            // Penanganan kasus pembagian dengan nol
            if (num2 != 0) {
                result = num1 / num2;
                printf("%.2lf / %.2lf = %.2lf\n", num1, num2, result);
            } else {
                printf("Error: Pembagian dengan nol tidak diperbolehkan.\n");
            }
            break;

        default:
            printf("Error: Operator yang dimasukkan tidak valid.\n");
            break;
    }

    return 0;
}
        

Langkah 4: Penjelasan Kode

  1. Input Pengguna: Fungsi printf digunakan untuk menampilkan prompt kepada pengguna, sementara scanf digunakan untuk membaca nilai yang dimasukkan. Untuk tipe data double, format specifier yang digunakan adalah %lf.
  2. Operator Input: Saat membaca karakter menggunakan scanf(" %c", &operator);, kami menambahkan spasi sebelum %c. Ini penting untuk mengabaikan karakter whitespace (seperti Enter) yang mungkin tersisa di buffer input dari pembacaan angka sebelumnya.
  3. Struktur Kontrol Switch-Case: Struktur switch sangat cocok untuk menangani banyak pilihan operator yang berbeda. Program akan memeriksa nilai variabel operator dan menjalankan blok kode yang sesuai.
  4. Penanganan Pembagian Nol: Dalam kasus operator '/', sangat penting untuk menambahkan pemeriksaan if (num2 != 0). Pembagian bilangan dengan nol menghasilkan hasil tak terdefinisi (infinity) dalam matematika dan dapat menyebabkan perilaku tak terduga atau crash pada program C jika tidak ditangani.
  5. Output Hasil: Hasil ditampilkan menggunakan %.2lf, yang memastikan output angka desimal hanya ditampilkan hingga dua angka di belakang koma (presisi dua desimal).

Kompilasi dan Eksekusi

Setelah menyimpan kode di atas sebagai file (misalnya, kalkulator.c), Anda dapat mengkompilasinya menggunakan GCC di terminal:

gcc kalkulator.c -o kalkulator

Kemudian, jalankan program yang telah dikompilasi:

./kalkulator

Kesimpulan

Dengan mengikuti langkah-langkah di atas, Anda telah berhasil membuat kalkulator dengan bahasa C yang fungsional. Proyek ini menguji pemahaman Anda tentang tipe data, fungsi I/O dasar, dan kontrol alur program menggunakan struktur switch-case. Ini adalah fondasi yang solid untuk proyek C yang lebih kompleks di masa depan.