Skip to main content

Membuat Aplikasi Desktop Dengan Python: Form Data

membuat aplikasi desktop dengan python tkinter

Kita sudah pernah membahas tentang modul yang bisa digunakan untuk membuat aplikasi desktop dengan python. Setidaknya ada 12 Modul, menurut saya yang paling mudah adalah Kivy, PyForms, dan Tkinter. Saya berencana untuk membuat aplikasi desktop dengan python Tkinter, aplikasi ini saya berinama Data Mahasiswa. Saya memilih menggunakan Tkinter karena merupakan modul GUI default milik Python, jadi saat install python otomatis Tkinter juga ikut terinstall. Ok, kita langsung praktikkan saja ya... biar makin mantap belajar python nya

Back to top

1) Pendahuluan

Ah, judulnya pendahuluan sudah seperti buku saja😂️, Maksudnya disini untuk mempersiapkan yang diperlukan.

  • Python 3.7.x
  • Membuat Virtualenv -> Cara Membuat Virtualenv, dan mengaktifkannya.
  • Melakukan upgrade pip dan setuptools pip install --upgrade pip setuptools
  • Rencanakan terlebih dahulu tampilannya
  • Rencanakan juga sistem kerjanya

Sudah itu saja persiapannya, dan sekarang mulai untuk membuat data.

Back to top

2) Merencanakan Tampilannya

Saya ingin memulai dari membuat layoutnya dulu, tampilan program yang saya buat adalah seperti ini.

aplikasi desktop python

Dan kode programmnya seperti ini

import tkinter as tk

window = tk.Tk()
window.title('Form Data Mahasiswa')
window.geometry('500x200')

frame1 = tk.Frame(master=window)
frame1['relief'] = tk.GROOVE
frame1['borderwidth'] = 1
frame1.pack(side=tk.LEFT, fill=tk.Y)

frame2 = tk.Frame(master=window)
frame2['relief'] = tk.RIDGE
frame2.pack(side=tk.RIGHT)

list = {
    0: 'Nama Lengkap',
    1: 'NPM',
    3: 'Tanggal Lahir',
    4: 'Program Studi',
    5: 'Jurusan'
}
i = 4
for i in list:
    label = tk.Label(master=frame1)
    label['text'] = list[i], ':'
    label.grid(row=i, column=0, sticky=tk.W)

    entry = tk.Entry(master=frame2)
    entry['width'] = 50
    entry.grid(row=i, column=1, sticky=tk.W)
    i = i+1

    la = tk.Label(master=frame1)
    la['text'] = 'Sex :'
    la.grid(row=10, column=0, sticky=tk.W)
    va = tk.IntVar()
    ra1 = tk.Radiobutton(master=frame2, text='Pria', variable=va, value=1)
    ra1.grid(row=10, column=0, sticky=tk.W)

    ra2 = tk.Radiobutton(master=frame2, text='Wanita', variable=va, value=2)
    ra2.grid(row=10, column=1, sticky=tk.W)

button1 = tk.Button(master=frame2)
button1['text'] = 'Submit'
button1.grid(row=11, column=0, sticky=tk.W)

button2 = tk.Button(master=frame2)
button2['text'] = 'Batal'
button2.grid(row=11, column=1, sticky=tk.W)

window.mainloop()

2.1) Keterangan

Baris pertama import tkinter as tk pasti mengimport modul yang dibutuhkan yaitu Tkinter dan dibuat alias tk (saya menyebutnya seperti itu). Supaya enak manggilnya, tidak terlalu panjang karena saya terlalu malas untuk mengetik kode 😂️😂️😂️

Memanggil class TK window = tk.Tk() tanpa argumen, ini adalah top level widget dari jendela utama sebuah aplikasi desktop dengan Tkinter.

window.title('Form Data Mahasiswa') ini untuk membuat window titel, judul yang ada di title bar jendela program.

window.geometry('500x200') Menentukan ukuran jendela saat dibuka. Isinya berupa angka dalam pixel, bisa ditentukan semau yang membuat program. Ok, mari kita lanjutkan membuat aplikasi desktop dengan python Tkinter.

frame1 = tk.Frame(master=window) Membuat frame untuk grouping, mungkin ini cara yang mudah untuk membuat container. Mengelompokkan widget dalam satu barisan. Frame ini saya menggunakan parameter master yang merepresentasikan ke window. Untuk opsinya ada banyak, selain yang sudah dibuat itu. Termasuk mengatur lebar dan tinggi, warna background, bordersize (besarnya border, cursor untuk mengatur kursor menjadi bentuk lain.

frame1.pack(side=tk.LEFT, fill=tk.Y) pada baris ini saya menentukan posisi frame1 berada di sebelah kiri jendela side=tk.LEFT dan mengisi seluruh bidang Y full dari atas ke bawah. Dan untuk frame2 juga sama. Oh iya, relief ini menentukan style dan ada 5 atribut yang tersedia. Boleh coba saja, ganti-ganti dengan FLAT, RAISED, SUNKEN, GROOVE, RIDGE. Kalau relief tidak ditentukan, maka yang digunakan default adalah FLAT.

Baris berikutnya ada list, yang berisi label untuk field yang akan dibuat. Kemudian, kita membuat field berupa teks input dengan for loop dari list. Enaknya cara seperti ini, tidak perlu membuat field satu persatu. Tapi hanya bisa satu jenis field saja.

    la = tk.Label(master=frame1)
    la['text'] = 'Sex :'
    la.grid(row=10, column=0, sticky=tk.W)
    va = tk.IntVar()
    ra1 = tk.Radiobutton(master=frame2, text='Pria', variable=va, value=1)
    ra1.grid(row=10, column=0, sticky=tk.W)

    ra2 = tk.Radiobutton(master=frame2, text='Wanita', variable=va, value=2)
    ra2.grid(row=10, column=1, sticky=tk.W)

Bagian ini sengaja saya masukkan dalam for loop, tapi sebenarnya mau diluar for loop juga bisa sih (tadi cuma iseng 😂️😂️😂️. Ini untuk membuat Radio Button yang isinya berupa pilihan Jenis Kelamin Pria dan Wanita. Dan dekorasinya menggunakan grid() supaya bisa menentukan posisi di baris ke sekian dan kolom ke berapa.

Komponen terakhir adalah tombol sumbit dan cancel. Dan baris terakhir adalah sebagai batas akhr eksekusi program python kita.

Back to top

3) Akhir Kata

Dan akhirnya kita telah selesai menyusun desain aplikasi kita menggunakan python tkinter. Aplikasi ini belum bisa digunakan untuk menyimpan data, karena kita belum membuat method agar bisa menyimpan data.

Untuk berikutnya akan dibuatkan method agar aplikasi desktop yang dibuat dengan python tkinter bisa berfungsi, lanjutkan dihalaman berikutnya ya...

Back to top