BAB 2 LANDASAN TEORI
2.1 Teori-Teori Umum Teori-teori umum yang akan dibahas adalah sistem, data dan informasi, basis data, sistem basis data, sistem manajemen basis data, Structured Query Language, EntityRelationship Modeling, normalisasi, metodologi perancangan basis data, siklus hidup basis data, Data Flow Diagram, bagan alir, internet, World Wide Web, terminologi internet dan web, aturan perancangan antarmuka pengguna, PHP, MySQL, Apache web server, dan YSlow.
2.1.1
Sistem Menurut Williams dan Sawyer (2007: 510), sistem adalah kumpulan dari
komponen-komponen yang berhubungan dan berinteraksi untuk melakukan suatu tugas guna mencapai suatu tujuan. Menurut Pressman (2005: 155), sistem merupakan serangkaian atau tatanan elemen-elemen yang diatur untuk mencapai tujuan yang telah ditentukan sebelumnya melalui sebuah pemrosesan informasi. Jadi, sistem adalah kumpulan beberapa komponen yang saling berhubungan dan berinteraksi, serta menerima masukan dan menghasilkan keluaran melalui suatu proses transformasi yang terorganisasi guna mencapai tujuan bersama.
8
9
2.1.2
Data dan Informasi Menurut Whitten et. al. (2004: 23), data adalah fakta mentah mengenai orang,
tempat, kejadian, dan hal-hal penting dalam organisasi. Sebuah data yang berupa fakta mentah tidak akan beguna, kecuali bila digabungkan dengan data lain. Menurut Hoffer (2009: 46), data adalah sebuah fakta yang menjelaskan orang, objek, ataupun kejadian. Contohnya adalah sebuah daftar dosen yang berisi kode dosen, nama, dan alamat dapat dikualifikasikan sebagai data. Menurut Whitten et. al. (2004: 23), informasi adalah data yang telah diproses atau diorganisasi ulang menjadi bentuk yang berarti. Informasi dibentuk dari kombinasi data yang diharapkan memiliki arti ke penerima. Menurut McLeod dan Schell (2004: 10), informasi adalah data yang telah diproses dan memiliki makna, biasanya menceritakan sesuatu hal kepada pengguna yang belum diketahui sebelumnya.
2.1.3
Basis Data Teori basis data yang akan dibahas adalah definisi basis data, arsitektur basis data,
dan manfaat basis data. Pada bagian definisi basis data akan dijelaskan beberapa pengertian basis data yang dikemukakan oleh para ahli, sedangkan pada bagian arsitektur basis data akan dijelaskan mengenai tingkatan-tingkatan yang ada pada arsitektur basis data, dan pada bagian manfaat basis data akan dijelaskan beberapa manfaat yang dapat diperoleh dengan adanya basis data.
a. Definisi Basis Data Menurut Connolly dan Begg (2005: 15), basis data (database) adalah kumpulan data yang berelasi secara logika dan dirancang untuk memenuhi kebutuhan informasi
10 yang dibutuhkan oleh sebuah organisasi. Di dalam basis data, semua data yang ada diintegrasikan untuk menghindari terjadinya duplikasi data. Basis data dapat digunakan oleh banyak departemen dan pemakai. Basis data tidak hanya menyimpan data operasional, tetapi juga menyimpan deskripsi mengenai data tersebut. Deskripsi mengenai data dikenal dengan sebutan kamus data atau metadata. Menurut Hoffer (2009: 46), basis data adalah kumpulan data yang terorganisasi dan secara logika berkaitan. Terorganisasi maksudnya adalah data distrukturkan sehingga mudah untuk disimpan, dimanipulasi, dan diperoleh oleh pengguna. Menurut Elmasri dan Navathe (2004: 4), basis data adalah kumpulan file yang saling berhubungan. Basis data memiliki beberapa sumber dimana data tersebut diturunkan, beberapa berasal dari interaksi dengan dunia nyata. Menurut Whitten et. al. (2004: 23), basis data adalah kumpulan file yang saling terkait. Sedangkan file adalah kumpulan record yang serupa. Jadi, basis data adalah kumpulan data atau koleksi file yang berfungsi untuk menyimpan data yang saling berhubungan dan terstruktur sehingga mudah untuk disimpan, diperoleh kembali, dimanipulasi, dan dapat memenuhi kebutuhan informasi dari suatu organisasi.
b. Arsitektur Basis Data Menurut Connolly dan Begg (2005: 34), ada tiga tingkatan arsitekur basis data (Three Level ANSI-SPARC Architecture), yaitu: 1) Tingkat Eksternal (External Level) Tingkat eksternal menggambarkan apa yang dilihat oleh pengguna terhadap basis data. Level ini mendeskripsikan bagian basis data yang berhubungan dengan tiap pengguna.
11 Setiap kumpulan pengguna mempunyai pandangan masing-masing, tergantung kebutuhan informasi dari kumpulan pengguna tersebut. 2) Tingkat Konseptual (Conceptual Level) Tingkat konseptual menggambarkan data apa saja yang disimpan dalam basis data dan hubungan antar data tersebut. 3) Tingkat Internal (Internal Level) Tingkat internal merupakan representasi fisik dari basis data yang ada di dalam komputer. Level ini menggambarkan bagaimana data disimpan dalam suatu basis data.
Tujuan utama dari tiga level ini adalah untuk mendapatkan dan memelihara kemandirian data agar perubahan yang terjadi pada tingkat yang lebih rendah tidak mempengaruhi tingkat yang lebih tinggi sehingga aplikasi yang sudah ada tidak terpengaruh oleh perubahan-perubahan yang terjadi pada basis data. Dalam hal ini penulis menggunakan ketiga level arsitektur basis data sebagai dasar dalam membangun suatu aplikasi basis data dengan tujuan agar setiap pandangan pengguna dalam basis data dapat direpresentasikan secara nyata, seperti dalam halnya setiap pengguna mampu mengakses data yang sama tetapi memiliki pandangan yang berbeda satu sama lainnya.
c. Manfaat Basis Data Manfaat basis data akan terlihat lebih nyata dalam multi-user environment, dimana basis data yang digunakan akan lebih besar dan kompleks dibandingkan basis data yang digunakan pada single-user environment.
12 Menurut Date (2004: 17), keuntungan dari penggunaan basis data yaitu: 1) Compactness Keberadaan basis data mengurangi penggunaan kertas yang cukup besar karena semua data yang ada akan dicatat dan disimpan pada basis data tersebut. 2) Speed Pemanfaatan basis data memungkinkan pengguna untuk dapat menyimpan data, melakukan manipulasi data, dan menampilkan kembali data tersebut dengan lebih cepat dan mudah dibandingkan jika pengguna menyimpan data secara manual. Hal ini akan menghemat waktu yang diperlukan dalam melakukan pencarian data. 3) Less drudgery Keberadaan basis data membuat penulisan tangan menjadi semakin berkurang. Basis data mampu menggantikan tugas-tugas yang biasa dilakukan oleh manusia sehingga efisiensi dan efektivitas pekerjaan pun semakin meningkat. 4) Currency Basis data mampu menyediakan informasi yang akurat dan up to date sehingga semua kebutuhan informasi dapat terpenuhi dengan cepat pada saat dibutuhkan. 5) Protection Meningkatkan keamanan dan perlindungan data, terutama terhadap kehilangan data dan akses yang tidak diinginkan.
2.1.4
Sistem Basis Data Menurut Connolly dan Begg (2005: 4), sistem basis data merupakan kumpulan
dari program aplikasi yang berinteraksi dengan basis data. Menurut Elmasri dan Navathe (2004: 5), sistem basis data merupakan gabungan basis data dengan sistem pengaturan basis data.
13 Menurut Date (2004: 6), sistem basis data meliputi empat komponen yang antara lain terdiri dari data, perangkat keras (hardware), perangkat lunak (software), dan pengguna (user). Jadi, sistem basis data merupakan kombinasi dari beberapa program aplikasi yang saling berhubungan dengan basis data yang berjalan sehingga keseluruhan sistem tersebut memungkinkan pengguna untuk menelusuri kembali dan mengubah informasi sesuai kebutuhan.
2.1.5 Sistem Manajemen Basis Data Teori sistem manajemen basis data atau DBMS (Database Management System) yang akan dibahas adalah definisi yang dikemukakan oleh para ahli, komponen, fungsi, serta keuntungan dan kerugian penggunaan sistem manajemen basis data.
a. Definisi Sistem Manajemen Basis Data Menurut Connolly dan Begg (2005: 16), sistem manajemen basis data merupakan suatu sistem piranti lunak yang memungkinkan pengguna untuk dapat mendefinisikan, menciptakan, mengatur, dan mengontrol akses ke dalam basis data. Menurut Ramakrishnan dan Gehrke (2003: 8), sistem manajemen basis data adalah perangkat lunak yang dirancang untuk membantu dalam memelihara dan menggunakan koleksi data dalam jumlah yang besar. Jadi, sistem manajemen basis data adalah perangkat lunak yang dirancang untuk memudahkan pengguna dalam mendefinisikan, menciptakan, memanipulasi, memelihara, dan mengontrol akses ke dalam basis data.
14 b. Komponen Sistem Manajemen Basis Data Sistem manajemen basis data terdiri dari lima komponen utama, yaitu perangkat keras, perangkat lunak, data, prosedur, dan manusia. Gambar 2.1 menggambarkan lima komponen utama sistem manajemen basis data.
Gambar 2.1 Komponen Utama Sistem Manajemen Basis Data 1) Hardware (Perangkat Keras) Suatu DBMS menggunakan perangkat keras untuk menjalankan aplikasinya. Perangkat keras yang digunakan dapat berupa PC (Personal Computer), mainframe, atau jaringan komputer. 2) Software (Perangkat Lunak) Komponen perangkat lunak meliputi perangkat lunak DBMS itu sendiri, program aplikasi beserta sistem operasi, termasuk perangkat lunak jaringan apabila DBMS digunakan dalam sebuah jaringan. 3) Data Data merupakan komponen yang paling penting dalam lingkungan DBMS, karena data bertindak sebagai penghubung antara komponen mesin dan komponen manusia. 4) Prosedur Prosedur merupakan instruksi dan aturan yang digunakan dalam perancangan dan pemakaian suatu basis data.
15 5) Manusia Komponen terakhir adalah manusia yang terlibat langsung dengan sistem tersebut. Manusia tersebut dapat berperan sebagai programmer aplikasi, pengguna akhir, DA (Data Administrator), ataupun DBA (Database Administrator).
c. Fungsi Sistem Manajemen Basis Data Menurut Connolly dan Begg (2005: 48), beberapa fungsi dari sistem manajemen basis data adalah sebagai berikut: 1) Data storage, retrieval, and update Sebuah DBMS harus menyediakan kemampuan bagi pengguna untuk menyimpan, menelusuri kembali, dan mengubah data yang ada dalam basis data. 2) A user-accessible catalog Sebuah DBMS harus menyediakan katalog yang dapat diakses oleh pengguna dan mendeskripsikan lokasi penyimpanan data dalam basis data. 3) Transaction support DBMS harus menyediakan mekanisme yang menjamin semua kegiatan perubahan pada data yang berhubungan dengan transaksi dapat dikelola dengan baik. 4) Concurrency control services DBMS harus menyediakan sebuah mekanisme untuk menjamin bahwa basis data terubah dengan benar ketika beberapa pengguna mengubah data tersebut pada waktu yang bersamaan. 5) Recovery service DBMS harus menyediakan sebuah mekanisme untuk memperbaiki basis data yang rusak karena suatu kejadian.
16 6) Authorization service DBMS harus menyediakan sebuah mekanisme untuk menjamin bahwa hanya pengguna yang diberi otoritas yang dapat mengakses basis data. 7) Support for data communication DBMS harus mampu mendukung komunikasi data. 8) Integrity service DBMS harus menyediakan sebuah cara untuk menjamin bahwa data dalam basis data telah mengikuti aturan-aturan integritas yang ada. 9) Service to promote data independence DBMS harus mencakup fasilitas-fasilitas yang mendukung program-program independensi dari struktur basis data aktual. 10) Utility service DBMS seharusnya menyediakan sekumpulan layanan utilitas agar basis data dapat diatur atau dikelola secara efektif. Layanan utilitas ini biasanya meliputi: a) Fasilitas mengimpor basis data; b) Fasilitas memonitor penggunaan basis data dan operasi basis data; c) Program analisis statistikal untuk analisis performa dan statistik pemakaian; d) Fasilitas pengaturan kembali index.
d. Keuntungan dan Kerugian Penggunaan Sistem Manajemen Basis Data Keuntungan
dari
penggunaan
sistem
manajemen
basis
data
menurut
Ramakrishnan dan Gehrke (2003: 9) antara lain: 1) Kemandirian data Program aplikasi idealnya memberikan rincian representasi data dan penyimpanannya, sedangkan DBMS menyembunyikan rincian representasi data dan penyimpanannya.
17 2) Akses data yang efisien DBMS menggunakan berbagai teknik penyimpanan dan pengambilan data sehingga akses data dapat dilakukan secara efisien. 3) Integritas dan keamanan data Jika data selalu diakses melalui DBMS, maka DBMS dapat menjalankan batasan integritas data. Sebagai contoh, sebelum memasukkan data gaji untuk pegawai, DBMS dapat melakukan pemeriksaan apakah anggaran departemen mencukupi atau tidak. Selain itu, DBMS juga dapat menjalankan akses kontrol bagi pengguna yang berwenang untuk mengakses basis data. 4) Administrasi data Ketika beberapa pengguna saling berbagi data dengan memusatkan pada administrasi data, tenaga profesional dapat menawarkan peningkatan kinerja yang signifikan. Tenaga profesional yang memahami sifat dasar pengelolaan data dan penggunaan data oleh beberapa kelompok pengguna yang berbeda dapat mengatur representasi data sehingga meminimalkan redundansi dan melakukan tuning penyimpanan data yang lebih baik. 5) Concurrent access dan crash recovery DBMS melakukan penjadwalan akses data secara bersamaan sehingga pengguna berpikir bahwa data diakses hanya oleh satu pengguna pada waktu tertentu. Selanjutnya, DBMS akan melakukan proteksi bagi pengguna apabila terjadi kegagalan sistem. 6) Mengurangi waktu pengembangan aplikasi DBMS mendukung fungsi penting pada berbagai aplikasi yang mengakses data pada DBMS. Hal ini berkaitan dengan antarmuka tingkat tinggi terhadap data dan memberikan fasilitas pengembangan aplikasi secara cepat.
18 Sedangkan kerugian dari penggunaan sistem manajemen basis data menurut Connolly dan Begg (2005: 29) antara lain: 1) Kompleksitas Banyaknya fungsi yang harus dimiliki oleh sebuah DBMS yang handal membuat DBMS menjadi sebuah perangkat lunak yang sangat kompleks. 2) Ukuran memori yang diperlukan lebih besar Fungsi yang kompleks dan luas membuat DBMS menjadi perangkat lunak yang sangat besar, memerlukan banyak ruang hardisk, dan jumlah memori yang besar untuk berjalan. 3) Biaya dari DBMS Biaya DBMS bervariasi, tergantung pada lingkungan dan fungsi yang disediakan. Selain itu, terdapat pula biaya pemeliharaan tahunan untuk DBMS. 4) Biaya tambahan untuk perangkat keras Kebutuhan tempat penyimpanan bagi DBMS dan basis data terkadang memerlukan tempat penyimpanan tambahan. Untuk mencapai performa yang maksimal, mungkin diperlukan untuk membeli mesin yang lebih besar lagi. Hal ini tentu memerlukan tambahan biaya yang tidak sedikit, tergantung pada spesifikasi perangkat keras yang diperlukan. 5) Biaya konversi Dalam beberapa situasi, biaya DBMS dan perangkat keras tambahan mungkin tidak signifikan dibandingkan dengan biaya mengonversi aplikasi yang ada untuk berjalan di DBMS baru. Biaya ini juga mencakup biaya pelatihan pegawai untuk menggunakan sistem baru dan mungkin biaya kerja staf spesialis untuk membantu proses konversi dan menjalankan sistem baru.
19 6) Kinerja menurun akibat penggunaan DBMS Pada dasarnya, sistem berbasis file digunakan untuk aplikasi yang spesifik sehingga performa sistem sangat baik. Sedangkan DBMS digunakan untuk melayani banyak aplikasi sehingga beberapa aplikasi mungkin menjadi tidak secepat sebelumnya. 7) Kemungkinan gagal yang tinggi Sentralisasi sumber daya meningkatkan kerentanan sistem, karena semua pengguna dan aplikasi bergantung pada ketersediaan DBMS. Kegagalan komponen tertentu dapat menyebabkan terhentinya operasi.
2.1.6 Structured Query Language Menurut Connolly dan Begg (2005: 113), SQL (Structured Query Language) adalah transform oriented language, atau bahasa yang dirancang dengan penggunaan relasi untuk mengubah masukan menjadi keluaran yang dibutuhkan. Ada dua komponen utama dalam SQL, yaitu Data Definition Language dan Data Manipulation Language.
a. Data Definition Language DDL (Data Definition Language) adalah bahasa yang mengizinkan pengguna untuk menciptakan dan menghapus objek basis data, misalnya schema, table, view, index, dan domain. Berikut ini adalah perintah utama yang ada di dalam SQL untuk Data Definition Language: 1) CREATE CREATE digunakan untuk membuat objek dalam basis data. Pada umumnya, yang memiliki wewenang untuk menggunakan perintah ini adalah DBA (Database
20 Administrator). Ia memiliki wewenang untuk CREATE schema, CREATE domain, CREATE table, dan CREATE view. 2) ALTER ALTER digunakan untuk mengubah objek dalam basis data. Perubahan-perubahan yang dapat dilakukan oleh perintah ini meliputi penambahan dan penghapusan kolom dalam tabel, membuat dan menghapus batasan pada tabel, serta menetapkan dan menghapus standar dari suatu kolom. 3) DROP DROP digunakan untuk menghapus objek dalam basis data. Perintah DROP dapat dibagi menjadi dua tipe, yaitu RESTRICT dan CASCADE. Apabila pengguna menggunakan tipe RESTRICT, maka perintah DROP akan ditolak jika terdapat objek lain yang bergantung pada objek tersebut. Sedangkan untuk tipe CASCADE, operasi DROP dilakukan sesuai dengan perintah yang diinginkan.
b. Data Manipulation Language DML (Data Manipulation Language) adalah bahasa yang mengizinkan pengguna untuk memasukkan, memperbarui, menghapus, dan mengambil data dari basis data. Berikut ini adalah perintah utama yang ada di dalam SQL untuk Data Manipulation Language: 1) SELECT Perintah SELECT digunakan untuk mengambil dan menampilkan data yang berasal dari satu atau lebih tabel pada basis data. Dalam penggunaannya, perintah SELECT harus diikuti dengan klausa FROM.
21 2) INSERT Perintah INSERT digunakan untuk memasukkan data baru ke dalam basis data. Sebelum perintah INSERT digunakan, pengguna perlu membuat tabel terlebih dahulu dengan menggunakan perintah CREATE pada DDL. 3) UPDATE Perintah UPDATE digunakan untuk memperbarui data dalam basis data. Dalam penggunaannya, perintah UPDATE harus diikuti dengan klausa SET untuk menspesifikasikan nama kolom yang ingin diperbaharui. 4) DELETE Perintah DELETE digunakan untuk menghapus data dalam basis data. Dalam penggunaannya, perintah DELETE harus diikuti dengan klausa FROM untuk menentukan nama tabel yang datanya akan dihapus.
2.1.7 Entity-Relationship Modeling Menurut Connolly dan Begg (2005: 342), ER Modeling (Entity-Relationship Modeling) adalah salah satu model yang dapat digunakan untuk mendapatkan pemahaman yang tepat terhadap data dan bagaimana penggunaannya di dalam suatu perusahaan. Entity-Relationship Modeling menggunakan pendekatan top-down, dimulai dengan mengidentifikasikan data yang penting. Data yang penting itu disebut entitas, dimana hubungan di antaranya harus direpresentasikan dalam model dan kemudian ditambahkan beberapa atribut dan batasan. Kebalikan dari pendekatan top-down, pendekatan bottom-up dimulai dengan mengidentifikasikan data item (atribut dan relasi), kemudian mengidentifikasikan
22 entitasnya. Oleh karena itu, pendekatan bottom-up tidak efektif digunakan untuk pembuatan ER Modeling skala besar. Ada lima komponen dalam ER Modeling, yaitu tipe entitas, tipe relasi, atribut, keys, dan structural constraints.
a. Tipe Entitas Tipe entitas adalah sekumpulan objek dengan properti yang sama, yang diidentifikasi oleh perusahaan, dan memiliki keberadaan yang independen. Keberadaan tipe entitas dapat berupa keberadaan fisik (physical existence) atau abstrak (conceptual existence). Tipe entitas dapat diklasifikasikan menjadi dua jenis, yaitu: 1) Strong entity, yaitu tipe entitas yang keberadaannya tidak bergantung pada entitas lainnya. Strong entity disebut juga sebagai parent, owner, ataupun dominant. 2) Weak entity, yaitu tipe entitas yang keberadaannya bergantung pada entitas lainnya. Weak entity disebut juga sebagai child, dependent, ataupun subordinate.
b. Tipe Relasi Tipe relasi adalah sekumpulan asosiasi antara entitas-entitas yang ada dan mempunyai arti. Relasi mewakili atau menghubungkan antara dua atau lebih entitas (Atzeni et. al., 2003: 165). Relationship occurrence adalah sekumpulan asosiasi yang dapat diidentifikasikan secara unik, yang meliputi satu kejadian dari setiap entitas yang berpartisipasi. Derajat dari tipe relasi adalah jumlah dari entitas yang berpartisipasi dalam sebuah relasi tertentu. Entitas yang berpartisipasi dalam sebuah relasi disebut sebagai participant dalam relasi tersebut.
23 Recursive relationship adalah sebuah relasi dimana entitas yang sama dapat berpartisipasi lebih dari satu kali dengan peran yang berbeda.
c. Atribut Atribut merupakan sifat-sifat atau properti dari sebuah entitas atau relasi. Atribut menggambarkan sifat dasar dari entitas dan hubungannya (Atzeni et. al., 2003: 168). Domain atribut adalah kumpulan nilai yang diperbolehkan untuk satu atau lebih atribut. Ada tiga jenis atribut yang biasa digunakan dalam ER Modeling, yaitu: 1) Simple dan Composite Attributes Simple attribute adalah atribut yang terdiri dari satu komponen tunggal yang keberadaannya independen. Atribut ini sering disebut juga sebagai atomic attribute. Simple attribute tidak dapat dibagi lagi menjadi komponen yang lebih kecil. Composite attribute adalah atribut yang terdiri dari banyak komponen yang keberadaannya independen. Atribut ini dapat dibagi menjadi komponen lain yang lebih kecil, yang masing-masing memiliki keberadaan yang independen. 2) Single-Valued dan Multi-Valued Attributes Single-valued attribute adalah atribut yang memiliki nilai tunggal untuk setiap kejadian. Multi-valued attribute adalah atribut yang memiliki banyak nilai untuk setiap kejadian. 3) Derived Attributes Derived attribute adalah atribut yang nilainya dihasilkan dari satu atau beberapa atribut lainnya dan tidak harus berasal dari satu entitas.
24 d. Keys Ada lima jenis keys yang biasa digunakan dalam ER Modeling, yaitu: 1) Candidate Key Candidate key merupakan sejumlah kecil atribut dari entitas yang dapat mengidentifikasikan setiap kejadian dari entitas tersebut secara unik. 2) Primary Key Primary key merupakan candidate key yang dipilih untuk mengidentifikasikan setiap kejadian dari entitas secara unik. Pemilihan primary key pada suatu entitas didasarkan pada pertimbangan panjang atribut, jumlah minimal atribut yang dibutuhkan, serta tingkat keunikannya. 3) Alternate Key Alternate key merupakan kumpulan candidate key yang tidak terpilih menjadi primary key. 4) Composite Key Composite key merupakan candidate key yang terdiri dari dua atau lebih atribut. 5) Foreign Key Foreign key merupakan sebuah atribut atau sekumpulan atribut pada suatu relasi yang sama atau sesuai dengan candidate key dari relasi lainnya.
e. Structural Constraints Ada dua komponen dalam structural constraints, yaitu multiplicity serta cardinality dan participation constraints. Berikut ini adalah penjelasan dari masingmasing komponen:
25 1) Multiplicity Multiplicity adalah jumlah kejadian yang mungkin terjadi pada sebuah entitas yang berhubungan dengan kejadian dari entitas lainnya melalui suatu relasi. Derajat relasi yang biasa digunakan adalah binary relationship. Ada tiga tipe binary relationship yang biasanya digunakan, yaitu: a) Derajat hubungan one-to-one (1:1) Derajat hubungan 1:1 terjadi bila tiap anggota suatu entitas hanya boleh berpasangan dengan satu anggota dari entitas yang lain. Begitu pula sebaliknya, anggota dari entitas yang lain hanya boleh berpasangan dengan satu anggota dari entitas tersebut. b) Derajat hubungan one-to-many (1:*) Derajat hubungan 1:* terjadi bila tiap anggota suatu entitas boleh memiliki pasangan lebih dari satu anggota dari entitas lain. Dan sebaliknya, anggota dari entitas yang lain hanya boleh berpasangan dengan satu anggota dari entitas tersebut. c) Derajat hubungan many-to-many (*:*) Derajat hubungan *:* terjadi apabila tiap anggota suatu entitas boleh memiliki pasangan lebih dari satu anggota dari entitas lain dan anggota dari entitas yang lain juga boleh memiliki pasangan lebih dari satu anggota dari entitas tersebut. 2) Cardinality dan Participation Constraints Menurut Connolly dan Begg (2005: 363), pada dasarnya multiplicity terdiri atas dua batasan yang berbeda, yaitu: a) Cardinality, mendeskripsikan nilai maksimum dari relasi yang mungkin terjadi untuk entitas yang ikut serta pada relasi tersebut. b) Participation, menentukan apakah semua atau hanya beberapa entitas yang ikut berpartisipasi dalam sebuah relasi. Participation constraint dibagi menjadi dua
26 jenis, yaitu mandatory participation dan optional participation. Mandatory participation melibatkan semua entitas pada relasi tertentu. Sedangkan optional participation melibatkan beberapa entitas pada relasi tertentu.
2.1.8 Normalisasi Menurut Connolly dan Begg (2005: 388), normalisasi adalah suatu teknik yang digunakan untuk menghasilkan seperangkat relasi yang memiliki properti yang sesuai dengan kebutuhan perusahaan. Tujuan utama dari normalisasi adalah untuk mengurangi terjadinya redundansi data dan mengurangi masalah yang terjadi pada suatu relasi, yang dikenal dengan sebutan anomaly. Anomaly adalah suatu masalah yang timbul, seperti data ganda, data hilang, tempat penyimpanan memori yang boros, dan data yang tidak konsisten akibat dari proses penghapusan data, pembaruan data, pemasukan data, dan pergantian data. Berikut ini adalah beberapa tingkatan normalisasi: a. Unnormalized Form (UNF) Unnormalized Form (UNF) adalah suatu tabel yang terdiri dari satu atau lebih kelompok berulang (repeating group). Kelompok berulang adalah sebuah atribut atau himpunan atribut di dalam tabel yang memiliki lebih dari satu nilai untuk keberadaan tunggal. b. First Normal Form (1NF) Suatu relasi dikatakan 1NF jika titik temu tiap baris dan kolom pada relasi tersebut mengandung satu dan hanya satu nilai. Atau dapat dikatakan sebuah relasi akan berada dalam bentuk 1NF jika kelompok perulangan telah hilang. Proses-proses yang dilakukan untuk mengubah UNF menjadi 1NF adalah sebagai berikut:
27 1) Pilih satu atau sekumpulan atribut sebagai key untuk unnormalized table; 2) Identifikasi kelompok perulangan yang terdapat pada unnormalized table; 3) Hilangkan kelompok perulangan yang ada, dengan cara memindahkan kelompok perulangan tersebut ke dalam relasi baru yang terpisah dan meninggalkan salinan dari primary key. c. Second Normal Form (2NF) Relasi dikatakan 2NF jika relasi tersebut telah berada pada 1NF dan setiap atribut yang bukan primary key memiliki ketergantungan penuh (fully functionally dependent) terhadap primary key. Ketergantungan penuh terjadi jika A dan B merupakan atribut dari suatu relasi, dan B dikatakan bergantung penuh terhadap A (AB), namun bukan merupakan subset dari A. Proses-proses yang dilakukan untuk mengubah 1NF menjadi 2NF adalah sebagai berikut: 1) Identifikasi primary key untuk relasi 1NF; 2) Identifikasi ketergantungan fungsional dalam relasi; 3) Jika terdapat ketergantungan parsial terhadap primary key, maka hilangkan dengan menempatkannya dalam relasi yang baru dan meninggalkan salinan dari primary key. d. Third Normal Form (3NF) Suatu relasi dikatakan 3NF jika relasi tersebut berada dalam bentuk 1NF dan 2NF, serta tidak ada atribut yang bukan primary key bergantung secara transitif (transitively dependent) terhadap primary key. Ketergantungan transitif terjadi dalam kondisi dimana A, B, dan C merupakan atribut dari suatu relasi, serta AB dan BC. Maka dapat dikatakan C bergantung secara transitif terhadap A melalui B. Proses-proses yang dilakukan untuk mengubah 2NF menjadi 3NF adalah sebagai berikut:
28 1) Identifikasi primary key untuk relasi 2NF; 2) Identifikasi ketergantungan fungsional dalam relasi; 3) Jika terdapat ketergantungan transitif terhadap primary key, maka hilangkan dengan menempatkannya dalam relasi yang baru dan meninggalkan salinan dari primary key.
2.1.9 Metodologi Perancangan Basis Data Menurut Connolly dan Begg (2005: 291), perancangan basis data merupakan suatu proses menciptakan rancangan basis data yang akan mendukung operasi dan tujuan perusahaan. Metodologi
perancangan
basis
data
terdiri
dari
tahapan-tahapan
yang
membimbing perancang dalam menggunakan teknik yang tepat pada setiap tahapan pembuatan proyek, terutama dalam merencanakan, melaksanakan, mengatur, dan mengevaluasi perkembangan perancangan basis data. Terdapat tiga tahapan utama dalam perancangan basis data, yaitu perancangan basis data konseptual (conceptual database design), perancangan basis data logikal (logical database design), dan perancangan basis data fisikal (physical database design).
2.1.9.1 Perancangan Basis Data Konseptual Perancangan basis data konseptual adalah proses membangun sebuah model dari data yang digunakan di perusahaan dan terlepas dari semua pertimbangan fisikal. Langkah-langkah yang dilakukan dalam perancangan basis data konseptual adalah sebagai berikut:
29 a. Mengidentifikasi tipe entitas Menentukan dan mendefinisikan objek-objek utama yang menjadi perhatian utama dari pengguna. Identifikasi entitas ini terdiri dari nama entitas, deskripsi dari entitas, alias, dan kejadian. Salah satu metode dalam mengidentifikasi entitas adalah dengan melihat rincian kebutuhan pengguna. b. Mengidentifikasi tipe relasi Mengidentifikasi semua relasi yang ada antara masing-masing entitas. Identifikasi relasi ini terdiri dari nama entitas, multiplicity, dan nama relasi. c. Mengidentifikasi dan mengasosiasikan atribut dengan tipe entitas atau relasi Menghubungkan atribut dengan entitas atau relasi yang sesuai. Identifikasi atribut ini terdiri dari nama entitas, atribut, deskripsi dari atribut, tipe data, nulls, dan multi valued. d. Menentukan domain atribut Domain yang ditetapkan untuk setiap atribut meliputi kumpulan nilai yang diperbolehkan, ukuran, dan format dari setiap atribut tersebut. e. Menentukan candidate, primary, dan alternate key Mengidentifikasi satu atau lebih atribut untuk menjadi candidate key. Kemudian jika terdapat lebih dari satu candidate key, maka pilihlah salah satu menjadi primary key dan yang lainnya menjadi alternate key. f. Mempertimbangkan penggunaan enhanced modeling concept (optional) Mempertimbangkan penggunaan enhanced modeling concept, seperti spesialisasi, generalisasi, agregasi, dan komposisi. g. Memeriksa redundansi pada model data konseptual Untuk menguji model data dari redundansi, yang harus dilakukan adalah sebagai berikut:
30 1) Memeriksa ulang relasi one-to-one (1:1); 2) Menghilangkan relasi yang berulang. h. Memvalidasi model data konseptual dengan transaksi pengguna Memastikan bahwa model data konseptual dapat mendukung transaksi yang diperlukan. Dilakukan dengan mendeskripsikan transaksi dan menggunakan jalur transaksi. i. Melakukan tinjauan model data konseptual dengan pengguna Memastikan model data konseptual sudah sesuai dengan kebutuhan pengguna dan dapat menjadi representasi nyata dari kebutuhan perusahaan.
2.1.9.2 Perancangan Basis Data Logikal Perancangan basis data logikal adalah proses membangun sebuah model data yang digunakan di perusahaan berdasarkan pada sebuah model data yang spesifik, tetapi terlepas dari DBMS tertentu dan pertimbangan fisikal lainnya. Langkah-langkah yang dilakukan dalam perancangan basis data logikal adalah sebagai berikut: a. Membuat relasi untuk model data logikal Membuat relasi dalam model data logikal yang dapat menggambarkan entitas, relasi, dan atribut yang telah diidentifikasi. b. Memvalidasi relasi dengan normalisasi Normalisasi adalah suatu teknik yang digunakan untuk menghasilkan seperangkat relasi yang memiliki properti yang sesuai dengan kebutuhan perusahaan. Tujuan utama dari normalisasi adalah untuk mengurangi terjadinya redundansi data dan mengurangi masalah yang terjadi pada suatu relasi yang dikenal dengan sebutan anomaly.
31 c. Memvalidasi relasi dengan transaksi pengguna Memastikan model data logikal yang telah dibuat dapat mendukung transaksi yang dibutuhkan, seperti yang ada dalam rincian kebutuhan pengguna. d. Menentukan integrity constraints Integrity constraints yang perlu dipertimbangkan adalah: 1) Data tidak boleh berupa null; 2) Domain constraint dari setiap atribut; 3) Multiplicity; 4) Primary key dari entitas tidak boleh berupa null; 5) Jika foreign key berisi suatu nilai, maka nilai tersebut harus menunjuk kepada tuple yang ada pada relasi parent; 6) General constraints. e. Melakukan tinjauan model data logikal dengan pengguna Pengguna diminta untuk memeriksa kembali model data logikal untuk memastikan bahwa model data logikal tersebut sudah sesuai untuk menjadi representasi nyata dari kebutuhan perusahaan. f. Menggabungkan model data logikal menjadi model global (optional) Meskipun setiap model data logikal haruslah benar, dapat dipahami, dan tidak ambigu, setiap model tersebut hanya mewakili sebagian dari basis data yang lengkap. Oleh karena itu, harus dilakukan penggabungan model data logikal menjadi model global yang digunakan untuk memecahkan konflik antar view dan overlap yang ada. g. Memeriksa pertumbuhan di masa mendatang Menduga apakah terjadi perubahan yang signifikan di masa depan dan untuk menaksir apakah model data logikal dapat menyesuaikan dengan perubahan tersebut.
32
2.1.9.3 Perancangan Basis Data Fisikal Perancangan basis data fisikal adalah proses untuk menghasilkan suatu deskripsi implementasi dari suatu basis data pada penyimpanan sekunder, juga menjelaskan relasi dasar, pengaturan file dan index yang digunakan untuk mencapai akses data yang efisien, integrity constraints, serta mekanisme keamanan. Langkah-langkah yang dilakukan dalam perancangan basis data fisikal adalah sebagai berikut: a. Menerjemahkan model data logikal untuk target DBMS Menghasilkan skema basis data yang saling berelasi dari model data logikal, yang dapat diimplementasikan pada target DBMS. Dimulai dari merancang relasi dasar, representasi dari derived data, dan general constraints. b. Merancang file organizations dan indexes Menentukan organisasi file yang paling baik untuk menyimpan relasi dasar dan index yang diperlukan untuk mencapai akses data yang efisien, serta bagaimana relasi dan tuple disimpan pada penyimpanan sekunder. Berikut ini adalah empat tahapan dalam merancang organisasi file dan index: 1) Menganalisis transaksi; 2) Memilih file organizations; 3) Memilih indexes; 4) Mengestimasi kebutuhan disk space. Salah satu jenis index yang dapat dibuat untuk mempercepat pencarian data di dalam basis data adalah clustered index. Menurut Ciocola dan Georgescu (2011: 14), clustered index adalah index yang terdiri dari data di dalam tabel yang disusun secara fisikal. Ketika membuat clustered index pada sebuah tabel, baris-baris data disusun
33 kembali pada disk berdasarkan kata kunci yang dijadikan index secara berurutan. Oleh karena itu, hanya ada satu clustered index yang dapat dibentuk dalam satu tabel. c. Merancang mekanisme keamanan Merancang mekanisme keamanan untuk basis data yang ditetapkan oleh pengguna selama proses pengumpulan kebutuhan perusahaan dan tingkatan dalam siklus hidup basis data. d. Mempertimbangkan petunjuk controlled redundancy e. Memonitor dan memperbaiki sistem operasional Memonitor dan meningkatkan performa dari sistem dengan memperbaiki rancangan yang tidak sesuai dengan kebutuhan.
2.1.10 Siklus Hidup Basis Data Menurut Connolly dan Begg (2005: 283), siklus hidup basis data atau DBLC (Database Life Cycle) merupakan komponen yang terpenting dalam sistem basis data. Pada aplikasi basis data berskala kecil yang jumlah penggunanya sedikit, siklus hidup pengembangan aplikasi basis datanya tidak akan terlalu kompleks. Sebaliknya bila aplikasi dibuat dalam skala yang lebih besar atau kompleks dengan jumlah pengguna antara puluhan sampai ribuan, serta menggunakan ratusan queries dan program aplikasi, siklus hidup pengembangan aplikasi basis datanya pun akan menjadi lebih kompleks. Gambar 2.2 menggambarkan tahapan DBLC.
34
Gambar 2.2 Tahapan DBLC
35 Berikut ini adalah Tabel 2.1 yang berisi rangkuman aktivitas utama yang dilakukan pada setiap tahapan DBLC: Tabel 2.1 Tahapan dan Aktivitas Utama DBLC Tahapan DBLC Database Planning
Aktivitas Utama Merencanakan bagaimana tahapan dari DBLC dapat terealisasi dengan efektif dan efisien.
System Definition
Menspesifikasikan ruang lingkup dari sistem basis data.
Requirements Collection
Mengumpulkan dan menganalisis kebutuhan dari sistem basis
and Analysis
data yang baru.
Database Design
Perancangan basis data konseptual, logikal, dan fisikal.
DBMS Selection
Memilih DBMS yang sesuai dengan sistem basis data.
Application Design
Merancang antarmuka pengguna dan program aplikasi yang akan memproses basis data.
Prototyping (optional)
Membangun
model
untuk
sistem
basis
data
yang
memungkinkan perancang untuk memvisualisasikan dan mengevaluasi sistem akhir. Implementation
Data Conversion and Loading
Testing
Membuat definisi fisikal dari basis data dan aplikasinya. Memasukkan data lama ke dalam basis data baru dan mengubah koneksi dari aplikasi lama ke sistem basis data baru. Basis data diperiksa kembali untuk mengetahui kesalahan dan divalidasi terhadap kebutuhan pengguna.
Operational
Sistem basis data diimplementasikan secara keseluruhan dan
Maintenance
diperiksa
secara
berkesinambungan.
Saat
dibutuhkan,
kebutuhan baru dapat ditambahkan melalui tahapan DBLC.
36 Berikut ini adalah penjelasan dari masing-masing tahapan DBLC yang ada pada Gambar 2.2: a. Database Planning Database planning adalah merencanakan bagaimana langkah-langkah dari DBLC dapat diterapkan dalam sistem basis data secara efektif dan efisien. Ada tiga isu pokok dalam merumuskan suatu strategi sistem informasi, yaitu: 1) Mengidentifikasikan rencana dan tujuan dengan menentukan sistem informasi yang diperlukan; 2) Mengevaluasi sistem informasi yang ada sekarang untuk menentukan kekuatan dan kelemahan yang ada; 3) Memperkirakan peluang IT yang mungkin menghasilkan keuntungan kompetitif. b. System Definition System definition menjelaskan cakupan dan batasan-batasan dari sistem basis data dan pandangan pengguna yang utama. Pandangan pengguna sangat diperlukan untuk mengidentifikasikan informasi-informasi yang dibutuhkan oleh pengguna. Pandangan pengguna akan mendefinisikan apa saja yang harus ada dalam suatu sistem basis data. c. Requirements Collection and Analysis Requirements collection and analysis adalah proses pengumpulan dan analisis informasi tentang bagian organisasi yang akan didukung oleh aplikasi basis data, serta menggunakan informasi tersebut untuk mengidentifikasikan kebutuhan pengguna terhadap sistem yang baru. Teknik pencarian fakta adalah teknik yang digunakan untuk mendapatkan informasi yang dibutuhkan.
37 Ada lima teknik pencarian fakta yang biasanya digunakan, yaitu: 1) Pemeriksaan dokumen (examining documentation) Dokumentasi dapat digunakan untuk membantu menyediakan informasi perusahaan berkaitan dengan masalah yang sedang dihadapi. Dengan mempelajari dokumen, formulir, laporan dan file yang berhubungan dengan sistem yang ada, pemahaman tentang sistem dapat dengan mudah diperoleh. 2) Wawancara Dengan wawancara, maka informasi akan didapatkan langsung dari individuindividu yang bersangkutan. Tujuan dilakukan wawancara adalah untuk menemukan fakta, memverifikasi, mengklarifikasi, menampilkan antusiasme, melibatkan pengguna akhir, mengidentifikasi kebutuhan, dan mendapatkan opini dari orang yang berkepentingan. 3) Observasi Observasi adalah salah satu teknik yang paling efektif untuk memahami sebuah sistem. Dengan teknik observasi, informasi dapat ditemukan dengan berpartisipasi dan mengawasi sistem yang ada secara langsung. 4) Penelitian Penelitian adalah suatu teknik yang dilakukan dengan meneliti aplikasi dan masalah yang ada. Sebagai tambahan, dapat digunakan majalah-majalah, buku-buku, dan internet sebagai sumber informasi. Dari hasil riset, akan didapatkan informasi tentang bagaimana masalah serupa dapat dipecahkan. 5) Kuesioner Kuesioner adalah salah satu cara pengumpulan fakta dari sejumlah orang dengan menggunakan suatu dokumen. Teknik ini sangat efisien ketika ingin mengumpulkan informasi dari banyak orang.
38 d. Database Design Database design merupakan proses menciptakan rancangan untuk basis data yang akan mendukung operasi dan tujuan perusahaan. Proses perancangan basis data dibagi menjadi tiga tahapan utama, yaitu: 1) Perancangan basis data konseptual; 2) Perancangan basis data logikal; 3) Perancangan basis data fisikal. e. DBMS Selection Menurut Connolly dan Begg (2005: 296), tahapan dalam DBMS selection, yaitu: 1) Mempelajari DBMS yang ada dan yang sesuai dengan kriteria kebutuhan pengguna; 2) Membatasi pilihan DBMS menjadi dua atau tiga pilihan saja; 3) Mengevaluasi produk DBMS; 4) Merekomendasikan produk DBMS yang terbaik dan membuat dokumentasi dari tahapan pemilihan tersebut. f. Application Design Application design adalah merancang antarmuka pengguna dan program aplikasi yang akan memproses basis data. Harus dipastikan bahwa semua kebutuhan pengguna tersedia di dalam rancangan aplikasi basis data. g. Prototyping (optional) Prototyping adalah proses membangun sebuah model kerja dari aplikasi basis data. Tujuan utama prototyping adalah memungkinkan pengguna menggunakan prototype untuk mengidentifikasi fitur-fitur yang bekerja dengan baik pada sistem, atau fitur-fitur yang masih kurang, dan memberikan masukan fitur-fitur baru ke dalam aplikasi basis data.
39 h. Implementation Implementation merupakan realisasi fisik dari basis data dan rancangan aplikasi. Implementasi basis data dapat dicapai dengan menggunakan: 1) DDL (Data Definition Language), digunakan untuk membuat skema basis data atau file basis data yang masih kosong dan juga untuk mengimplementasikan pandangan pengguna yang diinginkan; 2) Third Generation Language atau Fourth Generation Language (3GL atau 4GL) digunakan untuk membuat program aplikasi, termasuk transaksi basis data yang disertakan dengan menggunakan DML (Data Manipulation Language). i. Data Conversion and Loading Data conversion and loading merupakan pemindahan data yang ada dan mengonversikannya dengan beberapa aplikasi, agar dapat dijalankan pada basis data yang baru. Tahapan ini dibutuhkan hanya ketika sistem basis data yang baru menggantikan sistem yang lama. Pada saat ini, DBMS sangat bermanfaat untuk memanggil file yang sudah ada ke dalam basis data yang baru. j. Testing Testing adalah suatu proses eksekusi program aplikasi dengan tujuan untuk mencari kesalahan, dengan menggunakan strategi tes yang direncanakan dan data yang sesungguhnya. Apabila ditemukan adanya kesalahan, maka akan dilakukan perbaikan terhadap basis data dan aplikasi yang telah dibuat sebelumnya. k. Operational Maintenance Operational maintenance merupakan proses mengawasi dan memelihara sistem setelah dilakukannya instalasi. Aktivitas yang terdapat pada operational maintenance yaitu: 1) Mengawasi kinerja sistem; 2) Memelihara dan memperbarui aplikasi basis data (jika dibutuhkan).
40
2.1.11 Data Flow Diagram Menurut Whitten et. al. (2004: 326), DFD (Data Flow Diagram) adalah model proses yang digunakan untuk menggambarkan aliran data melalui sebuah sistem dan tugas atau pengolahan yang dilakukan oleh sistem. Tabel 2.2 berisi notasi-notasi yang ada pada DFD. Tabel 2.2 Notasi pada DFD Simbol
Keterangan Process
Process Name
adalah kerja yang dilakukan sebagai respon terhadap aliran data masuk atau kondisi. Sinonimnya adalah transformasi. Data Flow menunjukkan input data ke proses atau output data (atau informasi) dari proses. External Agent mendefinisikan orang, unit organisasi, sistem lain, atau organisasi lain, yang berada di luar lingkup proyek tetapi berinteraksi dengan sistem. Data Store adalah inventori data yang ditujukan untuk penggunaan selanjutnya. Sinonimnya adalah file dan basis data.
2.1.12 Bagan Alir Menurut Indrajani (2011: 22), bagan alir (flow chart) merupakan grafik atau bagan arus yang menggambarkan langkah-langkah penyelesaian suatu masalah. Fungsi lain dari bagan alir yaitu untuk menggambarkan tahapan-tahapan penyelesaian suatu masalah secara sederhana, rapi, dan jelas, serta dapat membantu para pembuat aplikasi untuk
41 memecahkan masalah ke dalam bagian-bagian kecil. Tabel 2.3 berisi notasi-notasi yang ada pada bagan alir. Tabel 2.3 Notasi pada Bagan Alir Simbol
Keterangan Document menggambarkan semua jenis dokumen, merupakan formulir yang digunakan untuk mencatat data. Connector penghubung bagian-bagian flow chart di halaman lain. Jika untuk menggambarkan flow chart suatu sistem diperlukan lebih dari satu halaman, simbol ini harus digunakan untuk menunjukkan ke mana dan bagaimana flow chart terkait satu dengan lainnya. Manual Operation menggambarkan pekerjaan manual.
Decision menggambarkan keputusan yang harus dibuat dalam proses pengolahan data. Flowline merepresentasikan alur kerja. Terminal Point merepresentasikan awal atau akhir flow chart.
42
2.1.13 Internet Menurut Connolly dan Begg (2005: 994), internet adalah sekumpulan jaringan komputer yang saling terkoneksi. Menurut Williams dan Sawyer (2007: 17), internet disebut sebagai induk dari semua jaringan, karena internet menghubungkan ratusan bahkan ribuan jaringan yang lebih kecil di seluruh dunia. Jaringan yang lebih kecil dapat berupa jaringan pendidikan, komersial, militer, bahkan jaringan individual.
2.1.14 World Wide Web Menurut Connolly dan Begg (2005: 998), World Wide Web (WWW) adalah sistem berbasis hypermedia yang menyediakan penelusuran informasi pada internet secara tidak berurutan dengan menggunakan hyperlinks. Menurut Williams dan Sawyer (2007: 17), World Wide Web atau yang sering disebut web adalah komponen internet yang berupa multimedia. Web didefinisikan sebagai sistem interkoneksi komputer internet (disebut server) yang mendukung dokumen-dokumen berformat multimedia. Kata multimedia yang berarti banyak media, berkaitan dengan teknologi yang menyajikan informasi di lebih dari satu media, misalnya teks, gambar tidak bergerak, gambar bergerak, dan suara. Dengan kata lain, web menyediakan informasi dalam beragam bentuk.
2.1.15 Terminologi Internet dan Web Terminologi internet dan web yang akan dibahas yaitu web browser, Uniform Resource Locator, hypertext, Hypertext Markup Language, Transmission Control Protocol/Internet Protocol, dan Hypertext Transfer Protocol.
43 a. Web Browser Menurut Williams dan Sawyer (2007: 64), web browser atau yang sering disebut browser adalah perangkat lunak yang memungkinkan pengguna untuk mencari dan mengakses beragam komponen web. Menurut Turban et. al. (2004: 483), web browser adalah aplikasi perangkat lunak yang digunakan oleh pengguna untuk mengakses web. Web browser menjadi alat akses umum karena memberikan tampilan yang sama pada berbagai sistem operasi.
b. Uniform Resource Locator Menurut Williams dan Sawyer (2007: 66), URL (Uniform Resource Locator) adalah kumpulan karakter yang menunjuk pada potongan informasi khusus di bagian mana saja pada web. Dengan kata lain, URL adalah alamat situs web yang unik (tidak ada dua situs berbeda yang memiliki alamat sama). Menurut Turban et. al. (2004: 483), URL adalah sekumpulan karakter yang mengidentifikasikan alamat dari suatu sumber yang spesifik pada web.
c. Hypertext Menurut Williams dan Sawyer (2007: 68), hypertext adalah koneksi ke dokumen atau halaman web lain yang berisi informasi terkait. Hypertext sering juga disebut hyperlink, hotlink, atau link. Menurut Whitten et. al. (2004: 627), hypertext dibuat untuk menavigasi di dalam dan di antara halaman situs web. Kata, istilah, atau frasa yang ditandai sebagai sebuah hypertext biasanya diformat sebagai teks bergaris bawah dengan warna tertentu.
44 d. Hypertext Markup Language Menurut Williams dan Sawyer (2007: 67), HTML (Hypertext Markup Language) adalah sekumpulan perintah khusus (disebut tag atau markup) yang dipakai untuk menentukan struktur, bentuk, dan link pada dokumen ke dokumen multimedia lain di web. Menurut Turban et. al. (2004: 482), HTML merupakan bahasa standar bagi web yang memformat dokumen dan menyatukan link dynamic hypertext ke penyimpanan dokumen lain pada komputer yang sama ataupun berbeda.
e. Transmission Control Protocol/Internet Protocol Menurut Williams dan Sawyer (2007: 62), TCP/IP (Transmission Control Protocol/Internet Protocol) adalah protokol yang memungkinkan semua komputer menggunakan data yang ditransmisikan melalui internet. TCP/IP digunakan pada semua transaksi internet, mulai dari mengirim email sampai dengan mengunduh gambar dari suatu situs web. Menurut Turban et. al. (2004: 469), TCP/IP adalah sebuah protokol yang memungkinkan untuk mengirim file yang berisi informasi melalui jaringan, dengan jaminan file akan terkirim dengan utuh.
f. Hypertext Transfer Protocol Menurut Williams dan Sawyer (2007: 66), HTTP (Hypertext Transfer Protocol) adalah aturan komunikasi yang memungkinkan browser tersambung ke web server. Menurut Connolly dan Begg (2005: 998), HTTP menjelaskan bagaimana client dan server berkomunikasi. HTTP merupakan sebuah protokol yang digunakan untuk mentransfer halaman web melalui internet.
45
2.1.16 Aturan Perancangan Antarmuka Pengguna Menurut Shneiderman dan Plaisant (2010: 88), ada delapan aturan yang dapat digunakan sebagai petunjuk dasar yang baik dalam merancang antarmuka pengguna. Delapan aturan ini lebih dikenal dengan sebutan Eight Golden Rules of Interface Design. Isi dari kedelapan aturan tersebut adalah sebagai berikut: a. Berusaha untuk konsisten Konsistensi dilakukan pada urutan tindakan, perintah, dan istilah-istilah yang digunakan pada prompt, menu, serta layar bantuan. b. Memungkinkan pengguna untuk menggunakan shortcut Ada kebutuhan dari pengguna yang sudah ahli untuk meningkatkan kecepatan interaksi sehingga diperlukan adanya singkatan (shortcut), tombol fungsi, dan fasilitas makro. c. Memberikan umpan balik yang informatif Untuk setiap tindakan pengguna, sebaiknya disertakan suatu sistem umpan balik. Untuk tindakan yang sering dilakukan dan tidak terlalu penting, dapat diberikan umpan balik yang sederhana. Tetapi ketika tindakan tersebut merupakan hal yang penting, maka umpan balik sebaiknya lebih substansial. d. Merancang dialog yang memberikan penutupan (keadaan akhir) Urutan tindakan sebaiknya diorganisir dalam suatu kelompok dengan bagian awal, tengah, dan akhir. Umpan balik yang informatif akan mengindikasikan bahwa cara yang dilakukan sudah benar dan dapat mempersiapkan kelompok tindakan selanjutnya. e. Memberikan pencegahan kesalahan Sebaiknya sistem dilengkapi dengan pencegahan kesalahan agar tidak terjadi kesalahan yang fatal oleh pengguna. Jika terjadi kesalahan, sistem dapat mendeteksi kesalahan tersebut dengan cepat dan memberikan pencegahan kesalahan, serta umpan balik yang mudah dipahami oleh pengguna.
46 f. Memungkinkan pembalikan aksi yang mudah Dengan adanya pembalikan aksi yang mudah, kekhawatiran pada pengguna akan berkurang, karena pengguna mengetahui bahwa kesalahan yang dilakukan dapat dibatalkan. Dengan demikian pengguna tidak takut untuk mengeksplorasi pilihanpilihan lain yang belum biasa digunakannya. g. Mendukung pusat kendali internal Pengguna lebih menginginkan menjadi pengontrol sistem dan sistem akan merespon tindakan yang dilakukan pengguna, daripada sistem yang mengontrol pengguna. Sebaiknya sistem dirancang sedemikian rupa sehingga pengguna tidak menjadi responden, melainkan inisiatornya. h. Mengurangi beban ingatan jangka pendek Manusia memiliki keterbatasan ingatan jangka pendek sehingga membutuhkan tampilan yang sederhana, serta diberikan waktu yang cukup untuk pelatihan kode, mnemonic, dan urutan tindakan.
2.1.17 PHP Menurut Welling dan Thomson (2005: 2), PHP adalah sebuah scripting pada lingkungan server yang dirancang khusus untuk web. Kode PHP dapat disatukan dalam halaman yang berisi tag-tag HTML yang akan dieksekusi setiap halaman tersebut dikunjungi. Beberapa keunggulan PHP dibandingkan dengan bahasa scripting lainnya adalah sebagai berikut: a. Performa yang tinggi PHP sangat efisien, menggunakan sebuah server yang tidak mahal dan dapat melayani jutaan hits setiap harinya.
47 b. Tampilan ke banyak sistem basis data PHP memiliki koneksi ke banyak DBMS, antara lain Adabas D, Ingres, Oracle, dBase, InterBase, Ovrimos, Empress, FrontBase, PostgreSQL, mSQL, Solid, HyperWave, Direct MS-SQL, Sybase, IBM DB2, MySQL, Velocis, Informix, ODBC, dan Unix dbm. c. Memiliki library untuk berbagai web yang umum PHP dilengkapi dengan banyak library yang memudahkan pengguna untuk membuat sebuah website yang umum. d. Biaya yang murah Dengan sifatnya yang open source, maka PHP menjadi salah satu bahasa pemrograman yang bersifat gratis. e. Mudah dipelajari dan digunakan Sintaks-sintaks PHP menyerupai sintaks-sintaks dari bahasa pemrograman lainnya seperti C, C++, Java, dan Perl sehingga lebih mudah dipelajari dan digunakan. f. PHP dapat digunakan hampir di semua sistem operasi PHP dapat berjalan hampir di semua jenis sistem operasi, antara lain pada LINUX dan varian UNIX, Microsoft Windows, MAC OS X, serta RISC OS. g. PHP bersifat cross platform PHP dapat berjalan pada beberapa jenis web server, antara lain Apache, Microsoft Internet Information Services, Personal web server, Netscape, Iplanet server, Caudium, Xitami, OmniHTTPd, dan sebagainya. h. Ketersediaan kode sumber Pengguna diberikan akses ke kode sumber PHP sehingga bebas untuk menambahkan ataupun memodifikasinya.
48 i. PHP adalah program yang bersifat open source Karena bersifat open source, siapapun dapat mengubah dan menambahkan fungsifungsi baru secara bebas. Oleh karena itu, PHP memiliki siklus hidup yang sangat singkat atau selalu up to date dan mengikuti perkembangan teknologi internet.
2.1.18 MySQL Menurut Welling dan Thomson (2005: 3), MySQL adalah sistem manajemen basis data yang berhubungan dan sangat cepat. Sebuah basis data memungkinkan untuk menyimpan, mencari, mengurutkan, dan menerima data secara efisien. MySQL bersifat multi user, multithread server, dan menggunakan SQL atau bahasa pemrograman yang terstruktur. Beberapa keunggulan MySQL dibandingkan dengan DBMS lainnya adalah sebagai berikut: a. Open source software MySQL dilengkapi dengan kode sumber yang lengkap. Ini berarti pengguna dapat mempelajari kode sumber tersebut dan mengubahnya sesuai dengan kebutuhan pengguna. Karena merupakan perangkat lunak open source, dapat ditemukan banyak dukungan dari perangkat lunak lain. b. SQL support Hal ini dikarenakan MySQL mendukung SQL, yaitu sebuah bahasa yang digunakan untuk membuat query data dari sebuah basis data. c. Super performance and reliability MySQL memiliki performa yang sangat cepat dan terpercaya, bahkan di lingkungan yang memiliki kebutuhan yang kompleks.
49 d. Ease of use MySQL merupakan sebuah manajemen relasi basis data yang sederhana namun memiliki fitur-fitur yang kuat. MySQL juga mudah untuk dikonfigurasi dan digunakan, dilengkapi dengan aplikasi client atau server, serta dilengkapi dengan tools lain yang berfungsi untuk memudahkan administrasi basis data.
2.1.19 Apache Web Server Menurut Whitten et. al. (2004: 486), web server melayani permintaan halaman website internet ataupun intranet. Server ini berkomunikasi dengan fat client dan thin client dengan memberikan kepada client tersebut dokumen-dokumen dalam format seperti HTML dan data dalam format seperti XML. Cara kerja web melibatkan komunikasi antara dua komputer, satu sebagai server, dan satu sebagai client. Server akan mengirimkan file ketika client memintanya. Apache merupakan salah satu contoh perangkat lunak web server yang dikembangkan oleh Apache Software Foundation. Apache adalah web server yang dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft Windows, Novell Netware, serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web ini adalah HTTP. Apache memiliki fitur-fitur canggih, seperti pesan kesalahan yang dapat dikonfigurasi dan didukung oleh sejumlah antarmuka pengguna berbasis grafik (GUI) yang memudahkan penanganan server.
50
2.1.20 YSlow Menurut Zakas (2012), YSlow adalah add-on dari Firefox yang terintegrasi dengan Firebug. YSlow dapat digunakan untuk menganalisis performa halaman website. Berikut ini adalah beberapa aturan yang digunakan oleh YSlow untuk menghasilkan halaman website dengan performa tinggi: a. Meminimalisasi HTTP requests Waktu respon dapat diminimalisasi dengan cara mengurangi jumlah komponen pada halaman website sehingga akan mengurangi HTTP request untuk menerjemahkan halaman tersebut. Cara untuk mengurangi HTTP request adalah menggabungkan file, menggabungkan script, dan menggabungkan CSS. b. Menghindari src atau href kosong Src atau href yang kosong akan memperlambat dan menghambat server dengan meminta halaman yang tidak pernah ada. c. Menambahkan header expires Halaman website dapat menjadi kompleks dengan semakin banyaknya script, stylesheet, gambar, dan flash. Dengan adanya header expires, semua komponen tersebut menjadi cacheable sehingga meminimalisasi HTTP request yang tidak diperlukan. d. Mengompres komponen dengan gzip Kompresi dapat mengurangi waktu respon dengan cara mengurangi ukuran HTTP response. Gzip adalah metode kompresi yang efektif untuk mengurangi ukuran respon sampai dengan 70%. e. Meletakkan CSS pada bagian atas Meletakkan CSS pada bagian atas (head) dokumen akan membuat halaman website dapat diakses lebih cepat.
51 f. Meletakkan JavaScript pada bagian bawah JavaScript menghambat unduhan paralel, artinya ketika sebuah script diunduh, browser tidak dapat mengunduh komponen lain. Oleh karena itu, script harus diletakkan pada bagian bawah dokumen. g. Menghindari ekspresi CSS Ekspresi CSS akan dievaluasi secara terus-menerus, yaitu ketika halaman diterjemahkan dan diperbarui. Contoh ekspresi CSS adalah background-color: expression((new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00");
h. Membuat JavaScript dan CSS secara eksternal Membuat dokumen JavaScript dan CSS secara eksternal akan mempercepat loading halaman website, karena dokumen-dokumen tersebut disimpan oleh browser. i. Memperkecil ukuran JavaScript dan CSS Memperkecil ukuran JavaScript dan CSS dapat dilakukan dengan cara mengurangi spasi, baris baru, dan tabulasi. j. Menghilangkan duplikasi JavaScript dan CSS JavaScript dan CSS yang terduplikasi akan membuat HTTP request yang tidak diperlukan dan menyebabkan duplikasi dalam pengeksekusian JavaScript. k. Mengonfigurasi tag entitas (ETags) ETags adalah mekanisme web server dan browser yang digunakan untuk menentukan apakah suatu komponen di dalam cache browser sesuai dengan komponen yang ada pada server sumbernya. l. Menghindari kesalahan HTTP 404 (Not Found) Kesalahan HTTP 404 menyebabkan pemakaian server yang tidak diperlukan. m. Jangan mengatur ukuran gambar pada HTML Mengatur dimensi gambar dengan atribut width dan height pada elemen image dapat memperlambat waktu respon.
52
2.2 Teori-Teori Khusus Teori-teori khusus yang akan dibahas adalah sistem informasi kepegawaian, penerimaan pegawai, pendataan pegawai, absensi pegawai, cuti pegawai, penilaian pegawai, pelatihan pegawai, dan penempatan pegawai.
2.2.1 Sistem Informasi Kepegawaian Menurut Yogaswara et. al. (2010: 71), sistem informasi kepegawaian adalah segala unsur-unsur dalam administrasi kepegawaian yang membantu terealisasinya pengelolaan manajemen di suatu organisasi, yang dapat membantu dan mempermudah pekerjaan yang dilakukan oleh pegawai di dalam organisasi tersebut. Menurut Wiblen et. al. (2010: 253), sistem informasi kepegawaian secara umum digunakan sebagai sistem yang memungkinkan organisasi dalam membuat sebuah sistem terpusat yang memampukan pegawai dan manajer untuk mengakses informasi yang berhubungan dengan pegawai. Ada beberapa manfaat yang dapat diperoleh melalui penerapan sistem informasi kepegawaian, yaitu dapat mengurangi biaya organisasi melalui automatisasi kegiatan-kegiatan manual yang merupakan rutinitas pegawai, dapat menangani dan memfasilitasi komunikasi antar level di dalam organisasi, meningkatkan efisiensi, membantu mengelola beragam informasi berbeda mengenai pegawai di dalam organisasi, dan menyediakan sarana untuk membantu pengambilan keputusan yang berkaitan dengan manajemen sumber daya manusia. Sistem informasi kepegawaian mengubah data menjadi informasi yang diperlukan untuk operasional bisnis dan pengambilan keputusan.
53
2.2.2 Penerimaan Pegawai Menurut Noe et. al. (2006: 70), penerimaan pegawai adalah proses pencarian kandidat pelamar sebagai pegawai potensial. Menurut Dessler (2005: 152), proses penerimaan pegawai adalah sebagai berikut: a. Melakukan perencanaan dan peramalan pekerja untuk menentukan posisi yang akan diisi; b. Membangun kandidat-kandidat yang akan mengisi posisi tersebut dengan melakukan perekrutan; c. Meminta pelamar mengisi formulir pendaftaran; d. Melakukan berbagai teknik seleksi pelamar, seperti tes tertulis, investigasi latar belakang pelamar, dan ujian fisik untuk mengidentifikasikan kandidat yang diharapkan; e. Menginformasikan
kandidat-kandidat
yang
terpilih
kepada
supervisor
yang
bertanggung jawab atas pekerjaan tersebut; f. Melakukan seleksi akhir kandidat dengan melakukan wawancara dengan supervisor dan pihak-pihak lain yang terkait untuk mengambil keputusan akhir kandidat mana yang akan mengisi posisi tersebut.
2.2.3 Pendataan Pegawai Menurut Grafh (2012), pendataan pegawai adalah proses mengumpulkan data pegawai yang bekerja di suatu perusahaan atau organisasi. Data yang dikumpulkan dapat berupa nama lengkap, alamat tempat tinggal, pendidikan, dan lain-lain.
54
2.2.4 Absensi Pegawai Menurut Tresnani dan Munir (2012: 257), absensi adalah suatu pendataan kehadiran, bagian dari pelaporan aktivitas suatu institusi, atau komponen institusi itu sendiri yang berisi data kehadiran yang disusun dan diatur sedemikian rupa sehingga mudah untuk dicari dan dipergunakan apabila sewaktu-waktu diperlukan oleh pihak yang berkepentingan. Sistem absensi terbagi menjadi dua kelompok, yaitu sistem absensi manual dan sistem absensi otomatis. Sistem absensi otomatis memiliki keunggulan sebagai berikut: a. Lebih akurat dan lebih cepat dalam waktu pencatatan, proses, dan menghasilkan laporan; b. Mengurangi faktor kesalahan manusia; c. Mengurangi biaya sumber daya manusia; d. Akses yang lebih baik terhadap data aktivitas pegawai; e. Laporan yang lebih fleksibel dan dapat dihasilkan secara cepat dan mudah; f. Data dapat digunakan untuk perangkat lunak lainnya; g. Fitur-fiturnya dapat diperluas, seperti pelacakan pegawai secara online.
2.2.5 Cuti Pegawai Menurut Subekhi dan Jauhar (2012: 189), cuti merupakan salah satu bentuk kompensasi tak langsung berupa tunjangan yang diberikan perusahaan kepada pegawai. Tunjangan adalah sebuah penghargaan tidak langsung yang diberikan untuk seorang pegawai atau sekelompok pegawai sebagai bagian dari keanggotaan organisasi. Menurut Notoatmodjo (2009: 150), cuti merupakan salah satu bentuk kompensasi perusahaan berupa pembayaran upah untuk waktu tidak bekerja (time off benefits). Time
55 off benefits berarti pegawai akan tetap memperoleh kompensasi atau pembayaran, walaupun dalam periode tertentu pegawai tersebut tidak bekerja.
2.2.6 Penilaian Pegawai Menurut Grubb (2007: 2), penilaian kinerja pegawai adalah suatu proses menilai bagaimana pegawai secara individu melakukan pekerjaannya dan bagaimana pegawai tersebut dapat meningkatkan kinerjanya dan berkontribusi pada kinerja organisasi. Menurut Nurmianto et. al. (2006: 42), tujuan penilaian kinerja pegawai terbagi menjadi dua tujuan pokok, yaitu: a. Tujuan administrasi personalia 1) Menjadi dasar pembuatan keputusan manajemen mengenai promosi, mutasi, demosi, dan pemberhentian pegawai; 2) Menjadi dasar dalam pemberian balas jasa; 3) Menjadi dasar dalam menetapkan program pendidikan dan pelatihan guna mendukung unit-unit kerja organisasi; 4) Menjadi dasar penetapan kriteria-kriteria untuk seleksi dan penetapan pegawai; 5) Memberikan data mengenai produktivitas organisasi secara keseluruhan atau unitunit kerja, khususnya individu-individu pegawai. b. Tujuan bimbingan dan konseling 1) Merupakan forum bimbingan dan konseling antara atasan dan bawahannya untuk memperbaiki atau mengembangkan kecakapan pegawai; 2) Mengidentifikasikan kelebihan atau kekurangan pegawai yang menjadi salah satu dasar pertimbangan dalam melibatkan pegawai pada program pelatihan dan pengembangan pegawai;
56 3) Sebagai alat untuk meningkatkan motivasi kerja pegawai sehingga dapat dicapai kinerja yang lebih baik dalam rangka pencapaian tujuan unit kerja dan organisasi; 4) Sebagai alat untuk mendorong atau membiasakan para atasan atau pejabat penilai mengamati perilaku kerja pegawai sebagai totalitas sehingga dapat mengetahui minat, kemampuan, dan kebutuhan pegawai.
Menurut Roberts (2003: 90), salah satu metode penilaian kinerja pegawai yang baik adalah berdasarkan konsep penilaian kinerja participatory (participatory performance appraisal). Konsep penilaian kinerja participatory adalah proses penilaian dimana pegawai turut berpartisipasi memberikan penilaian atas kinerjanya sendiri. Berikut ini adalah beberapa konsep mengenai penilaian pegawai participatory: a. Partisipasi pegawai merupakan cara yang efektif dalam meningkatkan kemandirian pegawai terkait dengan pekerjaannya. Hal ini membangun keyakinan dan kepercayaan diri pada kemampuan pegawai. Dengan adanya partisipasi pegawai di dalam penilaian, pegawai akan termotivasi untuk bertumbuh menjadi lebih baik di dalam pekerjaannya. b. Partisipasi dalam penilaian membuat pegawai memiliki peranan di dalam proses penilaian. Dengan adanya partisipasi pegawai, ketika pegawai tidak menyetujui penilaian yang diberikan, pegawai memiliki hak untuk membantah penilaian tersebut. Sedangkan, ketika pegawai merasa bahwa proses penilaian adil, maka pegawai akan menerima penilaian tersebut, walaupun nilainya rendah. c. Pegawai memiliki informasi yang valid, unik, dan relevan mengenai kinerjanya, yang mungkin tidak terlihat oleh penilai. Dengan demikian, ketika pegawai berpartisipasi di dalam proses penilaian, kualitas dan kuantitas informasi penilaian kinerja menjadi lebih akurat dan valid.
57 d. Di dalam sistem penilaian participatory, pegawai memiliki partisipasi di dalam proses penilaian dan melibatkan ego sebagai seorang penilai demi keberhasilan sistem penilaian. Karena pegawai memiliki wewenang untuk menilai dirinya sendiri, maka pegawai akan menetapkan target kinerja yang lebih tinggi daripada biasanya. e. Partisipasi pegawai yang tinggi akan menghasilkan atmosfer kerjasama dan dukungan dari pegawai terhadap atasan sebagai penilai sehingga mengurangi ketegangan akibat penilaian, sifat defensif, dan konflik antara penilai dengan yang dinilai.
2.2.7 Pelatihan Pegawai Menurut Mangkunegara (2003: 50), pelatihan pegawai adalah suatu proses pendidikan jangka pendek yang menggunakan proses sistematis dan terorganisasi, dimana pegawai akan mempelajari pengetahuan dan keterampilan teknis dalam tujuan yang terbatas. Menurut Obisi (2011: 83), pelatihan pegawai terdiri dari dua jenis, yaitu: a. On-the-job Training On-the-job training diberikan oleh supervisor atau manajer untuk membantu pegawai menyesuaikan diri dengan pekerjaannya dan menugaskan pekerjaan yang sesuai dengan kemampuan pegawai. b. Off-the-job Training Off-the-job training merupakan pelatihan yang dilakukan di luar pekerjaan. Off-the-job training dapat dilakukan dengan latihan kelompok, pembentukan tim, pelatihan outdoor, dan workshop. Di dalam off-the-job training terdapat aspek pengajaran, role playing, studi kasus, diskusi, dan simulasi. Menurut Arthur dan Winston (2003: 235), untuk mengukur efektivitas pelatihan pegawai perlu dilakukan evaluasi pelatihan pegawai.
58 Ada tiga jenis kriteria evaluasi pelatihan pegawai: a. Kriteria Pembelajaran (Learning Criteria) Kriteria pembelajaran mengukur seberapa banyak yang dipelajari pegawai dari program pelatihan yang dilaksanakan. b. Kriteria Perilaku (Behavioral Criteria) Kriteria ini mengukur seberapa besar perubahan yang terjadi di dalam performa pegawai terkait dengan pekerjaannya setelah mengikuti pelatihan pegawai. c. Kriteria Hasil (Results Criteria) Kriteria ini mengukur kegunaan dan manfaat yang didapatkan dalam program pelatihan ini untuk organisasi.
2.2.8 Penempatan Pegawai Menurut Rivai dan Sagala (2009: 198), penempatan adalah penugasan kembali seorang pegawai kepada pekerjaan barunya. Dalam alur ini terdapat tiga jenis penting dari penempatan yaitu promosi, mutasi, dan demosi. Menurut Rivai dan Sagala (2009: 199), promosi terjadi jika seorang pegawai dipindahkan dari satu bidang tugas ke bidang tugas lainnya yang lebih tinggi tingkatannya, baik tingkat gaji, tanggung jawab, maupun tingkat strukturalnya. Mutasi terjadi jika seorang pegawai dipindahkan dari satu bidang tugas ke bidang tugas lainnya yang hampir sama tingkatannya, baik tingkat gaji, tanggung jawab, maupun tingkat strukturalnya. Demosi terjadi jika seorang pegawai dipindahkan dari satu bidang tugas ke bidang tugas lainnya yang lebih rendah tingkatannya, baik tingkat gaji, tanggung jawab, maupun tingkat strukturalnya.