Format penulisan rupiah dalam sejumlah bilangan di Indonesia adalah diawali dengan "Rp" dan di-split atau dipisah tiga angka dari belakang dengan tanda titik ("."). Jadi sobat akan membuat sebuah program untuk mengubah sejumlah bilangan dengan format biasa menjadi sejumlah bilangan dengan format rupiah.
Misalnya seorang user menginput bilangan angka 2545000, maka program ini akan mengubah dengan format rupiah seperti berikut "Rp 2.545.000" .
Silahkan sobat pahami program di bawah ini :
- def formatrupiah(uang):
- y = str(uang)
- if len(y) <= 3 :
- return 'Rp ' + y
- else :
- p = y[-3:]
- q = y[:-3]
- return formatrupiah(q) + '.' + p
- print 'Rp ' + formatrupiah(q) + '.' + p
Keterangan :
- Membuat sebuah function dengan nama formatrupiah(uang) dan var uang yang akan diinput oleh user.
- Mengkonversi nilai var uang dari tipe integer menjadi string dengan diwakili var y.
- Jika jumlah nilai var y kurang dari atau sama dengan 3, maka :
- Mengembalikan nilai string "Rp" ditambah nilai dari var y itu sendiri.
- Jika jumlah nilai var y lebih dari 3, maka :
- Slicing, memotong nilai var y dengan indeks -3 sampai terakhir dan diwakili oleh var p.
- Slicing, memotong nilai var y dengan indeks pertama (0) sampai -3 dan diwakili oleh var q.
- Mengembalikan nilai hasil rekursif dari formatrupiah(q) dimana q adalah hasil slicing di step nomor 6, ditambah string "." dan ditambah nilai var p.
- Mencetak string "Rp " ditambah hasil rekursif dari formatrupiah(q) dimana q adalah hasil slicing step nomor 7, ditambah string ".", dan ditambah nilai var p.
Silahkan lihat contoh di bawah ini setelah program dieksekusi :
Seperti yang kita lihat bahwa program ini masih menggunakan rekursif. Jadi saya kasih saran kepada sobat semua untuk benar-benar memahami bagaimana sistem rekursif berjalan. Jika sobat masih belum memahami rekursif, maka sobat bisa mengunjungi postingan saya sebelumnya karena disitu banyak menggunakan rekursif. Demikian postingan saya hari ini, semoga bermanfaat. Terimakasih :)
Ingin mengatahui lebih lanjut? Klik: https://mengenalpythonyuk.blogspot.com
ReplyDeleteTHanks.. :-D
ReplyDeletemas kalau ada desimalnya gimana? karena yang dicontohkan adalah bilangan bulat, kalau 77.877,96 atau 22.165.788,53 gimana?
ReplyDelete