Menu
CoddyTech

Rangkuman: Dispatch Kalkulator

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C di Coddy. Pelajaran 37 dari 61.

challenge icon

Tantangan

Mudah

Buat kalkulator menggunakan tabel dispatch. Kamu akan membuat array berisi pointer fungsi yang memetakan kode operasi ke fungsi yang sesuai, lalu menggunakannya untuk melakukan perhitungan.

Tulis program yang:

  1. Membuat typedef bernama Operation untuk pointer fungsi yang menerima dua parameter int dan mengembalikan int
  2. Mendefinisikan empat fungsi aritmetika:
    • add: mengembalikan a + b
    • sub: mengembalikan a - b
    • mul: mengembalikan a * b
    • divide: mengembalikan a / b (pembagian bilangan bulat)
  3. Di dalam main, membuat tabel dispatch: array berisi 4 pointer fungsi Operation, dengan indeks 0 adalah add, indeks 1 adalah sub, indeks 2 adalah mul, dan indeks 3 adalah divide
  4. Membaca tiga input: dua bilangan bulat dan kode operasi (0-3)
  5. Menggunakan kode operasi untuk mengakses tabel dispatch berdasarkan indeks dan memanggil fungsi yang sesuai
  6. Mencetak hasilnya

Kamu akan menerima tiga input: bilangan pertama, bilangan kedua, dan kode operasi (0 untuk add, 1 untuk sub, 2 untuk mul, 3 untuk divide).

Output kamu harus berupa satu bilangan bulat: hasil operasi:

7

Dalam contoh ini dengan input 10, 3, 1: kode operasi 1 memilih sub dari tabel dispatch, jadi kita menghitung 10 - 3 = 7.

Intinya adalah menggunakan pengindeksan array untuk memilih fungsi: tidak perlu pernyataan if atau switch. Tabel dispatch kamu seharusnya seperti ini:

Operation ops[4] = {add, sub, mul, divide};

Lalu panggil fungsi menggunakan: ops[code](a, b)

Coba sendiri

#include <stdio.h>

// TODO: Buat typedef bernama 'Operation' untuk pointer ke fungsi
// yang menerima dua parameter int dan mengembalikan int


// TODO: Definisikan empat fungsi aritmetika: add, sub, mul, divide


int main() {
    // Baca input
    int a, b, code;
    scanf("%d", &a);
    scanf("%d", &b);
    scanf("%d", &code);
    
    // TODO: Buat tabel pemanggilan fungsi (array berisi 4 pointer ke fungsi Operation)
    // Operation ops[4] = { ... };
    
    // TODO: Gunakan kode operasi untuk memanggil fungsi yang sesuai
    // dan simpan hasilnya
    int result;
    
    // Tampilkan hasilnya sebagai output
    printf("%d\n", result);
    
    return 0;
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler C online