Bekerja dengan Gambar di Tkinter Python
Antarmuka yang baik tidak hanya terdiri dari teks dan tombol, tetapi juga elemen visual seperti gambar dan ikon. Menambahkan gambar dapat secara drastis meningkatkan pengalaman pengguna, membuat aplikasi Anda terlihat lebih profesional, menarik, dan mudah dipahami.
Meskipun Tkinter memiliki dukungan bawaan untuk gambar, ia secara default hanya mendukung format yang kurang umum seperti GIF. Untuk bekerja dengan format populer seperti JPG dan PNG, kita memerlukan bantuan dari sebuah library eksternal yang sangat populer bernama Pillow.
Langkah 1: Menginstal Library Pillow 📦
Pillow adalah penerus dari PIL (Python Imaging Library). Karena ini bukan library bawaan, kita perlu menginstalnya terlebih dahulu. Buka terminal atau Command Prompt Anda (bukan di dalam script Python) dan jalankan perintah berikut:
pip install PillowSetelah instalasi berhasil, Anda siap untuk menggunakan gambar di dalam Tkinter.
Menampilkan Gambar di Widget Label
Cara paling umum untuk menampilkan gambar adalah dengan meletakkannya di dalam widget tk.Label. Prosesnya terdiri dari tiga langkah utama:
- Impor
ImagedanImageTkdari library PIL. - Buka file gambar menggunakan
Image.open(). - Ubah gambar tersebut menjadi format yang dimengerti Tkinter menggunakan
ImageTk.PhotoImage().
Poin Kritis yang Harus Diingat: Python memiliki proses "garbage collection" yang dapat menghapus gambar jika tidak ada referensi yang menyimpannya. Untuk mencegah gambar hilang, kita harus menyimpan referensi objek PhotoImage ke sebuah variabel yang tetap ada, misalnya sebagai atribut dari widget itu sendiri.
import tkinter as tk
from PIL import Image, ImageTk
jendela = tk.Tk()
jendela.title("Menampilkan Gambar")
# 1. Buka gambar menggunakan Pillow
gambar_pil = Image.open("nama_file_gambar.jpg") # Ganti dengan path file Anda
# 2. Ubah ke format Tkinter
gambar_tk = ImageTk.PhotoImage(gambar_pil)
# 3. Tampilkan di Label
label_gambar = tk.Label(jendela, image=gambar_tk)
# 4. (PENTING) Simpan referensi gambar
label_gambar.image = gambar_tk
label_gambar.pack(padx=20, pady=20)
jendela.mainloop()Studi Kasus: Tombol dengan Ikon 📸
Menambahkan ikon kecil di sebelah teks pada sebuah tombol adalah praktik desain UI yang sangat umum. Tkinter memungkinkan ini dengan opsi image dan compound.
import tkinter as tk
from PIL import Image, ImageTk
jendela = tk.Tk()
jendela.title("Tombol dengan Ikon")
# Muat gambar ikon (misalnya ukuran 32x32 pixel)
ikon_pil = Image.open("simpan_ikon.png") # Ganti dengan path ikon Anda
ikon_tk = ImageTk.PhotoImage(ikon_pil)
# Buat tombol dan tambahkan gambar
tombol_simpan = tk.Button(
jendela,
text="Simpan File",
image=ikon_tk,
compound=tk.LEFT, # Posisi ikon di sebelah kiri teks
font=("Arial", 14)
)
# Simpan referensi gambar ke tombol
tombol_simpan.image = ikon_tk
tombol_simpan.pack(pady=20, padx=20)
jendela.mainloop()Kesimpulan
Bekerja dengan gambar di Tkinter menjadi sangat mudah berkat bantuan library Pillow. Dengan memahami alur Image.open() lalu ImageTk.PhotoImage(), Anda dapat menampilkan hampir semua format gambar populer di dalam aplikasi Anda. Ingat selalu "aturan referensi" untuk mencegah gambar Anda menghilang secara misterius. Menambahkan elemen visual seperti gambar dan ikon adalah cara yang pasti untuk membuat aplikasi Anda lebih menarik dan ramah pengguna.

