[Belajar Tkinter]: Menggambar Kurva Sinus di Python

Pada tulisan ini, kita akan belajar bagaimana caranya menggambar kurva sinus di Python-3, tentu saja dengan GUI favorit kita Tkinter.

Kurva Sinus di Python-Tkinter

Menggunakan Komponen Canvas

Canvas merupakan area gambar abstrak dari obyek atau komponen-komponen grafik. Selain itu, Canvas dapat berfungsi sebagai kontainer bagi komponen lain. Pada contoh kali ini, kita menggunakan komponen Button sebagai pemicu event atau kejadian.

Untuk menggambar garis, kita gunakan fungsi create_line() dari komponen Canvas.

Menggunakan Modul MATH

Penggunaan modul math sangat kita perlukan dalam program ini, karena kita akan menggunakan fungsi sin(), trunc(), dan pi. Berikut penjelasan singkat dari ketiga fungsi tersebut (diambil dari dokumentasi Python-3):

sin() :: berfungsi untuk mengembalikan nilai sin(x) dalam bentuk radian.
trunc() :: berfungsi untuk pembulatan ke bawah dari suatu bilangan real ke bulat.
pi :: berfungsi untuk mengambil nilai PI = 3,14.

Tak usah lama-lama, kita langsung saja menuju kode Python:

# file: kurvaSinus.py
# program menggambar kurva sinus
# versi: Python 3.2
# sumber inspirasi: Delphi 5.0 - Inge Martina

from tkinter import *
import math

class DemoSinus:
    def __init__(self, parent, title):
        self.parent = parent

        self.parent.title(title)
        self.parent.geometry("640x200")
        self.parent.protocol("WM_DELETE_WINDOW", self.onKeluar)

        self.aturKomponen()

    def aturKomponen(self):
        mainCanvas = Canvas(self.parent, bg="white")
        mainCanvas.pack(fill=BOTH, expand=YES)

        self.kanvas = mainCanvas

        self.btnProses = Button(mainCanvas, text="Proses", command=self.gambarSinus)
        self.btnProses.pack(expand=YES)

    def gambarSinus(self, event=None):
        setengahTinggi = int(self.parent.winfo_height() / 2)
        lebar = self.parent.winfo_width()

        x_awal = 0
        y_awal = setengahTinggi

        for px in range(lebar):
            x = px * (2 * math.pi / lebar)
            y = math.sin(x)

            py = math.trunc(0.7 * y * setengahTinggi) + setengahTinggi

            self.kanvas.create_line(x_awal, y_awal, px, py)

            x_awal = px
            y_awal = py
            
    def onKeluar(self, event=None):
        self.parent.destroy()

if __name__ == '__main__':
    root = Tk()

    aplikasi = DemoSinus(root, "Demo Grafik Sinus")

    root.mainloop()

Yes!…
Akhirnya Anda sekarang semakin HEBAT dalam program Python..Salut Buat Anda! Membuat Grafik Sinus ternyata MUDAH!

Tetap Belajar dan Salam PythonMania!

7 comments

  1. tanya gan. waktu saya enter buat nulis “root.mainloop()” selalu syntax error . tolong pencerahan nya gan.

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