[Tutorial Python]: Membuat Tampilan Pemisah Ribuan dengan Python

Halo PythonMania, apa kabar hari ini?
Hari Minggu, 6 Januari 2013 adalah hari yang TEPAT buat kita untuk belajar Pemrograman Python. Mengapa? Karena hari Minggu adalah Hari Refreshing buat kita…hehehe. Pada tulisan kali ini, kami akan menyajikan tentang “Bagaimana Membuat Tampilan Pemisah Ribuan (Thousand Separator) dengan Python?”. So…Langsung Ke TeKaPe!

thousandSeparator-python.alibaba.com

Pemisah Ribuan (atau Thousand Separator), seringkali sangat berguna ketika kita ingin menampilkan ‘output’ dalam bentuk yang mudah dibaca. Pada pemrograman Python versi 2.6, untuk penulisan Pemisah Ribuan ini, kita harus menggunakan module locale (termasuk dalam pustaka standar Python). Berikut contoh penggunaan module locale dalam mode interpreter,

>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
'en_US.utf8'
>>> uang = 2500
>>> print '{0:n}'.format(uang)
2,500

Untuk contoh penggunaan Pemisah Separator versi GUI, silahkan disimak aplikasi berikut ini.

Komponen Tkinter: Frame, Label, Entry, Checkbutton
Kode Program:

# file: PemisahRibuan.py
# Deskripsi: Menampilkan suatu nilai disertai
# 		tanda koma, sebagai pemisah ribuan.
#		misal: 2500 menjadi 2,500.
#
# Python ver. 2.6
# Sistem Operasi: Debian 6 (squeeze)
# Tgl pembuatan: 6 Januari 2013 @ 10.01 WIB
# Penulis: KlinikPython.wordpress.com
#

from Tkinter import *
import tkMessageBox
import locale


class DemoPemisahRibuan:
	def __init__(self, induk, judul):
		self.induk = induk
		
		self.induk.geometry("400x200")
		self.induk.title(judul)
		self.induk.protocol("WM_DELETE_WINDOW", self.tutup)
		self.induk.resizable(False, False)
		
		self.aturKomponen()
		self.entInputData.focus_set()
			
	def aturKomponen(self):
		# mainFrame
		mainFrame = Frame(self.induk)
		mainFrame.pack(fill=BOTH, expand=1)
		
		# frame data
		fr_data = Frame(mainFrame, bd=10)
		fr_data.pack(side=TOP, fill=BOTH, expand=1)
		
		## label
		Label(fr_data, text='Masukkan jumlah uang Anda:').pack(
				side=TOP)
		
		## entry data
		self.entInputData = Entry(fr_data)
		self.entInputData.pack(side=TOP, pady=5)
		
		## cek pemisah ribuan
		self.cek = BooleanVar()
		
		self.cbTampilkanRibuan = Checkbutton(fr_data,
				text='Tampilkan pemisah ribuan', variable=self.cek,
				command=self.tampilkanPemisah)
		self.cbTampilkanRibuan.pack(side=TOP)
		
		## tombol keluar
		self.btnKeluar = Button(fr_data, text='Keluar',
				command=self.tutup)
		self.btnKeluar.pack(side=BOTTOM)
		
		
		# statusbar
		Label(mainFrame, text='www.KlinikPython.wordpress.com',
				foreground='blue', bd=1, relief=RIDGE).pack(
				side=BOTTOM, fill=X)
		
	def tampilkanPemisah(self, event=None):
		dataNilai = self.entInputData.get()
		status = self.cek.get()
		
		if status:
			if dataNilai == "":
				tkMessageBox.showinfo("Info", "Input Data Kosong!")
			else:
				strDatNilai = '{0:n}'.format(int(dataNilai))
		
				self.entInputData.delete(0, END)
				self.entInputData.insert(END, strDatNilai)
		
			self.datAsli = dataNilai
		else:
			self.entInputData['state'] = NORMAL
			self.entInputData.delete(0, END)
			self.entInputData.insert(END, self.datAsli)
		
	def tutup(self, event=None):
		self.induk.destroy()
		
if __name__ == '__main__':
	root = Tk()
	locale.setlocale(locale.LC_ALL, '')
	
	app = DemoPemisahRibuan(root, ":: Demo Pemisah Ribuan (Thousand Separator) ::")
	
	root.mainloop()

Tampilan Program:

Tampilan awal program.

Tampilan awal program.

Tampilan program saat tombol cek dipilih.

Tampilan program saat tombol cek dipilih.

Tampilan ketika input kosong dan cek dipilih.

Tampilan ketika input kosong dan cek dipilih.

Woke…Semoga Bermanfaat dan Salam PythonMania!

About these ads

7 comments

  1. Kok sy gak bisa ya…?

    >>>import locale
    >>>locale.setlocale(locale.LC_ALL, ”)
    ‘Indonesian_Indonesia.1252′

    >>>uang = 2000
    >>>print (‘{0:n}’.format(uang))
    2000

    Hasilnya tetap 2000 tanpa ada pemisah ribuan…
    Ane pake Python 3.3.0 berjalan di windows. Mohon bantuanx…!

    1. Salam kenal buat @Arham

      Kalo pada Python 3, kita cukup mengetikkan seperti ini

      >>> uang = 1000000
      >>> '{0:,}'.format(uang)
      '1,000,000'
      

      tanpa menggunakan import locale.

      Woke!…Selamat Mencoba dan Salam PythonMania!

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