Seminggu terakhir ini saya disibukkan dengan kegiatan bereksperimen untuk lebih meningkatkan fitur sekaligus kemampuan di PHPMaker. Bagaimana caranya supaya kita sebagai Web Developer dari hari ke hari semakin mudah dalam membuat dan mengembangkan Aplikasi Web. Tentu dengan tetap menggunakan PHPMaker, dan bukan yang lainnya!
Eksperimen tersebut ternyata sungguh sangat mengasyikkan. Betapa tidak, saya akhirnya berhasil menemukan beberapa hal baru yang dapat membuat pekerjaan kita sebagai Web Developer menjadi semakin mudah dan menyenangkan. Salah satu pencapaian dalam minggu ini adalah berhasil membuat Extension MasinoAutoNumeric11.
Ini merupakan Extension terbaru saya untuk PHPMaker versi 11. Fungsinya sederhana, yaitu untuk memformat data Angka seperti Integer, Numeric, Double, Currency, dan yang sejenis dengan hal tersebut; sehingga ketika Pengguna mengetikkan data di Aplikasi Web yang dihasilkan oleh PHPMaker, maka sistem akan otomatis menambahkan karakter pemisah ribuan dan/atau desimal. Sistem juga akan otomatis menghilangkan karakter pemisah ribuan/desimal sebelum data disimpan.
Fitur ini memang belum tersedia di PHPMaker. Dari dulu saya sangat mendambakan fitur yang satu ini bisa diterapkan melalui built-in function PHPMaker. Didorong oleh keinginan yang sangat besar itulah, saya terus mencoba dan bereksperimen, dan akhirnya berhasil menerapkannya melalui penggunaan Extension di PHPMaker. Puji Tuhan, hasilnya pun cukup memuaskan. Bahkan, sangat bisa diandalkan di sebuah project Aplikasi Web yang dominan menggunakan data Angka.
Dengan menggunakan Extension MasinoAutoNumeric11 ini, maka kita sebagai pengguna PHPMaker tidak perlu lagi bersusah payah mencari-cari function atau library khusus untuk memformat data Angka. Cukup dengan mengaktifkan Extension ini di project PHPMaker kita, atur style Format Angka yang kita inginkan dari bagian Fields dalam project PHPMaker, lalu generate ulang semua file script. Selesai!
Namun, harus diakui bahwa ada konsekuensi tertentu dari penggunaan Extension MasinoAutoNumeric11. Tipe Field untuk data Angka yang digunakan haruslah bertipe Double atau Float atau yang sejenis dengan itu. Intinya harus mendukung penyimpanan data bilangan Desimal.
Sewaktu bereksperimen dengan Extension ini, saya menemukan gejala yang aneh tapi nyata. Jika tipe Field di Database bukan Double atau Float (misalnya saya menggunakan tipe Integer), maka jumlah karakter angka maksimal yang bisa tersimpan hanya sampai 3 digit, contoh: 999. Lalu setelah saya ganti menjadi Double atau Float, maka jumlah karakter yang tersimpan sesuai dengan jumlah karakter data yang dimasukkan.
Sepertinya hal ini karena ada pengaruhnya dengan fungsi format data Angka yang digunakan oleh PHPMaker. Bisa jadi juga karena jQuery plugin yang satu ini pada dasarnya menangani komponen bilangan Desimal, lalu ketika dikombinasikan dengan PHPMaker, maka berhasil jika menggunakan tipe Desimal.
Daripada bentrok dengan fitur bawaan PHPMaker, akhirnya Extension MasinoAutoNumeric11 yang harus mengalah. Orang bilang sing waras ngalah! (menghibur diri, supaya semangat, hehehe…).
Extension MasinoAutoNumeric11 memang menggunakan salah satu plugin jQuery yang basisnya menangani data Angka bilangan Desimal. Itu jugalah mengapa akhirnya saya mencoba untuk menyimpulkan sementara, bahwa tipe Field harus mendukung penyimpanan bilangan Desimal.
Meskipun demikian, kita sebagai Web Developer tidak perlu khawatir terlalu berlebihan. Extension ini bisa memformat data Angka yang kita inginkan sesuai dengan kebutuhan. Contoh, jika kita ingin menyimpan dan/atau menampilkan bilangan Non-Desimal, maka kita tidak wajib menggunakan pengaturan bilangan Desimal dari dalam project PHPMaker. Sederhana saja, dan itu pun berhasil!
Mungkin, ini mungkin lho ya… itu juga alasan kenapa di Database yang digunakan oleh beberapa Aplikasi tertentu, pernah saya amati semua data Angka menggunakan tipe Field seperti Double, Float, Real, dan yang sejenisnya. Sama sekali tidak menggunakan tipe Integer atau Numerik atau bilangan bulat. Mungkin, (hehe… lagi-lagi mungkin) karena pada dasarnya semua data Angka itu berasal dari bilangan Desimal. Jika bilangan Bulat, maka cukup menyembunyikan komponen Desimalnya.
Wuih. Perasaan lega, senang, dan puas bercampur menjadi satu. Semuanya terkumpul membentuk suatu energi baru yang semakin menambah semangat untuk tetap setia menggunakan PHPMaker.
Bagaimana dengan Anda? 😀
Dear
Maaf pak masino, mw tanya kalo validasi value dalam phpmaker harus bernilai positif (number) tidak bisa bernilai negatif, bagaimana ya, terimakasih sblmnya
Dari panel Edit Tag di bawah Fields setup project PHPMaker Anda, pada bagian Validation, Anda bisa memilih tipe Validate sebagai Range, lalu Anda bisa mendefinisikan nilai Min dan Max sesuai kebutuhan.
Pak Masino YSH.
Saya mencari-cari artikel yang berhubungan dengan ini yang membahas karakter (bukan angka) belum ketemu. Sebagai contoh format kode ISBN 000-000-0000-00-0, bagaimana format ini muncul pada saat input data. Mohon pencerahan
Biasanya data dengan format tersebut diatasi dengan Masked Edit menggunakan Javascript atau jQuery. Googling aja mas, pasti banyak contoh-contoh dan library-nya.
Seharusnya artikel berikut bisa membantu: Membuat Kode Otomatis Saat Data Ditambah di Aplikasi Web dari PHPMaker.