Membuat Program ATM dan Operasi Matematika dalam Python

·

5 min read

Python adalah bahasa pemrograman yang fleksibel dan mudah dipelajari. Salah satu cara terbaik untuk memahami konsep dasar pemrograman adalah dengan membuat proyek kecil seperti simulasi ATM dan operasi matematika. Dalam artikel ini, kita akan membahas kode untuk membuat program ATM sederhana dan beberapa operasi matematika dasar.

1. Kelas ATM

a. Konstruktor __init__

pythonCopy codeclass ATM:
    def __init__(self, saldo_awal=0):
        self.saldo = saldo_awal

Konstruktor __init__ digunakan untuk menginisialisasi objek ATM dengan saldo awal. Jika tidak ada saldo awal yang diberikan, secara default akan diinisialisasi dengan 0.

b. Fungsi cek_saldo

pythonCopy codedef cek_saldo(self):
    print(f"Saldo Anda saat ini adalah: Rp{self.saldo}")

Fungsi ini menampilkan saldo saat ini kepada pengguna.

c. Fungsi setor_tunai

pythonCopy codedef setor_tunai(self, jumlah):
    if jumlah > 0:
        self.saldo += jumlah
        print(f"Anda berhasil menyetor Rp{jumlah}. Saldo Anda saat ini adalah: Rp{self.saldo}")
    else:
        print("Jumlah setor harus lebih dari 0.")

Fungsi ini memungkinkan pengguna untuk menyetor uang ke dalam ATM. Jika jumlah yang disetor lebih dari 0, saldo akan ditambahkan dengan jumlah tersebut.

d. Fungsi tarik_tunai

pythonCopy codedef tarik_tunai(self, jumlah):
    if 0 < jumlah <= self.saldo:
        self.saldo -= jumlah
        print(f"Anda berhasil menarik Rp{jumlah}. Saldo Anda saat ini adalah: Rp{self.saldo}")
    else:
        print("Saldo tidak mencukupi atau jumlah tidak valid.")

Fungsi ini memungkinkan pengguna untuk menarik uang dari ATM. Penarikan hanya berhasil jika jumlah yang ditarik tidak lebih dari saldo yang ada.

e. Fungsi keluar

pythonCopy codedef keluar(self):
    print("Terima kasih telah menggunakan ATM kami.")
    exit()

Fungsi ini digunakan untuk keluar dari program.

2. Kelas Matematika

a. Fungsi Penjumlahan

pythonCopy codedef penjumlahan(self, a, b):
    return a + b

Fungsi ini mengembalikan hasil penjumlahan dari dua angka.

b. Fungsi Pengurangan

pythonCopy codedef pengurangan(self, a, b):
    return a - b

Fungsi ini mengembalikan hasil pengurangan dari dua angka.

c. Fungsi Perkalian

pythonCopy codedef perkalian(self, a, b):
    return a * b

Fungsi ini mengembalikan hasil perkalian dari dua angka.

d. Fungsi Pembagian

pythonCopy codedef pembagian(self, a, b):
    if b != 0:
        return a / b
    else:
        return "Tidak dapat membagi dengan nol"

Fungsi ini mengembalikan hasil pembagian dari dua angka. Jika pembagi adalah 0, fungsi akan mengembalikan pesan kesalahan.

e. Fungsi Luas Lingkaran

pythonCopy codedef luas_lingkaran(self, radius):
    return math.pi * radius ** 2

Fungsi ini menghitung luas lingkaran berdasarkan jari-jari yang diberikan.

f. Fungsi Keliling Lingkaran

pythonCopy codedef keliling_lingkaran(self, radius):
    return 2 * math.pi * radius

Fungsi ini menghitung keliling lingkaran berdasarkan jari-jari yang diberikan.

g. Fungsi Luas Segitiga

pythonCopy codedef luas_segitiga(self, alas, tinggi):
    return 0.5 * alas * tinggi

Fungsi ini menghitung luas segitiga berdasarkan alas dan tinggi yang diberikan.

h. Fungsi Keliling Segitiga

pythonCopy codedef keliling_segitiga(self, sisi1, sisi2, sisi3):
    return sisi1 + sisi2 + sisi3

Fungsi ini menghitung keliling segitiga berdasarkan panjang ketiga sisinya.

3. Fungsi Utama

Fungsi main mengatur alur program dan interaksi dengan pengguna.

pythonCopy codedef main():
    atm = ATM(saldo_awal=1000000)
    mat = Matematika()

    while True:
        print("\nMenu ATM:")
        print("1. Cek Saldo")
        print("2. Setor Tunai")
        print("3. Tarik Tunai")
        print("4. Operasi Matematika")
        print("5. Keluar")

        pilihan = input("Pilih menu: ")

        if pilihan == '1':
            atm.cek_saldo()
        elif pilihan == '2':
            jumlah = int(input("Masukkan jumlah yang akan disetor: Rp"))
            atm.setor_tunai(jumlah)
        elif pilihan == '3':
            jumlah = int(input("Masukkan jumlah yang akan ditarik: Rp"))
            atm.tarik_tunai(jumlah)
        elif pilihan == '4':
            print("\nMenu Operasi Matematika:")
            print("1. Penjumlahan")
            print("2. Pengurangan")
            print("3. Perkalian")
            print("4. Pembagian")
            print("5. Luas Lingkaran")
            print("6. Keliling Lingkaran")
            print("7. Luas Segitiga")
            print("8. Keliling Segitiga")

            operasi = input("Pilih operasi: ")

            if operasi == '1':
                a = float(input("Masukkan angka pertama: "))
                b = float(input("Masukkan angka kedua: "))
                print(f"Hasil penjumlahan: {mat.penjumlahan(a, b)}")
            elif operasi == '2':
                a = float(input("Masukkan angka pertama: "))
                b = float(input("Masukkan angka kedua: "))
                print(f"Hasil pengurangan: {mat.pengurangan(a, b)}")
            elif operasi == '3':
                a = float(input("Masukkan angka pertama: "))
                b = float(input("Masukkan angka kedua: "))
                print(f"Hasil perkalian: {mat.perkalian(a, b)}")
            elif operasi == '4':
                a = float(input("Masukkan angka pertama: "))
                b = float(input("Masukkan angka kedua: "))
                print(f"Hasil pembagian: {mat.pembagian(a, b)}")
            elif operasi == '5':
                radius = float(input("Masukkan radius: "))
                print(f"Luas Lingkaran: {mat.luas_lingkaran(radius)}")
            elif operasi == '6':
                radius = float(input("Masukkan radius: "))
                print(f"Keliling Lingkaran: {mat.keliling_lingkaran(radius)}")
            elif operasi == '7':
                alas = float(input("Masukkan alas: "))
                tinggi = float(input("Masukkan tinggi: "))
                print(f"Luas Segitiga: {mat.luas_segitiga(alas, tinggi)}")
            elif operasi == '8':
                sisi1 = float(input("Masukkan sisi pertama: "))
                sisi2 = float(input("Masukkan sisi kedua: "))
                sisi3 = float(input("Masukkan sisi ketiga: "))
                print(f"Keliling Segitiga: {mat.keliling_segitiga(sisi1, sisi2, sisi3)}")
            else:
                print("Pilihan tidak valid, silakan coba lagi.")
        elif pilihan == '5':
            atm.keluar()
        else:
            print("Pilihan tidak valid, silakan coba lagi.")

self adalah cara Python untuk memberikan referensi ke objek saat ini sehingga dapat mengakses atribut dan metode dari objek itu sendiri. Ini harus selalu menjadi parameter pertama dari setiap metode dalam kelas. Menggunakan self memungkinkan kita untuk mengakses dan memodifikasi data yang spesifik untuk setiap objek dari kelas tersebut.

Dalam pemrograman Python, def digunakan untuk mendefinisikan sebuah fungsi. Fungsi adalah blok kode yang dirancang untuk melakukan tugas tertentu dan dapat dipanggil berulang kali dalam program. Dalam konteks program ATM dan operasi matematika yang telah kita buat, setiap fungsi memiliki peran dan kegunaan tertentu.

math.pi adalah konstanta penting dalam perhitungan matematika dan geometri yang melibatkan lingkaran. Ini digunakan untuk menghitung luas, keliling, volume, dan banyak lagi. Nilai math.pi memungkinkan kita untuk melakukan perhitungan dengan akurasi tinggi tanpa harus mendefinisikan nilai π secara manual.

math.radians adalah fungsi dalam modul math di Python yang digunakan untuk mengonversi sudut dari satuan derajat ke satuan radian.

elif adalah singkatan dari "else if" dalam bahasa pemrograman Python. Ini digunakan untuk menambahkan kondisi tambahan ke dalam struktur kontrol aliran yang memungkinkan program untuk memilih di antara beberapa jalur eksekusi yang berbeda.

Kesimpulan

Dengan memahami dan memodifikasi kode ini, Anda bisa mempelajari konsep dasar pemrograman seperti kelas, fungsi, dan logika kontrol dalam Python. Cobalah untuk mengembangkan program ini dengan fitur-fitur tambahan sesuai kebutuhan Anda.