BAB II LANDASAN TEORI Pada tahap ini berisi pengertian dan penjelasan teori-teori yang digunakan penulis untuk pembangunan sistem. 2.1 Pengertian Sistem Sistem dapat didefinisikan dengan pendekatan prosedur dan dengan pendekatan komponen. Dengan pendekatan prosedur, sistem dapat didefinisikan sebagai kumpulan dari prosedur-prosedur yang mempunyai tujuan tertentu. Dengan pendekatan komponen, sistem dapat didefinisikan sebagai kumpulan dari komponen yang saling berhubungan sau dengan yang lainnya membentuk satu kesatuan untuk mencapai tujuan tertentu[2]. 2.2 Pengertian Sistem Informasi Sistem informasi adalah suatu sistem di dalam suatu organisasi yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung operasi, bersifat manajerial dan kegiatan strategi dari suatu organisasasi, dan menyediakan pihak luar tertentu dengan laporan - laporan yang diperlukan.. Jadi dapat disimpulkan bahwa sistem informasi adalah suatu alat yang membantu dalam menyediakan informasi bagi penerimanya dan untuk membantu dalam pengambilan keputusan bagi manajemen didalam operasi perusahaan sehari-hari dan informasi yang layak untuk pihak luar perusahaan[2]. 2.3 Akreditasi Akreditasi adalah kegiatan yang dilakukan untuk menentukan kelayakan program dan satuan pendidikan pada jalur pendidikan formal dan non formal pada setiap jenjang dan jenis pendidikan berdasarkan kriteria yang bersifat terbuka. Kriteria tersebut dapat berbentuk standar seperti yang termaktub dalam Pasal 35. ayat (1) yang menyatakan bahwa standar nasional pendidikan terdiri atas: standar II-1
II-2 isi, stándar proses, stándar kompetensi lulusan, stándar tenaga kependidikan, stándar sarana dan prasarana, stándar pengelolaan, stándar pembiayaan, dan stándar penilaian pendidikan yang harus ditingkatkan secara berencana dan berkala[1]. 2.4 Costumer Relationship Management (CRM) Costumer Relationship Management (CRM) menjadi istilah yang pada beberapa tahun terakhir semakin popular. Ditambah dengan perkembangan teknologi informasi yang semakin merambah berbagai aplikasi bisnis, CRM menjadi salah satu proses bisnis yang menarik untuk diperbincangkan. Kegiatan marketing mengelola seluruh aspek dari daur hidup pelanggan, mulai dari acquisition, fulfillment, hingga retention. Aktifitas CRM pada dasarnya bertujuan agar perusahaan dapat mengenali pelanggan secara lebih detail dan melayani mereka sesuai kebutuhannya. Secara umum, beberapa aktifitas utama dari konsep CRM adalah sebagai berikut : 1. Membangun database pelanggan yang kuat. 2. Membuat profil dari setiap pelanggan. 3. Analisis profitabilitas dari tiap-tiap pelanggan. 4. Interaksi dengan pelanggan yang lebih targeted dan customized[7]. 2.4.1 Peran software/aplikasi CRM Aplikasi CRM berguna bagi perusahaan dalam banyak hal : 1. Proses otomatisasi dari seluruh data yang ingin dipakai perusahaan dalam membangun database pelanggan. Dapat dibayangkan betapa sulitnya mengumpulkan data-data pelanggan, mencatat berapa kali menggunakan produk atau layanan perusahaan dan berbagai data lain jika dilakukan secara manual.
II-3 2. Memberikan laporan-laporan dari data yang dikumpulkan sehingga dapat menjadi informasi yang berguna bagi manajemen untuk proses pengambilan keputusan. Aplikasi CRM akan menjadi Decision Support System, dimana pihak manajemen tidak lagi direpotkan pada urusan teknis dalam membuat laporan dan menyusun informasi yang dibutuhkan[7]. 2.5 Hypertext Preprocessor (PHP) Menurut kamus computer, PHP adalah bahasa pemrograman untuk dijalankan melalui halaman web, umumnya digunakan untuk mengolah informasi di internet. Sedangkan dalam pengertian lain PHP adalah singkatan dari PHP Hypertext Preprocessor yaitu bahasa pemrograman web server-side yang bersifat open source atau gratis. PHP merupakan script yang menyatu dengan HTML dan berada pada server (server side HTML embedded scripting). PHP adalah bahasa pemrograman script yang paling banyak dipakai saat ini. PHP adalah script yang digunakan untuk membuat halaman web yang dinamis. Dinamis berarti halaman yang akan ditampilkan dibuat saat halaman itu diminta oleh client selalu terbaru atau up to date. Semua script PHP dieksekusi pada server dimana script tersebut dijalankan[3]. 2.5.1 Kelebihan PHP Banyak sekali kelebihan-kelebihan yang dimiliki PHP dibandingkan dengan bahasa pemrograman yang lain, diantaranya: 1. Bisa membuat web menjadi dinamis. 2. PHP bersifat open source, sehingga dapat digunakan oleh siapa saja secara gratis. 3. Program atau aplikasi yang dibuat menggunakan PHP dapat running atau dijalankan di semua sistem operasi. 4. Aplikasi dengan PHP cukup cepat dibandingkan dengan aplikasi CGI dengan perl atau phyton bahkan lebih cepat dibandingkan dengan ASP
II-4 maupun java dalam berbagai aplikasi web (kecepatan ini bisa bervariasi karena dipengaruhi oleh tipe aplikasi dan jumlah pengunjung). 5. Mendukung banyak paket database baik komersial maupun nonkomersial. 6. Bahasa pemrograman PHP adalah bahasa pemrograman yang tidak melakukan sebuah kompilasi dalam penggunaannya. 7. Web server yang dapat mendukung PHP dapat ditemukan dimana-mana dari mulai Apache, IIS, Lighttpd hingga Xitami dengan konfigurasi yang relatif mudah. 8. Dalam sisi pengembangan lebih mudah, Karena banyaknya milis-milis dan developer yang siap membantu dalam pengembangan. 9. Dalam sisi pemahaman, PHP adalah bahasa scripting yang paling mudah karena memiliki referensi yang banyak. 10. Berbagai script dan aplikasi yang siap pakai dan gratis telah tersedia dan dapat digunakan kapanpun[3]. 2.5.2 Kekuragan PHP Selain kelebihan PHP, PHP juga mempunyai beberapa kekurangan. Namun untuk masalah kekurangan, PHP dapat dibilang bahasa pemrograman yang jauh dari kekurangan. Namun disini akan ditulis beberapa kekurangan yang dimiliki oleh PHP. Adapun kekurangan tersebut diantaranya adalah sebagai berikut : 1. Permasalahan yang sering terjadi pada register_globals. 2. Tidak mengenal package. 3. Jika tidak diencoding, makan kode PHP dapat dibaca semua orang. 4. Tidak memiliki sistem pemrograman berorientasi objek yang sesungguhnya (sampai versi 4). 5. PHP memiliki kelemahan security tertentu apabila programer tidak jeli, atau berhati-hati dalam melakukan pemrograman dan kurang memperhatikan isu dan konfigurasi PHP[3].
II-5 2.6 Pengertian Web Server Web Server adalah sebuah perangkat lunak server yang berfungsi menerima permintaan HTTP atau HTTPS dari klien yang dikenal dengan browser web dan mengirimkan kembali hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML. Pengertian lain web server adalah media untuk mengolah data situs sedangkan tempat untuk menyimpan berkas atau dokumen situs disebut dengan istilah server hosting. Jadi peranan web server ini sangatlah penting dalam pembuatan sebuah situs dan juga untuk mengelola bahasa pemrograman berbasis web contohnya PHP Gambar 2.1 Topologi web server[3] Dalam pengertian lain juga disebutkan bahwa web server adalah software yang menjadi rumah dari world wide web (www). Web server menunggu permintaan dari client yang menggunakan browser. Jika ada permintaan dari browser, maka web server akan memproses permintaan tersebut dan kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser[3]. 2.6.1 Jenis-jenis Web Server Berikut ini akan dijelaskan beberapa jenis web server yang terkenal yang sering digunakan banyak orang pada umumnya : 1. Apache Web Server Apache web server adalah server web yang dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web.
II-6 Gambar 2.2 Apache web server[3] 2. Apache Tomcat Apache Tomcat merupakan servlet atau JSP container yang dibuat oleh Apache Software Foundation. Container ini bisa dibilang merupakan server untuk menjalankan bahasa pemrograman web JSP (JavaServer Pages) Gambar 2.3 Apache Tomcat web server[3] 3. Internet Information Service (IIS) IIS adalah sebuah HTTP web server yang digunakan dalam sistem operasi server windows, mulai dari windows NT 4.0 Server Windows 2000 Server atau Windows Server 2003 Gambar 2.4 Internet Information Service (IIS)[3] 2.7 MySQL & phpmyadmin MySQL adalah salah satu jenis database server yang sangat terkenal.. MySQL mendukung bahasa pemrograman PHP. MySQL juga mempunyai query atau bahasa SQL (Structure Query Language) yang simple dan menggunakan escape character yang sama dengan PHP. Gambar 2.5 Logo MySQL[3]
II-7 MySQL mempunyai tampilan client yang mempermudah dalam mengakses database dengan kata sandi untuk mengijinkan proses yang boleh anda lakukan. Sedangkan phpmyadmin merupakan sebuah software yang berbentuk seperti halaman situs yang terdapat pada web server Gambar 2.6 Logo phpmyadmin[3] Fungsi dari halaman ini adalah sebagai pengendali database MySQL sehingga sang pengguna MySQL tidak perlu repot untuk membuat perintahperintah SQL. Karena dengan adanya halaman ini semua hal tersebut dapat dilakukan hanya dengan mengklik menu fungsi yang ada pada halaman phpmyadmin[3]. 2.8 XAMPP XAMPP adalah satu paket software web server yang terdiri dari Apache, MySQL, PHP dan PHP dan phpmyadmin. XAMPP sangat mudah penggunaannya, terutama untuk seorang pemula. Proses instalasi XAMPP sangat mudah, karena tidak perlu melakukan konfigurasi Apache, PHP dan MySQL secara manual, XAMPP melakukan instalasi dan konfigurasi secara otomatis[4]. 2.9 Metode Pengembangan Perangkat Lunak Model Waterfall adalah salah satu model pengembangan software. Model ini terdiri dari tahapan-tahapan proses yang terpisah. Tahapan-tahapannya adalah definisi atau analisis kebutuhan, desain sistem, impelementasi, pengujian dan pemeliharaan. Disebut dengan waterfall karena tahap yang dilalui harus berjalan berurutan.
II-8 Gambar 2.7 Waterfall Model[5] Model ini dikembangkan sebagai serangkaian tahapan dan berfokus pada pengintegrasian komponen yang didefinisikan dari awal perancangan. Model waterfall sering digunakan terutama untuk pengembangan sistem yang besar. Untuk pembangunan sistem yang besar, model ini sangat cocok digunakan karena sistem perlu informasi arsitektur untuk merancang perangkat lunak. Bagian sistem yang dapat dipahami dengan baik dapat ditentuka dan dikembangkan dengan model waterfall. Bagian yang sulit seperti user interface akan selalu dikembangkan dengan tahapan-tahapan yang ada. Tahapan utama dari model waterfall adalah sebagai berikut: 1. Requirements analysis and definition. Definisi kebutuhan sistem yang telah ditetapkan berdasarkan konsultasi dengan pengguna sistem dengan rinci dan berfungsi sebagai spesifikasi sistem 2. System and software design. Proses ini adalah pengalokasian kebutuhan perangkat keras dan perangkat lunak dengan membentuk arsitektur sistem secara keseluruhan. 3. Implementation and unit testing. Selama tahap ini, desain perangkat lunak direalisasikan sebagai program dan pengujian spesifikasi masing-masing unit. 4. Integration and system testing. Program yang diuji adalah sistem yang lengkap guna memastikan kebutuhan perangkat lunak telah lengkap.
II-9 Setelah pengujian selesai maka aplikasi yang dibangun disampaikan kepada pelanggan. 5. Operation and maintenance. Pemeliharaan akan meningkatkan implementasi perangkat lunak dan layanan sistem sebagai kebutuhan baru yang ditemukan Tahapan-tahapan tidak selamanya harus dimulai setalah tahapan sebelumnya selesai. Karena pada prakteknya akan memberikan informasi satu sama lain, selama desain akan menemukan masalah pada analisis kebutuhan, selama coding akan terlihat masalah desain yang ditemukan. Selama tahapan pemeliharaan, perangkat lunak akan digunakan. Kesalahan dan kelalaian akan muncul terlihat dan program atau perangkat lunak perlu diidentifikasi kembali dengan kebutuhannya[5]. 2.10 UML Unified Modeling Language (UML) adalah permodelan standar untuk sistem berbasis objek. UML dirancang untuk mendukung dan mendokumentasikan desain abstrak perangkat lunak. UML memiliki banyak diagram yang mendukung terciptanya permodelan sistem. Ada 5 diagram yang dapat mewakili bagian terpenting dari suatu sistem, yaitu : 1. Activity Diagram, menunjukkan kegiatan yang terlibat pada proses atau pengolahan data. Biasanya awal proses ditunjukkan dengan lingkaran penuh dan diakhiri dengan lingkaran penuh dengan lingkaran yang berbeda. Persegi panjang digunakan untuk mewakili kegiatan yang terdapat dalam proses. 2. Use Case Diagram, menunjukkan interaksi antara sistem dengan lingkungannya. Digunakan untuk memberi gambaran sederhana sehingga akan lebih mudah dipahami. 3. Sequence Diagram, menunjukkan interaksi aktor dengan sistem antara komponen sistem. Digunakan untuk memodelkan interaksi antara aktor dan objek dalam sistem dan interaksi antara objek sistem itu sendiri.
II-10 4. Class diagram. Digunakan untuk menunjukkan kelas dalam sistem dan hubungan kelas-kelas. Objek kelas dapat dianggap sebagai definisi umum dari satu jenis sistem. 5. State Diagram, menunjukkan sistem bereaksi dengan kejadian internal dan eksternal Ketika model dikembangkan tidak perlu kaku pada detail dari diagram. Model diagram tergantung pada engineer berniat menggunakannya ada tigas model grafis yang umum digunakan yaitu : 1. Sebagai sarana untuk memfasilitasi diskusi tentang sistem yang ada atau yang diusulkan. 2. Sebagai cara untuk mendokumentasikan sistem yang ada. 3. Sebagai gambaran sistem rinci yang dapat digunakan untuk menghasilkan implementasi sistem[5].