BAB II LANDASAN TEORI
Dalam bab ini dikemukakan hal-hal atau teori-teori yang berkaitan dengan permasalahan dan ruang lingkup pembahasan sebagai landasan dalam pembuatan skripsi ini.
2.1. KONSEP DASAR SISTEM 2.1.1. Pengertian Sistem Sistem berasal dari bahasa Latin (systēma) dan bahasa Yunani (sustēma) adalah suatu kesatuan yang terdiri komponen atau elemen yang dihubungkan bersama untuk memudahkan aliran informasi, materi atau energi untuk mencapai suatu tujuan. Definisi sistem sendiri telah dikemukakan oleh banyak ahli, berikut diantaranya yaitu: 1. Menurut Jogiyanto H.M (2003: 34), menyatakan bahwa sistem dapat didefinisikan dengan pendekatan prosedur dan dengan pendekatan komponen. Pendekatan sistem pada prosedur didefinisikan bahwa “sistem adalah kumpulan dari prosedur-prosedur yang mempunyai tujuan tertentu”. 2. Menurut Sutarman (2012:13), “Sistem adalah kumpulan elemen yang saling berhubungan dan berinteraksi dalam satu kesatuan untuk menjalankan suatu proses pencapaian suatu tujuan utama”. 3. Menurut Tata Sutabri (2012:16), suatu sistem dapat diartikan sebagai suatu kumpulan atau himpunan dari unsur, komponen, atau variabel yang terorganisir, saling berinteraksi, saling bergantung satu sama lain, dan terpadu. 2.1.2. Karakteristik Sistem Suatu sistem mempunyai karakteristik atau sifat-sifat yang tertentu, yaitu mempunyai komponen-komponen (component), batas sistem (boundary), lingkungan luar sistem (environments), penghubung {interface), masukan (input),
http://digilib.mercubuana.ac.id/
7 pengolahan (process) keluaran (output) dan sasaran (objektif) atautujuan (goals). (Jogiyanto,2009,684).
1. Komponen Sistem Suatu sistem terdiri dari sejumlah komponen yang saling berinteraksi, yang artinya saling bekerjasama membentuk suatu kesatuan. Komponen-komponen sistem atau elemen-elemen sistem dapat berupa suatu sub sistem atau bagianbagian dari sistem. Setiap subsub sistem mempunyai sifat-sifat dari sistem yang menjalankan suatu fungsi tertentu dan mempengaruhi proses sistem secara keseluruhan. 2. Batas Sistem Batas sistem merupakan daerah yang membatasi antara suatu sistem dengan sistem dengan sistem lainnya atau dengan lingkungan lainnya. Batas sistem ini memungkinkan suatu sistem dipandang sebagai satu kesatuan. Batas suatu sistem menunjukan ruang lingkup (scope) dari sistem tersebut. 3. Lingkungan Luar Sistem Lingkungan luar dari suatu sistem adalah apapun diluar batas dari sistem yang mempengaruhi operasi sistem. Lingkungan luar sistem dapat bersifat menguntungkan dan dapat juga bersifat merugikan. Lingkungan luar yang menguntungkan merupakan energi dari sistem dengan demikian harus dijaga dan dipelihara, sedangkan lingkungan luar yang merugiakan harus ditahan dan dikendalikan kalau tidak maka akan menggangu kelangsungan hidup dari sistem. 4. Penghubung Sistem Penghubung merupakan media penghubung antara sub sistem dengan subsistem lainnya. Melalui penghubung ini memungkinkan sumber-sumber daya mengalir dari satu subsistem ke subsistem lainnya. Keluaran (output) dari subsistem akan menjadi masukan (input) pada sistem lainnya dengan penghubung satu subsistem dapat berintegrasi dengan subsistem lainnya membentuk satu kesatuan. 5. Masukan sistem Masukan sistem adalah energi yang dimasukan ke dalam sistem. Masukan dapat berupa masukan perawatan (maintenance input) dan masukan (signal
http://digilib.mercubuana.ac.id/
8 input). maintenance input adalah energi yang dimasukkan supaya sistem tersebut dapat beroperasi. Signal input adalah energi yang diproses untuk didapatkan eluarannya. 6. Keluaran Sistem Keluaran adalah hasil dari energi yang diolah dan diklasifikasikan menjadi keluaran yang berguna dan sisa keluaran dapat merupakan masukan untuk subsistem yang lain atau kepada supra sistem. 7. Pengolahan Sistem Suatu sistem dapat mempunyai suatu bagian pengolahan atau sistem itu sendiri sebagai pengolahnya. Pengolah yang akan merubah masukan menjadi keluaran. 8. Sasaran Sistem Suatu sistem pasti mempunyai tujuan (goal) atau sasaran (objektif). Bila suatu sistem tidak mempunyai sasaran maka operasi sistem tidak akan ada gunanya. Sasaran dari sistem sangat menentukan sekali masukan yang dibutuhkan sistem. Suatu sistem dikatakan berhasil bila megenai sasaran aturan tertentu. 2.1.3. Klasifikasi Sistem Menurut Jogiyanto (2005:6) sistem dapat diklasifikasikan dari beberapa sudut pandangan, diantaranya adalah sebagai berikut ini. 1. Sistem sistem abstrak (abstract sistem) dan sistem fisik (physical sistem). Sistem abstrak adalah sistem yang berupa pemikiran atau ide-ide yang tidak nampak, misalnya sistem teologi. Sistem fisik adalah sistem yang ada secara fisik misalnya sistem komputer. 2. Sistem alamiah (natural sistem) dan sistem buatan manusia. Sistem alamiah adalah sistem yang terjadi melalui proses alam dan tidak dibuat manusia. Misalnya sistem perputaran bumi. Sistem buatan manusia adalah sistem yang di rancang oleh manusia yang melibatkan interaksi manusia dengan mesin yang disebut dengan human-machine sistem atau man-machine sistem.
http://digilib.mercubuana.ac.id/
9 3. Sistem tertentu (deterministic sistem) dan sistem tak tentu (probabilistic sistem). Sistem tertentu beroperasi dengan tingkah laku yang sudah dapat diprediksi. Interaksi diantara bagian-bagiannya didekteksi dengan pasti, sehingga keluaran dari sistem dapat diramalkan. Misalnya sistem pada komputer. Sistem tak tentu adalah sistem yang kondisi masa depannya tidak dapat dipredisikan karena mengandung unsur probabilitas. 4. Sistem tertutup (closed sistem) dan sistem terbuka (open sistem). Sistem tertutup adalah sistem yang tidak berhubungan dan tidak terpengaruh dengan lingkungan luarnya. Sistem ini bekerja secara otomatis tanpa adanya turut campur tangan dari pihak luarnya. Sistem terbuka adalah sistem yang berhubungan dan terpengaruh dengan lingkungan luar atau subsistem yang lainnya. Karena sistem sifatnya terbuka dan terpengaruh oleh lingkungan luarnya, maka harus mempunyai suatu sistem pengendalian yang baik.
2.2. PENGERTIAN INFORMASI Berdasarkan Kamus Besar Bahasa Indonesia, arti dari Informasi adalah “penerangan, keterangan, pemberitahuan, kabar atau berita”. Informasi juga merupakan keterangan atau bahan nyata yang dapat dijadikan dasar kajian analisis atau kesimpulan atau Informasi adalah data yang sudah diolah menjadi sebuah bentuk yang berarti bagi pengguna, yang bermanfaat dalam pengambilan keputusan saat ini atau mendukung sumber informasi. Adapun para ahli yang menjabarkan definisi dari informasi menurut kebutuhan penggunaannya, diantaranya yaitu: 1. Menurut Abdul Kadir (2002: 31); McFadden dkk (1999) mendefinisikan informasi sebagai data yang telah diproses sedemikian rupa sehingga meningkatkan pengetahuan seseorang yang menggunakan data tersebut. 2. Menurut Gordon B. Davis (1991: 28), informasi adalah data yang telah diolah menjadi sebuah bentuk yang berarti bagi penerimanya dan bermanfaat bagi pengambilan keputusan saat ini atau mendatang.
http://digilib.mercubuana.ac.id/
10 3. Menurut Jogiyanto HM., (1999: 692), informasi adalah hasil dari pengolahan data dalam suatu bentuk yang lebih berguna dan lebih berarti bagi penerimanya yang menggambarkan suatu kejadian-kejadian (event) yang nyata (fact) yang digunakan untuk pengambilan keputusan. 4. Menurut Lani Sidharta (1995: 28) berpendapat bahwa informasi adalah data yang disajikan dalam bentuk yang berguna untuk membuat keputusan.
2.3. PENGERTIAN MANAJEMEN Sejarah mengenai manajemen sudah ada sejak ribuan tahun yang lalu. Hal ini dibuktikan dengan banyaknya pondasi atau bangunan atau tata kota yang sudah ada sejak dahulu dan serta praktek-praktek perekonomian dan perdagangan yang berjalan antar berbagai wilayah. Kata Manajemen berasal dari bahasa Perancis kuno ménagement, yang memiliki arti "seni melaksanakan dan mengatur. Pada perkembangannya, teori mengenai manajemen dipelajari dan muncul menjadi suatu gagasan para ahli. Berikut adalah macam-macam definisi manajemen menurut para ahli: 1. Menurut Mulayu S.P Hasibuan (2000:2), manajemen adalah ilmu dan seni mengatur proses pemanfaatan sumber daya manusia dan sumber-sumber lainnya secara efektif dan efisien untuk mencapai suatu tujuan. 2. Menurut T. Hani Handoko (2000:10), Manajemen adalah bekerja dengan orang-orang untuk menentukan, mengintepretasikan, dan mencapai tujuantujuan
organisasi
dengan
pelaksanaan
fungsi-fungsi
perencanaan
pengorganisasian, penyusunan personalia, pengarahan, kepemimpinan dan pengawasan. 3. Menurut Richard L. Daft (2002:8), manajemen adalah pencapaian sasaransasaran organisasi dengan cara yang efektif dan efisien melalui perencanaan pengorganisasian, kepemimpinan dan pengendalian sumberdaya organisasi.
http://digilib.mercubuana.ac.id/
11
2.4. SISTEM INFORMASI MANAJEMEN (SIM) Secara paralel, dimulai dari tahun 1960’an, Sistem Informasi Manajemen (SIM) telah berkembang dalam berbagai sektor bidang baik usaha, pendidikan, kedokteran, industri, dan terutama ilmu komputer serta masih banyak lagi. Melalui dukungan teknologi yang semakin canggih saat ini, SIM dapat berjalan dengan baik secara online maupun offline. Perkembangan SIM inilah yang menunjukkan bahwa informasi yang cepat dan akurat dibutuhkan dalam berbagai bidang. Berdasarkan pengertian mengenai sistem, informasi dan manajemen yang telah dibahas diatas, secara umum SIM dapat didefinisikan sebagai sistem yang menyediakan informasi yang digunakan untuk mendukung operasi, manajemen, serta pengambilan keputusan sebuah organisasi. SIM mampu memberikan informasi yang canggih dan cepat kepada seluruh bagian untuk mengatur dan menampung penyesuaian terhadap perubahan organisasi yang cepat. Tujuan umum dari SIM adalah: 1. Menyediakan informasi yang dipergunakan di dalam perhitungan harga pokok jasa, produk, dan tujuan lain yang diinginkan manajemen; 2. Menyediakan informasi yang dipergunakan dalam perencanaan, pengendalian, pengevaluasian, dan perbaikan berkelanjutan; 3. Menyediakan informasi untuk pengambilan keputusan. ”Suatu sistem informasi manajemen adalah kumpulan dari manusia dan sumber daya modal di dalam suatu organisasi yang bertanggung jawab mengumpulkan dan mengolah data untuk mengahasilkan informasi yang berguna untuk semua tingkatan manajemen di dalam kegiatan perencanaan dan pengendalian”. (Jogiyanto,2005,14). Adapun menurut Gordon B.Davis dalam buku ‘Kerangka dasar SIM’, SIM adalah suatu serapan teknologi baru kepada persoalan keorganisasian dalam pengolahan transaksi dan pemberian informasi bagi kepentingan keorganisasian”. (Gordon B.Davis,1985;23). Gordon B. Davis juga menegaskan bahwa sistem
http://digilib.mercubuana.ac.id/
12 informasi manajemen selalu berhubungan dengan pengolahan informasi yang berbasis komputer. Hal yang sama dikemukakan oleh James O. Hicks (1987), bahwa sistem informasi manajemen adalah sistem informasi komputer. Dan juga, Efrain Turban (1993) mengemukakan bahwa, sistem informasi manajemen adalah sistem formal berbasis komputer untuk menyediakan informasi bagi pengambilan keputusan dalam organisasi. Sehingga dapat disimpulkan bahwa dasar dari aplikasi yang digunakan pada SIM adalah aplikasi database. sistem ini harus mampu mengolah data yang dikumpulkan pada database menjadi sebuah produk informasi yang dibutuhkan penggunanya.
2.5. DATABASE Database adalah sebuah tempat penyimpanan yang besar dimana terdapat kumpulan data yang tidak hanya berisi data operasional tetapi juga deskripsi data. Seperti yang disampaikan oleh Connolly dan Begg (2010:65), bahwa database adalah kumpulan data yang saling terhubung secara logis dan deskripsi dari data tersebut, dirancang untuk menemukan informasi yang dibutuhkan oleh sebuah organisasi. Database merupakan salah satu komponen yang penting dalam sistem informasi, karena merupakan dasar dalam menyediakan informasi bagi para pemakai. Penerapan database dalam sistem informasi disebut dengan database system, yaitu suatu sistem informasi yang mengintegrasikan kumpulan dari data yang saling berhubungan satu dengan yang lainnya dan membuat tersedia untuk beberapa aplikasi yang bermacam-macam dalam suatu organisasi. Berikut adalah beberapa istilah umum terkait database diantara lain: 1. Table
: Merupakan sekelompok record data, masing-masing berisi informasi yang sejenis.
2. Record : Merupakan entitas tunggal dalam tabel. Bisa saja disebut sebagai baris mengingat sebuah tabel terdiri dari baris (record) dan kolom (field). 3. Field
: Merupakan item tertentu dalam tabel. Bisa disebut sebagai kolom.
http://digilib.mercubuana.ac.id/
13 4. Index
: Merupakan field kunci yang ditujukan ke suatu record yang spesifik serta diurutkan dalam urutan tertentu.
5. Query
: Merupakan perintah SQL yang dirancang untuk memanggil kelompok record tertentu dari satu tabel/lebih.
6. View
: Merupakan tabel virtual yang berisi record dari berbagai tabel. Fungsi utamanya untuk memudahkan kita mendapatkan data yang spesifik dari berbagai tabel.
Dalam merancang database, salah satu hal yang perlu diperhatikan adalah efisiensi. Banyaknya data yang redudansi dapat mengurangai efisiensi pada database sehingga perlu dilakukan normalisasi.
2.6. NORMALISASI
Normalisasi adalah suatu proses mengubah sebuah tabel yang besar dan kompleks menjadi beberapa buah tabel yang lebih kecil dan sederhana. Tujuan normalisasi adalah untuk mengurangi pemasukan data yang berulang. Selain itu, juga untuk menghindari terjadinya masalah pada saat mengisi, mengubah, maupun menghapus data. (Fathansyah,2001). Tujuan melakukan normalisasi terhadap suatu database adalah: 1. Berisi data yang diperlukan. 2. Memiliki sedikit mungkin redudansi. 3. Mengakomodasi banyak nilai untuk tiap tipe data yang diperlukan. 4. Mengefisienkan update. 5. Menghindari kemungkinan kehilangan data secara tidak disengaja. Ada beberapa bentuk dari normalisasi antara lain yaitu: 1. Unnormalized Form (UNF) Merupakan sebuah tabel awal yang belum ternormalisasi yang berisikan satu atau lebih kumpulan data yang berulang. Untuk membuat tabel UNF yaitu dengan memindahkan data dari sumber informasi yang di dapat ke dalam tabel
http://digilib.mercubuana.ac.id/
14 dengan format baris dan kolom, jika ada atribut yang mempunyai banyak nilai (multivalue) akan masuk ke dalam bentuk UNF. 2. First Normal Form (1NF) Bentuk normalisasi tahap pertama yang merupakan sebuah relasi dimana sebuah titik pertemuan antara setiap baris dan kolom yang berisi satu dan hanya satu nilai. 3. Second Normal Form (2NF) Tahapan kedua setelah 1NF terpenuhi yaitu 2NF dimana merupakan sebuah relasi yang terdapat di dalam 1NF dan setiap atribut yang bukan primary key bergantung pada primary key. 4. Third Normal Form (3NF) Merupakan tahapan ketiga dalam normalisasi dimana sebuah relasi yang terdapat pada bentuk normalisasi pertama dan kedua, yang mana atribut primary key bergantung pada primary key. Proses normalisasi meliputi langkah-langkah sebagai berikut: 1. Unnormalized Normal Form (UNF) Ada tahap awal sebelum memulai 1NF yaitu unnormalized form (UNF). Pada bentuk UNF ini merupakan tabel yang terdapat satu atau lebih grup yang berulang (repeating groups). 2. First Normal Form (1NF) Pada bentuk pertama ini merupakan sebuah hubungan dimana perpotongan setiap baris dan kolom yang berisi satu dan hanya satu nilai. Sebelum mentransformasikan tabel tidak normal (UNF) ke bentuk normal pertama (1NF). terlebih dahulu mengidentifikasi repeating groups yang terdapat pada tabel relasi. Kemudian menghilangkan repeating groups untuk menghilangkan data rangkap. 3. Second Normal Form (2NF) Pada bentuk normalisasi kedua ini yaitu 2NF merupakan relasi yang terdapat dalam bentuk 1NF dan tiap atribut yang bukan primary key sifatnya bergantung penuh secara fungsional pada primary key (full functional dependency).
http://digilib.mercubuana.ac.id/
15 4. Third Normal Form (3NF) Untuk menjalankan bentuk ini, maka bentuk 1NF dan 2NF haruslah terpenuhi terlebih dahulu. Dimana tidak ada atribut bukan primary key yang bergantung transitif terhadap primary key. Bentuk normal ketiga ini lebih berdasarkan pada konsep
peralihan
ketergantungan
(transitive
dependency).
Transitive
dependency adalah kondisi dimana A, B, dan C adalah atribut dari sebuah relasi bahwa jika A_B dan B_C, maka C adalah transitive independent pada A melewati B (menyatakan bahwa A bukan merupakan functional dependent pada B atau C). 5. Boyce-Codd Normal Form (BCNF) Suatu relasi bisa dikatakan BCNF bila didalamnya berisi atribut yang berfungsi sebagai candidate key, dan salah satu dari candidate key tersebut menjadi primary key. 6. Fourth Normal Form (4NF) Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari satu multivalued attribute. 7. Fifth Normal Form (5NF) Bentuk normal 5NF terpenuhi jika tidak dapat memiliki sebuah lossless decomposition menjadi tabel-tabel yang lebih kecil.
2.7. MYSQL MySQL merupakan program database server sebagai tempat penyimpanan dan mengolah data (Oktavian, 2010:32). Pendapat lain menjelaskan MySQL adalah salah satu software sistem manajemen database (DBMS) Structured Query Language (SQL) yang bersifat open source. SQL adalah bahasa standar untuk mengakses database dan didefinisikan dengan standar ANSI/ISO SQL (Woro Widya, 2010:26). Beberapa kelebihan database MySQL antara lain: 1. MySQL merupakan database server, jadi dapat diakses dari jauh karena dapat tersambung ke media internet selain itu juga dapat berperan sebagai client.
http://digilib.mercubuana.ac.id/
16 2. MySQL adalah sebuah software data open source artinya software ini bebas digunakan oleh siapasaja tanpa harus membeli lisensinya kepada pembuat. 3. MySQL adalah database menggunakan enkripsi password, jadi cukup aman karena memiliki password untuk mengaksesnya 4. MySQL merupakan database yang multi user, artinya database ini tidak hanya digunakan oleh sepihak orang akan tetapi dapat digunakan oleh banyak pengguna 5. MySQL menggunakan suatu bahas permintaan standar yaitu SQL (Structured Query Language) yaitu sebuah perintah yang di standarkan pada database server.
2.8. UNIFIED MODELING LANGUAGE (UML) Unified Modeling Language (UML) adalah sekumpulan pemodelan konvensi yang digunakan untuk menentukan atau menggambarkan sebuah sistem perangkat lunak dalam kaitannya dengan objek. (Whitten, 2004). UML pertama kali dikembangkan pada pertengahan tahun 1990’an dengan kerjasama antara James Rumbaugh, Grady Booch dan Ivar Jacobson. UML merupakan sistem arsitektur yang bekerja dalam OOAD (Object-Oriented Analysis/Design) dengan satu bahasa yang konsisten untuk menentukan, visualisasi, mengkontruksi, dan mendokumentasikan artifact (sepotong informasi yang digunakan atau dihasilkan dalam suatu proses rekayasa software, dapat berupa model, deskripsi, atau software) yang terdapat dalam sistem software. Sehingga dapat diartikan bahwa UML merupakan sistem arsitektur yang digunakan untuk memodelkan perangkat lunak berbasis objek.
Didalam UML ada beberapa diagram penting yang digunakan dalam proses analisis dan desain, yaitu: 1. Use-case diagram Yaitu diagram yang menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Sebuah Use-case mempresentasikan sebuah interaksi antara aktor dengan sistem.
http://digilib.mercubuana.ac.id/
17 2. Activity diagram Yaitu diagram yang menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Oleh karena itu, activity diagram lebih menggambarkan proses-proses dan jalur aktivitas dari level atas secara umum 3. Sequence diagram Yaitu diagram yang menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu.
4. Collaboration diagram Yaitu diagram yang menggambarkan interaksi antar objek seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu
penyampaian message. 5. Class diagram Yaitu diagram yang menggambarkan atribut/properti suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram juga menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. 6. Statechart diagram Yaitu diagram yang menggambarkan transisi dan perubahan keadaan (dari satu state ke state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima. 7. Component diagram Yaitu diagram yang menggambarkan struktur dan hubungan antar komponen perangkat lunak, termasuk ketergantungan (dependency) di antaranya. Komponen perangkat lunak adalah modul berisi code, baik berisi source code maupun binary code, baik library maupun executable, baik yang muncul pada compile time, link time, maupun run time. Umumnya komponen terbentuk dari beberapa class dan/atau package, tapi dapat juga dari komponen-komponen
http://digilib.mercubuana.ac.id/
18 yang lebih kecil. Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakan sebuah komponen untuk komponen lain. 8. Deployment diagram Yaitu diagram yang menggambarkan detail bagaimana komponen di-deploy dalam infrastruktur sistem, dimana komponen akan dipasang, bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal.
2.9. PHP: HYPERTEXT PROCESSOR PHP singkatan dari Hypertext Preprocessor yaitu bahasa pemrograman web server-side yang bersifat open source. PHP merupakan script yang terintegrasi dengan HTML dan berada pada server (server side HTML embedded scripting). PHP adalah script yang digunakan untuk membuat halaman yang dinamis. (Anhar, 2010:3). Pendapat
lain
menjelaskan
PHP
adalah
akronim
dari
Hypertext
Preprocessor, yaitu satu bahasa pemrograman berbasiskan kode-kode (script) yang digunakan untuk mengolah suatu data dan mengirimnya kembali ke web browser menjadi kode HTML. (Oktavian, 2010:31). Kode PHP mempunyai ciri-ciri khusus, yaitu: 1. Hanya dapat dijalankan menggunakan web server, misal: Apache; 2. Kode PHP diletakkan dan dijalankan di web server; 3. Kode PHP dapat digunakan untuk mengakses database, seperti: MySQL, PostgreSQL, Oracle, dan lain-lain; 4. Merupakan software yang bersifat open source; 5. Gratis untuk di-download dan digunakan; 6. Memiliki sifat multipaltform, artinya dapat dijalankan menggunakan Sistem Operasi apapun, seperti: Linux, Unix, Windows, dan lain-lain.
http://digilib.mercubuana.ac.id/
19
2.10. JQUERY JQuery merupakan suatu framework (library) Javascript yang menekankan bagaimana interaksi antara Javascript dan HTML. JQuery pertama kali dirilis pada tahun 2006 oleh John Resig. Pada perkembangannya JQuery tidak sekedar sebagai framework Javascript, namun memiliki kehandalan dan kelebihan yang cukup banyak. Hal tersebut menyebabkan banyak developer web menggunakannya. JQuery memiliki slogan “Write less, do more” yang kurang lebih maksudnya adalah kesederhanaan dalam penulisan code, tapi dengan hasil yang lebih banyak. (Adi, A. P., & Sanjaya, R., 2012) Library JQuery mempunyai kemampuan : 1. Kemudahan mengakses halaman HTML. Tanpa adanya library Javascript khusus, untuk mengakses suatu bagian tertentu dari halaman, harus mengikuti aturan Document Object Model (DOM) dan pengaksesan harus secara spesifik menyesuaikan dengan struktur HTML. Dengan kata lain, pengaksesan bagian tertentu dari halaman sangat tergantung pada struktur dari HTML. JQuery menawarkan cara yang mudah dalam mengakses bagian tertentu dari halaman. Pengaksesan juga tidak terlalu bergantung pada struktur HTML. 2. Memanipulasi CSS. CSS (Cascading Style Sheet) menawarkan metode yang cukup handal dalam mengatur dan mempercantik halaman web. Namun terkadang CSS punya kelemahan yang cukup mengganggu, yaitu beberapa perintah CSS tidak didukung oleh semua browser. Cukup merepotkan jika harus mendesain halaman web dengan beberapa CSS sekaligus. Sekali lagi JQuery menawarkan solusi untuk mengatasi hal tersebut. Dengan JQuery, “kesenjangan” yang terjadi antara browser dalam urusan CSS akan tertutup dengan baik. 3. Memanipulasi elemen HTML. Merupakan proses yang cukup sulit ketika akan mengganti teks, menambahkan teks atau gambar, mengurutkan suatu daftar (list), menghapus baris tabel dan sebagainya. Dengan JQuery, hal tersebut dapat dilakukan dengan hanya beberapa baris perintah. 4. Penanganan terhadap event HTML. Website yang baik tidak cukup digambarkan dengan user-interface dan tampilan yang memukau. Namun lebih dari itu, bagaimana pengunjung dapat
http://digilib.mercubuana.ac.id/
20
berinteraksi dengan website dan dapat mengatur tampilannya sendiri. Interaktivitas sangat bergantung bagaimana pemrograman yang dipakai dalam menangani event-handling. Javascript sendiri memiliki beberapa eventhandling seperti onclick untuk menangani event saat terjadi click. Namun demikian, event-handling pada Javascript terbatas pada object-object tertentu, dan jenisnya pun terbatas. JQuery melengkapi semuanya dengan tambahan penanganan event-handling yang semakin mudah. 5. Memberikan efek javascript dan animasi. Animasi seringkali disertakan dalam suatu halaman web untuk menambah kecantikannya. Saat ini animasi masih cukup digemari oleh para peselancar situs. Animasi dapat dibuat dalam berbagai gaya, ada yang menggunakan Flash, gambar bergerak (GIF), video, dan sebagainya. Masing-masing tentu memiliki kelebihan dan kekurangan masing-masing. JQuery sendiri menawarkan konsep animasi (walaupun masih sederhana) yang cukup apik namun ramah bandwidth alias ringan. Salah satu animasi yang bisa dibuat dengan JQuery adalah fading jika terdapat suatu bagian dari halaman ditambahkan atau dihilangkan. 6. Mengambil informasi dari server tanpa me-refresh seluruh halaman. Mengambil informasi dari server tanpa refresh halaman merupakan salah satu konsep dasar dari yang namanya AJAX (Asynchronous Javascript and XML). Pada penerapannya, cukup ribet jika harus membangun website dengan konsep AJAX, saat ini banyak library khusus yang berusaha mempermudahnya. JQuery merupakan salah satunya. 7. Menyederhanakan penulisan kode Javascript. Semboyan JQuery adalah “Write less, do more” atau dengan kata lain kesederhanaan dalam penulisan kode, tetapi menghasilnya tampilan yang lebih. Sebenarnya inilah yang menjadi daya tarik tersendiri buat para pengembang web untuk menggunakan JQuery.
2.11. FRAMEWORK YII Framework adalah sekumpulan library yang diorganisasikan pada sebuah rancangan arsitektur untuk memberikan kecepatan, ketepatan, kemudahan dan konsistensi didalam pengembangan aplikasi dari definisi tersebut. (Siena, 2009). Secara umum, framework menggunakan struktur MVC (Model, View, Controller).
http://digilib.mercubuana.ac.id/
21 1. Model Model mencakup semua proses yang terkait dengan pemanggilan struktur data baik berupa pemanggilan fungsi, input processing atau mencetak output ke dalam browser. 2. View View mencakup semua proses yang terkait layout output. Bisa dibilang untuk menaruh template interface website atau aplikasi. 3. Controller Controller mencakup semua proses yang terkait dengan pemanggilan database dan kapsulisasi proses-proses utama. Jadi semisal dibagian ini ada file bernama member.php, maka semua proses yang terkait dengan member akan dikapsulisasi/dikelompokan dalam file ini. Yii adalah framework (kerangka kerja) PHP berbasis-komponen, berkinerja tinggi untuk pengembangan aplikasi Web berskala-besar. Yii menyediakan reusability maksimum dalam pemrograman Web dan mampu meningkatkan kecepatan pengembangan secara signifikan. Nama Yii (dieja sebagai /i:/) singkatan dari "Yes It Is!". (http://www.yiiframework.com/doc/guide/1.1/id/quickstart.what-is-yii) Untuk menjalankan aplikasi Web berbasis Yii, tools yang diperlukan yaitu: 1. Server Web yang mendukung PHP 5.1.0. 2. Sistem operasi Windows dan Linux. 3. Yii juga bisa berjalan pada server Web dan platform lain yang mendukung PHP 5.1. Yii adalah component based high performance PHP kerangka kerja untuk mengembangkan aplikasi Web skala besar. Yii ditulis dalam OOP dan dilengkapi dengan referensi kelas menyeluruh dan tutorial yang komprehensif. Dari MVC, DAO / ActiveRecord, widget, caching, RBAC hirarkis, layanan Web, untuk tema, I18N dan L10N, Yii menyediakan hampir semua fitur yang dibutuhkan oleh saat ini pengembangan aplikasi Web 2.0.
http://digilib.mercubuana.ac.id/
22 Framework PHP sudah mulai bermunculan dan diterapkan dalam pengembangan aplikasi berbasis web. Namun dari kesekian PHP framework, Yii termasuk yang handal dan dapat diperhitungkan dalam membantu anda menyelesaikan aplikasi berbasis web. Keunggulan Yii Framework dari banyak PHP Framework yang tersedia adalah seperti berikut: 1. Gii code generator. Gii adalah fitur Yii Framework untuk menciptakan template models, views, controllers dan forms. Khususnya dalam kasus CRUD. Berbeda dengan PHP Framework lain yang menearpkan orientasi form, Yii Framework menerapkan Orientasi data. 2. Routing dan URL Creation yang lebih rapi dan ringkas. 3. Form handling. Gii menciptakan form “active” fields. Ini berarti ketika form hendak di set ke required, Yii Framework mampu menyiapkan layanan tersebut. 4. HTML Grid component. Dapat menampilkan data dalam bentuk tabel dengan fasilitas automatic sorting, paging, coloring of even dan odd rows, dan lain sebagainya 5. Segala pesan error yang keluar dari aplikasi anda ditampilkan secara bagus dan mudah dimengerti, mekanisme logging nya juga sangat bagus, sebab kita bisa memilih untuk menampilkan langsung ataupun disimpan ke suatu file di server. 6. Yii memiliki fitur keamanan yang membantu dalam mencegah seranganserangan seperit SQL Injection, XSS, CSRF, Cookie Tampering dll. 7. JQuery integration. Ini berarti semua bentuk perwajahan website hanya diterapkan dalam satu baris kode php saja, dan tidak mewajibkan anda menggunakan Javascript, HTML dan CSS untuk membuatnya jadi indah. 8. Translations. Membuat website multilingual di Yii sangat mudah. 9. Database relations. Yii mendukung lazy loading yang tidak harus menulis JOIN disetiap kali ingin mendapatkan nilai dari sebuah tabel lain. 10. Yii didokumentasikan dengan jelas, efesien, dan kaya fitur. Yii mengimplementasikan pola desain Model-View-Controller (MVC), yang diadopsi secara luas dalam pemrograman Web. MVC bertujuan untuk
http://digilib.mercubuana.ac.id/
23 memisahkan logika bisnis dari pertimbangan antar muka pengguna agar para pengembang bisa lebih mudah mengubah setiap bagian tanpa mempengaruhi yang lain. Dalam MVC, model menggambarkan informasi (data) dan aturan bisnis; view(tampilan) berisi elemen antar muka pengguna seperti teks, input form; sementara controller mengatur komunikasi antar model dan view. Selain
implementasi
MVC,
Yii
juga
memperkenalkan
front-
controller(controller-depan), yang disebut Aplikasi, yang mengenkapsulasi konteks eksekusi untuk memproses sebuah request. Aplikasi mengumpulkan beberapa informasi mengenai request pengguna dan kemudian mengirimnya ke controller yang sesuai untuk penanganan selanjutnya. Diagram berikut memperlihatkan struktur statis sebuah aplikasi Yii:
Gambar 1. Struktur Statis Sebuah Aplikasi Yii (http://www.yiiframework.com/doc/guide/1.1/id/basics.mvc) Diagram berikut memperlihatkan alur kerja umum sebuah aplikasi Yii saat menangani permintaan pengguna:
http://digilib.mercubuana.ac.id/
24
Gambar 2. Alur Kerja Umum Aplikasi Yii (http://www.yiiframework.com/doc/guide/1.1/id/basics.mvc) Berikut adalah penjelasan dari skema diatas: 1.
Pengguna
membuat
permintaan
http://www.example.com/index.php?r=post/show&id=1
dengan dan
URL server
Web
menangani permintaan dengan menjalankan skrip bootstrap index.php. 2.
Skrip bootstrap membuat sebuah instance aplikasi dan menjalankannya.
3.
Aplikasi mendapatkan rincian informasi permintaan pengguna dari komponen aplikasi bernama request.
4.
Aplikasi menentukan controller dan aksi yang diminta dengan bantuan komponen aplikasi bernama urlManager. Dalam contoh ini, controller adalah
http://digilib.mercubuana.ac.id/
25 post yang merujuk pada kelas PostController; dan aksi adalah show yang arti sebenarnya ditentukan oleh controller. 5.
Aplikasi membuat instance controller yang diminta untuk selanjutnya menangani permintaan pengguna. Controller menentukan aksi show merujuk pada sebuah metode bernama actionShow dalam kelas controller. Kemudian membuat dan menjalankan filter (contoh kontrol akses, pengukuran) terkait dengan aksi ini. Aksi dijalankan jika diijinkan oleh filter.
6.
Aksi membaca Post model di mana ID adalah 1 dari database.
7.
Aksi meyiapkan view (tampilan) bernama show dengan model Post.
8.
View membaca dan menampilkan atribut model Post.
9.
View menjalankan beberapa widget.
10. View menyiapkan hasil yang dipasangkan dalam layout (tata letak). 11. Aksi mengakhiri pembuatan view dan menampilkan hasil akhir kepada pengguna. 2.11.1. Model Model mewakili struktur data dari aplikasi Web. Model sering dibagikan kepada sub-aplikasi berbeda dari aplikasi Web. Oleh karena itu, Model memiliki ketentuan yaitu: 1. Harus mengandung properti untuk mewakili data tertentu; 2. Harus berisi business logic (misalnya aturan validasi) untuk memastikan data yang diwakilinya memenuhi persyaratan desain; 3. Boleh berisi kode untuk manipulasi data. Misalnya, sebuah model searchform, selain merepresentasikan pencarian data input, juga bisa berisi sebuah metode pencarian untuk melakukan pencarian sesungguhnya. 2.11.2. View View bertanggung jawab untuk menampilkan Model dalam format yang diinginkan oleh end user. Secara umum, View memiliki ketentuan: 1. Harus mengandung kode presentasional, seperti HTML, dan kode PHP sederhana untuk melintasi, memformat dan melakukan render data;
http://digilib.mercubuana.ac.id/
26 2. Harus menghindari kode yang melakukan query DB secara eksplisit. Kode seperti ini lebih baik diletakkan di Model. 3. Harus menghindari akses langsung $_GET, $_POST, atau variabel sejenisnya yang mewakili request end user karena sebetulnya ini adalah tugas Controller. View harusnya fokus pada penampilan dan layout dari data yang disediakan oleh Controller dan/atau Model, tetapi tidak mencoba untuk mengakses variabel request atau database secara langsung. 4. Boleh mengakses langsung properti dan metode dari Controller dan Model. Namun, harus dilakukan hanya untuk tujuan presentasi. View dapat didaya ulang dengan beberapa cara: 1. Layout: tempat presentasional yang umum (seperti page header, footer) dapat diletakkan di view layout. 2. Partial views: gunakan partial view (view yang tidak didekorasikan oleh layout) untuk menggunakan fragmen dari kode presentasional. Misalnya menggunakan partial view “_form.php” untuk melakukan render form input model yang digunakan oleh halaman pembuatan maupun update. 3. Widgets: jika banyak sekali logic yang diperlukan untuk menampilkan suatu partial view, maka partial view ini dapat diubah menjadi sebuah widget yang file kelas paling cocok digunakan untuk menampung logic ini. 4. Helper classes: di view kita sering memerlukan kode snippet untuk melakukan tugas-tugas kecil seperti memformat data atau menghasilkan tag HTML. Yii memiliki sebuah kelas helper CHtml yang bisa menghasilkan code HTML umum. Kelas helper dapat diletakkan di sebuah direktori autoloadable sehingga dapat menggunakannya tanpa perlu menyertakan kelas secara eksplisit. 2.11.3. Controller Controller adalah lem perekat Model, View dan komponen-komponen lainnya sehingga menjadi aplikasi yang dapat dijalankan. Controller bertanggung jawab untuk menghadapi langsung dengan request end user. Oleh karena itu, Ccontroller memiliki ketentuan yaitu:
http://digilib.mercubuana.ac.id/
27 1. Boleh
mengakses
$_GET,
$_POST
dan
variabel
PHP
lain
yang
merepresentasikan request dari pengguna; 2. Membuat berbagai instance Model dan mengatur siklus hidupnya. Misalnya, di sebuah action update pada suatu Model, Controller bisa membuat instance Model terlebih dahulu; kemudian mengisi Model dengan input dari pengguna dari $_POST; setelah menyimpan Model dengan sukses, Controller boleh diarahkan ke browser ke halaman detail Model. 3. Harus menghindari menampung perintah SQL, yang seharusnya lebih baik disimpan di Model. 4. Harus menghindari HTML apapun atau markup presentasional. Lebih baik simpan ke View. Didalam aplikasi MVC yang didesain dengan baik, Controller sangatlah kecil, mengandung hanya beberapa lusin baris kode; sedangkan Model lebih besar, mengandung hampir semua kode yang bertanggung jawab atas representasi dan manipulasi data. Ini dikarenakan struktur data dan business logic yang diwakili oleh Model merupakan sesuatu yang sangat spesifik pada aplikasi tertentu, dan perlu dikustomisasi secara besar-besaran untuk memenuhi keperluan aplikasi; sedangkan logika Controller sering mengikuti pola yang mirip pada berbagai aplikasi sehingga dapat disederhanakan dengan framework atau kelas basis. 2.11.4. Struktur Direktori Struktur direktori yang terdapat pada aplikasi yang dibangun menggunakan Yii adalah sebagai berikut: [nama_aplikasi]/ index.php index-test.php assets/ css/ images/ themes/ protected/ yiic yiic.bat
Web application entry script file entry script file for the functional tests containing published resource files containing CSS files containing image files containing application themes containing protected application files yiic command line script for Unix/Linux yiic command line script for Windows
http://digilib.mercubuana.ac.id/
28
yiic.php commands/ shell/ components/ Controller.php UserIdentity.php config/ console.php main.php test.php controllers/ SiteController.php data/ schema.mysql.sql schema.sqlite.sql testdrive.db extensions/ messages/ models/ LoginForm.php ContactForm.php runtime/ tests/ views/ layouts/ main.php column1.php column2.php site/ pages/ about.php contact.php error.php index.php login.php
yiic command line PHP script containing customized 'yiic' commands containing customized 'yiic shell' commands containing reusable user components the base class for all controller classes the 'UserIdentity' class used for authentication containing configuration files the console application configuration the Web application configuration the configuration for the functional tests containing controller class files the default controller class containing the sample database the DB schema for the sample MySQL database the DB schema for the sample SQLite database the sample SQLite database file containing third-party extensions containing translated messages containing model class files the form model for 'login' action the form model for 'contact' action containing temporarily generated files containing test scripts containing controller view and layout files containing layout view files the base layout shared by all pages the layout for pages using a single column the layout for pages using two columns containing view files for the 'site' controller containing "static" pages the view for the "about" page the view for 'contact' action the view for 'error' action (displaying external errors) the view for 'index' action the view for 'login' action
2.12. WIDYAISWARA Berdasarkan Peraturan Menteri PAN Nomor 14 Tahun 2009, Widyaiswara adalah jabatan fungsional yang mempunyai ruang lingkup, tugas, tanggung jawab, dan wewenang mendidik, mengajar dan/atau melatih Pegawai Negeri Sipil (PNS)
http://digilib.mercubuana.ac.id/
29 pada Lembaga Diklat Pemerintah, yang diduduki oleh PNS dengan hak dan kewajiban yang diberikan secara penuh oleh pejabat yang berwenang. Spesialisasi Widyaiswara adalah keahlian yang dimiliki oleh Widyaiswara yang didasarkan pada rumpun keilmuan tertentu sesuai latar belakang pendidikan dan/atau pengalaman kerjanya. Standar kompetensi Widyaiswara adalah kemampuan minimal yang secara umum dimiliki oleh Widyaiswara dalam melaksanakan tugas, tanggung jawab dan wewenangnya untuk mendidik, mengajar, dan/atau melatih PNS, yang terdiri atas kompetensi pengelolaan pembelajaran, kompetensi kepribadian, kompetensi sosial, dan kompetensi substantif. Kebijakan yang mengatur mengenai peningkatan kompetensi Widyaiswara diukur melalui penilaian dan evaluasi kinerja Widyaiswara. Jenjang Jabatan Fungsional Widyaiswara dari yang terendah sampai dengan yang tertinggi, yaitu: a. Widyaiswara Pertama: 1. Penata Muda, golongan ruang III/a; 2. Penata Muda Tingkat I, golongan ruang III/b. b. Widyaiswara Muda: 1. Penata, golongan ruang III/c; 2. Penata Tingkat I, golongan ruang III/d. c. Widyaiswara Madya: 1. Pembina, golongan ruang IV/a; 2. Pembina Tingkat I, golongan ruang IV/b; 3. Pembina Utama Muda, golongan ruang IV/c. d. Widyaiswara Utama: 1. Pembina Utama Madya, golongan ruang IV/d; 2. Pembina Utama, golongan ruang IV/e.
http://digilib.mercubuana.ac.id/
30
2.13. PENGEMBANGAN SISTEM DENGAN MODEL WATERFALL Waterfall model diciptakan pertama kali oleh William Royce pada tahun 1970 dan mulai terkenal karena logika fase (tahapan, tingkatan, masa). Waterfall sendiri memiliki definisi bahwa sebuah proses hidup perangkat lunak memiliki proses yang linier dan sequensial. Menurut Ian Sommerville (2010), tahapan utama dari Waterfall Model langsung mencerminkan aktifitas pengembangan dasar, seperti pada gambar dibawah ini:
Gambar 3. Waterfall Model (Ian Sommerville, 2010) Berikut adalah penjelasan dari tahapan-tahapan tersebut: 1.
Requirement Analysis and Definition Merupakan tahapan yang menganalisis dan mendefinisikan kebutuhan dari sistem perangkat lunak yang akan dibangun. Proses yang dilakukan adalah mengumpulkan informasi secara lengkap dan rinci terhadap tujuan dan kegunaan sistem, fitur-fitur yang dibutuhkan pengguna, serta juga hardware yang sesuai agar sistem berjalan dengan optimal. Semua informasi tersebut akan menjadi rekomendasi spesifikasi.
2.
System and Software Design Merupakan tahapan yang dilakukan sebelum melakukan coding sistem dengan cara merancang suatu arsitektur sistem berdasarkan data-data kebutuhan sistem yang telah dibuat pada tahap analisis dan definisi.
http://digilib.mercubuana.ac.id/
31 3.
Implementation and Unit Testing Merupakan tahapan ini yang menerjemahkan hasil dari desain kedalam kode program yang dimengerti oleh bahasa mesin. Selanjutnya melakukan uji program pada setiap unitnya.
4.
Integration and System Testing Merupakan tahapan untuk menyatukan setiap unit program yang telah dibangun oleh programmer dan tahap berikutnya pengujian secara menyeluruh untuk memastikan sistem tidak terdapat error dan mampu berjalan sesuai prosedur.
5.
Operation and Maintenance Merupakan tahapan mulai dari proses instalasi sistem, serta pemeliharaan terhadap sistem agar keutuhan program dapat terjaga seperti validasi data, update data, dan integrasi data. Selain itu dalam tahap ini juga dilakukan pengembangan terhadap sistem.
http://digilib.mercubuana.ac.id/