BAB 2 LANDASAN TEORI 2.1 Internet 2.1.1. Internet Menurut Turban, Rainer dan Potter (2005, p674), Internet adalah jaringan yang menghubungkan sekitar satu juta jaringan komputer organisasional internasional di lebih dari 200 negara di semua benua, termasuk Antartika. Sistem komputer yang tergabung di dalamnya, disebut node, mencakup PC, LAN(Local Area Network), basis data, dan mainframe. Di Internet, node dapat mencakup beberapa jaringan dari suatu organisasi, yang mungkin dihubungkan oleh WAN (Wide Area Network).
Sebagai
satu
atau
beberapa
jaringan,
Internet
memungkinkan orang untuk mengakses data di organisasi lainnya dan untuk berkomunikasi, bekerja sama, dan bertukar informasi di hampir seluruh dunia.
2.1.2. Layanan Internet (Internet Service) Menurut Turban, Rainer dan Potter (2005, p680), World Wide Web (Web, WWW, atau W3) adalah aplikasi yang menggunakan fungsi-fungsi pengiriman pada internet. Web adalah sistem dengan standar yang diterima secara universal untuk menyimpan, menelusuri, memformat,
dan
menampilkan 8
informasi
melalui
arsitektur
klien/server. Web bisa menerima semua jenis informasi digital, termasuk teks, hipermedia, grafis, dan suara. Web menggunakan antarmuka pengguna grafis, sehingga sangat mudah digunakan. Teknologi World Wide Web diciptakan oleh Timothy Berners-Lee, yang pada tahun 1989 mengusulkan jaringan global dari dokumen hiperteks yang memungkinkan para peneliti fisika berkerja sama. Untuk mengakses situs Web, pengguna harus menentukan Uniform Resource Locator (URL), yang mengarahkan ke alamat dari sumber tertentu di Web.
2.1.3. Hypertext Markup Language (HTML) Menurut Turban, Rainer dan Potter (2005, p680), HTML merupakan bahasa yang mendasari suatu web. HTML memformat dokumen dan memadukan link hiperteks dinamis ke dokumendokumen lainnya yang disimpan di dalam komputer yang sama atau berbeda. HTML sendiri berasal dari Standard Generalized Markup Language (SGML) yang lebih rumit, bahasa berbasis teks untuk mendeskripsikan isi dan struktur dari dokumen digital. HTML adalah subset yang lebih sederhana dari SGML dan mencakup tabel, applet, aliran teks dalam gambar, superskrip dan subskrip. HTML saat ini merupakan standar internet yang didefinisikan dan dikendalikan penggunaannya oleh World Wide Web Consortium (W3C). Versi terakhir dari HTML adalah HTML 4.01, meskipun saat
9
ini telah berkembang XHTML yang merupakan pengembangan lanjutan dari HTML. HTML merupakan kode-kode tag yang menginstruksikan browser untuk menghasilkan tampilan sesuai dengan yang diinginkan. Sebuah file HTML dapat dibuka dengan menggunakan browser web seperti Mozilla Firefox atau Microsoft Internet Explorer. HTML juga dapat dikenali oleh aplikasi pembuka email ataupun dari PDA dan program lain yang memiliki kemampuan browsing. HTML dokumen mirip dengan dokumen teks biasa, tetapi di dalam dokumen ini sebuah teks bisa memuat instruksi yang ditandai dengan kode atau yang lebih dikenal dengan tag. Sebagai contoh jika ingin membuat teks ditampilkan menjadi tebal seperti :
Tulisan ini dicetak tebal. Tanda
adalah tag pembuka yang digunakan untuk mengaktifkan instruksi cetak tebal, diikuti oleh teks yang diinginkan dan diakhiri dengan tanda yang merupakan tag penutup untuk menonaktifkan cetak tebal. Secara garis besar, terdapat 4 jenis elemen dari HTML : 1. Structural Tanda yang menentukan level atau tingkatan dari sebuah teks contoh : Tag Heading (
Ini heading 1
akan memerintahkan browser untuk menampilkan “Ini heading 1” sebagai teks tebal besar yang menunjukan sebagai Heading 1)
10
2. Presentational 3. Hypertext 4. Widget
2.2 Rekayasa Piranti Lunak 2.2.1. Definisi Rekayasa Piranti Lunak Definisi rekayasa perangkat lunak menurut Fritz Bauer adalah proses pembuatan dan penggunaan prinsip perekayasaan (engineering principles) untuk menghasilkan suatu software yang ekonomis tetapi reliabel dan bekerja efisien pada mesin yang nyata (Pressman, 2001, p20). Definisi
tersebut
telah
dikembangkan
menjadi
lebih
komprehensif oleh IEEE (Institute of Electrical and Electronics Engineers) yaitu ilmu yang mempelajari penerapan dari sebuah pendekatan yang sistematis, disiplin, dan dapat dihitung di dalam proses pengembangan, pengoperasian, dan maintenance suatu software (Pressman, 2001, p20).
2.2.2. Lapisan Rekayasa Piranti Lunak Secara umum Rekayasa Piranti Lunak dapat dibagi menjadi tiga lapisan (Pressman, 2001, p21), yaitu : 1. A quality focus merupakan batu landasan yang menopang proses rekayasa piranti lunak.
11
2. Process adalah fondasi awal dari rekayasa piranti lunak yang mendefinisikan suatu framework untuk sekumpulan key process area yang harus dibuat demi keefektifan pengembangan dari teknologi rekayasa piranti lunak. 3. Methods menyediakan secara teknis bagaimana cara untuk membuat software. 4. Tools menyediakan dukungan otomatis dan semi otomatis untuk process dan methods.
Gambar Gambar 0.1 Lapisan 2.212.1 Lapisan Lapisan Rekayasa Gambar Rekayasa 2.2 Rekayasa 2.1 Piranti Piranti Piranti Lunak Lunak Lunak Gambar 2. Lapisan Rekayasa Piranti Lunak
2.2.3. Model Sekuensial Linier Gambar 2.2 menggambarkan sekuensial linier untuk rekayasa perangkat lunak yang sering disebut juga dengan “siklus kehidupan klasik” atau model “air terjun” (waterfall).
Gambar 2. 2 Waterfall Model
12
Sekuensial linier mengusulkan sebuah pendekatan kepada pengembangan perangkat lunak yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan pemeliharaan. Dimodelkan setelah siklus rekayasa konvensional, model sekuensial linier melingkupi aktivitasaktivitas sebagai berikut: 1. Rekayasa dan pemodelan sistem/informasi. Karena perangkat lunak selalu merupakan bagian dari sebuah sistem yang lebih besar, kerja dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan ke perangkat lunak tersebut. Rekayasa dan analisis sistem mencangkup juga pengumpulan kebutuhan pada tingkat bisnis strategis dan tingkat area bisnis. 2. Analisis Kebutuhan. Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada perangkat lunak. Untuk memahami sifat program yang dibangun, perekayasa perangkat lunak (analis) harus memahami sumber informasi yang digunakan untuk software, dan juga fungsi yang diperlukan, behavior, performance, dan interface.
Kebutuhan
untuk
sistem
maupun
software
didokumentasikan dan ditinjau ulang oleh pelanggan. 3. Desain. Desain perangkat lunak merupakan proses dari beberapa tahap yang terfokus pada 4 atribut program yang berbeda : struktur data, arsitektur software, representasi interface, dan detail prosedural. Proses desain menerjemahkan kebutuhan menjadi representasi dari
13
suatu software yang dapat diukur kualitasnya sebelum penulisan kode. Desain
didokumentasikan
dan
menjadi
bagian
dari
software
configuration. 4. Coding. Desain harus diterjemahkan ke dalam bentuk yang bisa dibaca mesin. Jika desain dibuat dengan baik, proses penulisan kode dapat diselesaikan secara terstruktur. 5. Testing. Setelah kode dibuat, maka proses testing dimulai. Proses testing berfokus pada logika internal dari perangkat lunak, memastikan bahwa semua statement telah diuji, dan testing pada fungsi eksternal adalah melakukan test untuk melacak error dan memastikan input yang dimasukan akan menghasilkan hasil yang sesuai. 6. Support. Software akan berubah setelah sampai pada customer (kemungkinan pengecualian pada embedded software). Perubahan bisa terjadi karena error tidak teratasi, karena software harus beradaptasi untuk mengatasi perubahan di dalam lingkungan diluarnya, atau karena customer menginginkan penambahan fungsi atau peningkatan performa. Daripada membuat ulang, Software support harus dapat menjawab setiap fase perubahan tersebut (Pressman, 2001, p28-29).
2.3 Delapan Aturan Emas Perancangan Antarmuka Menurut Shneiderman (2005, p74-75) terdapat Delapan Aturan Emas di dalam mendesain antarmuka / user interface yaitu: 1) Berusaha untuk konsisten (Strive for consistency), rangkaian tindakan/aksi yang konsisten harus diterapkan dalam beberapa situasi 14
yang hampir sama; menggunakan bentuk-bentuk yang identik pada bagian menu, prompts, dan help screen; pemilihan warna, layout, huruf besar, bentuk tulisan, dan sebagainya harus konsisten. Pengecualian,
seperti
konfirmasi
pada
perintah
delete,
atau
pemberitahuan password belum diisi, harus bisa dipahami dan dibatasi. 2) Melayani penggunaan secara universal (Cater to universal usability). Mengenali keinginan user yang berbeda-beda dan design dibuat dinamis sehingga dapat memfasilitasi perubahan konten. Perbedaan pemula dan yang mahir, perbedaan usia, pengguna cacat, dan perbedaan teknologi memperluas spektrum dari kebutuhan user. Menambah fitur untuk pemula, seperti penjelasan, dan fitur untuk yang mahir, seperti tombol shortcut dan jalan pintas, dapat menambah desain interface dan meningkatkan kualitas dari sistem. 3) Memberikan umpan balik yang informatif (Offer informative feedback). Setiap aksi dari user sebaiknya diberikan umpan balik dari sistem. Untuk aksi kecil yang sering dilakukan user, tidak perlu diberikan respon yang terlalu sering, tetapi aksi penting yang jarang dilakukan user, respon yang diberikan sebaiknya lebih mencolok. Presentasi visual dari objek yang menarik memberikan kenyamanan bagi user untuk memperlihatkan perubahan secara jelas. 4) Mendesain dialog untuk menyatakan penutupan (Design dialog to yield closure). Rangkaian dari aksi-aksi sebaiknya disusun kedalam
15
suatu sesi-sesi dengan bagian awal, pertengahan, dan akhir. Umpan balik yang informatif di akhir dari setiap sesi akan memberikan kepuasan, perasaan lega, sinyal selesai ke pikiran, dan sinyal untuk persiapan fase selanjutnya. 5) Pencegahan kesalahan (Prevent errors). Sebisa mungkin desain sistem dimana user tidak dapat membuat kesalahan yang serius. Jika user melakukan kesalahan, sistem sebaiknya bisa mendeteksi kesalahan tersebut dan menawarkan solusi yang simple, membantu, dan memberikan informasi yang spesifik. 6) Izinkan pembalikan aksi yang mudah (Permit easy reversal of actions). Sebisa mungkin aksi-aksi yang ada dapat dibalik ulang. Fitur ini mengurangi ketakutan user, sejak user tau bahwa kesalahan yang dibuat tidak dapat diselesaikan, maka user menjadi takut untuk melakukan eksplorasi pilihan-pilihan yang tidak familiar. Unit dari pembalikan dapat sebuah aksi tunggal, pengisian data, atau satu fase aksi, seperti mengisi nama dan alamat. 7) Mendukung pusat kendali internal (Support internal locus of control). User berpengalaman sangat menginginkan perasaan bahwa mereka mengendalikan sitem dan sistem memberi respon terhadap aksi mereka. Rancanglah sistem agar user memulai suatu aksi daripada hanya merespon. 8) Kurangi beban ingatan jangka pendek (Reduce short-term memory load). Keterbatasan dari kemampuan manusia untuk memproses
16
informasi dalam ingatan jangka pendek membutuhkan tampilan yang sederhana, penyatuan layar, frekuensi pergerakan window dikurangi, dan waktu yang cukup untuk melatih untuk kode, mnermonics, dan rangkaian aksi.
2.4 Database 2.4.1. Pengertian Database (Connolly, 2010, p65) Database adalah sebuah tempat penyimpanan data yang besar yang dapat digunakan secara simultan oleh
banyak
departemen-departemen
dan
pengguna-pengguna.
Dibandingkan dengan data yang tidak terhubung dan mengakibatkan data yang redundan, semua butir data yang terintegrasi dengan redundansi dalam jumlah yang minimum. Database tidak hanya menyimpan data operasional suatu perusahaan, tetapi database juga menyimpan deskripsi dari data itu sendiri. Oleh karena itu, database juga didefinisikan sebagai kumpulan dari catatan-catatan yang menjelaskan dirinya (self-describing collection of integrated record). Deskripsi dari suatu data biasa disebut sebagai katalog sistem (metadata-data dari suatu data). Ini adalah sifat menjelaskan diri sendiri yang dimiliki oleh database untuk memelihara kemandirian suatu program atau data.
17
2.4.2. Pengertian DBMS (Connolly, 2010, p66) DBMS adalah sebuah sistem perangkat lunak yang memperbolehkan pengguna untuk mendefinisi, membuat, memelihara, dan mengontrol akses ke suatu database. DBMS adalah perangkat lunak yang berinteraksi dengan program
aplikasi
pengguna
dan
database.
Biasanya
DBMS
menyediakan fasilitas-fasilitas berikut : •
DDL (Data Definition Language). Memungkinkan pengguna untuk menentukan tipe data, struktur, dan batasan-batasan untuk data yang akan disimpan di database.
•
DML (Data Manipulation language). Memungkinkan pengguna untuk memasukkan, mengubah, menghapus, dan menarik data dari suatu database. Untuk menggunakan fasilitas-fasilitas DML ini, telah disediakan bahasa query(query language). Query language yang umum digunakan dan telah menjadi de facto dari semua DBMS adalah SQL (Structured Query Language).
•
DBMS juga memiliki fasilitas untuk mengontrol akses ke dalam suatu database. Sebagai contoh, fasilitasi ini menyediakan : o Sistem keamanan, untuk mencegah pengguna yang tidak berhak dalam mengakses suatu database. o Sistem integritas, untuk memelihara konsistensi dari data yang telah tersimpan.
18
o Sistem concurrency control, untuk memungkinkan bersama-sama mengakses suatu database. o Sistem recovery control, database
ke
keadaan
untuk mengembalikan
sebelum
terjadi
kerusakan
perangkat keras dan lunak. o Katalog yang user-accessible, yang berisi deskripsi dari data yang ada didalam suatu database.
2.4.3. MySQL (Welling, 2010, p3) MySQL (dibaca My-Ess-Que-Ell) adalah relational database management system (RDBMS) yang cepat, kuat. Database memungkinkan untuk menyimpan, mencari, mengurutkan, dan menarik data secara efisien. Server MySQL kontrol akses ke data anda memastikan agar banyak pengguna dapat bekerja secara bersamasama; untuk menyediakan akses yang cepat ke database; dan untuk memastikan bahwa hanya pengguna yang berhak yang dapat memperoleh akses. Oleh karena itu, MySQL disebut multiuser, multithreaded server. MySQL menggunakan Struktur Query Language (SQL), yang merupakan bahasa query database yang standar. MySQL telah dipublikasi sejak 1996 tetapi telah dikembangkan dari tahun 1979. MySQL adalah database open source yang paling populer dan telah memenangkan Linux Journal Readers’ Choice Award dalam sejumlah kesempatan yang ada.
19
2.5 Entity Relationship Diagram (ERD) Menurut Connolly (2002, p330) dikatakan ERD adalah sebuah tehnik untuk merepresentasikan struktur logis dari sebuah basis data dalam bentuk gambar, sehingga pemahaman terhadap komunitas basis data lebih muda. Menurut Connolly (2002, p331-338), pembuatan sebuah Entity Relationship Diagram, ada beberapa konsep dasar yang harus kita ketahui yaitu : a. Entity Type b. Relationship Type c. Property d. Attribute
2.6 Unified Modelling Language (UML) UML adalah suatu kumpulan pemodelan konvensional yang digunakan untuk menspesifikasi atau mendeskripsikan suatu sistem perangkat lunak dalam bentuk objek. (Whitten & Bentley, 2007, p371)
20
2.6.1. Use Case Diagram Use case adalah deskripsi fungsi suatu sistem dari sudut pandang user. Use case diagram digunakan untuk memperlihatkan fungsi yang akan dimiliki sistem dan user mana yang akan berkomunikasi dengan sistem dalam suatu cara untuk menggunakan Batas sistem atau subsistem Asosiasi Komunikasi
*
*
Change a client contact
Staff Contact
Aktor Use case
fungsi tersebut.
Gambar 2. 3 Contoh Use case diagram
Use case diagram memperlihatkan 3 aspek sistem : aktor, use cases, dan batas sistem atau subsistem. Gambar 2.3 memperlihatkan elemen dari notasi use case diagram. Aktor menggambarkan peran dari orang, sistem lain, atau alat lain yang dipakai ketika berkomunikasi dengan beberapa use case di dalam sistem. (Bennett, McRobb, Farmer, 2006, p145-146) 21
Terdapat juga relationship <<uses>> dan <<extends>>, yang mana maksud dari kedua itu adalah : •
<<uses>>, digunakan pada use case X ke use case Y untuk mengindikasikan ketika ada 2 proses yang dilakukan secara berurutan (sequential process) dan untuk menghindari menulis deskripsi yang sama ke setiap use case (pada saat ini digunakan notasi include yang merupakan notasi UML 2.0 pengganti uses pada UML versi sebelumnya).
•
<<extends>>, digunakan pada use case X ke use case Y untuk mengindikasikan bahwa proses use case X memiliki fungsi tambahan yang mungkin dibutuhkan pada use case lainnya. (pada saat ini digunakan notasi extend yang merupakan notasi UML 2.0 pengganti extends pada UML versi sebelumnya)
22
Gambar 2.4 Contoh penggunaan include dan extend pada use case diagram
Terdapat juga relasi pada aktor, yaitu generalisasi aktor. Aktor bisa umum atau spesifik. Notasi generalisasi aktor adalah dengan tanda panah. Pada contoh gambar di bawah ini, client merupakan general actor, dan commercial client adalah spesific actor.
23
Gambar 2.5 Contoh generalisasi pada use case diagram
2.6.2. Class Diagram Class diagram adalah diagram yang digunakan untuk mengatur objek yang ditemukan sebagai hasil dari memodelan use case dan mendokumentasikan hubungan antar objek grafis (Whitten & Bentley, 2007, p408). Relasi antar kelas menggunakan asosiasasi, agregasi, dan turunan. Objek adalah fondasi awal dari object oriented software tapi, agar sistem software melakukan apa yang user perlukan, objek-objek tersebut harus dikolaborasikan dengan objek lainnya. Dalam class diagram dimulai dengan menspesifikasikan bagaimanaobjek harus direlasikan sehingga kolaborasi antar kelas dapat terjadi. (Carol & Jill, 2001, p79). Asosiasi. Memodelkan asosiasi antar dua kelas dapat diartikan bahwa adanya hubungan antar objek dari kelas tersebut, seperti yang 24
diilustrasikan pada gambar 2.4, murid belajar pelajaran. Asosiasi antar kelas ditunjukan dengan garis yang menyatukannya. Asosiasi tersebut dapat diberi nama, tapi biasanya dihilangkan untuk mengurangi kepadatan pada diagram. Student
Course 0..*
1..*
Gambar 2.6 Contoh activity diagram sederhana
Angka dan asterik pada garis mengidikasikan multiplicity dari asosiasi : jumlah dari objek dari setiap kelas dihubungkan dengan cara ini. Pada gambar 2.4 dijelaskan bahwa satu murid dapat belajar satu atau banyak kelas, dan pelajaran tetap ada tanpa ada murid sekalipun atau dapat dipelajari oleh berapapun jumlah murid. Tabel 2.1 Notasi Multiplicity Notasi
Lambang
Kosong atau satu
0..1
Hanya 1
1
Kosong, satu atau banyak
*, 0..*
25
Satu atau banyak
1..*
Jumlah pasti
2, 3, 4, 10
Range tertentu
2..4, 4..10
Agregasi. Didalam membuat class diagram, sering kali ditemukan kesulitan untuk memutuskan apakah kelas yang terhubung adalah asosiasi atau agregasi. Agregasi merupakan hubungan yang muncul ketika satu kelas dibuat dari beberapa kelas lainnya, atau ketika satu kelas dibuat lebih dari satu kemunculan dari kelas lain. Cara yang mudah untuk menentukannya dengan menggunakan kata “bagian dari”, “terdiri dari”, “dibuat dari”.
Gambar 2.7 Contoh agregasi pada class diagram sistem parkir
Turunan. Ketika satu kelas adalah spesialisasi dari kelas lain itu disebut turunan. Dapat dilihat dengan contoh terdapat kartu sistem parkir tetapi 26
dibutuhkan 2 jenis kartu, yaitu kartu untuk pengunjung, dan kartu untuk staff. Yang mana kedua kartu tersebut memiliki fitur (atribut) yang berbeda. Kartu -Nomor kartu +hapus()
Kartu Staff
Kartu Pengunjung
-Nama -Departemen -Tanggal Habis +hapus()
-Tanggal dibuat +hapus()
Gambar 2.8 Contoh turunan pada class diagram kartu sistem parkir
Komposisi.
(Bennett,
McRobb,
Farmer,
2006,
235-236)
Komposisi dibuat berdasarkan konsep agregasi, yang mana merupakan fitur dari pemprograman berbasis objek. Perbedaannya dengan agregasi adalah komposisi memiliki kekuatan kepemilikian yang lebih besar.
27
Gambar 2.9 Contoh komposisi pada class diagram
2.6.3. Activity Diagram Activity Diagram adalah diagram yang bisa digunakan untuk menggambarkan aliran proses bisnis, langkah-langkah dari use case, atau logika suatu method dari suatu objek secara grafis (Whitten & Bentley, 2007, p390). Secara grafis activity diagram sama dengan flowcharts yang menggambarkan aliran sekuensial aktivitas bisnis atau use case. Tetapi perbedaannya adalah activity diagram memiliki mekanisme untuk menggambarkan aktivitas yang terjadi secara paralel. Karena itulah diagram ini sangat berguna dalam memodelkan suatu aksi yang akan dilakukan ketika suatu operasi dijalankan bersamaan dengan hasil dari aksi tersebut.
28
1
2
Display Catalog
3 Receive Order
[Product not in stock]
4
5
Gambar 2.10 Contoh activity diagram sederhana
Gambar 2.4 mengilustrasikan notasi activity diagram berikut : 1. Initial Node – Bulatan hitam menggambarkan awal dari proses. 2. Actions – Bulatan persegi panjang menggambarkan langkah individu. 3. Flow – Panah di dalam diagram menunjukan alur proses. 4. Decision – Bentuk berlian dengan 1 Flow yang masuk dan 2 atau lebih Flow yang keluar. Flow yang keluar ditandai untuk mengindikasikan kondisinya. 5. Activity final – Bulatan hitam didalam lingkaran menandakan akhir dari proses.
29
2.6.4. Sequence Diagram Sequence
diagram
menggambarkan
bagaimana
objek
berinteraksi satu sama lain melalui pesan di dalam pelaksanaan suatu use case atau operasi (Whitten & Bentley, 2007, p394). Dunia berbasis objek berjalan dengan saling mengirim pesan diantara objek. Sistem dari sequence diagram membantu untuk memulai mengindentifikasi high-level messages yang masuk dan keluar sistem.
Gambar 2.11 Contoh Sequence Diagram
Gambar 2. 5 diatas mengilustrasikan notasi sequence diagram berikut : 1. Actor – Actor yang memulai yang diambil dari use case digambarkan dengan use case actor symbol. 2. System – Kotak mengindikasikan sistem sebagai “black box”. Tanda titik 2 merupakan standar notasi pada sequence diagram yang mengidikasikan instance yang berjalan dari sistem. 30
3. Lifelines – Garis vertikal putus-putus ke arah bawah dari aktor dan simbol, mengindikasikan hidup dari sequence. 4. Activation bars – persegi panjang yang berada pada lifelines mengindikasikan periode waktu ketika peserta aktif dalam interaksi. 5. Input messages – panah horizontal dari aktor ke sistem mengindikasikan pesan masuk. 6. Output messages – panah horizontal dari sistem ke aktor digambarkan dengan garis putus-putus.
2.7 Difusi Teknologi Menurut Rogers (1983,p5-6), difusi teknologi adalah proses dimana suatu inovasi dikomunikasikan melalui saluran tertentu selama jangka waktu tertentu diantara para anggota dari suatu sistem sosial. Ini adalah komunikasi tipe spesial, yang mana pesannya berhubungan dengan suatu ide baru. Komunikasi adalah proses dimana pesertanya membuat dan membagikan informasi kepada yang lainnya dengan tujuan tercapainya pengertian yang sama satu dengan yang lainnya. Definisi ini mengartikan bahwa komunikasi adalah proses penyatuan atau pemisahan dari pertukaran informasi dua atau lebih individu dalam rangka untuk bergerak ke arah satu sama lain (atau berpisah) dalam arti bahwa mereka mengganggap proses ini berasal dari suatu peristiwa tertentu. Keberhasilan difusi teknologi dipengaruhi oleh empat faktor penting, yakni teknologi itu sendiri, bagaimana informasi tersebut dikomunikasikan, 31
waktu yang dibutuhkan untuk mengkomunikasikan, dan sistem sosial masyarakat (Rogers,1983, p12). Di samping itu, faktor lain yang dapat mempengaruhi keberhasilan proses difusi adalah jenis teknologi yang didifusikan serta sistem kelembagaan yang mendukungnya. Jenis teknologi yang didifusikan akan mempengaruhi mekanisme difusinya. Misalnya untuk teknologi informatika akan memilki mekanisme yang berbeda dengan teknologi pertanian. Walaupun demikian, difusi suatu teknologi yang telah berhasil kemungkinan mekanismenya dapat diterapkan pada jenis teknologi lainnya, tentu saja dengan terlebih dahulu memodifikasikan beberapa aspeknya. Bermacam-macam variasi mekanisme difusi yang telah diterapkan oleh para penghasil teknologi kepada masyarakat. Tetapi sampai saat ini tingkat keberhasilannya masih relatif rendah, sehingga banyak teknologi tepat guna yang dihasilkan tidak terpakai oleh masyarakat yang membutuhkan alias mubazir. Difusi teknologi pada dasarnya terjadi melalui beberapa saluran yaitu difusi teknologi antar perusahaan, difusi teknologi antar unit dalam perusahaan, difusi teknologi antar penyedia teknologi dengan pengguna, dan difusi teknologi antar lembaga litbang (penelitian dan pengembangan) dengan pengguna.
32
2.8 Sistem Informasi Menurut Whitten & Bentley (2007, p6), Sistem adalah suatu grup dari suatu komponen yang saling terhubung yang berjalan bersamaan untuk mendapatkan hasil yang diinginkan. Sistem informasi adalah sebuah susunan orang-orang, data, prosesproses, dan teknologi informasi yang berinteraksi untuk mengumpulkan, memproses, menyimpan, dan menyediakan output sebagai informasi yang dibutuhkan untuk mendukung suatu organisasi. Banyak organisasi yang mempertimbangkan bahwa sistem informasi adalah hal yang penting sebagai keunggulannya untuk berkompetisi dan mendapatkan keuntungan dalam bersaing. Hampir semua organisasi telah menyadari bahwa keikut-sertaan seluruh pekerja sangat dibutuhkan dalam pengembangan sistem informasi.
2.9 PHP (Welling, 2010, p2)PHP adalah server-side scripting language yang didisain secara spesifik untuk suatu Web. Di dalam halaman HTML, anda dapat memasukkan kode PHP yang dieksekusi setiap kali halaman tersebut dikunjungi. Kode PHP anda akan diinterpretasi di web server dan menghasilkan HTML atau output yang lainnya yang akan dilihat oleh pengunjung web. PHP disusun pada tahun 1994 dan merupakan hasil karya dari Rasmus Lerdorf. PHP kemudian diangkat kembali oleh orang lain yang bertalenta dan telah melalui empat kali penulisan ulang yang akhirnya menghasilkan produk 33
sempurna yang besar yang kita lihat sekarang. Pada bulan November 2007, PHP telah diinstal lebih dari 21 juta domain website, dan angka ini terus bertambah
dengan
cepat.
Anda
dapat
melihat
jumlah
terkini
di
http://www.php.net/usage.php. PHP adalah proyek Open Source, yang berarti anda memiliki akses ke kode asalnya dan bisa anda gunakan, ubah, dan distribusi lagi tanpa harus mengeluarkan biaya. PHP sebenarnya merupakan singkatan dari Personal Home Page tetapi telah diubah sama seperti penentuan penamaan secara rekursif GNU (GNU = Gnu’s Not Unix) dan sekarang merupakan singkatan dari PHP Hypertext Preprocessor. PHP mempunyai beberapa kelebihan, antara lain: •
Mudah dibuat dan dijalankan.
•
Mampu bekerja pada web server dengan sistem operasi yang berbedabeda, contohnya, dapat bekerja dalam beberapa sistem operasi LINUX.
•
PHP bisa didapat secara gratis (open source).
•
Dapat di embedded, yaitu script PHP dapat langsung diletakkan dalam tag HTML. Perbedaan karakteristik client-side scripting dengan server-side
programming yaitu: •
Client-side-scripting
Kode program di-download bersama dengan halaman web.
Bersifat interpreter dan diterjemahkan oleh browser.
34
Model eksekusinya mudah, dan skrip dapat dijadikan satu dengan HTML.
•
Server-side programming
Ada client yang meminta request.
Eksekusi program dilakukan di server.
Mengirimkan hasil ke client.
2.10 Framework (Sommerville, 2010, p431) Daya tarik utama pengembangan berbasis objek yaitu menawarkan bahwa objek dapat di pakai ulang di dalam sistem yang berbeda. Tetapi, pengalaman menunjukan bahwa objek sering kali terlalu kecil dan spesifik untuk beberapa aplikasi tertentu. Ini membutuhkan lebih banyak
waktu
untuk
dapat
dimengerti
dan
diadaptasikan
daripada
mengimplementasikannya. Masalah itu dapat diatasi sekarang dengan framework. Seperti nama yang digunakan, framework adalah struktur yang dibuat sangat umum untuk dapat dikembangkan menjadi aplikasi atau subsytem. Menurut Schimdt et al. (2004) framework adalah kumpulan bagian-bagian software (seperti kelas, objek dan komponen) yang saling terintegrasi untuk menyediakan arsitektur yang reusable untuk aplikasi yang sejenis. Fayad dan Schmidt (2007) membagi framework menjadi 3 kelas yaitu : 1. System Infrastructure Frameworks Framework ini membatu pengembangan infrastruktur sistem seperti komunikasi, user interfaces, dan compilers. 35
2. Middleware Integration Frameworks Framework ini terdiri dari kelas objek yang standar dan terasosiasi yang membantu komponen komunikasi dan pertukaran informasi. 3. Enterprise Application Frameworks Framework ini tertuju dengan domain aplikasi yang spesifik seperti telekomunikasi atau sistem finansial. Web Application Frameworks (WAFs) adalah framework yang baru dan tipe framework yang sangat penting. WAFs yang membantu pembuatan website yang dinamis pada saat ini sangatlah banyak. Arsitektur WAF tersebut kebanyakan dibuat berdasarkan pada arsitektur Model-View-Controller (MVC). WAFs biasanya terspesialisasi yang membantu fitur spesifik suatu aplikasi. Walaup setiap framework memiliki fungsi-fungsi yang berbeda, kebanyakan WAFs memiliki fitur berikut : 1. Security WAFs mungkin memiliki kelas yang membantu untuk autentifikasi pengguna (login) dan kontrol akses untuk memastikan user mengakses fitur yang diperbolehkan. 2. Dynamic Web Pages Kelas yang dimasukkan untuk membantu menentukan template halaman web dan untuk mengumpulkan web tersebut secara dinamis dengan data yang spesifik dari sistem database. 3. Database Support
36
Framework tidak selalu menyediakan database tapi asumsikan database yang berbeda seperti MySQL akan digunakan. Framework mungkin menyediakan kelas yang menyediakan abstract interface untuk database yang berbeda. 4. Session Management Kelas yang digunakan untuk membuat dan mengatur sessions (jumlah interaksi dengan sistem oleh user) yang biasanya merupakan bagian dari framework. 5. User Interaction Kebanyakan framework pada saat ini menyediakan bantuan AJAX yang memungkinkan membuat halaman web menjadi interaktif.
Framework adalah pendekatan yang efektif untuk pemakaian ulang, tapi mahal untuk diperkenalkan ke dalam proses pengembangan software. Framework
sangat
kompleks
dan
dapat
memakan
beberapa
bulan
memahaminya untuk digunakan. Sangat sulit untuk menentukan dan mengevaluasi framework yang cocok dan untuk mengerti bagaimana aplikasi yang dibuat dengan framework ini berjalan merupakan hal yang tidak mudah. Ini merupakan masalah umum yang dihadapi dengan software yang reusable.
37
2.11 CodeIgniter CodeIgniter adalah framework aplikasi web untuk bahasa PHP yang open-source. Codeigniter punya banyak fitur yang membuatnya bertahan dari ramainya persaingan framework php. Tidak seperti framework php lainnya bisa dibandingkan, dokumentasinya sangat lengkap dan jelas, mencakup setiap aspek dari framework tersebut. CodeIgniter juga berjalan pada shared hosting environments, yang mana pelacakannya sangat rendah, dan masih memiliki beberapa pengecualian pada performa. Dalam segi programming, codeigniter kompetibel dengan php4 dan php5, sehingga ini akan berjalan pada sebagian besar host di internet. Ini juga menggunakan Model View Controller (MVC) design pattern. Dalam intinya, codeIgniter juga memakai singleton pattern. Ini adalah cara untuk me-load kelas, sehingga apabila dipanggil beberapa kali, instance dari kelas yang sama yang akan dikembalikan. Ini sangat berguna untuk koneksi database, yang mana kita hanya menginginkan satu koneksi saja setiap kali kelas itu dipanggil. CodeIgniter juga mengimplementasikan Active Record Pattern. Ini membuat kode SQL yang kompleks manjadi lebih mudah ditulis dan membuat aplikasi yang dibuat menjadi lebih mudah dibaca dan dimengerti. Active Record juga membuat pengguna secara mudah mengganti driver database. Ini membuat kita dapat membuat query di php dan tetap menggunakan DBMS MySQL, dan juga memberikan kita pilihan untuk menggantinya menjadi Database Oracle tanpa perlu menulis ulang query yang ada di aplikasi kita.
38
CodeIgniter juga memiliki banyak sekali library yang sangat berguna dan kumpulan fungsi-fungsi yang dapat membantu kita membangun aplikasi. Ini membuat kita agar menjadi lebih terfokus pada hal-hal kecil yang unik saja, daripada memperhatikan keseluruhan proyek, seperti query database, dan parsing data. (Griffiths, 2010, p7-8)
39