BAB 2 LANDASAN TEORI
2.1
Teori Umum Berikut ini adalah teori-teori yang dipakai pada penulisan :
2.1.1
Internet Menurut Yuhefizhar (2011: 1) Internet adalah rangkaian hubungan jaringan
komputer yang dapat diakses secara umum diseluruh dunia, yang mengirimkan data dalam bentuk paket data berdasarkan standar internet protocol (IP). Lebih dalam lagi, Internet adalah kumpulan jaringan dari jaringan-jaringan komputer dunia yang terdiri dari jutaan unit-unit kecil, seperti jaringan pendidikan, jaringan bisnis, jaringan pemerintah dan lain-lain yang secara bersama menyediakan layanan informasi seperti email, online chat, transfer file dan saling keterhubungan (linked) antara satu halaman web dengan sumber halaman web yang lainnya. Dari definisi diatas dapat disimpulkan bahwa layanan utama dari Internet adalah sebagai media untuk: 1.
Menyebarkan dan memperoleh informasi Umumnya disajikan dalam bentuk website, informasi tersebut dapat berupa teks, grafik, suara, video atau dalam bentuk file yang dapat
8
9
didownload. 2.
Berkomunikasi Baik melalui media chatting berbasis teks (IRC), grafik (yahoo messenger),
maupun
berkomunikasi
suara
(skype),
layaknya
menggunakan telepon kabel. 3.
Berkirim surat (email)
4.
Bertukar data Salah satunya dengan menggunakan aplikasi FTP, website, maupun koneksi peer to peer.
5.
Remote login Mampu mengeksekusi dengan komputer dari jauh (telnet).
Semua fasilitas diatas dapat dilakukan dimana saja dan kapan saja serta tidak mengenal batas geografis, asalkan anda terhubung dengan internet.
2.1.2
Web server Menurut Rulianto Kurniawan (2010: 8) Web Server adalah software yang
menjadi rumah dari world wide web (www). Web server menunggu permintaan dari client yang menggunakan browser. Jika ada permintaan dari browser, maka web server akan memproses permintaan tersebut dan kemudian memberikan hasil prosesnya berupa data yang di inginkan kembali kebrowser.
10
Data ini mempunyai format yang standar, disebut dengan format SGML (standar general markup language). Data yang berupa format ini kemudian akan ditampilkan oleh browser sesuai dengan kemampuan browser tersebut.
2.1.3
Hypertext Preprocessor (PHP) Menurut kasiman peranginangin (2009) PHP adalah singkatan dari Personal
Home Page yang merupakan bahasa standar yang digunakan dalam dunia website. PHP adalah bahasa pemrograman yang berbentuk script yang diletakan dalam web server. Ada pengertian tentang PHP, akan tetapi PHP dapat diartikan sebagai Hypertaxet preprocessor. Ini merupakan bahasa yang hanya dapat berjalan pada server yang hasilnya dapat ditampilkan pada klien. Interpreter PHP dalam mengeksekusi kode PHP pada server disebut serverside, berbeda dengan mesin maya java yang mengeksekusi program pada sisi klien (client-server). PHP pertama kali diciptakan oleh Rasmus Lerdrorf pada tahun 1994. Awalnya, PHP digunakan untuk mencatat jumlah serta untuk mengetahui siapa saja pengunjung homepage-nya. Ramus Lerdorf adalah seorang pendukung open source. Oleh karna itu, ia mengeluarkan Personal Home Page Tools versi 1.0 secara gratis, kemudian menambahkan kemampuan PHP 1.0 dan meluncurkan PHP 2.0. Pada tahun 1996, PHP telah banyak digunakan dalam website didunia. Sebuah kelompok pengembang software yang terdiri dari Ramus, Zeew Zuraski, Andi Gutman, Stig Bakken, Shane Caraveo dan Jim Winstead bekerja sama untuk menyempurnakan PHP 2.0. Akhirnya, pada tahun 1998, PHP 3.0 diluncurkan.
11
Penyempurnaan terus dilakukan sehingga pada tahun 2000 diluncurkan PHP 4.0. Tidak berhenti sampai disitu, kemampuan PHP terus bertambah dan versi terbaru yang dikeluarkan adalah PHP 5.0.x. Kelebihan
utama
dari
Hypertext
Prepocessor
(PHP)
adalah
dapat
diintegrasikannya PHP dengan basis data. Sistem basis data yang didukung oleh PHP yaitu: 1. Oracle 2. MySQL 3. PostgreSQL 4. SQL Server
2.1.4
Javascript Menurut Betha Sidik (2011: 1) JavaScript adalah bahasa yang digunakan untuk
membuat program yang digunakan agar dokumen HTML, yang ditampilkan dalam browser menjadi lebih interaktif, tidak sekedar indah saja. JavaScript memberikan beberapa fungsionalitas ke dalam halaman web, sehingga dapat menjadi sebuah program yang disajikan dengan menggunakan antar muka web. JavaScript merupakan bahasa script, bahasa yang tidak memerlukan Kompiler untuk menjalankannya, cukup dengan interpreter. Tidak perlu ada proses kompilasi terlebih dahulu agar program dapat dijalankan. Browser web Netscape Navigator dan Internet Exploler adalah salah satu contoh Interpreter, karena kedua browser ini telah
12
dilengkapi dengan interprector JavaScript. Tetapi tidak semua browser web dapat menjadi interpreter JavaScript karena belum tentu browser tersebut dilengkapi dengan interpreter JavaScript. JavaSript adalah bahasa script yang ringan dan mudah digunakan. Dengan adanya Javascript ini, maka kini halaman web tidak sekedar menjadi halaman data dan informasi saja, tetapi juga dapat menjadi suatu program aplikasi dengan antar muka web. JavaScript merupakan bahasa pemrograman yang tidak membutuhkan lisensi untuk dapat menggunakanya. Jika browser web yang kita gunakan mendukung (memiliki) JavaScript akan kita dapat langsung membuat aplikasi berbasis web dengan menggunakan JavaScript. Umumnya JavaScript adalah program yang ditanamkan (disisipkan) ke dalam halaman web, sehingga halaman (dokumen) web menjadi sebuah aplikasi yang berjalan didalam browser web.
2.1.5
AJAX (Asynchoronous JavaScrip and XML) Menurut Desrizal (2010) AJAX (Asynchoronous JavaScrip and XML). AJAX,
terdiri dari HTML, Javascript, DHTML dan DOM yang kemudian digabungkan dengan bahasa pemrograman web disisi server seperti PHP dan ASP, sehingga membentuk aplikasi berbasis web yang interaktif. AJAX bukanlah bahasa pemrograman baru, tetapi adalah teknik baru untuk membuat aplikasi web lebih baik, lebih cepat dan interaktif. Dengan AJAX, Javascript dapat
langsung
berkomunikasi
dengan
server
dengan
menggunakan
objek
13
XMLHttpRequest. Dengan objek ini, Javascript dapat melakukan transaksi data dengan webserver, tanpa harus me-reolading halaman web tersebut secara keseluruhan. Berikut ini adalah teknologi yang termasuk dalam aplikasi AJAX : a. HTML yang digunakan untuk membuat web forms dan mengidentifikasikan field-field yang akan anda gunakan dalam aplikasi. b. JavaScript adalah kode inti untuk menjalankan aplikasi AJAX dan untuk membantu memfasilitasi komunikasi dengan aplikasi. c. DHTML, atau Dynamic HTML, membantu anda untuk membuat forms atau web anda dinamis. Anda akan menggunakan
, <span> dan elemen HTML dinamis lainnya. d. DOM, Document Objek model, akan digunakan (melalui kode JavaScript) untuk bekerja dengan kedua struktur dari HTML dan XML anda yang dalam ada beberapa kasus berasal dari server.
2.1.6
JQuery Menurut Desrizal (2010) JQuery adalah JavaScript Library (kumpulan kode atau
fungsi javascript siap pakai), sehingga mempermudah dan mempercepat kita dalam membuat kode Javascript. Secara standar, jika kita membuat kode Javascript, maka diperlukan kode yang cukup panjang. Nah disinilah fungsi JQuery sebagai Javascript Library, dimana kita bisa langsung memanggil fungsi yang terdapat didalam Library tersebut. Kesimpulannya, JQuery menyerderhanakan kode Javascript. Ini sesuai dengan slogannya ‘Write less, do more’.
14
Seorang tokoh bernama John Resig yang telah merilis sebuah Javascript Library dan kini kita kenal dengan nama JQuery. Semenjak dirilis pertama kali pada tahu 2006, JQuery telah mencuri perhatian para web developer. Buktinya, pada tahun-tahun berikutnya JQuery telah banyak digunakan oleh website-website terkemuka didunia seperti Google, Intel, Microsoft dan masih banyak lagi.
2.1.7
CSS Menurut Agus Saputra (2011: 7) CSS atau yang memiliki kepanjangan
Cascading Style Sheet merupakan suatu bahasa pemrograman web yang digunakan untuk mengendalikan dan membangun barbagai komponen dalam web sehingga tampilan web akan lebih rapi, terstruktur, dan ragam. CSS merupakan pemrograman wajib yang harus dikuasai oleh setiap pembuat program (web progremmer), terlebih lagi itu adalah pendesain web (web designer).
2.1.8 Database Menurut Sudarman.s (2011: 2) Database adalah sebuah struktur yang umumnya terbagi dalam 2 hal, yaitu sebuah database flat dan sebuah database relasional. Database relasional lebih mudah dipahami dari pada database flat karena database relasional mempunyai bentuk yang sederhana serta mudah dilakukan operasi data. MYSQL sendiri adalah sebuah database relasional. Database yang memiliki struktur relasional terdapat
15
tabel-tabel untuk menyimpan data. Pada setiap table terdiri dari kolom dan baris serta sebuah kolom untuk mendefinsikan jenis informasi apa yang harus disimpan.
2.1.9 MySQL MySQL pertama kali dirintis oleh seorang programmer database bernama Michael Wildenius. Menurut Sudarman.S (2011: 5) MySQL database server adalah RDBMS (Relasional Database Management System) yang dapat menangani data yang bervolume besar. Meskipun begitu, tidak menuntut resource yang besar. MySQL adalah database yang paling polpular diantara database-database yang lain. MySQL adalah program database yang mampu mengirim dan menerima data dengan sangat cepat dan multi user. MySQL memiliki dua bentuk lisensi, yaitu free software dan sharewere. Penulis sendiri dalam menjelaskan buku ini menggunakan MySQL yang free sofware karena bebas menggunakan database ini untuk keperluan pribadi atau usaha tanpa harus membeli atau membayar lisensi, yang berada dibawah lisensi GNU/GPK (general public lisensi), yang dapat anda download pada alamat resminya http://www.mysql.com. MySQL sudah cukup lama dikembangkan, beberapa fase penting dalam pengembangan MySQL adalah sebagai berikut : 1. MYSQL dirilis pertama kali secara internal pada 23 mei 1995. 2. Versi Windows dirilis pada 8 januari 1998 untuk Windows 95 dan Windows NT.
16
3. Versi 3.2.3 : beta dari juni 2000, dan dirilis pada januari 2001. 4. Versi 4.0 : beta dari agustus 2002, dan dirilis pada maret 2003 (un-ions). 5. Versi 4.1 : beta dari bulan juni 2004, dirilis pada bulan oktober. 2004 (Rtrees dan B-trees, subqueris, prepared statments). 6. Versi 5.0 : beta dari bulan maret 2005, dirilis pada oktober 2005. (cursor, stored procedure, trigger, views XA transaction). 7. Sun Microsystems membeli MySQL AB pada tanggal 26 februari 2008. 8. Versi 5.1 : dirilis 27 november 2008 (event scheduler, partitioning, plug-in API, row-based replication, server log table).
2.1.10 Delapan Aturan Emas Secara garis besar, interaksi manusia dan komputer merupakan suatu disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer yang interaktif yang digunakan oleh manusia, serta merupakan suatu study terhadap fenomena-fenomena yang berhubungan dengannya. Ilmu menitik beratkan pada perancangan dan evaluasi antar pemakai (user interface) dengan tujuan seseorang dapat membuat sistem interaksi dengan memperhatikan kaedah interaksi dan komunikasi. Menurut shneiderman (2010) Delapan aturan emas perancangan user interface yaitu : 1. Berusaha untuk konsisten.
17
Konsisten dilakukan pada urutan tindakan, perintah, dan istilah yang digunakan pada prompt, menu, serta layar bantuan. 2. Memungkinkan frekuensi user menggunakan shortcut. Pada saat frekuensi dari user meningkat. User juga berkeinginan untuk mengurangi jumlah dari interaksi dan untuk meningkatkan langkah dari interaksi, singkatan, function keys, perintah tersembunyi, dan fasilitas makro sangat membantu untuk pengguna ahli. 3. Memberikan umpan balik yang informatif Untuk setiap tindakan operator, sebaiknyan disertakan suatu sistem umpan balik. Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat diberikan umpan balik yang sederhana. Tetapi ketika tindakan merupakn hal yang penting, maka umpan balik sebaliknya lebih substansial. Misalnya muncul suatu suara ketika salah menekan tombol pada waktu input data atau muncul pesan kesalahannya. 4. Merancang dialog yang memberikan keadaan akhir / penutup Rangkaian dari tindakan harus disusun ke dalam grup dengan permulaan, pertengahan dan akhiran. Feddback yang informatif pada pnyelesaiannya dari kumpulan tindakan memberikan operator kepuasan dari prestasi, perasaan lega, sinyal untuk meletakkan kemungkinan rencana dan pilihan dari pilihan mereka, dan indikasi yang caranya adalah bersih untuk mempersiapkan tindakan dari grup berikutnya. 5. Memberikan pencegahan kesalahan dan penanganan kesalahan sederhana Sedapat mungkin sistem dirancang sehingga pengguna tidak dapat melakukan kesalahan fatal. Jika kesalahan terjadi, sistem dapat mendeteksi
18
kesalahan dengan cepat dan memberikan mekanisme yang sederhana dan mudah dipahami untuk penanganan kesalahan. 6. Memungkinkan pembalikan aksi yang mudah Hal ini dapat mengurangi kekhawatiran pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan, sehingga pengguna tidak takut untuk mengekplorasi pilihan-pilihan lain yang belum bisa digunakan. 7. Mendukung pusat kendali internal Pengguna ingin menjadi pengontrol sistem akan merespon tindakan yang dilakukan pengguna dari pada merasa bahwa sistem mengontrol pengguna. Sebaiknya sistem dirancang sedemikian rupa sehingga pengguna menjadi inisiator dari pada responden. 8. Keep It Simple Keterbatasan ingatan manusia membutuhkan tampilan yang sederhana atau banyak tampilan halaman yang sebaiknya disatukan, serta diberikan cukup waktu pelatihan untuk kode, mnemonic, dan urutan tindakan.
2.1.11 Unified Modeling Language (UML) Menurut Bennett, Skelton, & Lunn (2005 : 5) Unified Modeling Language adalah UML adalah bahasa visual yang menyediakan cara bagi orang yang ingin menganalisa dan merancang
sistem yang berorientasi object agar dapat mengvisualisasi,
mengkonstruksi dan mendokumentasikan sistem software dan model bisnis dari suatu sistem organisasi.
19
2.1.12 Use Case Diagram Menurut Bennett, Skelton, & Lunn (2005 : 20) Use Case Diagram merupakan urutan tindakan yang dilakukan oleh sistem dan aktor yang menggambarkan user atau sistem lain yang berinteraksi dengan sistem yang dimodelkan. Use Case juga dapat digunakan untuk memodelkan apa yang terjadi didalam sistem yang ada, atau use case dapat juga digunakan untuk memodelkan sistem baru yang akan dikembangkan. Tujuan utama membuat Use Case adalah : 1. Digunakan untuk memodelkan urutan tindakan yang dilakukan oleh sistem dan memberikan hasil yang dapat diamati seseorang atau sesuatu di luar sistem. 2. Use Case memberikan pandangan tingkat tinggi dari apa yang dilakukan sistem dan siapa yang menggunakannya 3. Use Case menyediakan dasar untuk menentukan antar muka (interface) manusiakomputer dan komputer-komputer ke sistem 4. Use Case dapat digunakan untuk memodelkan skenario alternatif untuk kasus tertentu yangdapat mengakibatkan urutan yang berbeda dari suatu proses (actions). 5. Use Case menggunakan notasi diagram sederhana yang mudah dipahami oleh pengguna akhir (end user) dan dapat digunakan untuk berkomunikasi dengan mereka (pengguna akhir) tentang pandangan tingkat tinggi dari sistem. 6. Use Case dapat digunakan sebagai dasar untuk menyusun spesifikasi tes.
20
ATM Menarik Uang Tunai Memeriksa Saldo Costomer
Cetak Struk
Gambar 2.1 Contoh Use case Use Case Diagram memiliki komponen sebagai berikut : Tabel 2.1 Komponen Use Case Diagram Simbol
Deskripsi
Fungsionalitas yang disediakan sistem nama use case
sebagai unit-unit yang saling bertukar pesan antar unit atau aktor; biasanya dinyatakan dengan menggunakan kata kerja di awal frase nama use case.
Aktor / actor
Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang. Biasanya dinyatakan
menggunakan
kata benda di awal frase nama aktor.
21 Simbol Nama
Deskripsi aktor
Asosiasi / association
Komunikasi antara aktor dan use case yang berpartisipasi pada use case atau use case memiliki interaksi dengan aktor.
Ekstensi / extend
Relasi use case tambahan ke sebuah
<<extend>>
use case dimana use case yang ditambahkan dapat berdiri sendiri walau tanpa use case tambahan itu; mirip dengan prinsip inheritance pada pemrograman
berorientasi
objek;
biasanya use case tambahan memiliki nama depan yang sama dengan use case yang ditambahkan, misal
arah panah mengarah pada use case yang ditambahkan
22 Simbol
Deskripsi
Generalisasi / generalization
Hubungan generalisasi dan spesialisasi (umum - khusus) antara dua buah use case dimana fungsi yang satu adalah fungsi yang lebih umum dari lainnya, misalnya:
mengelola data hapus data ubah data arah panah mengarah pada use case yang menjadi generalisasinya (umum) Menggunakan / include / uses
relasi use case tambahan ke sebuah use case dimana use case yang ditambahkan memerlukan use case ini untuk menjalankan fungsinya atau sebagai syarat dijalankan use case ini ada dua sudut pandang yang cukup besar mengenai include di use case: include berarti use case yang
23 Simbol
Deskripsi
ditambahkan akan selalu dipanggil saat use case tambahan dijalankan, misal pada kasus berikut:
include berarti use case yang tambahan akan selalu melakukan pengecekan apakah use case yang ditambahkan sebelum
telah
use
dijalankan,
dijalankan
case
misal
tambahan
pada
kasus
berikut:
Kedua interpretasi di atas dapat dianut salah satu atau keduanya tergantung pada pertimbangan dan interpretasi yang dibutuhkan. arah panah include mengarah pada use
24 Simbol
Deskripsi
case
yang
dipakai
keduanya
tergantung pada pertimbangan dan interpretasi yang dibutuhkan. arah panah include mengarah pada use case yang dipakai.
2.1.13 Class Diagram Menurut Bennett, Skelton, & Lunn (2005 : 42) Class Diagram adalah diagram yang menunjukkan pandangan statis dari kelas dalam suatu model. Atribut dan operasi dari kelas dapat ditampilkan bersama dengan berbagai relationship yang mengikat kelas. Kelas memiliki tiga area pokok : 1. Nama 2. Atribut 3. Operasi Contoh kelas : Mahasiswa Atribut: Nama, NIM, Alamat Method/Operasi: Belajar, Ujian
25
Gambar 2.2 Contoh Class Diagram Multiplisitas / Multiplicity Multiplisitas menunjukkan jumlah suatu objek yang bisa berhubungan dengan objek yang lain. Umumnya ditunjukkan dengan berapa banyak objek yang bisa mengisi properti “satu” atau “banyak”, tetapi secara khusus dapat ditunjukkan pula dengan bilangan integer lebih besar atau sama dengan nol. Misalnya : - pasti 1
- 0..1 0 atau 1 - 0..* bisa 0 sampai banyak - 1..* bisa 1 sampai banyak - * lebih dari 1 Relasi antar Kelas Asosiasi Asosiasi, yaitu hubungan statis antar kelas. Umumnya menggambarkan class yang memiliki atribut berupa kelas lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class.
26
Asosiasi menggambarkan hubungan antar class dengan ditandai dengan anak panah lalu ditambahkan label dan multiplicity untuk memperjelas hubungan. Agregasi Agregasi adalah hubungan “bagian dari” atau “bagian ke keseluruhan”. Suatu kelas / objek mungkin memiliki atau bisa dibagi menjadi kelas/objek tertentu dimana objek/kelas yang disebut kemudian merupakan bagian dari kelas/objek yang terdahulu. Generalisasi Generalisasi adalah relasi ke atas beberapa subkelas kepada super kelas diatasnya (ditunjukkan dengan notasi segitiga). Sub kelas mewarisi fitur dari super kelasnya. Sub kelas mampu overridingmetode super kelasnya. Dependency Dependency adalah hubungan dimana perubahan pada suatu kelas akan mempengaruhi kelas yang lain dimana kelas yang terakhir ini bergantung pada kelas yang sebelumnya. Dalam dependency antar 2 elemen jika terjadi perubahan pada salah satu elemen maka akan mengakibatkan perubahan pada elemen yang lain. Semakin kompleks sistem, maka dependency menjadi sesuatu yang harus dipertimbangkan. Dependency hanya berlaku satu arah. Bisa diperjelas dengan penggunaan keyword, seperti <<parameter>>, <<use>>, <>, notasi anak panah dan garis putus-putus.
27
2.1.14 Sequence Diagram Menurut Bennett, Skelton, & Lunn (2005 : p158) Sequence Diagram menunjukkan lifelines yang mewakili objek atau sistem yang berpartisipasi dalam interaksi, dimana tidak menunjukkan hubungan struktural antara lifelines tetapi mereka menunjukkan urutan interaksi visual dengan menggunakan sumbu vertikal dari diagram untuk menunjukan waktu. Sequence Diagram digunakan untuk memodelkan interaksi tingkat tinggi diantara object yang aktif di dalam sistem, subsistem, daninteraksi yang dapat dikombinasikan dalam SequenceDiagram lain atau dalam InteractionDiagram. SequenceDiagram memiliki komponen sebagai berikut : Tabel 2.2 Komponen Sequence Diagram Simbol
Deskripsi Orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang; biasanya dinyatakan menggunakan kata benda di awal frase nama aktor.
Garis hidup / lifeline
Menyatakan kehidupan suatu objek
28
Menyatakan objek yang berinteraksi pesan
Waktu aktif
Menyatakan objek dalam keadaan aktif dan berinteraksi pesan.
Pesan tipe create
Menyatakan suatu objek membuat objek yang lain, arah panah mengarah pada objek yang dibuat.
Pesan tipe call
Menyatakan
suatu
objek
memanggil
operasi/metode yang ada pada objek lain atau dirinya sendiri,
arah panah mengarah pada objek yang memiliki operasi/metode, operasi/metode
karena maka
ini
memanggil
operasi/metode
yang
dipanggil harus ada pada diagram kelas sesuai dengan kelas objek yang berinteraksi. Pesan tipe send
Menyatakan bahwa suatu objek mengirimkan data/masukan/ informasi ke objek lainnya, arah panah mengarah pada objek yang dikirimi.
Pesan tipe return
Menyatakan bahwa suatu objek yang telah
29
menjalankan
suatu
operasi
atau
metode
menghasilkan suatu kembalian ke objek tertentu, arah panah mengarah pada objek yang menerima kembalian. Pesan tipe destroy
Menyatakan suatu objek mengakhiri hidup objek yang lain, arah panah mengarah pada objek yang diakhiri, sebaiknya jika ada create maka ada destroy.
Gambar 2.3 Contoh Sequence Diagram
30
2.1.15 Case Tool Shelly Cashman (2010 : 632) memberikan definisi tentang case tool seperti alat untuk memecahkan permasalahan dalam pengembangan sistem, jadi diibaratkan pada seorang koki apabila koki ingin memasak apa saja alat yang dibutuhkan untuk memasak? jawabanya yaitu pisau, kompor dan bahan - bahan lain yang akan dimasak, sama halnya dengan seseorang progremmer yang akan membuat sistem baru alat yang dibutuhkan untuk mempermudah seseorang progremmer itu untuk merancang dan mengembangkan sistem yaitu case tool, karna dengan menggunakan case tool dalam mengembangkan sistem dapat mengurangi biaya dan mempercepat dalam pembangunan sistem serta menyediakan dokumentasi ya komprehensif.
2.1.16 Yslow Menurut Armando Padilla dan Tim Hawkins (2010 : 33) yslow adalah alat untuk menganalisa kinerja halaman web yang diciptakan oleh kelompok yahoo. Tool tersebut dapat digunakan pada browser, firefox, chrome, opera maupun safari bahkan dapat digunakan pula untuk device mobile dengan mode java. Yslow memiliki 2 versi yakni v2 rules dan classic v1 rules, masing – masing versi tersebut mempunyai aturan yang berbeda – beda. YSlow menghitung nilai-huruf untuk setiap aturan serta nilai-huruf keseluruhan pada web seberapa baik seluruh halaman web dioptimalkan. grade "A" menunjukan bahwa halaman web itu sangat baik, dan di sisi lain, grade "F" menunjukkan bahwa halaman web tidak sangat baik. YSlow juga menyediakan referensi
31
untuk alat-alat online yang dapat digunakan untuk mengoptimalkan css, javascript, dan html.
2.1.17 Page Speed Menurut Armando Padilla dan Tim Hawkins (2010 : 39) google page speed adalah merupakan plug-in untuk firefox/firebug, dan sama seperti Yslow, page speed memberikan nilai skor pada halaman web seberapa baik web tersebut yang menerapkan teknik optimasi. tidak seperti Yslow, page speed memberikan informasi tentang file yang dianalisis, bagaimana mengoptimalkan file, dimana untuk mengoptimalkan halaman web dan metrik seberapa banyak pengguna dapat meningkatkan kecepatan web dengan optimal.
2.1.18 SDLC (SYSTEM DEVELOPMENT LIFE CYCLE) Menurut Adi Nugroho (2010) pengembangan / rekayasa sistem informasi (system development) dan / atau perangkat lunak (software engineering)dapat berarti menyusun sistem / perangkat lunak yang benar – benar baru atau yang lebih sering terjadi menyempurnakan yang telah ada sebelumnya. Juga sering terjadi pengembangan sistem informasi berbasis komputer (CBIS – Computer – based information system) dilakukan dengan motivasi untuk memanfaatkan komputer sebagai alat bantu yang dikenalkan sebagai alat yang cepat, akurat, tidak cepat lelah, serta tidak mengenal arti kata bosan, untuk melaksanakan intruksi – intruksi pengguna untuk mendaptkan hasil – hasil
32
tertentu. Secara umum, suatu sistem / perangkat lunak perlu dikembangkan adalah karena alasan – alasan sebagai berikut : 1. Adanya permasalahan yang dijumpai pada sistem / perangkat unak yang lama. 2. Pertumbuhan organisasi. 3. Untuk meraih kesempatan – kesempatan. 4. Menyesuaikan diri dengan visi, misi, strategi organisasi yang baru. Segala sesuatu yang akan kita kembangkan seharusnya memiliki kerangka kerja, demikian pula dengan langkah – langkah pengembangan sistem / perangkat lunak. Banyak sekali rincian kerangka kerja yang diperkenalkan oleh penulis – penulis buku tentang pengembangan sistem informasi, namun pada dasarnya hampir semuanya mengikuti kerangka yang diperlihatkan pada gambar dibawah.
Analisis
Perancangan Implementasi Pengujian Pemeliharaan
Gambar 2.4 Kerangka Kerja Pengembangan Sistem Informasi (SDLC) Tahap awal, yaitu tahap perencanaan, adalah menyangkut studi tentang kebutuhan pengguna, studi – studi kelayakan baik secara teknis maupun secara teknologi serta penjadwalan pengembangan suatu proyek sistem informasi dan perangkat lunak.
33
Pada tahap ini pula, sesuai dengan kakas (tool) yang digunakan yaitu UML, kita bisa menggunakan use – case diagram untuk menangkap kebutuhan dan harapan pengguna. Tahap berikutnya, yaitu tahap kedua, adalah tahap analisis, yaitu tahap dimana kita berusaha mengenali segenap permasalahan yang muncul pada pengguna dengan mendekomposisi dan merelisasikan use case diagram lebih lanjut, mengenali komponen – komponen sistem / perangkat lunak, objek – objek, hubungan antar objek, dan sebagainya. Tahap ketiga adalah tahap perancangan, dimana kita mencoba mencari solusi permasalahan yang didapat dari tahap analisis. Tahap ini dibagi menjadi 2, yaitu : 1 ) tahap perancangan yang lebih menekankan pada platform apa hasil dari tahapan analisis kelak akan diimplementasikan, serta 2 ) tahap perancangan dimana kita melakukan penghalusan kelas – kelas yang didapat pada tahap analisis serta jika perlu menambahkan dan memodifikasi kelas – kelas yang akan lebih mengefisienkan serta mengefektifkan sistem / perangkat lunak yang akan kita kembangkan. Tahap keempat adalah tahap implementasi dimana kita mengimplementasikan perancangan sistem ke situasi nyata. Disini kita mulai berurusan dengan pemilihan perangkat keras dan penyusunan perangkat lunak aplikasi (coding). Selanjutnyan tahap kelima adalah pengujian, yang dapat digunakan untuk menentukan apakah sistem / perangkat lunak yang kita buat sudah sesuai dengan kebutuhan pengguna atau belum. Jika belum, proses selanjutnya adalah bersifat iteratif, yaitu kembali ke tahap – tahap sebelumnya. Disinilah keuntungan metodologi berorientasi objek mulai kentara, dimana mulai dari tahap analisi hingga implemntasi kita bisa menggunakan kakas (tool) yaitu diagram – diagram UML yang sama sehingga proses
34
iteratif itu bisa berjalan dengan lebih efektif serta efisien ditinjau dari segi biaya dan waktu. Disamping itu , tujuan lain dari pengujian adalah untuk menghilangkan / meminimalisasi cacat program sehingga sistem yang dikembangkan benar – benar akan membantu para pengguna saat mereka melakukan aktivitas – aktivitasnya. Kemudian, tahap yang terakhir (tahapan keenam) adalah tahap pemeliharaan / perawatan dimana kita mulai melakuka pengoperasian sistem dan jika diperlukan, melakukan perbaikan – perbaikan kecil. Kemudian, jika waktu pengguna sistem habis, maka kita akan masuk lagi pada tahap perancangan.
2.1.19 Entity Relationship Diagram (ERD) Menurut Hoffer dan McFadden (2009: 93) ERD adalah representasi grafis dari entity relationship model. Entity relationship model adalah sebuah perincian, representasi logis dari sebuah data untuk sebuah perusahaan atau area bisnis. contoh dari ERD dapat dilihat pada gambar dibawah ini.
Gambar 2.5 Entity Relationship Diagram
35
2.2 Teori Khusus Berikut ini adalah teori-teori khusus yang digunakan pada penulisan : 2.2.1 Rekrutmen (Prekrutan) Menurut Dr.Dewi Hanggraeni,Se.,mba (2012: 53) Rekrutmen adalah proses menemukan dan menarik pelamar-pelamar yang memiliki keahlian untuk menduduki posisi tertentu didalam organisasi. Proses rekrutmen bertujuan untuk mengumpulkan kandidat-kadidat terbaik sebanyak-banyaknya (pool of talents) untuk dipilih yang paling baik dari yang terbaik. Kandidat-kandidat yang dikumpulkan biasa berasal dari dalam organisasi (internal) atau dari luar organisasi (external).
REKRUTMEN
REKRUTMEN INTERNAL
REKRUTMEN EKSTERNAL
REHIRING
IKLAN
SELEKSI
AGEN TENAGA KERJA
REKRUTMEN KAMPUS
REFERRAL
36
Gambar 2.6 Struktur Rekrutmen
2.2.2 Rekrutmen Internal Rekrutmen internal artinya kandidat-kandidat untuk mengisi posisi didalam organisasi berasal dari internal organisasi itu sendiri. Biasanya proses rekrutmen internal ini diawali dengan job posting yaitu proses publikasi jabatan kosong didalam organisasi beserta syarat dan kriteria yang harus dipenuhi untuk mengisi posisi tersebut. Publikasi ini bisa dilakukan lewat papan informasi perusahaan, internal e-mail, internet, dan buletin perusahaan. 1. Rehiring Rehiring berarti memperkerjakan kembali mantan pegawai yang pernah bekerja di perusahaan. Rehiring memiliki keuntungan yaitu pekerja telah mengetahui kondisi dan budaya perusahaan tetapi kerugian rehiring adalah pekerja yang dipekerjakan kembali mungkin saja memiliki perasaan tidak senang karena diperlakukan tidak adil. Pekerja dipekerjakan apabila dibutuhkan dan diberhentikan apabila sudah tidak dibutuhkan. Selain itu, mungkin saja pekerja yang dipekerjakan kembali tersebut sebelumnya telah memiliki masalah dengan perusahaan sehingga berhenti dari perusahaan.
2. Suksesi Suksesi berarti proses mengidentifikasi, menilai, dan mengembangkan kepemimpinan organisasi untuk meningkatkan kinerja. Suksesi bertujuan sebagai proses regrenerasi dari dalam organisasi. Proses ini berguna untuk
37
mengisi posisi-posisi kunci di dalam organisasi dengan mempersiapkan kandidat-kandidat yang memiliki keahlian dan kemampuan yang mumpuni dan telah dipersiapkan sebelumnya sehingga ketika kandidat menduduki jabatan tersebut ia telah memenuhi kriteria yang dibutuhkan.
2.2.3 Rekrutmen Eksternal Rekrutmen eksternal berarti mengumpulkan kandidat dan kuat organisasi. Ada beberapa cara yang bisa digunakan untuk mengumpulkan kandidat-kandidat yang kemudian akan dipilih untuk menduduki posisi tertentu didalam perusahaan. 1. Iklan lowongan kerja yang disebarkan dengan cara memasang ikland imedia cetak (koran dan majalah), media elektronik (radio dan televisi), dan internet. Iklan lowongan kerja harus dibuat semenarik mungkin sehingga mampu mengumpulkan banyak kandidat terbaik. 2. Agensi tenaga kerja Perusahaan tinggal menyebutkan posisi dan persyaratan yang diinginkan kepada agensi tenaga kerja. Agensi akan mengumpulkan kandidatkandidat yang akan ditawarkan kepada perusahaan. Perusahaan tinggal memilih kandidat-kandidat yang ditwarkan tersebut sesuai dengan kriteria yang diinginkan. 3. Rekrutmen kampus
38
Rekrutmen kampus berarti perusahaan mendatangi kampus-kampus untuk menjaring kandidat-kandidat. Rekrutmen kampus dianggap salah satu cara efektif guna mengumpulkana kandidat-kandidat terbaik karena umumnya kampus yang dipilih adalah kampus-kampus yang memiliki reputasi yang baik dan unggulan. 4. Referral Referral adalah proses rekrutmen yang dilakukan perusahaan dengan cara mengumpulkan kandidat yang merupakan rekomendasi dari pekerjaan.
2.2.4 Seleksi Kandidat-kandidat Pelamar Setelah proses rekrutmen selesai dilakukan, maka tahap berikutnya adalah proses seleksi. Proses seleksi adalah proses pemilihan kandidat-kandidat yang telah terkumpul untuk mengisi suatu posisi / pekerjaan didalam organisasi yang dianggap memenuhi kualifikasi dan kompetensi yang dibutuhkan. Proses seleksi ini dilakukan ketika kandidat-kandidat terbaik telah dikumpulkan (pool of talent) dan kemudian dipilih yang terbaik diantara yang paling baik. Keputusan untuk memilih kandidat didasarkan pada beberapa kriteria yang telah ditetapkan sebelumnya. Sebelum diputuskan untuk memilih seorang kandidat, maka hal yang dilakukan adalah melaksanakan beberapa tes atau biasa disebut sebagai employment test.
39
2.2.5 Tes Kerja (emploment test) Tes kerja adalah sebuah cara bagi perusahaan untuk menilai sejarah mana kecocokan antara kandidat dengan kriteria yang telah ditetapkan untuk mengisi suatu jabatan tertentu. Beberapa tes berbentuk tes diatas kertas dan tes yang lainnya bisa berbentuk simulasi. Dalam melaksanakan tes kerja, ada dua hal yang harus diperhatikan oleh perusahaan. Hal pertama adalah sejauh mana tes yang digunakan itu valid serta hal yang kedua apakah tes yang digunakan itu reliabel ataukah tidak.
HAL YANG HARUS DIPERHATIKAN DALAM
VALIDITAS
RELIABILITAS
VALIDITAS
VALIDITAS
Gambar 2.7 Tes Kerja validitas tes berarti bahwa tes yang diberikan ketika seorang kandidat dalam proses seleksi harus secara signifikan terkait dengan kinerjannya dikemudian hari. Ini berarti bahwa tes yang diberikan kurang lebih harus mampu menggambarkan skill dan kemampuan si kandidat.
40
Tes yang tidak valid adalah tes yang nilainnya tidak berkaitan dengan kinerjanya kelak. Misalkan ketika dites, si kandidat memiliki nilai yang tinggi tetapi pada kenyataanya hasil tes yang tinggi tersebut tidak tergambarkan dalam kinerjanya dikemudian hari. Validitas tes terdiri dari dua macam yaitu : validitas kriteria (criterion validity) dan validitas konten (content validity). Validitas kriteria artinya tes yang diberikan harus bisa menggambarkan kinerja kandidat apabila ia telah terpilih menjadi pekerja diperusahaan. Sedangkan validitas konten berarti tes yang diberikan harus bisa menggambarkan pekerjaan yang akan dilakukan oleh kandidat kelak apabila terpilih. Realiabilitas tes berarti bahwa seberapa sering tes itu dilakukan, maka kandidat akan memiliki nilai yang kurang lebih sama atau konsisten, sehingga tes tersebut bisa benar-benar memprediksi kemampuan dan keahlian sesungguhnya yang dimiliki oleh kandidat. Secara umum, tes kerja atau employment text terbagi menjadi empat jenis yaitu : cognitive, motoric and physical, personality and interst and achievenment. 1. Tes kognitif (cognitive test), bertujuan untuk mengetahui tingkat kemampuan kognitif. Tes ini umumnya berkaitan dengan pengukuran tingkat intelejensi. 2. Tes motorik dan fisik (motoric and physical test), bertujuan untuk mengetahui sejauh mana kandidat memiliki kekuatan fisik. 3. Tes kepribadian dan bakat (personality and interest test), adalah tes yang bertujuan untuk mengetahui karakteristik individu dari si kandidat.
41
4. Tes capaian (achievement test), bertujuan untuk mengetahui sejauh mana individu telah mempelajari sesuatu. Contoh yang paling sederhana dari tes ini adalah ujian yang diberikan kepada mahasiswa atau pelajar. 5. Tes kesehatan, ini merupakan tes tambahan yang berguna untuk mengetahui kondisi kesehatan kandidat.
2.2.6 Wawancara (interview) Setelah kandidat lulus melewati tes kerja, maka tahap selanjutnya untuk memutuskan apakah kita akan memilihnya ataukah tidak adalah melalui wawancara. Wawancara bertujuan untuk memperoleh gambaran dan informasi mengenai kandidat secara langsung lewat pembicaraan tetap muka (face to face). Melalui wawancara kita bisa mengetahui kandidat secara lebih dekat dan lebih dalam. Secara umum wawancara menjadi terbagi dua jenis yaitu wawancara terstruktur (structured interview) dan wawancara tidak terstruktur (unstructured interview). Wawancara yang terstruktur adalah wawancara yang mana sang pewawancara memiliki panduan yang jelas mengenai tahapan tahapan wawancara dan hal-hal yang akan ditanyakan ketika wawancara. Wawancara terstruktur memungkinkan proses wawancara berjalan secara sistematis dan runtun. Akan tetapi, wawancara jenis ini memiliki kelemahan yaitu pewawancara tidak bisa menggali informasi dari kandidat terlalu dalam karena ia harus mengikuti panduan (guideline) yang telah dibuat. Sebaliknya wawancara yang tidak terstruktur adalah jenis wawancara yang memungkinkan sang pewawancara menanyakan semua informasi yang dianggap perlu.
42
Sementara itu, apabila dilihat dari jenis pertanyaan yang diajukan maka wawancara bisa dibedakan menjadi tiga jenis, yaitu : 1. Situational interview adalah wawancara yang pertanyaan berkaitan dengan pekerjaan yang akan diperolehnya bila diterima. 2. Behavioral interview adalah wawancara yang pertanyaannya berkaitan dengan respon dan sikapnya terhadap suatu situasi kerja yang telah dialaminya dimasa lalu. 3. Job-related interview adalah wawancara yang pertanyaannya berkenaan dengan pencapaian atau kinerja yang telah ditunjukan oleh kandidat dimasa lalu.
2.2.7 Suplemen : psikotest Salah satu cara lembaga atau perusahaan untuk menguji calon karyawan adalah dengan mengajukan sejumlah tes psikolog dikenal dengan psikotest. Tes ini sangat menentukan masa depan calon karyawan dan secara teoritis untuk mengetahui potensi calon pegawai. Jenis-jenis persikotes yaitu : 1. Tes IQ. Tes ini melibatkan serangkaian soal matematika dalam istilah tesnya tes verbal dan non verbal. 2. Tes kepribadian. Didalam tes ini kandidat akan dihadapkan kepada serangkaian pertanyaan mengenai berbagai dilema dalam pekerjaan seperti bagaimana
43
menghadapi konflik, bagaimana bekerja sama dan bagaimana solusi jika menghadapi suatu dilema. 3. Tes kemampuan, yaitu tes uji untuk mengerjakan serangkaian tugas dibawah tekanan tinggi, apakah kandidat bisa melakukannya. Biasanya tes kemampuan ini mengkondisikan kandidat dalam suasana penuh tekanan. 4. Tes kreativitas, biasanya kandidat akan diminta menulis atau menggambarkan sesuatu. Pada salah satu tes kandidat diminta melanjutkan gambar dari enam kotak yang sudah ada.
2.2.8 Kinerja (performance) Penilaian kinerja atau performance appraisal adalah sebuah proses dimana perusahaan melakukan evaluasi dan penilaian kinerja individu setiap pekerjaanya. Penilaian kinerja memiliki beberapa tujuan sebagai berikut : 1. Membuat keputusan dalam manajemen SDM seperti promosi, transfer dan pemecatan. 2. Mengidentifikasi kebutuhan akan pelatihan dan pengembangan. 3. Memvalidasi program seleksi dan pengembangan. 4. Memberikan umpan balik kepada pekerja atas kinerjanya. 5. Dasar untuk penentuan keputusan alokasi remunerasi. Perusahaan, khususnya departemen HR, akan menggunakan hasil dari penilaiaan kinerja ini sebagai informasi dasar yang akan digunakan untuk mengevaluasi keefektifan dan
44
kesuksesan berbagai kebijakan sumber daya manusia mulai dari proses rekrutmen, seleksi, orientasi, penempatan, pelatihan, dan berbagai proses lainnya.
2.2.9 Penggajian Kompensasi (compensation) adalah segala sesuatu yang diterima oleh karyawan sebagai balas jasa yang diberikan oleh organisasi atas pekerjaan yang telah dilakukan. Sistem kompensasi ini harus dikelola secara serius dan tepat oleh perusahaan. Apabila tidak dikelola dengan baik bisa mengakibatkan pay dissaticfaction yaitu perasaan ketidakpuasan karyawan atas balas jasa yang diterimanya. Pay dissatisfaction ini bisa berdampak pada : 1. Penurunan kinerja 2. Pemogokan 3. Tingkat ketidak hadiran yang tinggi 4. Turnover yang tinggi 5. Rendahnya komitmen terhadap perusahaan Sebaliknya, apabila dikelola dengan baik maka sistem kompensasi akan membantu
perusahaan
untuk
mempertahankan
pekerjaan,
mempertahankan
produktivitas, dan membantu perusahaan mewujudkan tujuan-tujuan dan visi yang ingin diraihnya.
45
Di indonesia, balas jasa atau kompenasi identik dengan gaji dan upah, padahal gaji dan upah hanya salah satu jenis kompensasi selain itu masih ada insentif, benefit, tunjangan, dan lain sebagainya.
2.2.10 Tujuan yang ingin dicapai dalam kebijakan gaji dan upah Secara umum, ada dua hal yang harus dipenuhi ketika perusahaan menyusun sistem penggajian untuk para pekerjanya. Hal yang pertama adalah internal equity. Internal equity menjamin bahwa pekerjaan dengan beban kerja dan tanggung jawab yang lebih besar dibayar lebih besar dibandingkan dengan pekerjaan dengan bebas kerja dan tanggung jawab yang lebih rendah. Internal equity ini akan menjamin proses keadilan dan fairness didalam perusahaan. Objectives of Compensation System
Internal Equity
External Equity
Job Evaluation
Salary Survey
Gambar 2.8 Sistem Penggajian
Hal kedua yang harus diperhatikan adalah external equity, yaitu besaran gaji atau upah yang kita berikan untuk satu posisi / pekerjaan cukup kompetitif dibandingkan
46
dengan posisi / pekerjaan yang serupa dipasar kerja / diperusahaan lain. Tujuannya agar kita bisa menarik kandidat-kandidat terbaik untuk bekerja diperusahaan kita. Kebijakan dalam sistem penggajian dan upah memiliki beberapa tujuan yang ingin dicapai oleh perusahaan, yaitu : 1.
Menarik kandidat-kandidat terbaik untuk bekerja diperusahaan tersebut.
2.
Mempertahankan pekerja. Seistem gaji dan upah yang baik akan membuat para pekerja puas sehingga mereka ingin untuk terus bekerja diperusahaan kita.
3.
Menjamin kesetaraan. Sistem gaji dan upah yang baik adalah sistem yang menjamin kesetaraan, keadilan, dan fairness didalam perusahaan.
4.
Sebagai sistem reward. Gaji dan upah juga bisa berperan sebagai reward bagi pekerja yang memiliki kinerja yang baik.
5.
Memenuhi kewajiban hukum. Dibeberapa negara, termasuk indonesia, pemerintah turut campur tangan dalam penentuan gaji dan upah pekerja terutama untuk pekerja blue collar.
2.2.11 Survey Gaji (salary survey) Apabila evaluasi jabatan berguna untuk memastikan bahwa dalam penggajian perusahaan memenuhi syarat internal equity, maka survey gaji atau salary survey adalah cara yang bisa digunakan perusahaan untuk memastikan bahwa sistem penggajian telah memenuhi syarat internal equity sehingga perusahaan
47
menjadi kompetitif untuk mampu menarik kandidat-kandidat terbaik guna bekerja diperusahaan tersebut. Tujuan utama survey gaji adalah untuk mengetahui seberapa besar perusahaan lain yang bergerak dibidang yang sejenis memberikan kepada jabatanjabatan yang sama. Apabila perusahaan membayar lebih tinggi gaji untuk jabatan yang sejenis dibandingkan dengan umumnya perusahaan lain dipasar maka perusahaan tersebut berada diposisi higher market level. Sebaliknya, apabila lebih rendah dari perusahaan tersebut berada diposisi below market level.