Code Snippet – CodeIgniter Tutorial : Membuat Helper CI Untuk Fungsi Terbilang Dengan Koma

code-snippet

Akhirnya kita masuk ke bulan kedua di tahun 2013, yang katanya sih merupakan bulan yang istimewa dan penuh cinta. Yaw mungkin itu tidak berlaku buat yang lagi menyandang pangkat jomblo ;). Gak apalah kalau sekarang jomblo, yang penting besok nikahnya tepat waktu :p. Kegiatan saya bulan ini lumayan padat, masih berkutat dengan yang namanya skripsi. Tapi bukan skripsi punya saya, tapi punya teman. Siapa??? Yaw ada deh, saya orangnya gak senang mengumbar privasi orang. Karena saya tau bagaimana rasanya jika privasi kita diumbar di depan orang banyak, rasanya seret-seret gimana gitu, sambil bawaannya pengen jambak-jambak itu orang (#haha). Cukup saya saja dan teman saya saja yang tau. Selain itu, di bulan ini saya juga jadi lebih banyak mengetahui watak-watak orang di sekitar saya. Mulai dari yang wataknya kayak sengkuni, yang senang mengadu domba orang. Ada yang di depan saya baik tapi di belakang malah menikam. Dan ada juga yang memang berjiwa ksatria, mengibarkan bendera perang, tanpa ada basa-basi layaknya orang-orang munafik yang kerap saya temui. Hehe, kok jadi curhat yakkk… Gak apalah, yaw kan namanya juga blog pribadi.

Nah, di postingan kali ini saya akan berbagi sebuah kode sederhana. Yaitu sebuah helper untuk framework CodeIgniter, isinya tentang fungsi terbilang. Memang sih sudah banyak yang membagikannya di luar sana. Kebetulan kemarin ada seorang teman yang bertanya untuk fungsi terbilang dengan angka di belakang koma di CodeIgniter, jadi sekalian saja saya posting di kategori Code Snippet ini. Yaw hitung-hitung sebagai catatan pribadi jika nanti saya lupa. Dulu saya pernah membuat fungsi terbilang, sebelum berkenalan dengan CI. Jadi sekarang saya hanya tinggal membuatkan helper untuk menyimpan fungsi terbilang tersebut. Source code-nya kira-kira seperti di bawah ini :

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
 * Terbilang Helper
 *
 * @package	CodeIgniter
 * @subpackage	Helpers
 * @category	Helpers
 * @author	Gede Lumbung
 * @link	http://gedelumbung.com
 */

if ( ! function_exists('number_to_words'))
{
	function number_to_words($number)
	{
		$before_comma = trim(to_word($number));
		$after_comma = trim(comma($number));
		return ucwords($results = $before_comma.' koma '.$after_comma);
	}

	function to_word($number)
	{
		$words = "";
		$arr_number = array(
		"",
		"satu",
		"dua",
		"tiga",
		"empat",
		"lima",
		"enam",
		"tujuh",
		"delapan",
		"sembilan",
		"sepuluh",
		"sebelas");

		if($number<12)
		{
			$words = " ".$arr_number[$number];
		}
		else if($number<20)
		{
			$words = to_word($number-10)." belas";
		}
		else if($number<100)
		{
			$words = to_word($number/10)." puluh ".to_word($number%10);
		}
		else if($number<200)
		{
			$words = "seratus ".to_word($number-100);
		}
		else if($number<1000)
		{
			$words = to_word($number/100)." ratus ".to_word($number%100);
		}
		else if($number<2000)
		{
			$words = "seribu ".to_word($number-1000);
		}
		else if($number<1000000)
		{
			$words = to_word($number/1000)." ribu ".to_word($number%1000);
		}
		else if($number<1000000000)
		{
			$words = to_word($number/1000000)." juta ".to_word($number%1000000);
		}
		else
		{
			$words = "undefined";
		}
		return $words;
	}

	function comma($number)
	{
		$after_comma = stristr($number,',');
		$arr_number = array(
		"nol",
		"satu",
		"dua",
		"tiga",
		"empat",
		"lima",
		"enam",
		"tujuh",
		"delapan",
		"sembilan");

		$results = "";
		$length = strlen($after_comma);
		$i = 1;
		while($i<$length)
		{
			$get = substr($after_comma,$i,1);
			$results .= " ".$arr_number[$get];
			$i++;
		}
		return $results;
	}
}

Cara pemakaiannya sama dengan helper yang lainnya. Dengan memanggil helper tersebut di Controller atau secara otomatis dipanggil dengan menambahkannya di konfigurasi autoload.php.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class web extends CI_Controller {

	function index()
	{
		$this->load->helper("terbilang");
		echo ucwords(number_to_words("87,5"));
	}
}

Hasilnya akan menjadi Delapan Puluh Tujuh Koma Lima. Fungsi terbilang ini banyak dipakai untuk aplikasi akuntasi yang biasanya menghasilkan laporan berupa kuitansi dan disana ada kolom berapa nominalnya dalam bentuk huruf. OK deh, sekian dulu postingan saya kali ini. Semoga bermanfaat untuk rekan-rekan pengunjung blog ini.

Happy Blogging and Keep Coding

Cheerrrss….!!!!

5 comments

  1. Jama' Muttaqin Reply

    Tanya gan, saya punya angka 13.6027. Hasilnya cuma Tiga Belas Koma.

    Mohon dibantu untuk kasus tersebut. Terima Kasih

  2. Deny Reply

    Mas Gede ,

    Fungsi Helpernya ketika dia bilangannya 0 aja akan return error gimana ya cara ngatasi itu?