Belajar Membuat Aplikasi Text Editor Menggunakan Python Tkinter

ayu amaliyah 13 September 2019

Belajar Membuat Aplikasi Text Editor Menggunakan Python Tkinter

Hallo teman-teman jumpa lagi dengan penulis kali ini, penulis akan membuat sebuah artikel bagaimana membuat teks editor menggunakan Python Tkinter. Tkinter merupakan salah satu library Python yang berguna saat ingin membuat aplikasi.

Langsung saja untuk membahas bagaimana pembuatan aplikasi text editor ini. Editor yang akan kita buat sekarang memiliki fungsi yang sangat sederhana yaitu menulis teks, menyimpan, serta membuka file berisi teks. Di sini penulis akan menggunakan Pycharm, jika teman-teman belum menginstall aplikasi Pycharm, silahkan bisa langsung menginstallnya di website ini https://www.jetbrains.com/pycharm/download/#section=windows.

Text editor yang dibuat akan seperti ini tampilannya:

Image

Mari kita mulai proses pembuatan aplikasinya. Teman-teman buka dulu IDE Pycharm jika sudah menginstallnya. Lalu untuk membuat project baru, klik File > New Project dan kita akan diarahkan untuk mengisi nama project lalu klik create.

Image
Image

Maka akan tampil seperti dibawah ini :

Image

Setelah itu langsung untuk new dan pilih Python file, dan langsung mengisi nama projectnya teman-teman. maka akan tampil seperti gambar dibawah ini:

Image
Image

Pertama kita impor dulu kelas-kelas Tkinter yang diperlukan.

from tkinter import *
from tkinter import messagebox
from tkinter.filedialog   import asksaveasfilename
from tkinter import filedialog
import os
from tkinter.messagebox import askokcancel

Selanjutnya tulis kode untuk membuat class SimpleEditor dengan inheritence class Frame di Tkinter. Frame merupakan sebuah container yang berfungsi sebagai tempat untuk meletakkan kontrol-kontrol seperti halnya dengan teks label atau tombol. Kenapa memerlukan Frame? Karena kita akan dapat mengatur jendela aplikasi yang memiliki ukuran yang kita inginkan juga untuk meletakkan sebuah label yang sudah dibuat, seperti ini tampilan Frame-nya:

Image
class SimpleEditor(Frame):
    def __init__(self, parent=None, file=None):
        Frame.__init__(self, parent)
        self.frm = Frame(parent)
        self.frm.pack(fill=X)
        self.layoutKolom = Frame(root)
        self.buatNamefile()
        parent.title("Text editor")
        self.buatTombol()
        self.kolomTeksUtama()
        self.indeks = 1.0
        self.path = ''

Setelah selesai, tuliskan kode berikut untuk metode membuat tombol open, save dan exit.

def buatTombol(self):
  Button(self.frm, text='Open',relief='flat',command=self.openFile).pack(side=LEFT)
  Button(self.frm, text='Save',relief='flat',command=self.perintahSimpan).pack(side=LEFT)
  Button(self.frm, text='Exit',relief='flat',command=self.perintahKeluar).pack(side=LEFT)
  • Kenapa harus menggunakan self.frm? Tujuannya dapat membuat frame seperti tempat untuk tombol atau toolbar, karena program disini akan memiliki tombol open, save dan exit di toolbar.
  • Lalu relief='flat' menjadikan tombol open, save, dan exit menjadi tombol yang datar.
  • command=self.openFile digunakan untuk memanggil fungsi dan menjalankan perintah openFile, Save, dan Exit.
  • Apa fungsi .pack(side=LEFT)? Tujuannya untuk membuat layout dengan mengatur tata letak ke sisi sebelah kiri.

Tulis source code dibawah untuk membuat metode kolom text utama dan scrollbar-nya.

def kolomTeksUtama(self):
   scroll = Scrollbar(self)
   kolomTeks = Text(self, relief=SUNKEN)
   scroll.config(command=kolomTeks.yview)
   kolomTeks.config(yscrollcommand=scroll.set)
   scroll.pack(side=RIGHT, fill=Y)
   kolomTeks.pack(side=LEFT, expand=YES, fill=BOTH)
   self.kolomTeks = kolomTeks
   self.pack(expand=YES, fill=BOTH)

Fungsi kolomTeksUtama digunakan untuk menampung semua text program yang telah dibuat oleh teman-teman, bisa di lihat tampilan yang dibuat oleh kolomTeksUtama seperti berikut:

Image

Lalu untuk perintah menyimpan file, masukkan source code seperti dibawah:

def perintahSimpan(self):
  print(self.path)
  if self.path:
      alltext = self.gettext()
      open(self.path, 'w').write(alltext)
      messagebox.showinfo('Berhasil', 'Selamat File telah tersimpan ! ')
   else:
     tipeFile = [('Text file', '*.txt'),('Python file', '*asdf.py'),('All files', '.*')]
     filename = asksaveasfilename(filetypes=(tipeFile),initialfile=self.kolomJudul.get())
     if filename:
         alltext = self.gettext()
         open(filename, 'w').write(alltext)
         self.path = filename

Tuliskan source code berikut untuk perintah exit jika ingin keluar dari text editor. Perintah Frame.quit(self) berfungsi untuk menutup jendela Tkinter.

def perintahKeluar(self):
    ans = askokcancel('Exit', "anda yakin ingin keluar?")
    if ans: Frame.quit(self)

Setelah selesai, sekarang tuliskan source code dibawah agar dapat membaca isi file dan menampilkannya ke dalam jendela aplikasi.

def settext(self, text='', file=None):
	if file:
			text = open(file, 'r').read()
	self.kolomTeks.delete('1.0', END)
	self.kolomTeks.insert('1.0', text)
	self.kolomTeks.mark_set(INSERT, '1.0')
	self.kolomTeks.focus()
def gettext(self):
	return self.kolomTeks.get('1.0', END+'-1c')

Tuliskan source code membuat label "Nama file: ", fungsinya agar dapat membaca nama file yang telah di open tadi dan menampilkannya.

def buatNamefile(self):
	self.layoutKolom.pack(fill=BOTH, expand=1, padx=17, pady=5)
	judul = Label(self.layoutKolom, text="Nama file : ")
	judul.pack(side="left")
	self.kolomJudul = Entry(self.layoutKolom)
	self.kolomJudul.pack(side="left")

Selanjutnya tuliskan source code berikut agar dapat membuka file yang akan di open:

 def openFile(self):
    extensiFile = [ ('All files', '*'), ('Text files', '*.txt'),('Python files', '*.py')]
    open = filedialog.askopenfilename(filetypes = extensiFile)
    if open != '':
       text = self.readFile(open)
       if text:
          self.path = open
          nama = os.path.basename(open)
          self.kolomJudul.delete(0, END)
          self.kolomJudul.insert(END, nama)
          self.kolomTeks.delete('0.1',END)
          self.kolomTeks.insert(END, text)

Untuk membuka file, membaca teks file dan mengembalikan teks file, teman-teman perlu menuliskan kode seperti dibawah ini:

def readFile(self, filename):
    try:
        f = open(filename, "r")
        text = f.read()
        return text
    except:
        messagebox.showerror("Error!!")
        return None

Langkah terakhir tuliskan kode berikut untuk menampilkan aplikasi Tkinter. Fungsi mainloop() bertugas untuk mencegah jendela aplikasi langsung ditutup.

root = Tk()
SimpleEditor(root)
mainloop()

Jika teman-teman Run programnya, makan akan tampil output seperti berikut

Image

Sekarang jika teman-teman klik open, save dan exit makan akan tampil seperti dibawah :

Image
Image
Image

Selamat mencoba yah teman-teman :)

Referensi :

https://www.youtube.com/watch?v=7PGFin30c4o

https://www.youtube.com/watch?v=D24Vx3_IM8U

[http://repository.unpas.ac.id/28589/9/_III%20-%20BAB%20III%20EXPLORASI.pdf](http://repository.unpas.ac.id/28589/9/_III - BAB III EXPLORASI.pdf)

https://www.tutorialspoint.com/python/tk_relief.htm