BAB 2 LANDASAN TEORI 2.1 Internet Internet adalah dua atau lebih jaringan yang mengkomunikasikan atau menghubungkan antara satu perangkat dengan perangkat lainnya (Forouzan, 2007, p17). 2.2 World Wide Web (WWW) WWW adalah protokol komunikasi yang digunakan untuk mengakses bagian dari internet (Williams & Sawyer, 2011, p68). 2.3 Web 2.0 Web 2.0 merupakan versi terbaru dari World Wide Web yang dicetuskan oleh tim O’reilly Media. Web 2.0 bergerak menuju generasi web yang lebih sosial, kolaboratif, interaktif, dan responsif sehingga membuat situs web menjadi lebih mudah digunakan dan memungkinkan user untuk berbagi informasi di jaringan sosial dan berbagai media (Williams & Sawyer, 2011, p98). 2.4 Hypertext Transfer Protocol (HTTP) HTTP adalah protokol standar internet untuk mendefinisikan cara kerja web. Cara kerja HTTP adalah mengkomunikasikan server dan web browser. Ketika user mengakses sebuah halaman web baik dengan mengetikkan URL web, menekan link, mengirimkan formulir atau melakukan tugas lain yang membawa user ke halaman baru, maka pada saat itu browser akan membuat HTTP request yang kemudian dikirimkan pada web server dan mengembalikan hasil berupa halaman web yang diminta (Welling & Thompson, 2009, p856). 2.5 Database Database adalah kumpulan data yang terhubung secara logikal yang dirancang untuk memenuhi kebutuhan informasi suatu organisasi (Connolly & Begg, 2010, p65). 7 8 2.6 Database Management System (DBMS) DBMS merupakan sebuah sistem perangkat lunak yang memungkinkan user untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke database (Connolly & Begg, 2010, p66). Gambar 2.1 Database Processing (Connolly & Begg, 2010, p67) Komponen-komponen dalam lingkungan DBMS (Connolly & Begg, 2010, p68-73): 1. Perangkat Keras (Hardware) DBMS dan aplikasi lain membutuhkan hardware untuk dapat dioperasikan. Jangkauan hardware yang dibutuhkan dimulai dari single personal computer, single mainframe, sampai jaringan komputer. Pemilihan hardware tergantung pada kebutuhan organisasi dan DBMS yang digunakan. Beberapa DBMS hanya dapat berjalan pada hardware atau sistem operasi tertentu, sedangkan yang lainnya dapat berjalan di berbagai hardware dan sistem operasi. 9 Gambar 2.2 Konfigurasi Perangkat Keras (Hardware) (Connolly & Begg, 2010, p69) 2. Perangkat Lunak (Software) Komponen software terdiri dari DBMS dan program aplikasi lainnya, termasuk di dalamnya sistem operasi, software jaringan yang dibutuhkan ketika DBMS sedang digunakan dalam jaringan. Pada umumnya suatu software ditulis dalam bahasa pemrograman generasi ketiga (3GL) seperti C, C++, Java, Visual Basic, COBOL, Fotran, Ada, Pascal, atau menggunakan bahasa generasi keempat (4GL) seperti SQL, yang tertanam dalam bahasa generasi ketiga. DBMS mungkin memiliki perangkat generasi keempat tersendiri yang memungkinkan pengembangan aplikasi secara pesat melalui penyediaan bahasa query nonprocedural. 3. Data Data dipandang sebagai komponen terpenting dalam lingkungan DBMS yang menghubungkan antara komponen mesin dan manusia. Database terdiri dari data operasional dan meta data (data yang 10 memberikan penjelesan mengenai data). Struktur database disebut skema. 4. Prosedur (Procedure) Prosedur mengacu pada instruksi dan aturan dalam desain dan penggunaan database. Instruksi-instruksi yang biasa dibutuhkan oleh orang yang mengelola database ataupun user yang menggunakan database meliputi: a. Cara mengakses atau masuk ke dalam DBMS. b. Cara mengoperasikan fasilitas yang tersedia dalam DBMS. c. Start dan stop database. d. Membuat cadangan salinan DBMS. e. Menangani kegagalan atau kerusakan hardware atau software. f. Mengubah struktur suatu tabel, mengatur penempatan database di beberapa disc, meningkatkan kinerja, atau mengarsipkan data ke dalam tempat penyimpanan sekunder. 5. Orang (People) Komponen terakhir yang terlibat dengan sistem yaitu orang. Peran orang dalam lingkungan database dibagi menjadi 4 (empat) yaitu: 1. Data dan Database Administrators a. Data Administrator (DA) DA adalah orang yang bertanggung jawab atas manajemen sumber daya data, termasuk perancangan database, pengembangan dan pemeliharaan standar, kebijakan dan serta perancangan database prosedur konseptual/logikal. DA berkonsultasi dan meminta saran senior manager untuk memastikan bahwa pengembangan database tersebut dapat menunjang tujuan perusahaan. b. Database Administrator (DBA) DBA adalah orang yang bertanggung jawab atas realisasi database secara fisik, termasuk perancangan database fisikal dan implementasinya, keamanan serta pengaturan integritas, pemeliharaan sistem operasional, dan memastikan kepuasan user terhadap kinerja aplikasi. 11 DBA memiliki peran yang bersifat lebih teknis dibandingkan dengan DA sehingga membutuhkan pengetahuan mendalam terkait target DBMS dan lingkungan sistem. 2. Database Designers Dalam perancangan proyek database yang besar, database designer dapat dibagi ke dalam 2 (dua) macam: a. Logical Database Designer Seorang logical database designer berfokus pada pengidentifikasian data (mencakup atribut dan entitas), relasi di antara data, batasan-batasan bagi suatu data yang akan dimasukkan dalam database. Peran seorang logical database design membutuhkan pengetahuan secara menyeluruh tentang data dalam suatu organisasi atau perusahaan serta batasan-batasan data yang harus diperhatikan (batasan ini biasa disebut business rules). b. Physical Database Designer Peran physical database designer adalah menentukan bagaimana perancangan database logikal dapat terwujud secara fisik/nyata termasuk di dalamnya: 1. Memetakan perancangan database logikal ke dalam sekumpulan tabel dengan batasan integritas. 2. Memilih struktur penyimpanan yang khusus dan metode pengaksesan data untuk mencapai kinerja yang baik. 3. 3. Merancang tindakan keamanan bagi data. Application Developers Tanggung jawab application developer adalah memastikan bahwa penyediaan fungsionalitas yang diperlukan oleh end-users telah diterapkan dalam aplikasi. 12 Umumnya application developers bekerja dari spesifikasi yang dihasilkan oleh system analyst. 4. End Users End users adalah klien dari database yang telah dirancang, diimplementasikan, dan dipelihara guna menyajikan informasi yang dibutuhkan. End users dapat dibagi menurut cara pemakaian sistem: 1. Naïve users yaitu jenis user yang tidak mengetahui cara mengoperasikan DBMS. Cara mereka mengakses database yaitu melalui program aplikasi khusus yang ditujukan untuk membuat operasi menjadi sesederhana mungkin. Mereka menjalankan operasi database dengan memasukkan perintah sederhana atau memilih pilihan dari menu. Hal ini menunjukkan bahwa end user tersebut tidak membutuhkan pengetahuan apapun tentang database atau DBMS. 2. Sophisticated users berbeda dengan naïve user. Sophisticated user mengenal struktur dari database dan fasilitas-fasilitas yang terdapat di dalam DBMS. User tipe ini mungkin menggunakan bahasa query tingkat tinggi seperti SQL untuk menjalankan operasi yang dibutuhkan bahkan membuat sendiri aplikasi yang dibutuhkannya. 2.7 Keuntungan pemakaian DBMS: Adapun keuntungan yang dihasilkan dari pemakaian DBMS adalah (Connolly & Begg, 2010, p77-80): 1. Mengendalikan dan mengatur data-data yang redundan di dalam database dengan cara menandai setiap baris data dengan value yang unik agar tidak mengalami duplikasi. 2. Menjaga data agar tetap konsisten. 3. Memberikan informasi yang lanjut mengenai data-data yang tersimpan dalam database. 4. Meningkatkan konsistensi dan keabsahan data dengan cara memberikan batasan-batasan tertentu (constraint) pada data. 5. Menjaga keamanan data dari akses atau user yang tidak memiliki izin. 13 6. Menetapkan standar-standar yang berlaku seperti standar dokumentasi, penamaan, prosedur perbaharuan, dan aturan pengaksesan. 7. Melakukan penghematan biaya operasional dengan menggabungkan semua data operasional organisasi ke dalam sebuah database dan membangun serangkaian aplikasi yang mengakses data dari satu sumber. 8. Kebutuhan yang berbeda-beda dari setiap user atau divisi mungkin akan menimbulkan konflik dalam organisasi. Untuk menghindari konflik maka keputusan mengenai perancangan dan penggunaan operasional database akan ditangani oleh DBA. Setiap keputusan DBA dapat menghasilkan sistem yang mampu menyediakan penggunaan sumber daya terbaik bagi organisasi. 9. Meningkatkan kemudahan dalam mengakses data. 10. Meningkatkan produktivitas programmer serta mengurangi waktu pengembangan sistem terkait dengan penghematan biaya. 11. Meningkatkan pemeliharaan melalui data independen. 12. Menjaga agar data tetap utuh dan valid dengan mengatur pengaksesan data yang sama oleh dua atau lebih user dalam waktu yang bersamaan melalui DBMS. 13. Meningkatkan kemudahan dalam membuat cadangan dan mengembalikan data seperti semula ketika data mengalami kerusakan atau kegagalan. 2.8 Fungsi DBMS Fungsi dan fasilitas-fasilitas dalam DBMS adalah (Connolly & Begg, 2010, p100-104): 1. Data storage, retrieval, and update DBMS harus menyediakan kemudahan bagi user untuk menyimpan, mengambil/mengakses, dan memperbaharui/memodifikasi data di dalam database. 2. A user-accessible catalog DMBS harus menyediakan katalog yang berisi deskripsi dari setiap data yang disimpan dan diakses oleh user. 14 3. Transaction support DBMS harus menyediakan mekanisme yang akan menjamin bahwa setiap pembaruan atau modifikasi sesuai dengan transaksi yang telah dibuat maupun yang tidak dibuat. 4. Concurrency control services DBMS harus menyediakan mekanisme yang dapat menjamin bahwa pembaruan database dilakukan tepat sesuai dengan pembaruan yang dilakukan oleh user. 5. Recovery services DBMS harus menyediakan mekanisme untuk mengembalikan database pada keadaan sebelum terjadinya kerusakan. 6. Authorization services DBMS harus menyediakan mekanisme yang menjamin bahwa hanya user yang berwenang dan memiliki izin yang dapat mengakses database. 7. Support for data communication DBMS harus mampu diintegrasikan dengan software komunikasi. 8. Integrity service DBMS harus menjamin bahwa setiap data yang tersimpan di dalam database dan setiap perubahan yang terjadi pada data sesuai dengan aturan yang berlaku. 9. Service to promote data independence DBMS harus dilengkapi dengan fasilitas yang mendukung sistem agar dapat mandiri dari struktur database. 10. Utility services DBMS harus menyediakan serangkaian layanan utilitas. 2.9 Database Language Bahasa dalam database secara umum dibagi ke dalam 2 (dua) bagian yaitu (Connolly & Begg, 2010, p92-93): 1. Data Definition Language (DDL) DDL adalah sebuah bahasa yang digunakan oleh database administrator atau user untuk mendefinisikan atau melakukan modifikasi terhadap struktur database, menghapus objek seperti skema, tabel, view, 15 domains, indexes, dan menamai atribut suatu entitas dalam database dengan dilengkapi oleh integrity dan security constraint. Operasi-operasi dalam DDL meliputi: a. CREATE untuk membuat objek dalam suatu database. b. ALTER untuk melakukan modifikasi struktur pada database. c. DROP untuk menghapus objek dari suatu database. d. TRUNCATE untuk menghapus semua record atau baris data dalam sebuah tabel. 2. Data Manipulation Language (DML) DML adalah bahasa yang menyediakan seperangkat operasi untuk mendukung manipulasi data dalam suatu database. DML dapat dibedakan ke dalam 2 (dua) macam: a. Procedural DML Procedural DML yaitu bahasa yang digunakan oleh user untuk mengakses data yang diperlukannya dari sistem dengan menyebutkan cara untuk mengakses data tersebut. b. Non-Procedural DML Non-procedural DML yaitu bahasa yang digunakan oleh user untuk mengakses data yang diperlukannya dari sistem tanpa menyebutkan cara untuk mengakses data. Operasi-operasi dalam DML meliputi: 1. INSERT INTO untuk memasukkan data baru ke dalam database. 2. UPDATE untuk memodifikasi data yang tersimpan dalam database. 3. SELECT untuk mengambil atau mengakses data yang tersimpan dalam database. 4. DELETE untuk menghapus data yang tersimpan dalam database. 16 2.10 Entity-Relationship Modelling (ER-Modelling) ER-Modelling adalah perancangan database secara top-down yang dimulai dengan mengidentifikasikan data penting yang disebut entitas dan relationships antar-data (Connolly & Begg, 2010, p371). Konsep utama dalam ER-Modelling yaitu (Connolly & Begg, 2010, p372-391): 1. Entity Types Entitas adalah sekumpulan objek dengan karakteristik yang sama yang diidentifikasi oleh perusahaan. 2. Relationship Types Relationship types adalah hubungan di antara tipe entitas. 3. Atribut a. Atribut adalah karakteristik atau deskripsi mengenai entitas atau hubungan di antara entitas tersebut. b. Atribut domain adalah sekumpulan value yang diizinkan untuk satu atau lebih atribut. c. Keys 1. Candidate key adalah kumpulan atribut yang mengidentifikasikan setiap entitas/tabel secara unik. 2. Primary key adalah candidate key yang terpilih untuk mengidentifikasikan setiap entitas/tabel secara unik. 3. Composite key adalah candidate key yang mengandung dua atau lebih atribut. 4. Alternate key adalah candidate key yang tidak terpilih sebagai primary key. 4. Strong and Weak Entity Types a. Strong entity type adalah entitas yang tidak bergantung pada entitas lain. b. 5. Weak entity type adalah entitas yang bergantung pada entitas lain. Structural Constraints a. Multiplicity adalah jarak atau jumlah hubungan yang mungkin terjadi dalam suatu entitas. 17 Gambar 2.3 Ringkasan untuk Mewakili Batasan Multiplicity (Connolly & Begg, 2010, p391) b. Cardinality adalah jumlah hubungan maksimum yang terjadi pada entitas dalam hubungan tertentu. c. Participation menentukan apakah semua atau hanya beberapa entitas saja yang berpartisipasi dalam suatu hubungan. Gambar 2.4 Contoh Penggambaran Cardinality dan Participation dalam Multiplicity (Connolly & Begg, 2010, p391) 2.11 Entity Relationship Digram (ERD) ERD adalah suatu model untuk merepresentasikan suatu entitas dan hubungan antar entitas-entitas tersebut secara sederhana (Connolly & Begg, 2010, p473). 18 Gambar 2.5 Entity Relationship Diagram (Connolly & Begg, 2010, p391) 2.12 Software Software adalah program komputer yang memiliki fitur serta menjalankan instruksi ketika dieksekusi dan terdiri dari struktur data yang digunakan untuk memanipulasi informasi (Pressman, 2010, p4). Terdapat 7 (tujuh) kategori dari software komputer yaitu: 1. System software merupakan kumpulan program yang digunakan untuk melayani program-program lain. 2. Application software merupakan program yang bertujuan untuk mengatasi proses dan operasi bisnis. 3. Engineering/scientific software merupakan aplikasi yang digunakan dalam bidang engineering/scientific. 4. Embedded software merupakan sistem yang digunakan untuk mengimplementasikan dan mengontrol fungsi-fungsi serta fitur-fitur pada end user dan sistem tersebut. 5. Product-line software merupakan program yang dirancang untuk berbagai customer. 6. Web applications merupakan kategori software yang dapat diakses secara luas melalui suatu jaringan serta terintegrasi dengan databases dan aplikasi bisnis suatu perusahaan. 7. Artificial intelligence software merupakan program yang menggunakan nonnumerical algorithms untuk memecahkan permasalahan yang 19 kompleks mencakup robotic, expert systems, pattern recognition (gambar dan suara), artificial neural networks, pembuktian teori, dan game. 2.13 Extreme Programming (XP) XP merupakan salah satu proses model pengembangan perangkat lunak dari kelompok agile software development yang bertujuan untuk meningkatkan kualitas dan fleksibilitas software terhadap adanya perubahan kebutuhan (requirement). Gambar 2.6 Proses Extreme Programming (Pressman, 2010, p74) Adapun proses yang digunakan dalam extreme programming adalah sebagai berikut (Pressman, 2010, p72): 1. Planning (Perencanaan) Aktivitas perencanaan dimulai dengan mengumpulkan kebutuhan (requirement) dari user untuk memahami proses bisnis dan tujuan serta fitur-fitur utama yang diperlukan. Berdasarkan kebutuhan yang telah dikumpulkan maka akan dibuat story (use case) untuk menggambarkan proses dari fungsi atau fitur yang akan dirancang. Lalu user dan developer akan menentukan jangka waktu yang dibutuhkan untuk mengembangkan aplikasi tersebut. Selama proses pengembangan 20 aplikasi, user dapat menambahkan, mengurangi, atau mengubah story. Para developer akan menyusun dan memodifikasi perancangan berdasarkan story tersebut. 2. Design (Perancangan) Proses desain pada XP mengikuti prinsip KIS (Keep It Simple). Proses perancangan dapat terjadi sebelum dan sesudah tahap coding. Refactoring berarti proses desain yang terjadi secara berkesinambungan ketika sistem dibangun. 3. Coding Setelah story dikembangkan dan desain awal dikerjakan, para developer tidak langsung melakukan coding tetapi mengevaluasi setiap story yang telah didesain. Konsep mendasar yang digunakan selama tahap ini adalah pair programming. 4. Testing (Pengujian) Dalam tahap ini terdapat dua pengujian yaitu individual unit test dan acceptance test (customer test). Individual unit test merupakan tahap pengujian terhadap validasi fungsionalitas sebuah sistem dan penyelesaian bug atau error sebelum diserahkan ke user untuk diuji kembali. Acceptance test yang dikenal dengan customer test merupakan tahap pengujian terhadap fitur-fitur utama untuk dievaluasi kembali sesuai dengan tahap perencanaan. 2.14 Unified Modeling Language (UML) Unified Modeling Language (UML) adalah pemodelan yang digunakan oleh developer untuk berkomunikasi mengenai pekerjaan mereka dengan para stakeholder dan developer yang lain (Ambler, 2005, ix). 1. Use Case Diagram Use case diagram menunjukkan hubungan antara aktor dan use case dalam sebuah sistem. Kegunaan use case antara lain sebagai berikut (Ambler, 2005, p33): 1. Memberikan gambaran dari kebutuhan penggunaan sistem atau organisasi dalam bentuk model. 2. Menggambarkan ruang lingkup dari pengembangan sistem. 21 3. Menggambarkan analisis permintaan kebutuhan dalam bentuk use case model. Sebuah use case model terdiri dari satu atau lebih use case diagram dan menyediakan dokumentasi seperti spesifikasi dari use case dan definisi aktor. Gambar 2.7 Use Case Diagram (Ambler, 2005, p36) 2. Activity Diagram Activity diagram menggambarkan struktur perancangan secara object-oriented yang serupa dengan flow chart dan data-flow diagram. Activity diagram digunakan untuk menjelaskan (Ambler, 2005, p113): a. Operasi yang kompleks b. Aturan bisnis yang kompleks c. Use case tunggal d. Beberapa use case e. Proses bisnis f. Proses yang terjadi secara bersamaan g. Proses software 22 Gambar 2.8 Activity Diagram (Ambler, 2005, p114) 3. Sequence Diagram Sequence diagram adalah teknik pemodelan dinamis. Sequence diagram digunakan untuk (Ambler, 2005, p80-81): a. Validasi dan menyempurnakan logika serta melengkapkan skenario yang dibutuhkan. b. Menggambarkan hasil perancangan dari setiap operasi yang dijelaskan dalam kelas. c. Mendeteksi hambatan dalam perancangan object-oriented dengan memperhatikan pesan yang dikirimkan ke objek, dan memperhatikan berapa perkiraan waktu untuk memanggil sebuah method. Gambar 2.9 Sequence Diagram (Ambler, 2005, p82) 23 4. Class Diagram Class diagram menggambarkan kelas-kelas dalam sistem, hubungan, operasi, dan atribut dari kelas-kelas tersebut. Untuk membuat sebuah class diagram dibutuhkan beberapa komponen antara lain classes, methods, attributes, associations, dependencies, inheritance relationships, aggregation associations, association classes (Ambler, 2005, p47). Class diagram digunakan untuk: a. Menggambarkan konsep domain dalam bentuk model. b. Menganalisis kebutuhan dalam bentuk model analisis dan konseptual. c. Menggambarkan desain secara rinci dari software berbasis objectoriented. Gambar 2.10 Class Diagram (Ambler, 2005, p49) Beberapa hubungan yang terdapat di dalam konsep UML: 1. Association menggambarkan hubungan antara satu kelas dengan kelas yang lain. 2. Inheritance disebut juga generalization menggambarkan hubungan pewarisan dari satu kelas kepada kelas yang lain. 3. Aggregation menyatakan bahwa sebuah kelas merupakan bagian dari kelas yang lain. 4. Composition merupakan hubungan yang lebih erat dibandingkan aggregation dimana sebuah kelas tidak dapat berdiri sendiri tanpa kelas lain (kelas utama). 24 Di dalam sebuah kelas terdapat multiplicity yang menggambarkan seberapa banyak suatu objek (kelas) berelasi dengan objek (kelas) lain. Hubungan multiplicity yang terdapat dalam class diagram yaitu: Gambar 2.11 UML Multiplicity Indicator (Ambler, 2005, p63) 2.15 Lima Faktor Manusia Terukur Lima faktor manusia terukur adalah faktor-faktor yang dapat menjadi bahan evaluasi dalam perancangan sistem. Kelima faktor tersebut adalah sebagai berikut (Shneiderman & Plaisant, 2010, p32): 1. Waktu belajar Waktu belajar adalah lamanya waktu yang dibutuhkan oleh user dalam mempelajari penggunaan suatu aplikasi melalui fitur-fitur yang disediakan dalam aplikasi. Kecepatan user dalam mempelajari penggunaan aplikasi menjadi salah satu pengukur seberapa baik tingkat usability aplikasi tersebut. 2. Kecepatan kinerja Kecepatan kinerja suatu aplikasi diukur dari lamanya waktu yang diperlukan oleh aplikasi tersebut untuk menjalankan perintah dan merespon aksi dari user. Aplikasi yang baik harus memiliki waktu respon aksi yang cepat. 3. Tingkat kesalahan user Dalam mengoperasikan suatu aplikasi seringkali user mengalami kesalahan atau error. Aplikasi yang baik harus bisa menangani seminimal mungkin terjadinya kesalahan baik melalui batasan-batasan dalam user interface maupun melalui validasi code. Semakin sedikit 25 kesalahan yang timbul menandakan semakin baik aplikasi yang dibangun. 4. Daya ingat Daya ingat setiap user berbeda-beda. Oleh sebab itu, perancangan user interface sebaiknya menggunakan icon yang umumnya digunakan dan dimengerti oleh semua user untuk memudahkan user ketika mengoperasikan aplikasi. 5. Kepuasan subjektif Kepuasan subjektif yaitu tingkat kepuasan user terhadap aplikasi yang digunakannya. 2.16 Eight Golden Rules (Delapan Aturan Emas) Eight golden rules merupakan delapan standar aturan yang dapat diaplikasikan dalam perancangan suatu sistem yang interaktif. Aturan-aturan tersebut dirangkumkan berdasarkan pengalaman dan mengalami penyempurnaan selama tiga dekade sehingga dapat diterima dengan baik sebagai panduan yang berguna bagi mahasiswa dan desainer. Suatu sistem interaktif harus memiliki interface yang user friendly, sehingga dapat memberikan kemudahan bagi penggunanya (Shneiderman & Plaisant, 2010, p88). Berikut 8 (delapan) aturan emas (eight golden rules) yang menjadi panduan dalam perancangan suatu interface sistem yang baik (Shneiderman & Plaisant, 2010, p88-p89): 1. Strive for Consistency Usahakan untuk konsisten dalam perancangan user interface misalnya, pada tampilan menu, layar bantuan, pemilihan warna, tata letak, pemakaian huruf besar, pemilihan jenis huruf yang digunakan, dan lain sebagainya 2. Cater to Universal Usability Kebutuhan user berbeda-beda sehingga harus ada perbedaan dalam penggunaan aplikasi bagi setiap user seperti perbedaan antara user pemula dengan user yang sudah ahli (expert), user pada rentang usia tertentu, atau user yang memiliki keterbatasan fisik. Misalnya, dengan 26 menambahkan fitur help atau tutorial penggunaan aplikasi bagi user pemula dan fitur shortcut untuk user yang sudah ahli untuk mempercepat penggunaan aplikasi. 3. Offer Informative Feedback Memberikan umpan balik (feedback) yang informatif bagi setiap aksi yang dilakukan user. Untuk aksi yang sering dilakukan dapat menggunakan respon yang sederhana dan respon yang lengkap bagi aksi yang jarang dilakukan dan utama. Misalnya, dengan memberikan umpan balik berupa sukses atau gagal ketika user selesai melakukan aksinya atau memberikan peringatan (warning) ketika user salah memasukkan data dan sebagainya. 4. Design Dialogs to Yield Closure Merancang urutan tindakan yang mencapai hasil akhir. Pengelompokan aturan tersebut sebaiknya teratur dan terorganisir dengan jelas mulai dari awal, pertengahan hingga akhir. Sertai dengan umpan balik (feedback) yang informatif ketika sebagian atau seluruh aksi selesai dilakukan untuk menunjukkan bahwa aksi tersebut telah memenuhi aturan dan user dapat melanjutkan ke aksi berikutnya. 5. Prevent Errors Rancang sistem semaksimal mungkin untuk menghindari kesalahan seriusyang dilakukan user ketika menjalankan aksinya. Jika user melakukan kesalahan, siapkan umpan balik yang menunjukkan letak kesalahan agar user dapat memperbaiki aksi yang dilakukannya serta instruksi yang jelas mengenai cara mengatasi kesalahan. Misalnya, jika user memasukkan huruf pada kolom inputan yang seharusnya diisi angka, maka sistem dapat memunculkan pesan error pada sisi kanan kolom inputan untuk menunjukkan kesalahan user serta memberikan instruksi pada user untuk memasukkan inputan angka. 6. Permit Easy Reversal of Actions Lengkapi sistem dengan fitur yang memungkinkan untuk kembali pada kondisi sebelumnya seperti fitur back atau undo untuk membantu user yang melakukan kesalahan atau ingin membatalkan aksinya dapat kembali pada tahap atau kondisi yang diinginkan oleh user. 27 7. Support Internal Locus of Control Sistem yang dirancang harus memberikan kemudahan bagi user untuk mengontrol sendiri sistem tersebut dan tidak menjadikan seolaholah user yang dikontrol oleh sistem. 8. Reduce short-term memory load Untuk memudahkan user dalam penggunaan sistem, siapkan tampilan yang sederhana, memiliki urutan jelas, tidak rumit serta usahakan agar user tidak perlu mengingat banyak hal seperti tomboltombol tertentu. Karena tidak semua user memiliki ingatan yang kuat dan keahlian khusus. 2.17 PHP Hypertext Preprocessor (PHP) PHP adalah bahasa pemrograman server-side yang dirancang khusus untuk web dan dapat ditanamkan ke dalam sebuah halaman HTML yang akan dijalankan setiap kali halaman tersebut diakses. Script PHP akan diterjemahkan oleh web server dan menghasilkan HTML atau output lainnya yang dapat dilihat oleh user di web. PHP bersifat open source sehingga setiap orang dapat mengakses, menggunakan, mengubah serta mendistribusikan source code PHP tanpa dikenakan biaya (Welling & Thomson, 2009, p2-3). Keuntungan menggunakan PHP sebagai bahasa pemrograman dalam membangun aplikasi (Welling & Thomson, 2009, p4-6): 1. Performance Kinerja PHP yang sangat cepat, jutaan kunjungan user ke website per hari dapat dilayani hanya dengan satu server yang hemat biaya. 2. Scalability Sebuah skala horizontal dengan sejumlah besar server dapat diterapkan dengan efektif dan murah. 3. Database Integration PHP memiliki koneksi yang tersedia untuk banyak sistem database, seperti MySQL, PostgreSQL, Oracle, dbm, FilePro, DB2, Hyperwave, Informix, InterBase, Sybase databases, dan lainnya. 28 Setiap database yang menyediakan driver ODBC dapat dikoneksikan dengan menggunakan Open Database Connectivity Standard (ODBC). 4. Built-in Libraries Karena dirancang untuk pemakaian pada web, PHP memiliki banyak fungsi built-in untuk melakukan banyak web task yang berguna. Beberapa web task tersebut yaitu generate gambar dengan cepat, terhubung dengan web dan layanan jaringan lainnya, parse XML, pengiriman email, cookies, dan generate dokumen-dokumen PDF dapat dilakukan hanya dengan beberapa baris kode. 5. Cost PHP merupakan bahasa pemrograman yang tidak berbayar. Source code PHP dapat diunduh melalui http://www.php.net secara gratis. 6. Easy of Learning PHP Sintaks PHP didasarkan pada bahasa pemrograman lain terutama C dan Perl sehingga jika sudah menguasai bahasa pemrograman seperti C, Perl, C++, atau Java, maka PHP pun akan dikuasai dengan mudah. 7. Object-Oriented Support PHP 5 telah dilengkapi dengan fitur object oriented. Seperti inheritance, private, protected attributes and methods, abstract classes and methods, interface, constructors, dan destructors. Bahkan ada fitur baru yang kurang umum namun tersedia di PHP 5. Sedangkan untuk PHP 3 dan PHP 4, dukungan fitur object oriented yang tersedia belum selengkap PHP 5. 8. Portability PHP tersedia dalam berbagai sistem operasi yang berbeda dimana semua orang dapat menulis PHP code secara gratis pada banyak sistem operasi yang tersedia seperti Linux, FreeBSD, Microsoft Windows, OS X, atau dua Unix versi komersial yaitu Solaris dan IRIX. 9. Flexibility of Development Approach PHP menggunakan kerangka kerja dengan pola desain ModelView-Controller yang memungkinkan pengerjaan tasks yang sederhana dan mudah disesuaikan untuk implementasikan dalam aplikasi besar. 29 10. Source Code Sebagai bahasa pemrograman yang open souce, source code PHP dapat diakses kapan pun, dan dapat dengan bebas diubah serta ditambahkan tanpa harus membayar lisensi atau khawatir produk tidak didukung lagi oleh pengembang. 11. Availability of Support and Documentation Forum-forum dokumentasi dan komunitas pengembang informasi-informasi yang PHP menyediakan dibutuhkan dalam pengembangan aplikasi menggunakan PHP. 2.18 MySQL MySQL adalah sebuah relational database management system (RDBMS) yang sangat cepat dan tangguh. Database MySQL membuat penyimpanan, pencarian, dan pengambilan data dilakukan dengan mudah. Server MySQL mengontrol akses ke data user untuk memastikan bahwa data tersebut dapat digunakan oleh banyak user sekaligus, menyediakan akses yang cepat dan menjamin hanya user yang berwenang dapat memperoleh akses. Oleh karena itu, MySQL adalah aplikasi multiuser dan server yang multi-threaded. Sama seperti RDBMS lainnya, MySQL menggunakan Structure Query Language (SQL) sebagai bahasa query database standar (Welling & Thomson, 2009, p3). Keuntungan menggunakan MySQL (Welling & Thomson, 2009, p8): 1. Performance Kinerja MySQL tidak diragukan lagi kecepatannya. Banyak perbandingan yang dilakukan para pengembang terhadap 5 (lima) aplikasi database dan hasilnya menunjukkan bahwa MySQL berkali-kali lipat lebih cepat dibandingkan aplikasi database lain. Perbandingan ini dapat dilihat pada halaman website http://web.mysql.com/whymysql/benchmarks. 2. Low Cost MySQL tersedia secara gratis dan dapat dipakai tanpa harus terlebih dulu membeli lisensi. Meskipun ada pilihan MySQL komersil yang membutuhkan lisensi namun dapat dibeli dengan harga yang terjangkau. 30 Dua jenis ini bebas dipilih sesuai dengan kebutuhan pengembang aplikasi. 3. Easy of Use Database modern telah menerapkan SQL sehingga tidak membutuhkan usaha yang besar untuk menggunakan MySQL karena penggunaannya sama seperti RDBMS lain. MySQL juga lebih mudah digunakan dibandingkan produk-produk yang serupa. 4. Portability MySQL dapat digunakan dalam berbagai macam sistem operasi Unix dan Microsoft Windows. 5. Source Code Source code MySQL dapat diperoleh dengan mudah dan dimodifikasi sesuai dengan kebutuhan tanpa harus khawatir RDBMS ini tidak lagi didukung oleh pengembangnya. 6. Availability of Support Memang tidak semua produk open source memiliki pelatihan, konsultasi, sertifikat dan dukungan dari perusahaan pengembangnya. Namun MySQL menyediakan semuanya di MySQL AB yang dapat diakses melalui website www.mysql.com. 2.19 Model-View-Controller (MVC) MVC merupakan metode atau pola desain yang memungkinkan developer memisahkan code mereka ke dalam tiga bagian yaitu (Griffiths, 2010, p10-11): 1. Models, yaitu bagian yang berhubungan dengan data yang digunakan oleh aplikasi, dapat berupa database, RSS Feeds, pemanggilan API, dan aksi lain seperti pengambilan, perubahan, dan penghapusan data. 2. Views, bagian yang bertugas menampilkan data dan elemen-elemen dari user interface. 3. Controller, bagian yang mengatur business logic dari suatu aplikasi. Bagian ini menjadi jembatan antara Models dengan Views. 31 Gambar 2.12 Ilustrasi Mengenai Hubungan antara Model, View, dan Controller (Myer, 2008, p5) Keuntungan menggunakan model MVC adalah: a. Mempermudah developer dalam memelihara aplikasi yang dibangun karena code terbagi ke dalam tiga bagian. b. Mempermudah developer ketika melakukan modifikasi aplikasi. 2.20 CodeIgniter (CI) CI adalah framework PHP yang dirancang untuk memungkinkan user mengembangkan proyek atau aplikasi lebih cepat dibandingkan harus menulis code dari awal. CI menyediakan sekumpulan libraries untuk tugas-tugas yang biasa diperlukan, tampilan user interface yang sederhana, struktur logika untuk mengakses libraries tersebut serta memungkinkan user untuk meminimalkan jumlah code dalam perancangan aplikasi (http://ellislab.com/codeigniter/userguide/, 12 Desember 2013, 15:41 WIB). Kondisi-kondisi yang membutuhkan penggunaan framework CodeIgniter: 1. Membutuhkan framework dengan footprint yang kecil. 2. Membutuhkan kinerja yang luar biasa. 3. Membutuhkan dokumentasi yang jelas dan menyeluruh. 4. Membutuhkan kompatibilitas dengan hosting yang standar. 5. Tidak memerlukan banyak konfigurasi. 6. Framework yang tidak mengharuskan penggunaan command line. 32 7. Tidak mengharuskan aturan coding yang ketat. 8. Tidak perlu mempelajari template bahasa lain. 9. Solusi yang sederhana untuk menyelesaikan kompleksitas. Keuntungan menggunakan CI (Blanco & Upton, 2010, p8-14): 1. Save time Tidak dibutuhkan banyak waktu untuk mempelajari CI sehingga dapat menghemat banyak waktu developer. Selain itu, dalam CI banyak code yang tidak perlu ditulis secara manual. Hal ini memperkecil kemungkinan untuk terjadinya kesalahan dalam penulisan code dan mengurangi waktu untuk melakukan debugging. 2. Robust CI memiliki banyak fungsionalitas standar dan keamanan yang baik. 3. Keep links up-to-date automatically CI mendukung penempatan URL dari site ke dalam file konfigurasi sehingga dapat diakses oleh sisa site. Fungsi CI yang digunakan secara otomatis mengacu ke file konfigurasi sehingga ketika ingin memindahkan situs, cukup mengubah code di file konfigurasi saja dan semua hyperlink akan secara otomatis mengalami perubahan. 4. Preventing database SQL injection attacks and form prepping CI telah dilengkapi fungsi untuk mencegah terjadinya serangan berbahaya dari pihak luar serta membersihkan data inputan dari simbolsimbol seperti apostrof dan tanda kutip yang tidak dapat disimpan secara baik. 5. Protect site from XSS attacks CI membantu dalam validasi data agar code yang tidak diinginkan tidak dieksekusi dalam aplikasi serta membantu menanggulangi aplikasi dari serangan phising, maupun pencurian data. 6. Make code bolder CI memiliki seperangkat aturan sehingga ketika developer telah menguasai sintaks-sintaks tersebut, seluruh bagian akan bekerja secara bersamaan dengan tanpa mengalami bentrokan. Semua code telah ditulis dengan baik dan dapat diandalkan serta diuji oleh komunitas pengguna CI. 33 7. Save bandwith CI memiliki fasilitas untuk memungkinkan untuk mengubah file ke dalam bentuk zip pada drive C: yang dapat di-unzip untuk mendapatkan data asli. Hal ini membantu banyak dalam penghematan bandwith. 2.21 Asynchronous JavaScript and XML (AJAX) Pemrograman AJAX biasanya menggabungkan pemrograman client-side javascript dengan transfer data berformat XML dan bahasa pemrograman server-side seperti PHP. Hasil pemrograman menggunakan AJAX biasanya menampilan user interface yang lebih bersih dan cepat untuk aplikasi interaktif. Contoh aplikasi berbasis AJAX seperti Facebook, Flickr, dan situs jejaring sosial lain dengan fore front web 2.0. Cara kerja AJAX memungkinkan user untuk melakukan banyak tugas tanpa harus reload ulang seluruh halaman (Welling & Thomson, 2009, p856). Gambar 2.13 Cara Kerja AJAX (Welling & Thomson, 2009, p856) Keuntungan yang dimiliki oleh AJAX adalah sebagai berikut (http://www.jscripters.com/ajax-disadvantages-and-advantages/, 13 Desember 2013, 18:14 WIB): 34 1. Better interactivity AJAX memungkinkan interaksi yang lebih mudah dan cepat antara user dan website karena dalam memproses permintaan user, halaman tidak di-load seluruhnya namun hanya pada bagian yang akan ditampilkan. 2. Easier navigation Aplikasi AJAX di website dibangun untuk memudahkan navigasi bagi user dalam menggunakan fitur traditional back dan tombol forward. 3. Compact Dengan AJAX, beberapa aplikasi dengan banyak tujuan dan fitur dapat ditangani melalui satu halaman web. 4. Backed by reputed brand Aplikasi yang rumit dapat ditangani menggunakan AJAX. Contoh: Google Maps. 2.22 JavaScript Object Notation (JSON) JSON adalah format pertukaran data yang merupakan bagian dari objek notasi literal dalam JavaScript. JSON tidak membutuhkan JavaScript sehingga dapat digunakan sebagai format pertukaran data yang mudah pada bahasa scripting lainnya (Holdener, 2008, p86). Contoh JSON: {‘detail’: { ‘ id’: 1, ‘type’: ‘book’, ‘author’: ‘Anthony T. Holdener III’, ‘title’: ‘Ajax: The Devinitive Guide’, ‘detail’: 960, ‘extra’: 20, ‘isbn’: 08596528388, ‘price’:{ ‘us’: 49.99, ‘ca’:49.99 } } 35 }} Keuntungan JSON (http://www.json.org/xml.html, 14 Maret 2014, 11:17 WIB): 1. JSON lebih simpel dari XML. 2. JSON mudah dibaca dan ditulis oleh manusia dan mesin. 3. JSON dapat digunakan sebagai format pertukaran yang memungkinkan pengguna memindahkan data antar-aplikasi. 4. JSON menyediakan struktur data sehingga kaya akan informasi. 5. JSON mudah diproses karena memiliki struktur data yang simpel dan standar. 2.23 Manajemen Manajemen adalah proses mengkoordinasi dan mengawasi kegiatankegiatan kerja orang lain agar dapat diselesaikan secara efisien dan efektif (Robbins & Coulter, 2009, p22). Manajemen penting digunakan dalam suatu organisasi, karena manajemen memastikan bahwa aktivitas kerja dapat selesai dan membuat orang-orang yang bertanggung jawab dalam pekerjaan tersebut dapat dilakukan secara efektif atau sesuai dengan apa yang dicita-citakan oleh seorang manajer. 2.24 Fungsi Manajemen Fungsi manajemen terbagi dalam 4 (empat) fungsi yang saling berkaitan terdiri dari (Robbins & Coulter, 2009, p24): 1. Planning (Perencanaan) Yaitu mendefinisikan mengembangkan tujuan, rencana untuk membentuk strategi, mengintegrasikan dan dan mengkoordinasikan suatu kegiatan. 2. Organizing (Pengaturan) Yaitu menentukan tugas-tugas yang akan dikerjakan, siapa yang mengerjakan, bagaimana tugas-tugas dikelompokkan, siapa yang melapor pada siapa, dan di tingkat mana keputusan-keputusan harus di buat. 36 3. Leading (Kepemimpinan) Yaitu meliputi kegiatan memotivasi bawahan, mengarahkan, menyeleksi saluran komunikasi paling efektif, dan memecahkan konflik. 4. Controlling (Pengendalian) Yaitu memantau kegiatan-kegiatan untuk memastikan bahwa semua orang dapat mencapai apa yang telah direncanakan, dan mengoreksi penyimpangan-penyimpangan yang signifikan. 2.25 Manajemen Sumber Daya Manusia Manajemen sumber daya manusia merupakan suatu proses yang mencakup perekrutan, pemberian kerja, pelatihan, pemberian kompensasi, penilaian, dan pengembangan karyawan. Selain itu manajemen sumber daya manusia juga mencakup peninjauan dan perhatian terhadap masalah kesehatan, keselamatan, dan keadilan karyawan. Kesimpulan dari manajemen sumber daya manusia adalah suatu ilmu yang mengatur proses pengembangan dan pemanfaatan tenaga kerja agar dapat menghasilkan kinerja yang baik sesuai dengan prosedur yang ada demi tercapainya tujuan perusahaan (Dessler, 2005, p04). Beberapa aktivitas spesifik yang terlibat dalam manajemen sumber daya manusia meliputi: 1. Perekrutan Informasi yang diperoleh dari hasil analisis pekerjaan dituangkan ke dalam bentuk deskripsi dan spesifikasi pekerjaan yang digunakan untuk membantu manajemen menentukan jenis orang yang akan direkrut dan dipekerjakan. (Dessler, 2005, p117) Namun dalam pengembangan aplikasi ini penulis tidak menyertakan perekrutan karena untuk sistem perekrutan telah tersedia di aplikasi yang berbeda. 2. Pelatihan dan Pengembangan Karyawan Proses memberikan ketrampilan yang dibutuhkan oleh karyawan baru untuk melakukan pekerjaannya. 3. Pemberian Kerja 37 Sebelum memberikan pekerjaan kepada karyawan, perusahaan akan terlebih dahulu menuliskan deskripsi pekerjaan yang sesuai dengan ketrampilan karyawan tersebut yang meliputi: 4. a. Identifikasi pekerjaan b. Ringkasan pekerjaan c. Tanggung jawab dan kewajiban d. Otoritas dari pemegang jabatan e. Standar prestasi f. Kondisi kerja g. Spesifikasi Pemberian Kompensasi Kompensasi (mencakup gaji dan bonus) yang diberikan kepada karyawan biasanya bergantung pada ketrampilan dan tingkat pendidikan yang dibutuhkan oleh pekerjaan tersebut, tingkat bahaya, kemanan pekerjaan, tingkat tanggung jawab, dan lain-lain. 5. Penilaian Proses yang digunakan oleh perusahaan untuk memastikan karyawan bekerja searah dengan tujuan yang ingin dicapai oleh perusahaan. Penilaian biasanya dilakukan dengan membandingkan prestasi dari setiap karyawan dengan standar prestasi yang ditetapkan oleh perusahaan. 38