Halo, Pembaca. Belajar Python lagi yuk. Pada eksperimen ini kita akan membuat program Python untuk menghitung rumus tegangan, arus dan resistansi. Berikut adalah rumus-rumus yang saya maksud.

V = R * I

I = V / R

R = V / I

Orang teknik elektro pasti hafal dengan rumus-rumus tersebut.

 

Tujuan Eksperimen

Dari eksperimen ini diharapkan kita akan mendapatkan gambaran penggunaan sekaligus tambahan pengalaman dalam membuat program yang melibatkan beberapa fitur antara lain:

  • perulangan (looping)
  • user-interface (menu) sederhana
  • penyeleksian kondisi menggunakan if/elif/else
  • class

 

Bagian-Bagian Program

Program kita bagi menjadi 2 bagian besar yakni definisi class dan program utama. Untuk mengimplementasikan rumus-rumus tersebut, kita buat sebuah class yang memiliki variabel-variabel V, I dan R serta memiliki fungsi-fungsi untuk menghitung nilai V, I dan R. Berikut adalah bagian program yang mendefinisikan class VIR.

class VIR:
    "Voltage-Current-Resistance Class"
    def __init__(self, V=0, I=0, R=0):
        self.V = V
        self.I = I
        self.R = R
    def calcV(self):
        return self.R * self.I
    def calcI(self):
        return self.V / self.R
    def calcR(self):
        return self.V / self.I

Fungsi calcV digunakan untuk menghitung nilai V jika diketahui nilai R dan I.

Fungsi calcI digunakan untuk menghitung nilai I jika diketahui nilai V dan R.

Fungsi calcR digunakan untuk menghitung nilai R jika diketahui nilai V dan I.

Untuk bagian selanjutnya adalah bagian program utama. Bagian program ini terdiri dari tampilan menu, membaca pilihan menu dari keyboard dan menyeleksi pilihan serta mengeksekusinya.

Menunya sederhana saja, kita buat menu dengan 4 pilihan seperti berikut ini.

  1. Menghitung V = R x I
  2. Menghitung I = V / R
  3. Menghitung R = V / I
  4. Selesai

Jika user memilih menu ke-1, maka program akan menanyakan nilai R dan I untuk kemudian digunakan untuk menghitung nilai V dan menampilkannya di layar.

Jika user memilih menu ke-2, maka program akan menanyakan nilai V dan R untuk kemudian digunakan untuk menghitung nilai I dan menampilkannya di layar.

Jika user memilih menu ke-3, maka program akan menanyakan nilai V dan I untuk kemudian digunakan untuk menghitung nilai R dan menampilkannya di layar.

Jika user memilih menu ke-4, maka program akan berakhir.

Nah, listing program utamanya adalah sebagai berikut.

loop = True
while loop:
    menu = """
Menghitung V, I, atau R dari 2 variabel lain yang diketahui
(1) Menghitung V = R x I
(2) Menghitung I = V / R
(3) Menghitung R = V / I
(4) Selesai
 
Pilihan Anda? (1-4): """
 
    try:
        choice = input(menu)
    except:
        choice = 0
 
    if choice not in range(1,5):
        print "Pilih 1, 2, 3 atau 4."
        print
 
    elif choice in range(1,4):
        if choice == 1:
            print
            print "Menghitung V = R x I"
            R = input(" Input Resistansi = ")
            I = input(" Input Arus = ")
            V = VIR(0, I, R)
            print " Voltage =", V.calcV()
 
        elif choice == 2:
            print
            print "Menghitung I = V / R"
            V = input(" Input Voltage = ")
            R = input(" Input Resistansi = ")
            I = VIR(V, 0, R)
            print " Arus =", I.calcI()
 
        else:
            print
            print "Menghitung R = V / I"
            V = input(" Input Voltage = ")
            I = input(" Input Current = ")
            R = VIR(V, I, 0)
            print "Resistansi =", R.calcR()
 
        raw_input('Tekan Enter melanjutkan...')
 
    else:
        loop = False

Jika kedua bagian program dipadukan, maka program secara keseluruhan akan tampak sebagai berikut.

 

Listing Program vir.py

#**************************************************************
# vir.py
# Menghitung V, I atau R dari 2 nilai lain yang diketahui
# V = R x I; I = V / R; R = V / I
#
# Chandra MDE
# https://telinks.wordpress.com
#**************************************************************
 
from __future__ import division
 
class VIR:
    "Voltage-Current-Resistance Class"
    def __init__(self, V=0, I=0, R=0):
        self.V = V
        self.I = I
        self.R = R
    def calcV(self):
        return self.R * self.I
    def calcI(self):
        return self.V / self.R
    def calcR(self):
        return self.V / self.I
 
loop = True
while loop:
    menu = """
Menghitung V, I, or R dari 2 variabel lain yang diketahui
(1) Menghitung V = R x I
(2) Menghitung I = V / R
(3) Menghitung R = V / I
(4) Selesai
 
Pilihan Anda? (1-4): """
 
    try:
        choice = input(menu)
    except:
        choice = 0
 
    if choice not in range(1,5):
        print "Pilih 1, 2, 3 atau 4."
        print
 
    elif choice in range(1,4):
        if choice == 1:
            print
            print "Menghitung V = R x I"
            R = input(" Input Resistansi = ")
            I = input(" Input Arus = ")
            V = VIR(0, I, R)
            print " Voltage =", V.calcV()
 
        elif choice == 2:
            print
            print "Menghitung I = V / R"
            V = input(" Input Voltage = ")
            R = input(" Input Resistansi = ")
            I = VIR(V, 0, R)
            print " Current =", I.calcI()
 
        else:
            print
            print "Menghitung R = V / i"
            V = input(" Input Voltage = ")
            I = input(" Input Arus = ")
            R = VIR(V, I, 0)
            print "Resistansi =", R.calcR()
 
        raw_input('Tekan Enter untuk melanjutkan...')
 
    else:
        loop = False
 
print "Selesai."

Hasil Eksekusi Program

Terima kasih sudah membaca.

Semoga bermanfaat.