BelajarPython - Assalamualaikum wr. wb.
Jumpa lagi sahabat python.. Pada kesempatan kali ini saya akan mengajak kalian untuk membuat mini aplikasi lagi nih.. Seperti apa? Langsung saja yuk di simak...
Aplikasi ini saya posting dengan berbagai versi.. Dengan penambahan fitur di tiap versinya.. Jika kalian ingin melihat semua versi nya, KLIK DISINI ya...
Kali ini, saya akan memberikan versi kedua. Dimana di versi ini saya menghadirkan fitur copy, cut dan paste.
Kalian juga bisa membuat code program ini menjadi file aplikasi loh.. iya file aplikasi seperti "exe" itu.. sehingga, nantinya kita cukup klik dua kali saja untuk menjalankan aplikasi ini... tanpa perlu repot - repot membuka nya di IDLE atau IDE python.. nah seperti apa caranya? cukup mudah kok.. dan saya juga sudah membuatkan tutorialnya.. untuk kalian yang menggunakan windows, KALIAN BISA KLIK DISINI ya temen - temen.. atau jika pada link pertama terlalu rumit, KALIAN BISA MENCOBA CARA INI ya.... dan bagi pengguna linux ? tenang saja.. bisa juga kok membuat file executable nya.. untuk melihat tutorialnya, KALIAN BISA KLIK DISINI temen - temen...
Dan berikut contoh screenshoot dari mini aplikasi kali ini...
Nah itu dia temen - temen penjelasan code programnya.. Mohon maaf apabila ada penjelasan yang kurang jelas, atau bahkan ada kekeliruan... Mohon kasi pembenaran atau pendapat kalian di kolom komentar ya... Biar kita bisa belajar bersama..
Oke terimakasih dan sampai di sini dulu ya... Jangan lupa untuk membaca versi yang lain... Biar ilmunya nambah.. Hehe.. Temikasih sekali lagi dan sekian...
Wassalamualaikum wr. wb.
Jumpa lagi sahabat python.. Pada kesempatan kali ini saya akan mengajak kalian untuk membuat mini aplikasi lagi nih.. Seperti apa? Langsung saja yuk di simak...
Pengenalan aplikasi yang akan kita buat.
Aplikasi yang kita buat kali ini adalah aplikasi text editor.. Dengan fungsi standart saja seperti pada aplikasi editor lain nya.. Ya seperti save, copy paste, undo, redo dan lain sebagainya.. Dan gak ada yang spesial sih.. heheAplikasi ini saya posting dengan berbagai versi.. Dengan penambahan fitur di tiap versinya.. Jika kalian ingin melihat semua versi nya, KLIK DISINI ya...
Kali ini, saya akan memberikan versi kedua. Dimana di versi ini saya menghadirkan fitur copy, cut dan paste.
Rincian Lengkap Aplikasi TextEditor Tkinter Versi 2.0
Aplikasi ini menggunakan library Tkinter.. Jadi untuk menjalankannya, kalian tidak perlu install library tambahan.. Dan berikut rincian lengkap versi ini..Nama | : mn-TextEdit 2.0 |
Versi | : 2.0 || selanjutnya. |
Platform | : Python 3.x || Install. |
Modul | : Tkinter. |
Baris Code | : +-119 baris. |
Penambahan | : +-27 baris. |
Terdiri dari | : 1 class dan 12 metode. |
Fitur | : copy, cut dan paste. |
Kelemahan | : masih sangat sederhana. |
syarat menjalankan | : Python 3.x, dan editor teks / IDE. |
Cara menjalankan | : install python 3, copy paste code program pada editor/IDE, simpan dalam file python(ekstensi ‘.py’), lalu jalankan. |
Kalian juga bisa membuat code program ini menjadi file aplikasi loh.. iya file aplikasi seperti "exe" itu.. sehingga, nantinya kita cukup klik dua kali saja untuk menjalankan aplikasi ini... tanpa perlu repot - repot membuka nya di IDLE atau IDE python.. nah seperti apa caranya? cukup mudah kok.. dan saya juga sudah membuatkan tutorialnya.. untuk kalian yang menggunakan windows, KALIAN BISA KLIK DISINI ya temen - temen.. atau jika pada link pertama terlalu rumit, KALIAN BISA MENCOBA CARA INI ya.... dan bagi pengguna linux ? tenang saja.. bisa juga kok membuat file executable nya.. untuk melihat tutorialnya, KALIAN BISA KLIK DISINI temen - temen...
Code program aplikasi Text Editor Tkinter versi 2.0
Nah lalu seperti apa code program versi ini ? Oke, Berikut saya berikan code program nya ya...from tkinter import * from tkinter import messagebox from tkinter.filedialog import asksaveasfilename from tkinter import filedialog import os class SimpleEditor(Frame): def __init__(self, parent=None, file=None): Frame.__init__(self, parent) self.frm = Frame(parent) self.frm.pack(fill=X) self.buatJudul() parent.title('Text editor dengan copy paste - dari mn-belajarpython.blogspot.co.id') self.buatTombol() self.kolomTeksUtama() self.settext(text='',file=file) self.kolomTeks.config(font=('DejaVu Sans Mono', 10)) self.path = '' def buatTombol(self): Button(self.frm, text='Open',relief='flat', command=self.bukaFile).pack(side=LEFT) Button(self.frm, text='Simpan',relief='flat', command=self.perintahSimpan).pack(side=LEFT) Button(self.frm, text='Copy', relief='flat', command=self.perintahCopy).pack(side=LEFT) Button(self.frm, text='Cut', relief='flat', command=self.perintahCut).pack(side=LEFT) Button(self.frm, text='Paste', relief='flat', command=self.perintahPaste).pack(side=LEFT) 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) 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 def perintahCopy(self): try: text = self.kolomTeks.get(SEL_FIRST, SEL_LAST) self.clipboard_clear() self.clipboard_append(text) self.kolomTeks.selection_clear() except: pass def perintahCut(self): try: text = self.kolomTeks.get(SEL_FIRST, SEL_LAST) self.kolomTeks.delete(SEL_FIRST, SEL_LAST) self.clipboard_clear() self.clipboard_append(text) except: pass def perintahPaste(self): try: text = self.selection_get(selection='CLIPBOARD') self.kolomTeks.insert(INSERT, text) except TclError: pass 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') def buatJudul(self): top = Frame(root) top.pack(fill=BOTH, expand=1, padx=17, pady=5) judul = Label(top, text="Judul : ") judul.pack(side="left") self.kolomJudul = Entry(top) self.kolomJudul.pack(side="left") def bukaFile(self): extensiFile = [ ('All files', '*'), ('Text files', '*.txt'),('Python files', '*.py')] buka = filedialog.askopenfilename(filetypes = extensiFile) if buka != '': text = self.readFile(buka) if text: self.path = buka nama = os.path.basename(buka) self.kolomJudul.delete(0, END) self.kolomJudul.insert(END, nama) self.kolomTeks.delete('0.1',END) self.kolomTeks.insert(END, text) def readFile(self, filename): try: f = open(filename, "r") text = f.read() return text except: messagebox.showerror("Error!!","Maaf file tidak dapat dibuka ! :) \nsabar ya..") return None root = Tk() SimpleEditor(root) mainloop()
Dan berikut contoh screenshoot dari mini aplikasi kali ini...
Penjelasan code program Aplikasi Text Editor Tkinter versi 2.0
Sekarang saya akan mencoba untuk menjelaskan code program yang sudah saya bagikan di atas tadi.. Agar kalian lebih mudah untuk memahaminya.. Oke, Langsung saja..[NOTE : Teks berwarna MERAH pada penjelasan adalah Code tambahan yang tidak ada di versi sebelumnya. Dan yang Berwarna BIRU akan di hapus di versi berikutnya. Jika Code berwarna MERAH dan komentar berwarna BIRU maka merupakan code baru dan akan di hapus di versi berikutnya]
from tkinter import * //mengimport semua class tkinter
from tkinter import messagebox //mengimport class messgebox dari tkinter
from tkinter.filedialog import asksaveasfilename //mengimport ‘askopenfilename’ dari class ‘filedialog’ tkinter
from tkinter import filedialog //mengimport class file dialog dari library tkinter
import os //mengimport class python yaitu os
class SimpleEditor(Frame): //membuat class ‘SImpleEditor’ dengan inheritence class ‘Frame’ (di tkinter)
def __init__(self, parent=None, file=None): //konstruktor class diatas
Frame.__init__(self, parent) //menjalankan construktor class ‘Frame’ (parent)
self.frm = Frame(parent) //membuat frame (tempat tombol/toolbar)
self.frm.pack(fill=X) //memasukkan frame ke window
self.buatJudul() //menjalankan metode ‘buatJudul’
parent.title('Text editor dengan copy paste - dari mn-belajarpython.blogspot.co.id') //mengubah judul
self.buatTombol() //menjalankan metode buatTombol
self.kolomTeksUtama() //menjalankan metode ‘kolomTeksUtama’
self.settext(text='',file=file) //memasukkan teks (kosongan)
self.kolomTeks.config(font=('DejaVu Sans Mono', 10)) //mengatur jenis dan ukuran teks
self.path = '' //menampung path
def buatTombol(self): //metode ‘buatTombol’
Button(self.frm, text='Open',relief='flat', command=self.bukaFile).pack(side=LEFT) //membuat tombol ‘Open’ yang menjalankan metode ‘bukaFile’ ketika di klik
Button(self.frm, text='Simpan',relief='flat', command=self.perintahSimpan).pack(side=LEFT) //membuat tombol ‘Simpan’ yang menjalankan metode ‘perintahSImpan’ ketika di klik
Button(self.frm, text='Copy', relief='flat', command=self.perintahCopy).pack(side=LEFT) //membuat tombol ‘Copy’ yang menjalankan metode ‘perintahCopy’ ketika di klik
Button(self.frm, text='Cut', relief='flat', command=self.perintahCut).pack(side=LEFT) //membuat tombol ‘Cut’ yang menjalankan metode ‘perintahCut’ ketika di klik
Button(self.frm, text='Paste', relief='flat', command=self.perintahPaste).pack(side=LEFT) //membuat tombol ‘Paste’ yang menjalankan metode ‘perintahPaste’ ketika di klik
def kolomTeksUtama(self): //metode ‘kolomTeksUtama’
scroll = Scrollbar(self) //membuat scrollbar
kolomTeks = Text(self, relief=SUNKEN) //membuat kolom teks utama (tempat teks)
scroll.config(command=kolomTeks.yview) //menghubungkan scrollbar ke kolom teks utama
kolomTeks.config(yscrollcommand=scroll.set) //menghubungkan teks utama dengan scrollbar
scroll.pack(side=RIGHT, fill=Y) //memasukkan scrollbar ke window
kolomTeks.pack(side=LEFT, expand=YES, fill=BOTH)
self.kolomTeks = kolomTeks //menampung kolom teks utama
self.pack(expand=YES, fill=BOTH) //memasukkan kolom teks utama ke window
def perintahSimpan(self): //metode ‘perintahSImpan
if self.path: //memastikan path tidak kosong
alltext = self.gettext() //mendapatkan smua text
open(self.path, 'w').write(alltext) /menyimpan file
messagebox.showinfo('Berhasil', 'Selamat File telah tersimpan ! ') //menampilkan pesan berhasil
else:
tipeFile = [('Text file', '*.txt'),('Python file', '*.py'), ('All files', '.*')] //membuka tipe yang di cari di file dialog untuk menyimpan file
filename = asksaveasfilename(filetypes=(tipeFile), initialfile=self.kolomJudul.get()) //menampilkan file dialog dan mendapatkan lokasi tempat menyimpan file yang di pilih user
if filename: //memastikan user menyimpan file (tidak klik cancel)
alltext = self.gettext() //mendapatkan semua teks
open(filename, 'w').write(alltext) //memasukkan teks ke dalam file (menjadi file)
self.path = filename //untuk menampung path
def perintahCopy(self): //metode ‘perintahCopy’
try: //mencoba beberapa code program
text = self.kolomTeks.get(SEL_FIRST, SEL_LAST) //mendapatkan teks yang di select atau di blok
self.clipboard_clear() //membersihkan clip board
self.clipboard_append(text) //memasukkan teks ke klip board
self.kolomTeks.selection_clear() //membersihkan pemilihan teks
except: //jika terjadi error di code try
pass //tidak melakukan apa apa
def perintahCut(self): //metode ‘perintahCut’
try: //mencoba beberapa code program
text = self.kolomTeks.get(SEL_FIRST, SEL_LAST) //mendapatkan teks yang di select atau di blok
self.kolomTeks.delete(SEL_FIRST, SEL_LAST) //menghapus teks yang di select atau di blok
self.clipboard_append(text) //memasukkan teks ke klip board
self.kolomTeks.selection_clear() //membersihkan pemilihan teks
except: //jika terjadi error di code try
pass //tidak melakukan apa apa
def perintahPaste(self): //metode ‘perintahPaste’
try: //mencoba beberapa code program
text = self.selection_get(selection='CLIPBOARD') //mendapatkan teks di clipboard
self.kolomTeks.insert(INSERT, text) //memasukkan teks di clipboard ke kolom teks
except TclError: //jika terjadi error di try
pass //tidak melakukan apa apa
def settext(self, text='', file=None): //metode settext
if file: //memastikan variabel parameter ‘file’ tidak kosong/None
text = open(file, 'r').read() //membaca isi file
self.kolomTeks.delete('1.0', END) //menghapus semua teks yang ada di kolom utama
self.kolomTeks.insert('1.0', text) //memasukkan teks (yang telah dibaca) ke klom utama
self.kolomTeks.mark_set(INSERT, '1.0') //memberikan tanda
self.kolomTeks.focus() //memfokuskan cursor ke kolom teks utama
def gettext(self): //metode getText
return self.kolomTeks.get('1.0', END+'-1c') //mendapatkan semua teks di klom utama
def buatJudul(self): //metode buatJudul
top = Frame(root) //membuat frame self.path = buka //menampung path
top.pack(fill=BOTH, expand=1, padx=17, pady=5) //memasukkan frame ke window
judul = Label(top, text="Judul : ") //membuat label judul
judul.pack(side="left") //memasukkan judul ke window
self.kolomJudul = Entry(top) //membuat kolom teks untuk judul
self.kolomJudul.pack(side="left") //memasukkan kolom judul
def bukaFile(self): //metode bukaFile
extensiFile = [ ('All files', '*'), ('Text files', '*.txt'),('Python files', '*.py')] //insialisasi tipe file
buka = filedialog.askopenfilename(filetypes = extensiFile) //membuka file dialog untuk memilih file untuk di buka
if buka != '': //memastikan user memilih file
text = self.readFile(buka) //mendapatkan semua teks (menjalankan metode ‘readFIle’
if text: //memastikan ada teks
self.path = buka //menampung path
nama = os.path.basename(buka) //mendapatkan nama file
self.kolomJudul.delete(0, END) //menghapus semua teks di kolom judul
self.kolomJudul.insert(END, nama) //memasukkan nama file ke kolom judul
self.kolomTeks.delete('0.1',END) //menghapus semua teks di kolom utama
self.kolomTeks.insert(END, text) //memasukkan teks yang telah di baca ke dalam kolom teks utama
def readFile(self, filename): //metode ‘readFile’
try: //mencoba beberapa code program
f = open(filename, "r") //membuka file
text = f.read() //membaca teks di dalam file
return text //mengembalikan teks
except: //jika gagal membaca file
messagebox.showerror("Error!!","Maaf file tidak dapat dibuka ! :) \nsabar ya..") //menampilkan pesan dialog error
return None //mengembalikan None
root = Tk() //menampilkan window Tkinter
SimpleEditor(root) //menjalankan metode ‘SimpleEditor’
mainloop() //agar window tidak langsung close saat di jalankan
Nah itu dia temen - temen penjelasan code programnya.. Mohon maaf apabila ada penjelasan yang kurang jelas, atau bahkan ada kekeliruan... Mohon kasi pembenaran atau pendapat kalian di kolom komentar ya... Biar kita bisa belajar bersama..
Oke terimakasih dan sampai di sini dulu ya... Jangan lupa untuk membaca versi yang lain... Biar ilmunya nambah.. Hehe.. Temikasih sekali lagi dan sekian...
Wassalamualaikum wr. wb.
ConversionConversion EmoticonEmoticon