Jumat, 07 Maret 2014

Tentang Code Igniter

Framework secara umum adalah susunan atau rangkaian kerja yang tetap dan dibuat sedemikian rupa yang kemudian dapat digunakan kembali dalam sebuah aktivitas kerja yang lain tapi tetap satu area kerja dengan rangkaian kerja sebelumnya. Framework terdiri atas modul – modul dalam bentuk class library yang dapat digunakan lagi untuk membangun aplikasi website


Perlu diketahui bahwa Framework PHP yang menganut konsep MVC (model, view, controller) menjadikan pembuatan aplikasi berskala besar menjadi lebih cepat, dan mudah. Seorang designer tidak perlu lagi merepotkan urusan koding PHP, begitu juga seorang programmer, tidak perlu memikirkan masalah design interface.

Saat ini Framework PHP yang paling populer digunakan adalah CodeIgniter. CodeIgniter adalah aplikasi open source yang berupa framework dengan model MVC (Model, View, Controller) untuk membangun website dinamis dengan menggunakan PHP. CodeIgniter memudahkan developer untuk membuat aplikasi web dengan cepat dan mudah dibandingkan dengan membuatnya dari awal.

Tujuan CodeIginiter adalah supaya pembangunan aplikasi lebih cepat dibanding menulis source code dari awal, karena CodeIginiter telah meyediakan banyak library untuk proses-proses yang sering  digunakan pada suatu aplikasi, dan juga dengan kemudahan dalam menggunakan library tersebut  serta kesederhaan penggunaannya.

CodeIgniter ditulis (dibuat) oleh Rick Ellis, seorang musisi rock yang menjadi  programmer. Ia membangun perusahaan bernama Ellis Lab, yang mengembangkan beberapa produk unggulan salah satunya CodeIgniter. CodeIgniter dirilis pertama kali pada 28 Februari 2006. Versi stabil terakhir yaitu 2.1.3 yang dirilis pada 10 Agustus 2012.

Codeigniter dapat diperoleh di http://ellislab.com/codeigniter/download. Setelah diunduh, maka anda akan mendapatkan file CodeIgniter_2.1.3.zip. Ekstrak terlebih dahulu file tersebut untuk menggunakan Framework.

Kelebihan Codeigniter
Beberapa kelebihan CodeIgniter (CI) dibandingkan dengan Framework PHP lain yaitu:

Performa sangat cepat. Codeigniter sangat cepat bahkan mungkin bisa dibilang Codeigniter merupakan framework yang paling cepat dibanding framework yang lain.
Konfigurasi yang sangat minim (nearly zero configuration). Tentu saja untuk menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk menggunakan codeigniter dengan  standard, anda hanya perlu merubah sedikit saja file pada folder config
CodeIgniter memiliki banyak komunitas. Dengan banyaknya komunitas CI ini, memudahkan kita untuk berinteraksi dengan yang lain, baik itu bertanya atau teknologi terbaru.
Dokumentasi yang sangat lengkap. Setiap paket instalasi Codeigniter sudah disertai user guide yang sangat bagus dan lengkap untuk dijadikan permulaan, bahasanya pun mudah dipahami.
Programmer CodeIgniter paling banyak dicari perusahaan. Saat ini, Programmer yang menguasai CodeIgniter dalam mebangun aplikasi website sangat di cari-cari oleh banyak perusahaan.
Fitur-Fitur Codeigniter
Codeigniter memiliki banyak fitur yang bisa digunakan oleh programmer untuk memudahkan pembuatan aplikasi. Berikut fitur-fitur yang dimiliki dan didukung oleh CodeIgniter :

Sistem berbasis Model View Controller
Kompatibel dengan PHP versi 4.
Ringan dan Cepat.
Terdapat dukungan untuk berbagai basis data.
Mendukung Active Record Database.
Mendukung form dan validasi data masukan.
Keamanan dan XSS filtering.
Tersedia pengaturan session.
Tersedia class untuk mengirim email.
Tersedia class untuk manipulasi gambar (cropping,resizing, rotate).
Tersedia class untuk upload file.
Tersedia class yang mendukung transfer via FTP.
Mendukung lokalisasi bahasa.
Tersedia class untuk melakukan pagination (membuat tampilan perhalaman).
Mendukung enkripsi data.
Mendukung benchmarking.
Mendukung caching.
Pencatatan error yang terjadi.
Tersedia class untuk membuat calendar.
Tersedia class untuk mengetahui user agent, misalnya tipe browser dan sistem operasi yang digunakan pengunjung.
Tersedia class untuk pembuatan template website.
Tersedia class untuk membuat trackback.
Tersedia pustaka untuk bekerja dengan XMP-RPC.
Menghasilkan clean URL.
URI routing yang fleksibel.
Mendukung hooks, ekstensi class dan plugin.
Memiliki helper yang sangat banyak jumlahnya.
Struktur Folder Codeigniter
Codeigniter adalah sebuah Framework PHP yang mempunyai susunan folder yang terstruktur, untuk memudahkan programmer dalam membuat aplikasinya. Berikut dibawah ini adalah struktur folder dari Framework Codeigniter:

CodeIgniter_2.1.3/
  ├── application/
  ├── system/
  ├── user_guide/
  ├── index.php

Berikut penjelasan dari struktur utama folder CodeIginiter:

Application, berisi folder dan file yang terkait dengan aplikasi yang akan dibuat. Kita akan banyak bekerja pada direktori application ini.
System, berisi file-file inti framework CodeIgniter. Kita tidak akan mengubah apapun pada direktori system ini.
User_guide, berisi file-file dokumentasi CodeIgniter yang dapat diakses melalui browser.
Index.php, file konfigurasi awal CodeIgniter.
Selanjutnya dibawah ini  adalah struktur folder Application yang berada di folder Codeigniter yang akan kita gunakan untuk membuat aplikasi :

application/
  ├── cache/
  ├── config/
  ├── core/
  ├── helpers/
  ├── libraries/
  ├── logs/
  ├── models/
  ├── third_party/
  ├── views/
  ├── .htaccess
  ├── index.htm

Berikut penjelasan dari struktur folder Application:

Config, berisi file-file yang terkait konfigurasi dasar aplikasi.
Controllers, berisi file-file controller dari aplikasi yang dibangun. Simpan seluruh file controller aplikasi pada folder ini.
Core, jika ingin memperluas class-class inti CodeIgniter, maka simpan file class yang Anda kembangkan tersebut pada direktori ini.
Helpers, berisi file-file helper yang Anda buat sendiri.
Libraries, berisi file-file library yang Anda buat sendiri.
Logs, jika error log pada config diaktifkan maka file error log akan tersimpan pada direktori ini.
Models, berisi file-file model dari aplikasi yang dibangun. Simpan seluruh file model aplikasi pada folder ini.
Views, berisi file-file view dari aplikasi yang dibangun. Simpan seluruh file view aplikasi pada folder ini.

Alur Proses Aplikasi
Gambar berikut ini akan mengilustrasikan alur proses data pada Framework Codeigniter:

alur Code Igniter


Index.php berfungsi sebagai pengendali awal, menginisialisasi sumber daya utama yang dibutuhkan CodeIgniter.
Router memeriksa paket HTTP request untuk menentukan aksi apa yang harus dilakukan oleh sistem.
Jika Cache tersedia, maka halaman langsung dikirim ke browser, eksekusi sistem yang normal akan dilewati.
Security. Sebelum Application Controller dieksekusi, paket HTTP request dan semua data yang dikirimkan pengguna akan disaring terlebih dahulu oleh Security Class.
Application Controller menginisialisasi model, library utama, helpers dan semua sumber daya yang dibutuhkan untuk setiap request.
Antarmuka aplikasi (View) yang sudah disiapkan dikirimkan ke browser. Jika caching diaktifkan, maka view akan disimpan sementara untuk request yang sama berikutnya.

Pengertian Model View Controller (MVC)
Model View Controller merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, berawal pada bahasa pemrograman Small Talk, MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, user interface, dan bagian yang menjadi kontrol aplikasi.
Terdapat 3 jenis komponen yang membangun suatu MVC pattern dalam suatu aplikasi yaitu :

View : merupakan bagian yang menangani presentation logic. Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model.
Model : biasanya berhubungan langsung dengan database untuk memanipulasi data (insert, update, delete, search), menangani validasi dari bagian controller, namun tidak dapat berhubungan langsung dengan bagian view.
Controller : merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi.

Dengan menggunakan prinsip MVC suatu aplikasi dapat dikembangkan sesuai dengan kemampuan developernya, yaitu programmer yang menangani bagian model dan controller, sedangkan designer yang menangani bagian view, sehingga penggunaan arsitektur MVC dapat meningkatkan maintanability dan organisasi kode. Walaupun demikian dibutuhkan komunikasi yang baik antara programmer dan designer dalam menangani variabel-variabel yang akan ditampilkan.
sumber : http://teknodaily.blogspot.com

Rabu, 05 Februari 2014

DHIS 2 Solusi Untuk Bank Data Kesehatan

Tampilan Aplikasi DHIS 2
DHIS 2 di desain untuk mengelola data agregat dengan model data yang fleksibel yang telah diuji di lapangan selama lebih dari 15 tahun. Semuanya dapat dikonfigurasi melalui antarmuka pengguna: Pengguna dapat mengatur elemen data formulir entri data, aturan validasi, indikator dan laporan dalam rangka menciptakan sistem yang lengkap untuk pengelolaan data. DHIS 2 memiliki fitur canggih untuk visualisasi data, seperti GIS, grafik, pivot tabel dan dashboard yang memungkinkan Anda menjelajahi dan memberi arti bagi data.

Setelah sebulan mencoba otak atik aplikasi ini kesimpulan saya aplikasi ini cukup bagus, tapi tingkat kesulitan tinggi, loading nya juga kurang memuaskan.Saya simpulkan DHIS 2  semacam framework untuk membuat aplikasi database sistem informasi kesehatan baik untuk data agregat maupun data individual. 

Berikut yang ditawarkan DHIS 2 untuk pengguna

Web enabled 
DHIS 2 is a web application based on standard Java technology. This means that the application runs on any Java enabled web server or servlet container, and can be accessed via a web browser over the Internet. This means DHIS 2 can be deployed on a national online server as well as in an intranet offline setting.
 

Extensible with apps
The DHIS 2 platform allows you to create and install Apps on any running instance. DHIS 2 features a rich RESTful Web API, allowing for apps to be built using purely Web technologies such as Javascript, CSS and HTML5.
 

Platform independent
DHIS 2 is written in Java. Java applications runs on any platform for which there exist a Java Runtime Environment, in practice all popular platforms including Windows, Linux, Mac OS X and Solaris.
 

Runs on all major web browsers
DHIS 2 is written according to the W3C standard for HTML and CSS and runs on any standard compliant web browser like Chrome, Firefox, Opera, Safari 4 and Internet Explorer 9+. The DHIS 2 team recommends Chrome as it provides excellent performance for Javascript-intensive applications like DHIS 2.
 

Runs on multiple relational databases
DHIS 2 currently runs on the PostgreSQL, MySQL and H2 database systems. DHIS 2 is built with Hibernate and only minor development efforts are needed to make it run on any major relational database.
 

Licensed as open source software
DHIS 2 is released as free and open software under the BSD license. This means that it is not only available for download free of charge, but you have access to the source code and may modify and redistribute the software in any way you like.
 

Works off-line
DHIS 2 is a web application - however the data entry module can be operated without Internet connectivity. This means that if Internet goes down during a working session one can continue to enter data into the system. The data is stored locally in the browser and can easily be uploaded to the central server as soon as connectivity returns.
 

Modular
DHIS 2 has a modular architecture. From an implementer perspective this means that it's possible to include the modules and the functionality which are required in your context and exclude what you don't need. From a developers perspective this means that it's easier to create functionality and plug it into the application without interfering with the existing source code.
 

Interoperable
DHIS 2 supports the official format for health data exchange developed by WHO called SDMX-HD. This makes the system interoperable with other software applications in the domain, like the iHRIS, the OpenMRS, and the WHO IMR, and typically plays an important role in assembling data from hospital, human resource and logistics systems into aggregate analysis and reports. DHIS 2 also has a rich REST-based Web API which provides programmatic access to most parts of the system and can act as a platform for third-party Web portals and software clients.
 

Flexible
The DHIS 2 meta data model is completely flexible. This implies that no development effort is needed to cater for special requirements for data entry or analysis. For instance, the system allows you to define any data element for which to capture data and features a flexible hierarchy of organizational units.
 

Internationalized
DHIS 2 is internationalized both in terms of user interface and database meta-data content. This means that the user is free to select which locale to display. DHIS 2 is currently available in English, French, Spanish, Portuguese, Hindi, Vietnamese, Chinese and Norwegian.


.

Rabu, 22 Januari 2014

Data Base IBM : DB2

Logo DB2 IBM

Tak banyak yang tahu ternyata IBM raksasa perangkat keras yng terkenal dengan produk servernya memiliki produk data base. IBM memiliki data base DB2 yang mestinya patut diperhitungkan melihat reputasi IBM sebagai perusahaan raksasa.

IBM DB2 Enterprise Server Edition merupakan sebuah perangkat lunak sistem manajemen basisdata relasional yang dikembangkan oleh IBM. Perangkat lunak tersebut utamanya berjalan pada sistem operasi Unix (sebut saja AIX), Solaris, Linux, IBM i/OS/400, z/OS, dan Microsoft Windows. DB2 juga diketahui digunakan sebagai sistem basis data pada IBM InfoSphere Warehouse edition.

DB2 memiliki sejarah panjang dan ditenggarai sebagai perangkat lunak basisdata pertama yang mengimplementasikan SQL, meski demikian, umumnya Oracle lebih dikenal sebagai perangkat lunak basisdata pertama yang dikomersilkan secara luas dengan menyertakan dukungan atas SQL.

Penamaan DB2 pertama kali diberikan pada tahun 1983 untuk produk sistem manajemen basis data milik IBM saat merilis produk tersebut untuk platform peladen kelas mainframe. Sebelumnya, produk sejenis dinamai sebagai SQL/DS. Sistem 38 yang muncul lebih awal sebenarnya juga telah membawa paket perangkat lunak basis data relasional yang dinamai System Relational. Asal muasal DB2 bermula pada era tahun 1970an saat Edgar F. Codd yang saat itu merupakan karyawan IBM, menjabarkan teori basisdata relasional yang dipublikasikannya pada bulan juni 1970. Untuk mengimplementasikan model tersebut, Codd membutuhkan suatu bahasa basisdata relasional yang kemudian dinamainya sebagai Alpha. Pada masa itu, IBM bahkan tidak yakin atas potensi dari ide yang dicetuskan oleh Codd, dan cenderung membiarkan implementasinya dilakukan oleh sekelompok programmer IBM tanpa dipandu oleh Codd, merekalah yang kemudian melanggar beberapa kaidah mendasar dari model relasional yang dicetuskan oleh Codd. Hasil kerja dari sekelompok programmer ini dinamai oleh mereka sebagai "Structured English QUEry Language" atau singkat SEQUEL. Saat IBM bermaksud merilis produk sistem basisdata yang pertama, mereka membutuhkan bahasa yang bisa digunakan untuk pengaksesan data, SEQUEL akhirnya dimodifikasi ulang dan dinamai sebagai System Query Language atau disingkat SQL untuk membedakannya dengan SEQUEL.

Saat Informix mengakuisisi Illustra dan membuat produk basis data mereka menjadi object-SQL DBMS dengan diperkenalkan produk Universal Server, baik Oracle dan IBM mengikuti jejak tersebut dengan menambahkan dukungan yang sama atas produk basis data yang ada. Tahun 2001, IBM mengakuisisi Informix dan berhasil menggabungkan teknologi basis data pada produk basis data IBM DB2.

Selama beberapa tahun, DB2 umumnya hanya tersedia secara eksklusif pada jajaran produk komputer mainframe milik IBM. Baru pada beberapa tahun terakhir, IBM menyediakan pula versi DB2 yang mendukung sistem operasi lain, termasuk dalam hal ini Linux, Unix, dan server Windows. Sebab itu rilis produk DB2 yang mendukung platform-platform tersebut dikenal pula sebagai IBM DB2 LUW.

IBM DB2 tersedia dalam beberapa edisi; Express Edition, Workgroup Server Edition, serta Enterprise Server Edition. Masing-masing edisi memiliki sejumlah perbedaan atas fitur serta kapabilitas yang ditujukan untuk lingkungan serta intensitas kerja yang berbeda. Namun, perangkat lunak aplikasi yang dibuat untuk DB2 edisi tertentu dapat berjalan tanpa modifikasi apapun pada produk-produk DB2 edisi yang lainnya.

Sementara itu, DB2 for z/OS (versi untuk mainframe) tersedia baik sebagai paket bawaan ataupun dalam bentuk produk tambahan atas paket perangkat lunak yang menyertai setiap pembelian mainframe IBM.

DB2 for i atau sebelumnya dikenali sebagai DB2/400 merupakan bentuk varian lain dari IBM DB2, namun berbeda halnya dengan varian lainnya, versi DB2 for i terintegrasi sangat erat dengan sistem operasi IBM System i.

Rabu, 15 Januari 2014

Mengenal Data Base: Postgre SQL

Kepala Gajah, Logo PostgreSQL

Untuk mengembangkan aplikasi database, salah satunya untuk keperluan Sistem Informasi Kesehatan pasti menggunakan database. Salah satu alternatif database gratis (not free, tapi harga relatif terjangkau) adalah dengan menggunakan database PostgreSQl.

PostgreSQL merupakan database server cukup dikenal di kalangan administrator database, programer aplikasi, maupun pengembang web. Popularitasnya ikut menanjak mengikuti saudaranya “MySQL” yang telah lebih dulu merebut hati jutaan pengguna di seluruh dunia. Sifatnya yang open source dan lisensi bebas, serta sama-sama berawal dari platform Unix ikut menunjang penyebarannya. Paket PostgreSQL juga dapat ditemukan dikekemas bersama beberapa distro Linux.

PostgreSQL merupakan database RDMBS ‘bebas” yang powerful dan tidak kalah dengan database komersil sekelasnya Oracle, maupun Sybase, dan Informix, seperti Blue Elephant yang menjadi gambar logonya. Pengembang PostgreSQL selama kurun waktu 15 tahun ini adalah ratusan orang di banyak universitas dan organisasi yang melakukan kominikasi lewat internet.
Berbagai fitur yang ada di PostgreSQL semacam transaction, merupakan jawaban untuk mereka yang memerlukan fasilitas tersebut tapi belum menemukannya di MySQL. Anda akan diajak pula dari melakukan instalasi sampai mempergunakan tool-tool berbasis gratis untuk melakukan pemeliharaan database dan sebagai user PostgreSQL.

Database Server PostgreSQL yang kini mendukung platform NT, Solaris, Sun OS, HPUX, AIX, Linux, Irix, FreeBSD dan kebanyakan Unix lainnya telah dikembangkan sejak 1985.
Database ini diturunkan dari INGRES dan POSTGRES, proyek database akademis pada University of California di Berkeley. Selama ini PostgreSQL telah dipelihara, ditingkatkan dan didukung oleh sekelompok pengembang yang stabil serta sejumlah kontributor.

PostgreSQL didisain untuk skala besar, memiliki ciri berorientasi objek, namun tetap dapat digunakan layaknya RDBMS pada umumnya. Para pengembangnya (dulu) mengutamakan kelengkapan feature ketimbang dukungan penuh akan standar SQL. Dalam perjalanannya, kelebihan feature ini justru membuat Postgres semakin powerful dan membuatnya dapat disejajarkan dengan database besar lainnya seperti Oracle. Salah satu contoh standar SQL yang belum dipenuhi oleh PostgreSQL saat ini (versi 6.5.3) adalah referential integrity dan outer-join. Meski demikian, programmer Postgres tetap merencanakan untuk membuatnya memiliki standar SQL yang sudah ditetapkan. Fasilitas standar lain yang telah didukung adalah trigger dan function.

Function dalam PostgreSQL sangat unik karena PostgreSQL tidak menetapkan built-in language untuk penulisan function. PostgreSQL menyerahkan kepada pemakai untuk memilih sendiri bahasa yang diinginkan yang disebut Procedural Language. Pada saat deklarasi function, Anda harus menyebutkan bahasa yang digunakan. Pada versi 6.5.3 procedural language yang tersedia adalah pgSQL dan Tcl. Jadi script function yang dideklarasikan akan diterjemahkan oleh library yang bersangkutan (tergantung bahasa yang dipilih) untuk selanjutnya library tersebut melakukan koordinasi dengan library PostgreSQL.

Kelebihan PostgreSQL
  1. PostgreSQL memiliki arsitektur multiproses (forking) yang berarti memiliki stabilitas yang lebih tinggi, sebab satu proses anak yang mati tidak akan menyebabkan seluruh daemon mati—meskipun pada kenyataannya, dulu ini sering terjadi.
  2. Dalam kondisi load tinggi (jumlah koneksi simultan besar), kecepatan PostgreSQL sering mengalahkan MySQL untuk query dengan klausa JOIN yang kompleks, hal ini dikarenakan PostgreSQL mendukung locking di level yang lebih rendah, yaitu row.
  3. PostgreSQL memiliki fitur OO seperti pewarisan tabel dan tipe data, atau tipe data array yang kadang praktis untuk menyimpan banyak item data di dalam satu record.Dengan adanya kemampuan OO ini maka di PostgreSQL, kita dapat mendefinisikan sebuah tabel yang mewarisi definisi tabel lain.
  4. PostgreSQL menyediakan hampir seluruh fitur-fitur database seperti yang terdapat dalam produk database komersial pada umumnya.
  5. PostgreSQL pun memiliki tipe data geometri (seperti titik, garis, lingkaran, poligon) yang mungkin berguna bagi aplikasi ilmiah tertentu
  6. PostgreSQL memberikan kita kemampuan mendefinisikan sebuah field sebagai array.
  7. PostgreSQL memiliki hampir semua fasilitas standar yang biasanya diinginkan: view (tabel virtual), trigger, subselek, stored procedure (dalam beberapa bahasa), dan foreign key constraint
  8. PostgreSQL juga memiliki apa yang disebut rule, yaitu tindakan custom yang bisa kita definisikan dieksekusi saat sebuah tabel di-INSERT, UPDATE, atau DELETE
  9. Postgres juga mempunayai kemampuan untuk membuat konektifitas dengan database lain seperti pgdump, Interbase, pgaccess dan hampir semua database pada Linux.
  10. kemampuannya menampung data spasial, sehingga ia bisa digunakan dalam pembuatan situs yang berbasis Web GIS untuk pemetaan dan sebagainya.
  11. PostgreSQL memiliki lisensi GPL (General Public License) dan oleh karena itu PostgreSQL dapat digunakan, dimodifikasi dan didistribusikan oleh setiap orang tanpaperlu membayar lisensi (free of charge) baik untuk keperluan pribadi, pendidikan maupun komersil.
  12. PostgreSQL mendukung banyak jenis bahasa pemrograman,antara lain: SQL, C, C++, Java, PHP, etc.
  13. PostgreSQL juga merupakan alternative untuk sistem database open-source lainnya seperti MySQL dan Firebird, terutama sistem proprietari seperti Oracle, Sybase, IBM’s DB2dan Microsoft SQL Server.
Tools yang tersedia cukup banyak dan sangat berguna seperti:
  1. pg_dump: konversi objek database menjadi script SQL
  2. pgaccess: drag & drop-nya cukup menyenangkan
  3. PostgreSQL didukung oleh banyak bahasa (atau Postgres mendukung banyak bahasa?), antara lain: C++, Java, Perl, Tcl, PHP3 dan Python. Library untuk ODBC dan JDBC juga telah tersedia, sehingga bahasa lainnya yang mendukung keduanya dapat mengakses PostgreSQL