Archive for Author "widoyo"

Django Filter Terbilang

// Django filter to say indonesian number

from django import template

register = template.Library()

def terbilang(value):
	value = int(value)
	bunyi = ""
	satuan = ("", "satu", "dua", "tiga", "empat", "lima", "enam","tujuh","delapan","sembilan","sepuluh", "sebelas")
	if value >= 0 and value < 12:
		bunyi = ' ' + satuan[value]
	if value >= 12 and value < 20:
		bunyi = terbilang(value%10) + ' belas'
	if value >= 20 and value < 100:
		bunyi = terbilang(value/10) + ' puluh' + terbilang(value%10)
	if value >= 100 and value < 200:
		bunyi = ' seratus' + terbilang(value - 100)
	if value >= 200 and value < 1000:
		bunyi = terbilang(value/100) + ' ratus' + terbilang(value%100)
	if value >= 1000 and value < 2000:
		bunyi = ' seribu' + terbilang(value - 1000)
	if value >= 2000 and value < 1000000:
		bunyi = terbilang(value / 1000) + ' ribu' + terbilang(value % 1000)
	if value >= 1000000 and value < 1000000000:
		bunyi = terbilang(value/1000000) + ' juta' + terbilang(value % 1000000)
	return bunyi

register.filter('terbilang', terbilang)

Terbilang (biasanya Rupiah)

Fungsi terbilang untuk membuat kwitansi atau Invoice.

def terbilang(n):
	bunyi = ""
	satuan = ("", "satu", "dua", "tiga", "empat", "lima", "enam","tujuh","delapan","sembilan","sepuluh", "sebelas")
	if n >= 0 and n < 12:
		bunyi = ' ' + satuan[n]
	if n >= 12 and n < 20:
		bunyi = terbilang(n%10) + ' belas'
	if n >= 20 and n < 100:
		bunyi = terbilang(n/10) + ' puluh' + terbilang(n%10)
	if n >= 100 and n < 200:
		bunyi = ' seratus' + terbilang(n - 100)
	if n >= 200 and n < 1000:
		bunyi = terbilang(n/100) + ' ratus' + terbilang(n%100)
	if n >= 1000 and n < 2000:
		bunyi = ' seribu' + terbilang(n - 1000)
	if n >= 2000 and n < 1000000:
		bunyi = terbilang(n / 1000) + ' ribu' + terbilang(n % 1000)
	if n >= 1000000 and n < 1000000000:
		bunyi = terbilang(n/1000000) + ' juta' + terbilang(n % 1000000)
	return bunyi
	
if __name__ == '__main__':
	for a in (1,4,9,11,19,32,20,99,100,999, 999999, 1000000, 2535000):
		print str(a), ' => ', terbilang(a)