[Python Tkinter]: Membuat Grafik Bifolium dengan Komponen Canvas Tkinter
Halo PythonMania, Apa Kabar Hari Ini?
Di hari yang DAHSYAT ini, kami akan menyajikan ‘sesuatu’ yang DAHSYAT pula untuk Anda, PythonMania!. Pada edisi kita kali ini, kami akan membahas tentang “Bagaimana Membuat Grafik BIFOLIUM dengan Komponen Canvas – Tkinter?”. Dan ternyata Sangat MUDAH! So…Langsung aja ke TeKaPe!
Bifolium merupakan nama dari jenis bunga dan mempunyai bentuk yang sangat indah, seperti gambar di atas. Bentuk bunga ini dapat ‘diprediksikan’ dengan sebuah rumusan berikut ini:
Nah, berdasarkan rumusan tersebut di atas, kita akan memulai petualangan yang seru ini tentunya masih bersama Python. Konsentrasi sejenak ya…
Program Demo Bifolium ini menggunakan module tambahan yaitu module math (module bawaan Python). Fungsi dari module math ini adalah untuk menjalankan fungsi-fungsi matematika, diantaranya sinus, cosinus, dan Pi (=3,14…). Untuk menggunakan module math, kita harus menambahkan kode berikut,
import math
Pada komponen Canvas, yang kita perlukan untuk menggambar garis adalah dengan memanggil fungsi create_line. Kita juga bisa mengatur warna dan ketebalan dari garis grafik yang akan kita tampilkan.
Komponen Tkinter: Frame, Label, Button, Canvas.
Kode Program:
# file: DemoBifolium.py
# Deskripsi: Membuat grafik Bifolium dengan
# menggunakan komponen Canvas-Tkinter.
#
# Python ver. 2.6
# Sistem Operasi: Debian 6 (squeeze)
# Tgl pembuatan: 4 Januari 2013 - 22.39 WIB
# Penulis: KlinikPython.wordpress.com
#
# Buku Acuan : A First Course In Computational Physics
#
from Tkinter import *
import math
class DemoBifolium:
def __init__(self, induk, judul):
self.induk = induk
#self.induk.geometry("400x200")
self.induk.title(judul)
self.induk.protocol("WM_DELETE_WINDOW", self.tutup)
self.induk.resizable(False, False)
self.aturKomponen()
self.aturGrafik()
def aturKomponen(self):
# atur frame utama
mainFrame = Frame(self.induk)
mainFrame.pack(fill=BOTH, expand=1)
# atur frame Canvas
fr_canvas = Frame(mainFrame, bd=10)
fr_canvas.pack(side=TOP, fill=BOTH, expand=1)
# atur label Bifolium
Label(fr_canvas, text="Grafik Bifolium :").pack(
side=TOP, anchor=W)
# atur canvas
self.cvsBifolium = Canvas(fr_canvas, width=300, height=300,
bg='white')
self.cvsBifolium.pack(side=TOP, pady=5)
# atur tombol Keluar
self.btnKeluar = Button(fr_canvas, text='Keluar',
command=self.tutup)
self.btnKeluar.pack(side=BOTTOM)
# atur statusbar
Label(mainFrame, text='www.KlinikPython.wordpress.com',
bd=1, relief=RIDGE, foreground='blue').pack(
side=BOTTOM, fill=X)
def aturGrafik(self):
# atur nilai awal
A = 300
theta = 0
x1 = y1 = 0
# buat garis sumbu kartesian berwarna biru
self.cvsBifolium.create_line(0, 150, 300, 150, fill='blue')
self.cvsBifolium.create_line(150, 0, 150, 300, fill='blue')
# buat grafik Bifolium berdasarkan rumusan yang berlaku
# buat garis sampai theta bernilai Pi(=3.1415926535897931)
while (theta <= math.pi):
# rumusan bifolium
r = A * math.sin(theta) * pow(math.cos(theta), 2)
# konversi koordinat polar ke koordinat kartesian
x2 = r * math.cos(theta)
y2 = r * math.sin(theta)
# gambar garis, dimulai dari pusat Canvas
self.cvsBifolium.create_line(150+x1, 150-y1, 150+x2, 150-y2,
fill='red', width=2)
# berikan posisi baru ke posisi lama
x1 = x2
y1 = y2
# pertambahan theta sebesar 0,001
theta += 0.001
def tutup(self, event=None):
self.induk.destroy()
if __name__ == '__main__':
root = Tk()
app = DemoBifolium(root, ":: Demo Bifolium with Canvas-Tkinter ::")
root.mainloop()
Tampilan Program:
Latihan Mandiri:
Buatlah grafik untuk rumusan-rumusan di bawah ini dan Anda akan menemukan ‘sesuatu’ yang DAHSYAT!
(1) Cissoid of Diocles
Sumber Buku: A First Course In Computational Physics, Paul L. DeVries
Woke…Semoga Bermanfaat dan Salam PythonMania!



[Python Tkinter]: Membuat Grafik Bifolium dengan Komponen Canvas Tkinter