Monday 19 December 2016

Download Aplikasi kasir berbasis web untuk usaha Spa dan Panti Pijat


Aplikasi ini adalah aplikasi kasir sederhana untuk usaha Spa dan Panti Pijat dibuat dengan menggunakan Codeigniter 3.

Fitur-fitunya :

  1. Responsive Desain
  2. Dashboard Data Range income transaksi.
  3. Transaksi bisa memilih pelanggan baru atau pelanggan tetap, memasukkan diskon yang diinginkan, dan pajak usaha.
  4. Manajemen Ruangan beserta paket-paket yang tersedia.
  5. laporan transaksi print, export excel update transaksi
  6. Manajemen Hak Akses user


Ketentuan :

  1. Boleh digunakan (Pribadi bukan kommersil) dengan mencantumkan Komentar pada post ini.
  2. Source ini bermanfaat bila anda menggunakan (untuk media pembelajaran / referensi)
  3. Yang menggunakan untuk Tugas atau kata lainnya, didoakan author "TIDAK BERMANFAAT"
Demo :

Silahkan didownload :
DOWNLOAD
Jangan sungkan tanyak jika ada masalah. 😊

Thursday 20 October 2016

Standar Coding Pada Codeigniter [Part 2]

Sebelum melakukan coding menggunakan codeigniter maka ada baiknya kita mengetahui apasaja
standar yang ada di codeigniter.

Standar kode tersebut akan membuat kode kita lebih mudah dipahami oleh developer lainnya . Adapun kesepakaatan tersebut
diantaranya :
  • PHP Closing Tag
    Ketika kita menulis library, helper, controller ataupun model maka sebaiknya tidak menggunakan tanda penutup pada dokumen php ?>. Hal tersebut dilakukan untuk mencegah adanya spasi atau karakter yang tidak diinginkan pada code kita sehingga membuat aplikasi error. Kita juga disarankan untuk memberikan infomasi tentang akhir dokumen dan berisi path dokumen tersebut.

    Contoh Salah :

    <?php echo "Here's my code!"; ?>

    Contoh Benar :

    <?php echo "Here's my code!";


    /* End of file myfile.php */
    /* Location: ./system/modules/mymodule/myfile.php */

  • Penamaan Class dan Method
    Penamaan Class harus dimulai dengan huruf besar. Jika class menggunakan beberapa kata maka kata-kata tersebut dipisahkan menggkanan underscore dan bukan camelcase.

    Contoh salah :

    class superclass
    class SuperClass


    Contoh Benar :

    class Super_class

    Aturan diatas juga berlaku untuk method contohnya

    Contoh kurang tepat:

    function fileproperties() //Tidak deskriptif dan memiliki underscore
    function fileProperties() // Tidak deskriptif dan underscore CamelCase
    function getfileproperties() // Kurang underscore
    function getFileProperties() // menggunakan CamelCase
    get_the_file_properties_from_the_file() // terlalu panjang


    Contoh Tepat:

    function get_file_properties() //deskriptif, pakai underscore, dan huruf kecil

Konfigurasi Config.php Pada Codeigniter - [Part 1]

Walaupun CodeIgniter dapat berjalan dengan konfigurasi default, tetapi untuk sebuah aplikasi yang nyata kita harus tetap melakukan konfigurasi, setidaknya pada bagian base_url dan router.

Pengaturan base_url dan router sangat berguna ketika proses pengembangan aplikasi yang
banyak menggunakan helper dan library.

File konfigurasi terletak dalam folder application/config. Adapun file-file yang terdapat dalam
direktori tersebut dan sering digunakan antara lain:
  • config.php pada file konfigurasi config.php berisi konfigurasi secara umum mengenai CodeIgniter, seperti peletakkan baseurl, suffix, frontcontroller, serta metode yang digunakan URI dan lain-lain. Adapun konfigurasi-konfigurasi yang perlu diperhatikan adalah :
    • $config[‘base_url’] - Konfigurasi ini berisi alamat url sebuah aplikasi. Jika menggunakan helper url maka konfigurasi ini harus di-set dengan benar. Contoh: aplikasi Anda akan diakses dengan menggunakan domain www.contoh.com/app_ci maka pada konfigurasi ini harus diisikan :

      $config['base_url']="http://www.contoh.com/app_ci/"; 

    •  Tetapi jika ingin menggunakan base url yang lebih fleksibel maka dapat menggantinya dengan variabel server. Contoh :

    • $config['base_url']="http://".$_SERVER['HTTP_HOST'].
      str_replace(basename($_SERVER['SCRIPT_NAME']),"",
      $_SERVER['SCRIPT_NAME']);

  • $config[‘index_php’] - Konfigurasi ini berisi file yang menjadi frontcontroller. Konfigurasi ini berhubungan dengan base_url. Jika menggunakan .htaccess untuk mempercantik url maka isi variabel ini harus dikosongkan.

  • $config['uri_protocol'] - Konfigurasi ini bertujuan untuk menentukan bagaimana library URI bekerja. CodeIgniter dapat menangkap URI yang di berikan melalui 4 cara yaitu PATH_INFO, QUERY_STRING, REQUEST_URI dan ORIG_PATH_INFO. Masing-masing cara mempunyai kelebihan dan kekurangan masing-masing, bahkan tidak semua web server mendukung semua cara tersebut, oleh karena itu secara default digunakan pilihan auto. Tetapi jika aplikasi membutuhkan sesuatu yang lebih custom maka pemilihan metode URI secara langsung akan lebih baik. Lebih lanjut akan dibahas dibagian library.

  • $config['url_suffix'] - Konfigurasi ini bertujuan untuk menambahkan akhiran pada url. Contoh Anda mempunyai sebuah controller page, maka controller tersebut akan diakses melalui http://localhost/index.php/page, dengan menambahkan url_suffix berisi “html” maka url tadi dapat juga diakses melalui http://localhost/index.php/page.html .

  • $config['language'] - Secara default CodeIgniter sudah mendukung banyak bahasa/multy language. Kita dapat mengubah pesan-pesan yang ada di dalam CodeIgniter dengan bahasa yang kita kehendaki. Untuk mengubah bahasa tersebut cukup dengan mendownload paket bahasa yang diinginkan lalu uraikan di dalam direktori system/languages/[nama_lang] lalu Anda tinggal mengubah nama_lang di config.

  • $config['enable_hooks'] - Konfigurasi ini bertujuan mengaktifkan/menonaktifkan hook pada CodeIgniter. Hook dapat dikatakan event-event yang terjadi pada CodeIgniter, dimana kita bisa meletakkan fungsi di dalamnya. Hook akan bermanfaat sekali ketika Anda ingin mengubah perilaku CodeIgniter maupun untuk logging event. Contoh: Anda ingin mengubah urutan loading library dimana Anda sudah meng-extend library router untuk menggunakan database untuk aturan routing-nya. Artinya Anda harus meload library database sebelum library loader. Hal tersebut bisa dilakukan melalui hook.

  • $config['subclass_prefix'] = 'MY_'. Jika kita ingin mengubah/mengextend library CodeIgniter maka library tersebut harus memliki prefik yang sama dengan konfigurasi ini.

  • $config['permitted_uri_chars']. Konfigurasi ini bertujuan untuk keamanan CodeIgniter. Konfigurasi ini menentukan karakter apa saja yang bolah digunakan di dalam uri.

  • $config['log_threshold']. Konfigurasi ini menentukan bagaimana sistem logging CodeIgniter bekerja. Sistem logging ini sangat membantu dalam proses pengembangan terutama ketika debugging. Jika di set 0 maka tidak ada proses logging error di CodeIgniter. Jika di set 1 maka yang dicatat hanyalah pesan-pesan kesalahan yang termasuk kesalahan PHP. Jika di set 2 maka akan menampilkan semua pesan debug dan pesan kesalahan CodeIgniter dan PHP. Jika di set 3 maka logging-loging yang berisi informasi seperti sebuah library telah di load juga akan ditampilkan. Jika di set 4 maka semuanya akan dilog mulai dari error, pesan debug sampai yang bersifat informasi.

  • $config['log_path']. Dikonfigurasi ini kita dapat menentukan dimana log akan diletakkan. Jika diisi kosong maka akan diletakkan di system/logs. Harus dingat Anda harus mengubah tingkat hak akses dari direktori tersebut menjadi dapat ditulisi / writeable jika kita menggunakan fasilitas logging.

  • Konfigurasi session. Session di CodeIgniter menggunakan cookies jadi kita dapat mengeset waktu hidup cookies/expire, nama cookies dan lain-lain melalui konfigurasi ini.

    $config['sess_cookie_name']='Nama cookie';
    $config['sess_expiration']=7200;
    $config['sess_encrypt_cookie']=FALSE;
    $config['sess_use_database']=FALSE;
    $config['sess_table_name']='session_table';
    $config['sess_match_ip']=FALSE;
    $config['sess_match_useragent']=TRUE;
    $config['sess_time_to_update']=300;

Mengetahui Susunan Folder Pada Codeigniter


Adapun struktur utama dari CodeIgniter terbagi menjadi dua bagian, yaitu application dan sistem/core CodeIgniter.

Application adalah tempat kita meletakkan code yang akan dibuat, folder sistem berisi library-library dan helper bawaan CodeIgniter.

Adapun susunan folder CodeIgniter secara default adalah:

  • Folder application: disinilah aplikasi yang akan kita bangun diletakkan.
    • Folder config - tempat menyimpan semua file konfigurasi yang ada di dalam aplikasi, mulai dari database, router dan autoload aplikasi.
    • Folder controllers - tempat menyimpan semua file controller.
    • Folder errors - tempat menyimpan semua template error aplikasi.
    • Folder helpers - tempat menyimpan helper-helper yang bukan berasal dari CI.
    • Folder hooks - tempat menyimpan hook yang digunakan untuk mengubah alur fungsi dari core CI.
    • Folder language - tempat menyimpan bahasa-bahasa yang akan di gunakan.
    • Folder libraries - tempat menyimpan semua library buatan kita sendiri.
    • Folder models - tempat menyimpan semua model.
    • Folder views - tempat menyimpan semua file view aplikasi.
  • Folder system menyimpan semua file baik itu file aplikasi yang dibuat maupun core framework- nya.
    • Folder cache - tempat menyimpan semua cache yang dibuat caching library.
    • Folder codeigniter - tempat menyimpan semua semua file internals CI.
    • Folder database - tempat menyimpan semua driver database drivers dan class yang akan digunakan.
    • Folder fonts - tempat menyimpan semua font yang digunakan image manipulation library.
    • Folder helpers - tempat menyimpan semua helper core CI.
    • Folder language - tempat menyimpan semua language core CI.
    • Folder libaries - tempat menyimpan semua library core CI
    • Folder logs - tempat menyimpan semua logs generated oleh CI.
    • Folder plugin - tempat menyimpan semua plugin core CI.
    • Folder scaffolding - tempat menyimpan semua file yang berfungsi sebagai scaffolding.
  • Folder user_guide berisi userguide/manual penggunaan CI.
  • File index.php file yang akan menghandle semua request yang dilakukan oleh client.

Monday 3 October 2016

Membuat Url SEO Freindly pada Codeigniter



CodeIgniter User Friendly Url Library ini dibuat untuk memudahkan mendapatkan url yang SEO Freindly,

Sangat cocok sekali digunakan untuk website Portal, Blog, maupun Toko Online.

Download librarinya disini :


load library ini pada controller anda.

  1. $this->load->library('seo_url', $config);

atau menambahkan pada autolod.php

  1. $autolod(array('seo_url'));

Kemudian panggil method create_url :

  1. echo $this->seo_url('Judul postingan anda berupa string');

akan menjadi :

  1. judul-postingan-anda-berupa-string

Thursday 15 September 2016

Mengetahui Kode Etik Seseorang Programmer


Seorang Programmer atau Software Developer memiliki rumusan kode etik degan diharapkan mampu menjadi pedoman bagi siapa saja yang bergelut di dunia software engineering.

Berikut ini butirannya :
  • Berkontribusi untuk kehidupan masyarakat yang baik. 
Programmer harus mengembangkan sistem komputer yang dapat mengurangi dampak negatif terhadap masyarakat seperti ancaman sosial dan keamanan, dan dapat membuat aktifitas dan pekerjaan yang lebih mudah. Programmer sebaiknya membangun sesuatu dengan standar yang tinggi.
  • Menghindari hal-hal yang dapat membahayakan orang lain.
Sistem komputer memilki dampak tidak langsung kepada pihak ketiga. Sistem dapat menyebabkan kehilangan informasi dan sumber daya, dan itu berbahaya untuk pengguna, masyarakat, atau pekerja. Oleh karena itu software developer harus meminimalisir resiko tersebut dengan mengikuti desain standar dan testing yang baik.

  • Jujur dan dapat dipercaya.
Prinsip ini mendorong programmer untuk lebih jujur serta sadar akan keterbatasan pengetahuan mereka saat menuliskan sistem komputer. Juga, jika programmer mengetahui ada kesalahan dalam sistem, dia dapat melaporkan segera untuk menghindari hal-hal yang tidak diinginkan.
  • Memberikan penghargaan untuk aset intelektual.
Software developer dilarang keras untuk mengakui hasil karya orang lain, bahkan juga ketika program tersebut tidak terlindungi oleh "copyright" atau "patent". Mereka harus mengenali dan mengakui pekerjaan/karya orang lain, dan mereka harus menggunakan ide mereka sendiri untuk mengembangkan software.
  • Menghormati privasi orang lain.
Sistem komputer bisa saja disalahgunakan oleh beberapa orang dalam pelanggaran privasi orang lain. Software developer harus menuliskan program yang dapat melindungi informasi pengguna yang dapat menangkal orang tidak dikenal (tidak berizin) mengakses informasi tersebut.
  • Menghormati Kerahasiaan.
Software developer harus bersedia menjaga rahasia informasi terkait pekerjaannya dan segala informasi terkait proyek yang sedang dikerjakannya jika client atau perusahaan menginginkan hal tersebut.

Contoh Penggunaan Method Chaining - Kasus Total Harga Pada Sistem Kasir


Pada Kesempatan ini saya menjelaskan bagaimana pengimplementasiannya Method Chaining pada Kasus Total Harga Pada Sistem Kasir.

Method chaining yang sering digunakan untuk mengikat / merantai method. Konsep ini kita dapat memanggil lebih dari satu method untuk satu kali operasi dengan mengolah object yang sama.

Setiap method tersebut berperan mengubah nilai property dalam object tersebut dari satu bentuk ke bentuk lainnya. 
Oleh karena itu method tersebut sering disebut mutator.

Manfaat dari Method Chaining dalam kasus ini adalah membuat kode lebih enak dibaca. perhatikan kade dibawah ini :

  1. // Inisiasi Object
  2. $data = array(
  3.     'quantity' => 3,
  4.     'discount' => 10,
  5.     'price' => 10000
  6. );
  7. // Membuat Grand Total (Tanpa Chaining Method)
  8. // panggil Class
  9. $class = new Class();
  10. $grand_total = $class->sub_total($data['quantity'], $data['price']) +$class->discount($data);
  11. echo number_format($grand_total);
  12. // Membuat Grand Total (dengan  Chaining Method)
  13. // panggil Class
  14. $total = new Class();
  15. echo number_format($total->sub_total()->discount()->grand_total());


Jika anda Menggunakan gaya tanpa menggunakan tanpa Method Chaining berarti sama halnya dengan gaya Coding Prosedural.

Kita praktekkan :

Buatlah sebuah Class bernama Total yang berfungsi memanipulasi data Array berikut :

  1. $data = array(
  2.     'quantity' => 3,
  3.     'discount' => 10,
  4.     'price' => 10000
  5. );

Pada Class tersebut tersebut terdapat 3 Method :
  1. Inisiasi : mengubah object array menjadi masing-masing property.
  2. Discount : membuat diskon dari data.
  3. Grand_total : mengambil nilai yang telah dikalkulasi keseluruhan.
Struktur kodenya seperti ini :

  1. <?php
  2. /**
  3. * Method Chaining - Kasus Total Harga Pada Sistem Kasir
  4. * Class Total.php
  5. * @author Vicky Nitinegoro
  6. */
  7. class Total
  8. {
  9.     // Property untuk simpan nilai-nilai mutasi
  10.     protected $object = array();
  11.     private $set_quantity = 1;
  12.     private $set_discount = 0;
  13.     private $set_price = 0;
  14.     private $set_sub_total;
  15.     public function __construct($object)
  16.     {
  17.         // rubah object array menjadi properti
  18.         if(count($object) > 0) :
  19.             $this->inisiasi($object);
  20.         endif;
  21.         $this->set_sub_total = $this->set_price * $this->set_quantity;
  22.     }
  23.     public function inisiasi($params = array())
  24.     {
  25.         // terima object dan ubah ke properti satu-persatu
  26.         if (count($params) > 0)
  27.         {
  28.             foreach ($params as $key => $val)
  29.             {
  30.                 if (isset($this->$key))
  31.                 {
  32.                     $this->$key = $val;
  33.                 }
  34.             }
  35.         }
  36.     }
  37.     public function discount()
  38.     {
  39.         // mengihitung discount
  40.         if($this->set_discount != null)
  41.         {
  42.             $this->object = $this->set_discount / 100 * $this->set_sub_total;
  43.         } else {
  44.             $this->object = $this->set_sub_total;
  45.         }
  46.         return $this;
  47.     }
  48.     public function grand_total()
  49.     {
  50.         // cek apakah masih berupa array apa tidak
  51.         // kalo iya tampilkan subtotal saja tanpa dikurangi discount
  52.         if(is_array($this->object))
  53.         {
  54.             return $this->set_sub_total;
  55.         } else {
  56.             return $this->object;
  57.         }
  58.     }
  59. }
  60. // Data yang akan diolah
  61. $data = array(
  62.     'set_quantity' => 3,
  63.     'set_discount' => 10, // discount 10%
  64.     'set_price' => 10000
  65. );
  66. // Panggil Class
  67. $total = new Total($data);
  68. // Tampilkan tanpa discount
  69. echo number_format($total->grand_total()); // Output : 30,000
  70. echo "<hr>";
  71. // tampilkan dengan discount
  72. echo number_format($total->discount()->grand_total()); // Output : 3,000

Saya kira dari kode tersebut sudah bisa dipahami, silahkan tambahkan method lainnya jika dirasa kurang.

Demikian Contoh Penggunaan Method Chaining sederhana. :-)