Skip to content

Instantly share code, notes, and snippets.

@tyaslab
Created June 21, 2020 23:52
Show Gist options
  • Save tyaslab/280de11efdb45d9aa453dea0395f4e46 to your computer and use it in GitHub Desktop.
Save tyaslab/280de11efdb45d9aa453dea0395f4e46 to your computer and use it in GitHub Desktop.
def terbilang_ratusan(uang):
uang_terbilang = {
1: 'satu',
2: 'dua',
3: 'tiga',
4: 'empat',
5: 'lima',
6: 'enam',
7: 'tujuh',
8: 'delapan',
9: 'sembilan',
10: 'sepuluh',
11: 'sebelas',
100: 'seratus'
}
nilai_ratusan = uang // 100
sisa = uang % 100
result = []
if nilai_ratusan == 1:
result.append(uang_terbilang[100])
elif nilai_ratusan > 0:
result.append(uang_terbilang[nilai_ratusan])
result.append('ratus')
nilai_puluhan = sisa // 10
nilai_satuan = sisa % 10
if nilai_puluhan == 1:
if nilai_satuan == 0:
result.append(uang_terbilang[10])
elif nilai_satuan == 1:
result.append(uang_terbilang[11])
else:
result.append(uang_terbilang[nilai_satuan])
result.append('belas')
nilai_satuan = 0
elif nilai_puluhan > 0:
result.append(uang_terbilang[nilai_puluhan])
result.append('puluh')
if nilai_satuan > 0:
result.append(uang_terbilang[nilai_satuan])
return ' '.join(result)
def terbilang(uang):
if uang == 0:
return 'nol'
result = []
sisa = uang
terbilang_item_list = (
(1_000_000_000_000, 'triliun'),
(1_000_000_000, 'milyar'),
(1_000_000, 'juta'),
(1_000, 'ribu')
)
for terbilang_nilai, terbilang_item in terbilang_item_list:
digit = sisa // terbilang_nilai
sisa = sisa % terbilang_nilai
if digit == 1 and terbilang_item == 'ribu':
result.append('seribu')
elif digit > 0:
result += [terbilang_ratusan(digit), terbilang_item]
if sisa > 0:
result += [terbilang_ratusan(sisa)]
result = ' '.join(result)
return result
def main():
uang = input('Masukkan jumlah uang: ') # max: 999.999.999.999.999
uang = int(uang)
print(f'Terbilang: {terbilang(uang)}')
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment