Arsitektur Sistem Informasi Klasifikasi Sistem Informasi

g. Komunikasi Data Komunikasi data adalah merupakan bagian dari telekomunikasi yang secara khusus berkenaan dengan transmisi atau pemindahan data dan informasi diantara komputer-komputer dan piranti-piranti yang lain dalam bentuk digital yang dikirimkan melalui media komunikasi data. Data berarti informasi yang disajikan oleh isyarat digital. Komunikasi data merupakan bagian vital dari suatu sistem informasi karena sistem ini menyediakan infrastruktur yang memungkinkan sebuah komputer dapat berkomunikasi satu sama lain.

2.2.2 Arsitektur dan Klasifikasi Sistem Informasi

Didalam sistem informasi terdapat arsitektur untuk membuat sistem informasi secara maksimal. Sistem informasi juga dapat di klasifikasikan dari berbagai sudut pandang. Berikut penjelasan dari arsitektur dan klasifikasi sistem informasi.

1. Arsitektur Sistem Informasi

Sistem informasi dapat di bentuk sesuai kebutuhan organisasi masing- masing. Oleh karena itu, untuk dapat menerapkan sistem yang efektif dan efisien diperlukan perencanaan, pelaksanaan, pengaturan, dan evaluasi sesuai keinginan masing-masing organisasi. Guna dari sistem yang efektif dan efisien tidak lain untuk mendapatkan keunggulan dalam berkompetisi. Semua orang dapat menggunakan sistem informasi dalam organisasi, tetapi faktor efisiensi setiap sistem adalah berbeda.

2. Klasifikasi Sistem Informasi

Sistem informasi merupakan suatu bentuk integrasi antara satu komponen dengan komponen lain karena sistem informasi memiliki sasaran yang berbeda untuk setiap kasus yang terjadi yang ada di dalam sistem tersebut. Untuk dapat membedakan setiap kasus yang ada maka sistem informasi dibeda-bedakan kedalam klasifikasitertentu. Oleh karena itu, sistem dapat di klasifikasikan dari beberapa sudut pandang, diantaranya: a. Sistem Abstrak Atau Sistem Fisik Sistem abstrak adalah sistem yang berupa pemikiran atau ide-ide yang tidak tampak secara fisik, misalnya sistem teologia, yaitu sistem yang berupa pemikiran hubungan antara manusia dengan Tuhan. Sistem fisik merupakan sistem secara fisik, misalnya sistem komputer. b. Sistem Alamiah Dan Sistem Buatan Manusia Sistem alamiah adalah sistem yang terjadi melalui proses alam, tidak dibuat oleh manusia, misalnya sistem perputaran bumi. Sistem buatan manusia merupakan sistem yang melibatkan interaksi manusia dengan mesin, yang disebut human machine system. Sistem informasi berbasis internet merupakan contoh human machine system karena menyangkut penggunaan komputer yang berinteraksi dengan manusia. c. Sistem Deterministik Dan Sistem Probabilistik Sistem deterministik adalah sistem yang beroperasi dengan tingkah laku yang dapat diprediksi. Sistem probabilistik dalah sistem yang kondisi masa depannya tidak dapat diprediksi karena mengandung unsur probabilistik. d. Sistem Terbuka Dan Sistem Tertutup Sistem terbuka adalah sistem yang berhubungan dan di pengaruhi oleh lingkunagn luarnya. Sistem ini menerima masukan dan menghasilkan keluaran untuk subsistem lainnya. Sistem tertutup adalah sistem yang tidak terhubung dan tidak terpengaruh oleh lingkungan luarnya. Sistem ini bekerja secara otomatis tanpa campur tangan pihak luar.

2.3 UML

Unified Modelling Language Unified Modelling Language UML adalah sebuah bahasa yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka UML lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntaxsemantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD Object-Oriented Design, Jim Rumbaugh OMT Object Modeling Technique, dan Ivar Jacobson OOSE Object-Oriented Software Engineering. Abstraksi konsep dasar UML yang terdiri dari structural classification, dynamic behavior, dan model management. Main concepts bisa kita pandang sebagai term yang akan muncul pada saat kita membuat diagram. Dan view adalah kategori dari diagaram tersebut. UML mendefinisikan diagram-diagram sebagai berikut: a. use case diagram; b. class diagram; c. statechart diagram; d. activity diagram; e. sequence diagram; f. collaboration diagram; g. component diagram; h. deployment diagram.

2.4 PHP

Script PHP PHP: Hypertext Preprocessor merupakan bahasa web server side yang bersifat open source. Bahasa PHP menyatu dengan script HTML yang sepenuhnya dijalankan pada server. Kelebihan dari bahasa pemrograman PHP adalah sebagai berikut: a. Sebuah script yang tidak melakukan kompilasi dalam penggunanya. b. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai IIS sampai dengan dengan Apache, dengan konfigurasi yang sangat mudah. c. Dalam sisi pengembangan lebih mudah, karena banyaknya developer yang membantu dalam pengembangannya. d. Pada sisi pemahaman, PHP adalah bahasa scripting yang paling mudah dikuasai karena referensi yang mudah ditemukan. PHP adalah bahasa pemrograman Open Source yang dapat digunakan diberbagai Sistem Operasi Unix, Linux, Windows dan dapat dijalankan secara runtime melalui console ataupun terminal serta dapat dijalankan dengan perintah- perintah sistem.

2.5 OOP Object Oriented Programming

Object Oriented Programming OOP adalah istilah yang sangat popular akhir-akhir ini di dunia pemograman. Bahasa pemrograman modern biasanya mendukung pendekatan OOP untuk membangun software. OOP menggunakan klasifikasi, relasi dan properti pada objek di sistem untuk membantu pembangunan program. Bagi pemula, logika pemrograman OOP mungkin sedikit rumit. Tidak seperti pemrograman prosedural yang lebih mudah dipahami. Namun, pendekatan OOP mempunyai proyek yang cerah untuk menyelesaikan pekerjaan-pekerjaan yang cukup komplek. Beberapa istilah pada OOP: a. Abstraksi abstraction b. Pewarisan inheritance c. Banyak bentuk polymorphism d. Pembungkusan encapsulation e. Pengiriman pesan message sending f. Assosiasi association g. Agregasi aggregation

2.6 CODEIGNITER

CodeIgniter merupakan salah satu dari sekian banyak framework PHP yang ada. CodeIgniter dikembangkan oleh Rick Ellis. Tujuan dari pembuatan framework CodeIgniter ini menurut user manualnya adalah untuk menghasilkan framework yang akan dapat digunakan untuk pengembangan proyek pembuatan website secara lebih cepat dibandingkan dengan pembuatan website dengan cara coding secara manual, dengan menyediakan banyak sekali pustaka yang dibutuhkan dalam pembuatan website, dengan antarmuka yang sederhana dan struktur logika untuk mengakses pustaka yang dibutuhkan. CodeIgniter membiarkan kita untuk memfokuskan diri pada pembuatan website dengan meminimalkan pembuatan kode untuk berbagai tujuan pembuatan website. Kelebihan dari bahasa pemrograman PHP CodeIgniter adalah sebagai berikut: a. Gratis. CodeIgniter dilisensikan dibawah lisensi ApacheBSD style open source license, ini berarti kita dapat menggunakannya sesuai dengan keinginan kita. b. Berjalan di PHP versi 4 dan 5. Sekarang ini PHP sudah mencapai versi ke 5, meskipun begitu masih banyak orang yang tetap menggunakan PHP versi 4, oleh sebab itu CodeIgniter dikembangkan agar tetap kompatibel dengan PHP versi 4 dan dapat dijalankan pada PHP versi 5. c. Ringan dan Cepat. Secara default CodeIgniter hanya berjalan dengan memutar beberapa pustaka saja, dengan demikian hanya membutuhkan resource yang sedikit sehingga ringan dan cepat dijalankan. Pustaka-pustaka lain yang nantinya akan digunakan bisa diputar sesuai dengan kebutuhan. d. Menggunakan MVC. CodeIgniter menggunakan lingkungan pengembangan dengan metode Model View Controller MVC yang membedakan antara logika dan presentasitampilan, sehingga tugas bisa lebih mudah dipecah-pecah. Ada bagian yang khusus membuat tampilan dan bagian yang membuat core programnya. e. Dokumentasi. Salah satu hal yang bisa dijadikan barometer apakah sebuah aplikasi benar-benar dikembangkan atau tidak bisa dilihat dari dokumentasinya. Dalam hal ini CodeIgniter sangat luar biasa, terdapat dokumentasi yang sangat lengkap tentang semua hal yang ada dalam CodeIgniter. Mulai dari langkah installasi sampai dokumentasi fungsi-fungsinya tersedia. Adanya dokumentasi sangat memudahkan bagi pemula dalam mempelajari lingkungan pengembangan website dengan CodeIgniter. f. Pustaka yang Lengkap. CodeIgniter dilengkapi dengan berbagai pustaka siap pakai untuk berbagai kebutuhan, misalnya saja koneksi database, email, session dan cookies, keamanan, manipulasi gambar dan banyak lagi. Dengan adanya pustaka yang lengkap memungkinkan seorang programmer mengembangkan aplikasinya supaya menjadi yang lebih baik lagi.

2.6.1 Konsep Model-View-Controller MVC

Konsep MVC adalah konsep pemisahan antara logic dengan tampilan dan database. Manfaat konsep ini adalah, membuat coding logic lebih mudah, karena sudah dipisah dengan code untuk tampilan dan membuat programmer dapat bekerja secara terpisah dengan designer. Programmer mengerjakan logic, sedangkan designer berkutat dengan design dan tampilan. Konsep MVC Model view Controller dapat dilihat pada gambar 2.5 beserta penjelasan dari gambar tersebut. Gambar 2.5 Pola Desain MVC Pola desain MVC Model-View-Controller memberikan pemecahan permasalahan coupling yang tinggi tersebut dengan menduplikasi lapisan data access, business logic, dan data presentation atau user interaction. Berikut ini penjelasan dari gambar pola desain MVC Model-View-Controller yang ada pada gambar 2.5: a. Model : Merupakan code struktur data. Model berisi fungsi di dalam pengolahan database. Script Sql masuk di sini. Model merepresentasikan lapisan data enterprise dan logika atau rule bisnis yang akan mengakses dan mengupdate data tersebut. Pada bagian model juga merepresentasikan proses riil yang terjadi pada suatu objek. Bisa termasuk dalam bagian ini adalah javabeans dengan properti dan method yang dimiliki getters, setters dan constructors. Javabeans berhubungan dengan konsep kegunaan dari website yang kita buat yang akan digunakan oleh user. b. View : Merupakan code untuk menampilkan tampilan suata program. Tampilan dapat berupa Web page, header, footer dan apa saja yang berjenis tampilan.Bagian ini bisa dibangun dengan teknologi JSP. Bagian ini yang akan memberikan tampilan kepada user, dari data yang didapatkan dari lapisan model. Jadi JSP digunakan disini hanya untuk menampilkan data saja. Bagian ini bisa juga disebut presentation layer. Selain JSP bisa juga dengan menggunakan JSF. c. Controller : Merupakan code untuk logic, algoritma dan sebagai penghubung antara model, view, dan sumber lain yang di perlukan untuk mengolah HTTP request dan generate web page. Bagian ini digunakan untuk menerima setiap request dan memformulasikan sutau response untuk request tersebut. Ini bisa dilakukan dengan teknologi servlet, yang bisa juga diimplementasikan dengan JSP atau JSF.

2.6.2 Struktur File CodeIgniter

CodeIgniter adalah sebuah php framework yang berupa kumpulan folder dan file php, java script,css,txt dan file berbasis web lainnya dengan setting tertentu untuk menggunakannya dan menyediakan library dan helper yang dapat dimanfaatkan didalam pemrograman php. CodeIgniter di jalankan under web dan harus dengan web server. Program CodeIgniter cukup di letakkan di bawah folder directory web server anda. Struktur file codeigniter dapat dilihat pada gambar 2.6 beserta penjelasannya. Gambar 2.6 Struktur File CodeIgniter CodeIgniter System User guide Scaffolding Application Cache Codeigniter Database Fonts Helpers Language Libraries Logs Plugins

2.6.3 Installasi CodeIgniter

Meskipun namanya installasi tetapi karena CodeIgniter adalah aplikasi berbasis website maka yang sebenarnya dilakukan adalah menyalin folder aplikasi CodeIgniter kedalam DocumentRoot dari web server yang sudah diinstall sebelumnya. Bukan melakukan installasi seperti pada aplikasi sistem. Untuk melakukan installasi cukup ektrak file yaitu file CodeIgniter_1.6.1.zip, kemudian letakan folder hasil ekstrak tadi di DocumentRoot web server, yaitu folder htdocs didalam direktori C:\\apachefriends\xampp bagi yang menggunakan XAMPP di Windows. Folder hasil ekstrak tersebut bisa dirubah namanya agar memudahkan kita, misal direname menjadi ci default hasil ekstrak adalah CodeIgniter_1.6.1. Didalam folder tersebut ada 2 folder lagi yaitu sistem dan user_guide, silahkan saja untuk memindahkan folder user_guide ke tempat lain karena inti aplikasi ada di folder sistem dan folder user_guide berisi dokumentasi dari CodeIgniter. Didalam folder sistem masih terdapat beberapa folder lain, yang akan sering diakses adalah folder application karena di folder inilah script-script kita akan disimpan. Beberapa folder yang ada di dalam direktori sistem adalah: a. Application, di folder inilah kode-kode yang kita buat nantinya akan disimpan didalam folder yang sesuai. Model disimpan di folder model, Controller di folder controller dan View di folder views. Folder-folder yang terdapat di dalam direktori application adalah: a. Model untuk menyimpan model yang kita buat. b. Controller untuk menyimpan controller. c. View untuk menyimpan view tampilan website. d. Config untuk menyimpan konfigurasi website yang akan kita buat. Mulai dari konfigurasi dasar, basis data, routing dan lain-lain. e. Error berisi file-file yang akan ditampilkan jika ada error pada script yang kita buat. f. Libraries untuk menyimpan pustaka yang kita tambahkan atau pustaka buatan kita sendiri. g. Hooks untuk meyimpan hook yang kita buat. b. Cache, untuk meyimpan caching dari website. c. CodeIgniter, berisi file-file yang akan me-load inti dari framework. d. Database, berisi class-class yang akan digunakan untuk bekerja dengan basis data, termasuk didalamnya driver-driver untuk beberapa server basis data yang didukung oleh CodeIgniter. e. Fonts, digunakan untuk menyimpan font yang nanti akan kita gunakan di dalam website. f. Helpers, berisi helper. g. Language, digunakan untuk menyimpan file-file dukungan bahasa. h. Libraries, berisi pustaka-pustaka yang disediakan untuk digunakan untuk pembuatan website. i. Logs, berisi file-file catatan yang mencatat log dari website kita. j. Plugins, untuk menyimpan plugin. k. Scafollding, berisi file-file untuk keperluan scafollding. Setelah itu, misal foldernya bernama ci maka website bisa diakses lewat http:localhostci, tapi sebelum itu jangan lupa untuk melakukan sedikit modifikasi pada bagian konfigurasi CodeIgniter. Buka file systemapplicationconfigconfig.php. Di file inilah konfigurasi dasar CodeIgniter disimpan. Yang perlu dirubah untuk installasi awal ini adalah pada bagian base URL. config[base_url] = www.your-site.com; Pada bagian www.your-site.com ganti dengan URL anda. Karena saya hanya mencoba di localhost dengan nama folder ci, maka base URL nya saya ganti menjadi: config[base_url] = http:localhostci; Setelah itu silahkan dibuka alamat http:localhostci . Installasi sudah selesai dan sekarang kita siap membuat website menggunakan framework CodeIgniter. Gambar 2.7 Tampilan awal setelah CodeIgniter di install.

2.6.4 Fungsi dan Class dalam CodeIgniter

a. Library

Library atau pustaka merupakan kumpulan class dan fungsi yang disediakan CodeIgniter. Lewat library inilah CodeIgniter menyediakan fungsi- fungsi yang bisa digunakan dalam pembuatan website. Misalnya saja library untuk akses ke basis data, library untuk mengirim email, library untuk validasi input dan lain-lain. Library diletakan didalam direktori systemlibraries atau bisa juga di dalam systemapplicationlibraries. Untuk dapat menggunakan sebuah library maka library tersebut harus di-load lebih dahulu di dalam controller yang akan menggunakannya. this-load-library‘[nama_library]’; Selain di-load secara manual di dalam controller, library yang ingin digunakan juga bisa di-load secara otomatis sehingga bisa digunakan pada semua controller dengan menambahkannya pada array pada file autoload.php didalam direktori systemapplicationconfig pada bagian: autoload[libraries] = array; Berikut beberapa library yang ada di CodeIgniter: a. Library Database. b. Library E-mail. c. Library Uploading File d. Pagination Library e. HTML Table Library f. Session Library

b. Helpers

Helpers adalah kumpulan fungsi-fungsi dalam berbagai kategori yang seperti halnya library juga kita gunakan untuk pembuatan website. Misalnya saja URL helpers untuk berkerja dengan URL, Form helpers untuk bekerja dengan form HTML dan masih banyak lagi. Helpers dalam CodeIgniter tidak seperti library yaitu tidak ditulis dalam OOP tetapi menggunakan struktur pemrograman biasa. Mungkin saja hal itu untuk memudahkan saja karena sebuah fungsi di dalam helpers akan berguna hanya untuk menyelesaikan satu masalah. Misalnya saja fungsi anchor digunakan untuk membuat hyperlink. Helpers secara default tersimpan di dalam direktori systemhelpers meskipun begitu kita juga bisa menyimpannya didalam direktori systemapplicationhelpers. Nama file helpers memiliki standar [nama_helper]_helper.php sehingga helpers form akan memiliki file dengan nama form_helper.php. Untuk dapat menggunakan helper maka terlebih dahulu kita me-loadnya didalam controller yang akan menggunakannya. Setelah dibuka helpers tersebut akan bisa digunakan dalam controller tersebut dan dalam views yang dipanggil dari controller bersangkutan. this-load-helper‘[nama_helper]’; Sehingga this-load-helper‘form’ akam me-load form helpers. Kita juga bisa membuka beberapa helpers sekaligus dengan memasukan helpers-helpers yang akan dibuka ke dalam array. Selain dibuka di dalam controller, yang menyebabkan helpers tersebut hanya bisa digunakan di dalam controller tersebut, kita juga bisa melakukan load otomatis sehingga helpers yang dibuka otomatis akan dapat digunakan dalam semua controller. Caranya buka file systemapplicationconfigautoload.php kemudian masukan helpers yang akan dibuka dalam array di baris: autoload[helper] = array;

c. Plugin

Plugin, seperti halnya helpers dan library juga berisi fungsi yang dapat digunakan untuk membantu pekerjaan pembuatan website. Bedanya satu plugin hanya untuk menyelesaikan satu buah tugas saja. Tidak seperti di dalam helpers yang bisa memiliki beberapa fungsi untuk tugas yang berbeda meskipun masih berhubungan. Selain itu jika helpers dan library termasuk kedalam inti sistem dari CodeIgniter, maka plugin merupakan tambahan yang dibuat oleh para pengembang di luar CodeIgniter dan biasanya didistribusikan sendiri. Plugin disimpan di dalam direktori systemplugin dengan standar nama file [nama_plugin]_pi.php sehingga jika ada plugin login maka nama filenya adalah login_pi.php. Sampai CodeIgniter versi 1.6.1 CodeIgniter hanya menyertakan dua buah plugin yaitu captcha dan calendar. Untuk dapat menggunakan plugin terlebih dahulu plugin tersebut harus di-load terlebih dahulu di dalam controller yang akan menggunakan plugin tersebut. this-load-plugin‘[nama_plugin]’; Plugin juga dapat dibuka secara otomatis dengan menambahkannya kedalam file systemapplicationconfigautoload.php pada bagian: autoload[plugin] = array;

d. Scaffolding

Pada saat melakukan konfigurasi routing pada file systemapplicationconfigroutes.php kita menemukan sebuah istilah yang disebut scaffolding. Fitur scaffolding pada CodeIgniter menyediakan cara yang mudah dan cepat untuk melakukan akses ke basis data, misalnya untuk input, edit atau delete data tanpa perlu menggunakan aplikasi lain. Dengan memasukan sebuah kata kedalam konfigurasi route[scaffolding_trigger] kita dapat mengakses tabel dalam basis data hanya dengan meyertakan kata tersebut saat membuka alamat website. Tentunya dengan asumsi bahwa semua konfigurasi untuk melakukan akses ke server basis data sudah benar. Fitur ini sangat berguna dalam masa pengembangan dan sebaiknya tidak lagi digunakan jika website sudah kita upload ke internet. Secara sederhana skenario penggunaan scaffolding adalah sebagai berikut: dalam membuat website dengan basis data tentu saja kita harus membuat tabel kemudian melakukan pengisian data, edit atau delete data. Hal tersebut bisa dilakukan dengan perintah-perintah SQL atau menggunakan aplikasi semacam phpMyAdmin atau MySQL-front bagi yang menggunakan MySQL. Fitur scaffolding menyediakan sebuah interface web browser untuk melakukan hal tersebut. Yang perlu dilakukan adalah buat tabelnya, kemudian tentukan kata yang akan kita gunakan untuk dapat membuka tabel yang kita buat.

e. Penanganan

Error Error atau kesalahan seringkali terjadi, mulai dari saat pengembangan sampai saat website sudah jadi dan di upload pun error masih sering ditemukan. Saat pengembangan pesan error sangat penting untuk mengetahui dimana kesalahan terjadi. Secara default CodeIgniter menampilkan semua error yang terjadi. Konfigurasinya terdapat pada file index.php pada bagian: error_reportingE_ALL; Fungsi tersebut membuat PHP akan menampilkan semua error yang terjadi.Jika tidak ingin semua error tampil kita bisa mengganti nilai E_ALL menjadi nilai lain agar PHP tidak menampilkan semua error yang terjadi. Karena pesan error bisa menjadi masalah. Orang lain bisa menggunakan pesan error untuk mendapatkan informasi tentang kelemahan yang ada pada website. CodeIgniter menyediakan fungsi-fungsi yang berkaitan dengan error. Fungsifungsi tersebut tidak perlu di-load terlebih dahulu karena sudah termasuk kedalam inti sistem CodeIgniter yang dibuka secara otomatis. Tampilan untuk pesan error tersimpan pada direktori systemapplicationerror.

f. Cache

CodeIgniter menyediakan fasilitas caching untuk menaikan performa saat website diakses. Dengan fasilitas caching ini maka semua halaman yang diakses akan disimpan kedalam cache sehingga saat ada user lain yang mengakses maka akan diberikan halaman hasil caching. Hal ini dapat mempercepat proses loading halaman website dan tentu saja akan mengurangi beban kerja dari web server. Fasilitas caching termasuk kedalam class library output, dan untuk melakukan caching pada setiap halaman website bisa dengan meletakan fungsi: this-output-cache[angka]; Dimana [angka] adalah jumlah menit sebelum halaman tersebut akan kadaluarsa diputar ulang. Saat sebuah halaman di akses untuk pertama kali maka cache dari halaman tersebut akan disimpan di dalam direktori systemcache. Pastikan direktori tersebut bisa ditulisi oleh web server. Jika ada pengunjung mengakses halaman yang sama maka akan diambilkan halaman hasil cache tersebut. Jika halaman tersebut sudah expired umurnya sudah melebihi batas angka yang diberikan maka hasil cache akan dihapus dan diganti dengan yang baru.

g. Keamanan

Masalah keamanan adalah maslah klasik yang selalu menghantui semua pengguna dan pengembang website. Meskipun CodeIgniter sudah menyediakan beberapa kemampuan untuk melakukan pengamanan tetapi tetap saja aman atau tidaknya suatu website lebih ditentukan oleh web masternya. CodeIgniter menyediakan batasan karakter apa saja yang bisa digunakan dalam pembuatan alamat URI yaitu berupa huruf dan angka atau jika menggunakan karakter lain hanya tilde ~ , period ., colon : , underscore _ dan dash - yang diperbolehkan. CodeIgniter juga tidak memperbolehkan penggunaan metode GET pada input form dan secara default semua input form menggunakan metode POST. Saat sebuah controller di-load maka CodeIgniter akan menghilangkan semua inputan yang menggunakan metode GET yang ditemukan,melakukan filter terhapap input dengan metode POST jika ditemukan, melakukan filter pada cookies jika ditemukan, menyediakan XSS filtering serta meyamakan karakter baris baru dengan \n. Cross Scripting Hack adalah salah satu jenis cracking website dengan memasukan kode-kode jahat kedalam website kita. CodeIgniter memiliki fitur XSS filtering yang akan menyaring semua input kemungkinan adanya kode-kode jahat.

2.7 DATABASE MySQL

MySQL merupakan database server di mana pemrosesan data terjadi di server, dan client hanya mengirim data serta meminta data. Oleh karena pemrosesan terjadi di server sehingga pengaksesan data tidak terbatas. Pengaksesan dapat dilakukan di mana saja oleh siapa saja dengan catatan komputer telah terhubung ke server. Lain halnya dengan database desktop di mana segala pemrosesan data seperti penambahan data ataupun penghapusan data harus dilakukan pada komputer yang bersangkutan. MySQL termasuk dalam kategori database manajemen sistem, yaitu database yang terstruktur dalam pengolahan dan penampilan data. Sejak komputer dapat menangani data yang besar, database manajemen sistem memegang peranan yang sangat penting dalam pengolahan data. Hal ini sangat diperlukan, karena data tersebut dapat diatur sesuai dengan kebutuhan pemakainya. MySQL merupakan Relational Database Manajemen Sistem RDBMS yaitu hubungan antar tabel yang berisi data-data pada suatu database. Hal tersebut lebih baik daripada jika semua data terkumpul menjadi satu dalam satu tabel. Kelebihan hal di atas, yaitu dapat mempercepat pencarian suatu tabel. Tabel-tabel tersebut di link oleh suatu relasi yang memungkinkan untuk mengkombinasikan data dari beberapa tabel ketika seorang user menginginkan menampilkan informasi dari suatu database. Ada beberapa alasan mengapa MySQL menjadi program database yang sangat popular dan digunakan oleh banyak orang. Alasan-alasan tersebut diantaranya ialah: a. MySQL merupakan database yang memiliki kecepatan yang tinggi dalam melakukan pemrosesan data, dapat diadalkan dan mudah digunakan serta mudah dipelajari. Mengapa mudah digunakan? Sebab MySQL telah banyak digunakan di manapun sehingga jika mempunyai masalah dengan database tersebut, dapat bertanya kepada banyak orang melalui internet maupun orang di sekitar yang siap membangun menyelesaikan masalah tersebut serta dukungan manual maupun referensi yang banyak bertebaran di internet. b. MySQL mendukung banyak bahasa pemrograman seperti C, C++, Perl, Phython, Java, dan PHP. Dengan menggunakan bahasa pemrograman tersebut untuk berinterakasi maupun berkomunikasi dengan MySQL, atau dapat digunakan sebagai komponen pembentuk antarmuka interface dari suatu database MySQL. c. Koneksi, kecepatan, dan keamanan membuat MySQL sangat cocok diterapkan untuk pengaksesan database melalui internet, dengan menggunakan bahasa pemrograman Perl atau PHP sebagai antarmukanya. d. MySQL dapat melakukan koneksi dengan client menggunakan protocol TCPIP, Unix socket Unix, atau Named Pipes NT. e. MySQL dapat menangani database dengan skala yang sangat besar dengan jumlah record mencapai lebih dari 50 juta, dapat menampung 60 ribu tabel, dan juga bisa menampung 5 milyar baris data. Selain itu, batas indek pada tiap tabel dapat menampung mencapai 32 indek. f. Dalam hal relasi antartabel pada suatu database, MySQL menerapkan metode yang sangat cepat yaitu dengan menggunakan metode one-sweep multijoin. MySQL sangat efisien dalam mengelola informasi yang di minta yang berasal dari banyak tabel sekaligus. g. Multiuser, yaitu dalam satu database server pada MySQL dapat diakses oleh beberapa user dalam waktu yang sama tanpa mengalami konflik atau crash. h. Security yang dimiliki database MySQL dikenal baik, karena memiliki lapisan sekuritas seperti level subnetmask, nama host dan izin akses user dengan sistem perizinan yang khusus serta password yang dimiliki setiap user dalam bentuk data terenkripsi. i. MySQL merupakan software database yang bersifat free atau gratis, jadi tidak perlu susah-susah mengeluarkan isi kantong di untuk hanya sekedar membayar lisensi kepada pembuat software. Hal ini sangat berbeda jika menggunakan software database seperti IBM DB ataupun Oracle, karena harus membayar mahal untuk mendapatkan lisensinya.

A. Structured Query Language SQL

SQL adalah bahasa standard yang digunakan oleh hampir semua database seperti MySQL, Oracle atau Microsoft SQL Server. Database menggunakan perintah SQL untuk memodifikasi data di dalam tabel, karena SQL dirancang dengan mudah untuk menguraikan hubungan antara tabel dengan baris. Perintah SQL yang sering digunakan antara lain Insert, Select, Update dan Delete. a Perintah INSERT Insert merupakan perintah untuk menambahkan data baru ke dalam tabel. Sintaks: INSERT INTO nama_tabel fields VALUESnilai_fields; b Perintah SELECT Select merupakan perintah untuk menampilkan data dari tabel. Dalam menampilkan data, dapat pula menambahkan kondisi-kondisi tertentu sesuai dengan kebutuhan. Sintaks: SELECT ekspresi_dan_fields FROM nama_tabel [ WHERE kondisi ] [ ORDER BY field [ ASC | DESC ] ] [ LIKE field [ kondisi ] ]