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.
- Menghitung V = R x I
- Menghitung I = V / R
- Menghitung R = V / I
- 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.