[Belajar Python]: Statement IF ELSE

Bagaimana menggunakan statement IF ELSE pada Python (plus Tkinter)? Simak contoh Menghitung Akar-akar Persamaan Kuadrat berikut ini.

Statement IF ELSE merupakan sebuah perintah yang akan kita gunakan untuk menentukan suatu pilihan pada pemrograman Python. Nah, contoh yang akan dibahas saat ini yaitu “Menghitung Akar-akar Persamaan Kuadrat”, sangatlah membutuhkan perintah IF ELSE. Sebelum kita menuju penulisan kode program, alangkah baiknya kita mengetahui dulu syarat-syarat dalam menentukan akar-akar persamaan kuadrat.

SEKILAS TEORI::
Akar-akar persamaan kuadrat dipengaruhi oleh nilai-nilai koefisiennya. Berdasarkan nilai-nilai koefisien tersebut disusun kemungkinan-kemungkinan sebagai berikut:

1. Jika A = 0, maka:
Ax^2 + Bx + C = menjadi Bx + c = 0
Jawabnya adalah x = -C/B
Persamaan ini bukan merupakan persamaan kuadrat

2. Jika Diskriminan = B*B – 4*A*C mempunyai nilai positif, maka persamaannya adalah:
X_1 = (-B + akar(Diskriminan))/(2*A) dan
X_2 = (-B – akar(Diskriminan))/(2*A)

3. Jika Diskriminan = B*B – 4*A*C mempunyai nilai negatif, maka persamaannya adalah:
X_1 = -B/(2*A) + akar(Diskriminan)/(2*A) dan
X_1 = -B/(2*A) – akar(Diskriminan)/(2*A)

SEKILAS SOURCE CODE:
Aplikasi menghitung akar-akar persamaan kuadrat ini masih setia menggunakan GUI Python – Tkinter. Menggunakan 4 komponen utama yaitu Label, Entry, Button, dan Frame. Untuk layout digunakan manajemen GRID. Ada satu yang istimewa dari aplikasi ini yaitu mulai dikenalkannya paket MATH. Untuk menggunakan paket MATH (yang berisi fungsi matematika), kita cukup mengetikkan ‘import math’. Silahkan menikmati…

Ingin belajar tentang Button, Entry, dan Label? Klik disini.

# file: pemakaian_statement_if.py
# Sumber Inspirasi: Bahasa-bahasa pemrograman - Eko Nugroho
# Re-Coding dengan Python pada tanggal : 3/11/2011
# Penulis: KlinikPython

from Tkinter import *
import math # import module matematika

class PersamaanKuadrat:
	def __init__(self, parent, title):
		self.parent = parent
		
		#self.parent.geometry("400x200")
		self.parent.title(title)
		self.parent.protocol("WM_DELETE_WINDOW", self.onKeluar)
		
		self.aturKomponen()
		
		self.entP2.focus_set()
		
	def aturKomponen(self):
		# atur frame utama
		mainFrame = Frame(self.parent, bd=10)
		mainFrame.pack(fill=BOTH, expand=YES)
		
		# Label Rumus
		Label(mainFrame, text="Menghitung Akar-akar Persamaan Kuadrat").grid(
			row=0, column=0, columnspan=2)
		Label(mainFrame, text="AX^2 + BX + C = 0", fg="red").grid(row=1, column=0,
			pady=10, columnspan=2)
		
		# input data:
		Label(mainFrame, text="Koefisien pangkat 2:").grid(
			row=2, column=0, sticky=W)
		self.entP2 = Entry(mainFrame, width=5)
		self.entP2.grid(row=2, column=1, sticky=W)
		
		Label(mainFrame, text="Koefisien pangkat 1:").grid(
			row=3, column=0, sticky=W)
		self.entP1 = Entry(mainFrame, width=5)
		self.entP1.grid(row=3, column=1, sticky=W)
		
		Label(mainFrame, text="Koefisien pangkat 0:").grid(
			row=4, column=0, sticky=W)
		self.entP0 = Entry(mainFrame, width=5)
		self.entP0.grid(row=4, column=1, sticky=W)
		
		# tombol CARI AKAR!
		self.btnCariAkar = Button(mainFrame, text="Cari AKAR!",
			command=self.onCariAkar)
		self.btnCariAkar.grid(row=5, column=0, columnspan=2, pady=10)
		
		# output data / nilai akar
		Label(mainFrame, text="Nilai akar X1:").grid(
			row=6, column=0, sticky=W)
		self.entX1 = Entry(mainFrame)
		self.entX1.grid(row=6, column=1, sticky=W)
		
		Label(mainFrame, text="Nilai akar X2:").grid(
			row=7, column=0, sticky=W)
		self.entX2 = Entry(mainFrame)
		self.entX2.grid(row=7, column=1, sticky=W)		
		
	def onCariAkar(self, event=None):
		A = float(self.entP2.get())
		B = float(self.entP1.get())
		C = float(self.entP0.get())
		
		# membersihkan entry X1 dan X2
		self.entX1.delete(0, END)
		self.entX2.delete(0, END)
		
		dua_A = 2.0 * A
		# mencari diskriminan
		disk = B*B - 4*A*C
		
		if disk > 0:
			akarDisk = math.sqrt(disk)
			akar1 = (-B + akarDisk)/dua_A
			akar2 = (-B - akarDisk)/dua_A
			
			self.entX1.insert(END, str(akar1))
			self.entX2.insert(END, str(akar2))

		elif disk == 0:
			akar1 = -B/dua_A
			akar2 = akar1
			
			self.entX1.insert(END, str(akar1))
			self.entX2.insert(END, str(akar2))
			
		else:
			akar1 = -B/dua_A
			akar11 = math.sqrt(abs(disk))/dua_A
			akar2 = akar1
			akar12 = -akar11
			
			self.entX1.insert(END, str(akar1)+" + "+str(abs(akar12))+" i")
			self.entX2.insert(END, str(akar2)+" - "+str(abs(akar12))+" i")			
			
	def onKeluar(self, event=None):
		self.parent.destroy()
		
if __name__ == '__main__':
	root = Tk()
	
	aplikasi = PersamaanKuadrat(root, "Demo Statement IF")
	
	root.mainloop()

One comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s