Membuat Kalkulator Aritmatika dengan Python

,

·

Jurnal Belajar — Kalkulator Python
Pemrograman Python Materi ke-2 22 Mei 2026

Membuat Kalkulator Aritmatika dengan Python

Proyek Python pertama saya — membangun kalkulator lengkap dengan 4 modul: operator aritmatika, perbandingan, penugasan, dan logika boolean. Dari sini saya mulai benar-benar memahami fungsi, struktur menu, kondisional, dan bagaimana sebuah program “berpikir” secara terstruktur.

Python Fungsi & Modularitas Operator Aritmatika Operator Perbandingan Operator Penugasan Logika Boolean Sistem Informasi · Semester 2

Latar Belakang

Di pertemuan kedua mata kuliah Pemrograman Dasar, saya mendapat tugas membuat kalkulator operator Python. Bukan sekadar kalkulator biasa — programnya harus mencakup empat jenis operator sekaligus: aritmatika, perbandingan, penugasan, dan logika boolean, semuanya dalam satu program dengan menu navigasi.

Ini adalah pertama kalinya saya membuat program Python yang benar-benar terstruktur. Sebelumnya saya hanya tahu cara menulis beberapa baris kode sederhana — tapi tugas ini mengharuskan saya berpikir tentang bagaimana memecah program besar menjadi bagian-bagian kecil yang rapi.

🎯 Tujuan Materi: Memahami dan mengimplementasikan empat jenis operator Python — aritmatika, perbandingan, penugasan, dan logika boolean — dalam satu program terstruktur menggunakan fungsi dan menu interaktif.

Proses Pengerjaan

1

Merancang Struktur Menu Utama

Saya mulai dengan membuat menu utama menggunakan while True agar program terus berjalan sampai pengguna memilih keluar. Ini pertama kalinya saya paham kegunaan loop tak terbatas yang dikontrol dengan break.

2

Memecah Program Menjadi 4 Fungsi

Setiap modul — aritmatika, perbandingan, penugasan, boolean — saya buat sebagai fungsi terpisah. Dari sini saya benar-benar merasakan manfaat modularitas: kode jadi rapi, mudah dicari, dan tidak saling bercampur.

3

Menambahkan Validasi di Setiap Modul

Di modul aritmatika dan penugasan, saya tambahkan pengecekan if b != 0 sebelum operasi pembagian. Tanpa ini, program langsung crash dengan ZeroDivisionError.

4

Mengimplementasikan Logika Boolean

Modul boolean adalah yang paling baru bagi saya. Menggunakan bool(int(input())) untuk konversi input 1/0 ke True/False adalah trik kecil yang cukup bikin saya kagum betapa fleksibel Python itu.

Kode Program

kalkulator.py — main()
import os

def clear_screen():
    os.system('cls' if os.name == 'nt' else 'clear')

def main():
    while True:
        clear_screen()
        print(f"""
==================================
    KALKULATOR OPERATOR PYTHON
==================================
========== DAFTAR MENU ===========
[1] OPERATOR ARITMATIKA
[2] OPERATOR PERBANDINGAN
[3] OPERATOR PENUGASAN
[4] LOGIKA BOOLEAN
[0] KELUAR
==================================
        """)

        pilihan = input("Pilih menu (0-4): ")

        if pilihan == '1':
            operator_aritmatika()
        elif pilihan == '2':
            operator_perbandingan()
        elif pilihan == '3':
            operator_penugasan()
        elif pilihan == '4':
            logika_boolean()
        elif pilihan == '0':
            print("👋 Terima kasih! Sampai jumpa!")
            break
        else:
            print("Pilihan tidak valid!")

        input("⏎Tekan Enter untuk lanjut...")

if __name__ == "__main__":
    main()
kalkulator.py — operator_aritmatika()
def operator_aritmatika():
    print("=== OPERATOR ARITMATIKA ===")
    print("Pilih operasi:")
    print("[1] Penjumlahan (+)")
    print("[2] Pengurangan (-)")
    print("[3] Perkalian (*)")
    print("[4] Pembagian (/)")
    print("[5] Pembagian Bulat (//)")
    print("[6] Modulus (%)")
    print("[0] KEMBALI")

    pilihan = input("Pilih (0-6): ")

    if pilihan == '1':
        a = float(input("Angka 1: "))
        b = float(input("Angka 2: "))
        print(f"Hasil: {a} + {b} = {a + b}")
    elif pilihan == '2':
        a = float(input("Angka 1: "))
        b = float(input("Angka 2: "))
        print(f"Hasil: {a} - {b} = {a - b}")
    elif pilihan == '3':
        a = float(input("Angka 1: "))
        b = float(input("Angka 2: "))
        print(f"Hasil: {a} * {b} = {a * b}")
    elif pilihan == '4':
        a = float(input("Angka 1: "))
        b = float(input("Angka 2: "))
        if b != 0:
            print(f"Hasil: {a} / {b} = {a / b}")
        else:
            print("ERROR: Pembagi tidak boleh 0!")
    elif pilihan == '5':
        a = float(input("Angka 1: "))
        b = float(input("Angka 2: "))
        print(f"Hasil: {a} // {b} = {a // b}")
    elif pilihan == '6':
        a = float(input("Angka 1: "))
        b = float(input("Angka 2: "))
        print(f"Hasil: {a} % {b} = {a % b}")
    elif pilihan == '0':
        return
    else:
        print("Pilihan tidak valid!")
kalkulator.py — operator_perbandingan()
def operator_perbandingan():
    print("=== OPERATOR PERBANDINGAN ===")
    print("[1] Sama dengan (==)")
    print("[2] Tidak sama (!=)")
    print("[3] Lebih besar (>)")
    print("[4] Lebih kecil (<)")
    print("[5] Lebih besar/sama (>=)")
    print("[6] Lebih kecil/sama (<=)")
    print("[0] KEMBALI")

    pilihan = input("Pilih (0-6): ")

    if pilihan == '1':
        a = float(input("Angka 1: "))
        b = float(input("Angka 2: "))
        print(f"{a} == {b} = {a == b}")
    elif pilihan == '2':
        a = float(input("Angka 1: "))
        b = float(input("Angka 2: "))
        print(f"{a} != {b} = {a != b}")
    elif pilihan == '3':
        a = float(input("Angka 1: "))
        b = float(input("Angka 2: "))
        print(f"{a} > {b} = {a > b}")
    elif pilihan == '4':
        a = float(input("Angka 1: "))
        b = float(input("Angka 2: "))
        print(f"{a} < {b} = {a < b}")
    elif pilihan == '5':
        a = float(input("Angka 1: "))
        b = float(input("Angka 2: "))
        print(f"{a} >= {b} = {a >= b}")
    elif pilihan == '6':
        a = float(input("Angka 1: "))
        b = float(input("Angka 2: "))
        print(f"{a} <= {b} = {a <= b}")
    elif pilihan == '0':
        return
    else:
        print("Pilihan tidak valid!")
kalkulator.py — operator_penugasan()
def operator_penugasan():
    print("=== OPERATOR PENUGASAN ===")
    print("[1] += (Penjumlahan)")
    print("[2] -= (Pengurangan)")
    print("[3] *= (Perkalian)")
    print("[4] /= (Pembagian)")
    print("[5] %= (Modulus)")
    print("[0] KEMBALI")

    pilihan = input("Pilih (0-5): ")

    if pilihan == '1':
        x = float(input("Nilai awal x: "))
        y = float(input("Tambah y: "))
        print(f"x = {x}")
        x += y
        print(f"x += {y} → x = {x}")
    elif pilihan == '2':
        x = float(input("Nilai awal x: "))
        y = float(input("Kurang y: "))
        print(f"x = {x}")
        x -= y
        print(f"x -= {y} → x = {x}")
    elif pilihan == '3':
        x = float(input("Nilai awal x: "))
        y = float(input("Kali y: "))
        print(f"x = {x}")
        x *= y
        print(f"x *= {y} → x = {x}")
    elif pilihan == '4':
        x = float(input("Nilai awal x: "))
        y = float(input("Bagi y: "))
        if y != 0:
            print(f"x = {x}")
            x /= y
            print(f"x /= {y} → x = {x}")
        else:
            print("ERROR: Pembagi tidak boleh 0!")
    elif pilihan == '5':
        x = float(input("Nilai awal x: "))
        y = float(input("Modulus y: "))
        print(f"x = {x}")
        x %= y
        print(f"x %= {y} → x = {x}")
    elif pilihan == '0':
        return
    else:
        print("Pilihan tidak valid!")
kalkulator.py — logika_boolean()
def logika_boolean():
    print("=== LOGIKA BOOLEAN ===")
    print("[1] AND (and)")
    print("[2] OR (or)")
    print("[3] NOT (not)")
    print("[0] KEMBALI")

    pilihan = input("Pilih (0-3): ")

    if pilihan == '1':
        print("--- AND (kedua True) ---")
        print("1=True, 0=False")
        a = bool(int(input("A: ")))
        b = bool(int(input("B: ")))
        print(f"{a} and {b} = {a and b}")
    elif pilihan == '2':
        print("--- OR (salah satu True) ---")
        print("1=True, 0=False")
        a = bool(int(input("A: ")))
        b = bool(int(input("B: ")))
        print(f"{a} or {b} = {a or b}")
    elif pilihan == '3':
        print("--- NOT (kebalikan) ---")
        print("1=True, 0=False")
        a = bool(int(input("A: ")))
        print(f"not {a} = {not a}")
    elif pilihan == '0':
        return
    else:
        print("Pilihan tidak valid!")

Tantangan & Solusi

⚠️ Error yang Ditemui

Program crash dengan ZeroDivisionError saat angka pembagi diisi 0. Selain itu, saya juga sempat lupa konversi input dari string ke float, sehingga operasi aritmatika malah menggabungkan teks bukannya menghitung angka.

✅ Cara Mengatasinya

Menambahkan kondisi if b != 0 sebelum operasi pembagian di dua modul sekaligus (aritmatika & penugasan), dan memastikan semua input dikonversi dengan float() sebelum diproses. Dua pelajaran kecil yang ternyata sangat fundamental.


Apa yang Saya Pelajari

🧩

Fungsi = Program yang Rapi

Memecah 4 modul ke dalam fungsi terpisah membuat kode jauh lebih mudah dibaca, diuji, dan dikembangkan ke depannya.

🔄

while True + break

Loop tak terbatas yang dikontrol dengan break adalah pola yang sangat umum di program berbasis menu — dan sekarang saya paham kenapa.

🛡️

Validasi di Dua Tempat

Karena pembagian ada di dua modul berbeda, validasi juga harus ditulis di keduanya. Ini mengajarkan saya tentang konsistensi dalam penulisan kode.

💡

Boolean Itu Sederhana

Konversi bool(int(input())) membuka mata saya: tipe data bisa dikonversi berantai, dan Python sangat fleksibel soal ini.

💡 Key Takeaway

“Program yang bagus bukan yang paling panjang kodenya — tapi yang paling mudah dipahami, dirawat, dan dikembangkan. Tugas ini mengajarkan saya bahwa struktur yang rapi jauh lebih berharga dari kode yang asal jalan.”

Comments

Leave a Reply

Discover more from Alya Salsabila

Subscribe now to keep reading and get access to the full archive.

Continue reading