BAB 2 TINJAUAN PUSTAKA Pada bab tinjauan pustaka akan dibahas secara ringkas mengenai teori yang berkaitan dengan basis data, teori yang terkait tema penelitian, serta hasil penelitian atau produk sebelumnya. 2.1 Teori yang Berkaitan dengan Basis Data Dalam tinjauan pustaka yang berhubungan dengan basis data akan diuriakan secara ringkas antara lain: data, informasi, tabel, basis data (database), sistem manajemen basis data, Database Management System (DBMS), komponen DBMS, keuntungan dan kerugian DBMS, fungsi DBMS, bahasa basis data (Database Language), data definition language (DDL), data manipulation language (DML), pemodelan relasi entitas (Entity-Relationship Modelling), normalisasi (Normalization), daur hidup basis data (Database Life Cycle), dan lain-lain. 2.1.1 Pengertian Data Menurut Indrajani (2011:2), data adalah fakta atau observasi mentah yang biasanya mengenai fenomena fisik atau transaksi bisnis. Menurut William dan Sawyer (2007:25), data terdiri dari fakta-fakta dan gambar mentahan yang akan di proses menjadi informasi. Menurut Jonathan Lukas (2006:39), Data adalah kenyataan atau fakta penting yang tercatat atau terekam yang dapat diproses oleh komputer atau manusia dan memiliki arti yang bermacam-macam. Sedangkan Menurut Kamus Bahasa Indonesia (2008:1580), data adalah kenyataan yang ada dan berfungsi sebagai sumber bahan untuk menyusun suatu pendapat. 2.1.2 Pengertian Informasi Menurut William dan Sawyer (2007:25), informasi adalah data yang telah dirangkum atau dimanipulasi dalam bentuk lain untuk pengambilan keputusan. 7 8 Menurut R. Kelly Rainer dan Casey G. Cagielski (2011:10), Informasi mengacu pada data yang telah terorganisasi sehingga data tersebut memiliki makna dan nilai kepada penerima data tersebut. 2.1.3 Pengertian Tabel Menurut Kamus Bahasa Indonesia (2008:1580), Pengertian Tabel adalah daftar yang berisi ikhtisar sejumlah data informasi, biasanya berupa kata-kata dan bilangan yg tersusun secara tersistem, urut ke bawah pada lajur dan deret tertentu dengan garis pembatas sehingga dapat dengan mudah disimak. Menurut Thomas Connolly dan Carolyn Begg (2005:72), Suatu relasi adalah tabel dengan kolom dan baris. Menurut Thomas Connolly dan Carolyn Begg (2005:72), Sebuah atribut adalah kolom dari suatu relasi. Dalam model relasional, relasi digunakan untuk menyimpan informasi tentang objek yang akan direpresentasikan dalam basis data. Suatu relasi direpresentasikan sebagai tabel dua dimensi dimana baris tabel tersebut sesuai dengan catatan individu dan kolom tabel sesuai dengan atribut. Atribut dapat muncul dalam urutan keberapapun dan akan tetap memiliki relasi yang sama. karena menyampaikan makna yang sama, Sebuah atribut adalah kolom yang bernama relasi. Menurut Thomas Connolly dan Carolyn Begg (2005:72), Sebuah domain adalah himpunan nilai diperbolehkan untuk satu atau lebih atribut. Menurut Thomas Connolly dan Carolyn Begg (2005:73), Tuple adalah baris dari suatu relasi. Unsur-unsur relasi adalah baris atau tuple dalam tabel. Dalam relasi Cabang, setiap baris berisi empat nilai, satu untuk setiap atribut. Tuple dapat muncul dalam urutan apapun dan relasi akan tetap relasi yang sama, dan karenanya menyampaikan makna yang sama. 2.1.4 Pengertian Basis Data Menurut Gerald V.Post (2005:2), basis data adalah kumpulan data yang disimpan dalam format standar, yang dirancang untuk digunakan bersama oleh beberapa pengguna. 9 Menurut Indrajani (2011:2), basis data adalah kumpulan data yang berelasi secara logis dan deskripsi data tersebut, yang dirancang untuk memenuhi informasi yang dibutuhkan oleh suatu organisasi. Sedangkan menurut William dan Sawyer (2007:464), basis data adalah kumpulan data yang saling berelasi, yang diatur secara logis, yang dirancang dan dibangun untuk tujuan khusus. sebuah teknologi untuk mengumpulkan banyak fakta yang memungkinkan anda memotong, membuang, dan menggabungkan serta memasang data dengan beragam cara. 2.1.5 Database Management System (DBMS) Menurut Gerald V.Post (2005:2), DBMS adalah perangkat lunak yang mendefinisikan basis data, menyimpan data, mendukung bahasa query, menghasilkan laporan, dan menciptakan entri data pada layar. Menurut Thomas Connolly dan Carolyn Begg (2005:16), DBMS adalah Sebuah sistem perangkat lunak yang memungkinkan pengguna untuk mendefinisikan, membuat, memelihara, dan mengontrol akses ke basis data. Beberapa fasilitas yang disediakan DBMS: 1. Data Definition Language (DDL), memungkinkan pengguna untuk menentukan jenis, struktur data dan masalah pada data yang akan disimpan dalam basis data. 2. Data Manipulation Language (DML), memungkinkan pengguna untuk menambahkan, memperbaharui, menghapus, dan memperoleh data dari basis data. 3. Query Languange Memiliki repositori pusat untuk semua data dan mendeskripsikan data yang memungkinkan DML menyediakan fasilitas umum untuk penyelidikan data. 2.1.5.1 Komponen DBMS Menurut Thomas Connolly dan Carolyn Begg (2005:18–21), DBMS dibagi menjadi 5 Komponen yaitu: 10 Gambar 2.1 Komponen DBMS 1. Perangkat keras (Hardware) DBMS dan aplikasi membutuhkan hardware untuk menjalankannya. Hardware meliputi komputer pribadi (personal computer), mainframe, dan jaringan komputer. Beberapa DBMS hanya dapat berjalan pada hardware atau operating system tertentu, dan yang lainnya dapat berjalan pada berbagai hardware atau operating system. Amount of memory and disk space diperlukan untuk menjalankan DBMS. 2. Perangkat lunak (Software) Komponen perangkat lunak (software) terdiri dari DBMS dan program aplikasi beserta sistem operasinya, termasuk perangkat lunak jaringan (network software) jika DBMS sedang digunakan melalui sebuah jaringan tertentu. 3. Data Data adalah komponen penting dalam DBMS. Data bertindak sebagai penghubung antara komponen mesin dan manusia. Basis data berisi data operasional dan metadata. 4. Prosedur (Procedure) Prosedur mengacu pada instruksi dan aturan yang mengatur desain dan penggunaan basis data. Pengguna sistem dan staf yang mengatur basis data memerlukan dokumentasi prosedur tentang cara menggunakan atau menjalankan sistem. Beberapa instruksi tentang cara penggunaan basis data adalah: a. Masuk ke DBMS, b. Menggunakan fasilitas DBMS tertentu atau program aplikasi, c. Memulai dan menghentikan DBMS, 11 d. Membuat backup dari basis data, e. Menangani hardware atau software yang rusak, f. Mengubah struktur tabel, mengatur basis data di beberapa disk, meningkatkan kinerja atau menyimpan arsip data ke penyimpanan sekunder. 5. Pengguna (People) Komponen terkahir adalah pengguna yang terlibat dengan sistem. Menurut Thomas Connolly dan Carolyn Begg (2005:21–24), Kita dapat mengidentifikasi empat jenis pengguna yang berpartisipasi dalam lingkungan DBMS yaitu: a. Pengelola data dan basis data (Data and Database Administrator) Data dan database administrator memiliki peran dalam pengelolaan dan pengendalian DBMS dan data. Data Administrator (DA) bertanggung jawab atas pengelolaan sumber daya data yang termasuk dalam perencanaan basis data, pengembangan dan pemeliharaan, kebijakan dan prosedur, dan desain basis data konseptual atau logikal. Database Administrator (DBA) bertanggung jawab untuk fisikal basis data, termasuk desain fisikal basis data dan implementasi, keamanan dan integritas kontrol, pemeliharaan sistem operasional, dan memastikan kinerja yang memuaskan dari aplikasi untuk pengguna. b. Desainer basis data (Database Designer) Dalam proyek desain basis data yang besar, kita dapat membedakan antara dua jenis desainer yaitu desainer basis data logikal dan desainer basis data fisikal. Perancang basis data logikal berkaitan dengan mengidentifikasi data (entitas dan atribut), relasi antara data, dan kendala pada data yang akan disimpan dalam basis data. Sedangkan bagian desain basis data fisikal sangat tergantung pada target DBMS, dan mungkin ada lebih dari satu cara untuk 12 menerapkan mekanismenya. Akibatnya, desainer basis data fisikal harus sepenuhnya menyadari fungsi dari target DBMS dan harus memahami kelebihan dan kekurangan dari setiap alternatif untuk implementasi tertentu. Perancang basis data fisikal harus mampu memilih strategi penyimpanan data yang memperhitungkan penggunaan. c. Pembangun aplikasi (Application Developer) Setelah basis menyediakan data dilaksanakan, fungsi untuk program end-user aplikasi yang yang harus diimplimentasikan. Ini merupakan tanggung jawab pengembang aplikasi. Biasanya, pengembang aplikasi bekerja dari spesifikasi yang dihasilkan oleh sistem analis. Setiap program berisi pernyataan yang meminta DBMS untuk melakukan beberapa operasi pada basis data. Ini termasuk mengambil data, insert, update, dan delete data. d. Pengguna akhir (End-User) Para end-users adalah client untuk basis data yang telah dirancang dan diimplementasikan, melayani kebutuhan dan sedang informasi dipertahankan mereka. End-User untuk dapat diklasifikasikan menurut cara mereka menggunakan sistem: i. Pengguna awam (Naïve users) biasanya menyadari DBMS. Mereka mengakses basis data melalui program aplikasi yang buat khusus dalam suatu operasi yang sesederhana mungkin. Mereka menggunakan operasi basis data dengan memasukkan perintah sederhana atau dengan memilih dari menu. Ini menandakan bahwa mereka tidak perlu tahu apaapa tentang basis data atau DBMS. Sebagai contoh, asisten kasir di supermarket lokal menggunakan barcode reader untuk mengetahui harga suatu item. selanjutnya, ada program aplikasi yang membaca barcode, melihat harga dari item dalam basis data, mengurangi jumlah basis data 13 yang berisi jumlah item di stok, dan menampilkan harga di kasir. ii. Pengguna hebat (Sophisticated users) Adalah seseorang yang terbiasa dengan struktur basis data dan fasilitas yang ditawarkan oleh DBMS. sophisticated users dapat menggunakan query bahasa tingkat tinggi seperti SQL untuk melakukan operasi yang diperlukan. Beberapa sophisticated users bahkan dapat menulis program aplikasi untuk mereka gunakan sendiri. 2.1.5.2 Keuntungan dan Kerugian Dalam Menggunakan DBMS Menurut Thomas Connolly dan Carolyn Begg (2005:26–30), ada beberapa keuntungan dan kerugian dalam menggunakan DBMS yaitu: 1. Keuntungan a. Pengendalian redudansi data (Control of data redudancy) pendekatan basis data berusaha untuk menghilangkan redundansi dengan cara mengintegrasikan file tersebut sehingga beberapa salinan data yang sama tidak disimpan. Namun pendekatan basis data tidak menghilangkan redundansi sepenuhnya, hanya mengendalikan jumlah redudansi yang ada di basis data. Contohnya, Jika suatu saat dibutuhkan duplikat data untuk suatu proses relasi (relationship) atau di saat yang lain dibutuhkan duplikat data untuk meningkatkan kinerja sistem. b. Konsistensi data (Data consistency) Dengan menghilangkan atau mengontrol redundansi, kita mengurangi risiko terjadinya tidak konsistennya data. c. Informasi lebih lanjut dari jumlah data yang sama (More information from the same amount of data) Dengan integrasi data operasional, dimungkinkan bagi organisasi untuk memperoleh informasi tambahan dari data yang sama. 14 d. Berbagi data (Sharing of data) Biasanya sharing of data digunakan oleh pengguna atau departemen yang memiliki file. Di sisi lain, basis data seluruh organisasi dapat dibagi (share) oleh semua pengguna yang berwenang. Dengan cara ini, bila banyak pengguna maka lebih banyak sharing of data. Aplikasi ini juga dapat mengandalkan fungsi yang disediakan oleh DBMS, seperti definisi data, manipulasi, concurrency dan recovery control, daripada harus menyediakan fungsi-fungsi ersebut sendiri. e. Peningkatan integritas data (Improved data integrity) Integritas basis data mengacu pada validitas dan konsistensi data yang tersimpan. Integritas biasanya dinyatakan dalam berbagai hal masalah yaitu, konsistensi bahwa aturan basis data tidak diperbolehkan untuk dilanggar. f. Peningkatan keamanan (Improved security) Keamanan basis data adalah perlindungan basis data dari pengguna yang tidak berwenang. Tanpa langkah-langkah keamanan yang sesuai, integrasi membuat data lebih rentan dibandingkan dengan sistem berbasis file. Namun, integrasi memungkinkan DBA untuk mendefinisikannya, dan DBMS Ini memungkinkan untuk mengambil nama pengguna dan password untuk mengidentifikasi orang-orang yang berwenang untuk menggunakan basis data. Akses pengguna yang berwenang diperbolehkan pada system basis data dapat dibatasi oleh jenis operasi (pengambilan data, insert, update, dan delete) g. Penegakan standar (Enforcement of standards) Integrasi memungkinkan DBA untuk mendefinisikan dan menegakkan standar yang diperlukan. Hal Ini termasuk dalam departemen, standar organisasi nasional atau internasional untuk hal-hal seperti format data yang digunakan untuk memfasilitasi pertukaran data antara sistem, konvensi penamaan, standar dokumentasi, prosedur update, dan aturan akses data. 15 h. Skala ekonomi (Economy of scale) Menggabungkan semua data operasional organisasi ke dalam satu basis data, dan menciptakan satu set aplikasi yang bekerja pada salah satu sumber data, dapat menghasilkan penghematan biaya. Dalam kasus ini, anggaran yang biasanya akan dialokasikan untuk masing-masing departemen untuk pengembangan dan pemeliharaan sistem berbasis file yang dapat dikombinasikan, mungkin mengakibatkan total biaya yang lebih rendah. Anggaran yang dikombinasikan dapat digunakan untuk membeli konfigurasi sistem yang lebih sesuai dengan kebutuhan organisasi. i. Neraca persyaratan yang saling bertentangan (Balance of Conflicting requirements) Biasanya sistem berbasis file dibuat untuk aplikasi tertentu seperti pemfakturan, sehingga kinerjanya sangat baik. Namun, DBMS dibuat lebih umum untuk dapat menangani beberapa aplikasi secara bersamaan pada satu aplikasi saja. Akibatnya beberapa aplikasi yang berjalan kinerjanya tidak secepat sebelumnya. j. Peningkatan aksesibilitas data dan responsifitas (Improved Data accessibility and responsiveness) sebagai hasil integrasi, data yang melintasi batas-batas departemen diakses secara langsung ke End-user. Ini memberikan sebuah sistem dengan fungsionalitas yang memiliki banyak potensi, misalnya digunakan untuk menyediakan layanan yang lebih baik kepada End-user menyediakan atau bahasa klien query organisasi. atau Banyak penulis laporan DBMS yang memungkinkan pengguna untuk mengajukan pertanyaan adhoc dan memperoleh informasi yang diperlukan di terminal mereka. k. Peningkatan produktivitas (Increased Productivity) DBMS menyediakan banyak fungsi standar yang biasanya programmer harus menulis dalam aplikasi yang berbasis file. Pada tingkat dasar, DBMS menyediakan semua rutinitas penanganan berkas tingkat rendah dalam program aplikasi. Penyediaan fungsi 16 ini memungkinkan programmer untuk berkonsentrasi pada fungsi tertentu yang diperlukan oleh pengguna tanpa harus khawatir tentang rincian pelaksanaan tingkat rendah. Banyak DBMS juga menyediakan lingkungan generasi keempat yang terdiri dari suatu alat untuk menyederhanakan pengembangan aplikasi basis data. Hal ini menyebabkan peningkatan produktivitas programmer dan mengurangi waktu pengembangan (dengan penghematan biaya yang terkait) l. Peningkatan pemeliharaan melalui data independence (Improved Maintenance through data independence) Dalam sistem berbasis file, deskripsi data dan logika untuk mengakses data yang dibangun ke dalam setiap program aplikasi, membuat program tergantung pada data. Sebuah perubahan pada struktur data, atau perubahan dengan cara data disimpan pada disk, dapat memerlukan perubahan substansial program yang dipengaruhi oleh perubahan. Sebaliknya, DBMS memisahkan deskripsi data dari aplikasi, sehingga membuat aplikasi kebal terhadap perubahan dalam deskripsi data. m. Peningkatan konkurensi (Increased concurrency) Dalam beberapa sistem berbasis file, jika dua atau lebih pengguna yang diizinkan untuk mengakses file yang sama secara bersamaan, memungkinkan akses akan mengganggu satu sama lain, sehingga akan terjadi hilangnya informasi atau bahkan hilangnya integritas. Banyak DBMS yang mengelola akses basis data secara bersamaan dan memastikan masalah tersebut tidak terjadi. n. Peningkatan layanan backup dan recovery (Improved backup and recovery services) Banyak sistem berbasis file yang menempatkan tanggung jawab pada pengguna untuk memberikan langkah-langkah supaya melindungi data dari kegagalan ke sistem komputer atau program aplikasi. Dalam hal kegagalan, cadangan recovery dari pekerjaan yang telah di backup dimasukkan kembali. Sebaliknya, DBMS 17 modern menyediakan fasilitas untuk meminimalkan jumlah pengolahan data yang hilang. 2. Kerugian a. Kompleksitas (Complexity) Penyediaan fungsi dari DBMS yang baik diharapkan akan membuat DBMS menjadi perangkat lunak yang sangat komplek. Database designers and developers, the data and database administrator, dan end-user harus memahami fungsi ini untuk mengambil keuntungan. Kegagalan untuk memahami sistem dapat menyebabkan desain yang buruk, yang dapat memiliki konsekuensi serius bagi suatu organisasi. b. Ukuran (Size) Kompleksitas dan besarnya fungsionalitas membuat DBMS menjadi bagian yang sangat besar sebagai software yang menempati banyak ruang disk dan membutuhkan memori yang besar untuk menjalankan DBMS secara efisien. c. Biaya DBMS (Cost of DBMS) Biaya DBMS bervariasi, tergantung pada lingkungan dan fungsi yang disediakan. Misalnya, DBMS single-user untuk komputer pribadi hanya US $100. Namun, mainframe multi-user DBMS yang melayani ratusan pengguna bisa sangat mahal yaitu sekitar US $100.000 atau bahkan US $1.000.000. Ada juga tambahan biaya untuk pemeliharaan setiap tahunnya. d. Biaya hardware tambahan (Additional hardware cost) Penyimpanan disk untuk DBMS dan basis data mungkin memerlukan pembelian ruang penyimpanan tambahan. Selanjutnya, untuk mencapai kinerja yang diinginkan, maka perlu untuk membeli mesin yang lebih besar, bahkan mungkin sebuah mesin yang khusus untuk menjalankan DBMS. e. Biaya konversi (Cost of conversion) Dalam beberapa situasi, biaya tambahan untuk DBMS dan hardware bisa tidak sebanding dengan biaya konversi aplikasi yang 18 sudah ada untuk dijalankan pada DBMS dan hardware yang baru. Biaya ini termasuk biaya pelatihan staff untuk menggunakan sistem yang baru, dan memungkinkan untuk memperkerjakan staff ahli untuk membantu konversi dan menjalankan sistem. Biaya merupakan satu alasan utama mengapa beberapa organisasi merasa terikat dengan sistem mereka saat ini dan tidak dapat beralih ke teknologi basis data yang lebih modern. f. Kinerja (Performance) Biasanya sistem berbasis file dibuat untuk suatu aplikasi tertentu seperti pemfakturan, sehingga kinerjanya sangat baik. Namun, DBMS dibuat lebih umum sehingga dapat menangani beberapa aplikasi secara bersamaan daripada satu aplikasi saja yang berjalan. Akibatnya beberapa aplikasi yang berjalan kinerjanya tidak secepat sebelumnya. g. Dampak kegagalan (Higher impact of a failure) Karena semua pengguna dan aplikasi bergantung pada ketersediaan DBMS, kegagalan pada komponen-komponen tertentu dapat mengakibatkan operasi berhenti. 2.1.5.3 Fungsi DBMS Menurut Thomas Connolly dan Carolyn Begg (2005:48–52), ada beberapa fungsi DBMS, yaitu: 1. Penyimpanan, pengambilan, dan memperbarui data (Data storage, retrieval, and update) DBMS harus melengkapi pengguna dengan kemampuan untuk menyimpan, mengambil, dan data dalam basis data. 2. Katalog yang dapat diakses pengguna (a user – accessible catalog) DBMS harus memiliki katalog di mana deskripsi item data disimpan dan dapat diakses oleh pengguna. 3. Transaksi pendukung (Transaction support) DBMS harus memberikan suatu mekanisme yang memastikan bahwa semua pembaruan yang dibuat sesuai dengan transaksi yang diberikan atau tidak satupun dari mereka yang membuat. 19 4. Layanan pengendalian concurrency (Concurrency control services) DBMS harus menyediakan mekanisme untuk memastikan bahwa basis data diperbarui dengan benar ketika beberapa pengguna memperbarui basis data secara bersamaan. 5. Layanan perbaikan (Recovery Services) DBMS harus memberikan suatu cara untuk memulihkan basis data dengan cara apapun jika basis data sedang mengalami kerusakan. 6. Layanan otoritas (Authorization services) DBMS harus menyediakan mekanisme untuk memastikan bahwa hanya pengguna resmi yang dapat mengakses basis data. 7. Mendukung komunikasi data (Support for data communication) DBMS harus mampu berintegrasi dengan komunikasi perangkat lunak. 8. Layanan integritas (Integrity services) DBMS harus menyediakan sarana untuk memastikan bahwa data dalam basis data dan perubahan data mengikuti aturan-aturan tertentu. 9. Layanan independensi data (Services to promote data independence) DBMS harus mencakup fasilitas untuk mendukung kemandirian program dari struktur yang sebenarnya dari basis data. 10. Layanan utilitas (Utility services) DBMS harus menyediakan satu set layanan utilitas. 2.1.6 Bahasa Basis Data (Database Language) Menurut Thomas Connolly dan Carolyn Begg (2005:39–41), Sebuah sub-bahasa data terdiri dari dua bagian: Data Definition Language (DDL) dan Data Manipulation Language (DML) DDL digunakan untuk menentukan skema basis data dan DML digunakan untuk kedua membaca dan memperbarui basis data. Bahasa ini disebut sub-bahasa data karena mereka tidak termasuk konstruksi untuk semua komputasi kebutuhan seperti bersyarat atau pernyataan berulang, yang disediakan oleh bahasa pemrograman tingkat tinggi. 2.1.6.1 Data Definition Language (DDL) Menurut Thomas Connolly dan Carolyn Begg (2005:40), DDL adalah sebuah bahasa yang memungkinkan DBA atau pengguna untuk 20 mendeskripsikan dan menamai entitas, atribut, dan relasi yang dibutuhkan untuk aplikasi, bersama dengan integritas terkait dan kendala keamanan. DDL digunakan untuk mendefinisikan skema atau memodifikasi yang sudah ada. Hal ini tidak dapat digunakan untuk memanipulasi data. Hasil penyusunan laporan DDL adalah satu set tabel yang disimpan dalam khusus file kolektif disebut sistem katalog. Sistem katalog mengintegrasikan metadata, yaitu data yang menggambarkan objek dalam basis data dan membuatnya lebih mudah bagi objek yang akan diakses atau dimanipulasi. Metadata berisi definisi catatan, item data, dan bendabenda lain yang menarik bagi pengguna atau diwajibkan oleh DBMS. 2.1.6.2 Data Manipulation Language (DML) Menurut Thomas Connolly dan Carolyn Begg (2005:40–42), DML adalah sebuah bahasa yang menyediakan seperangkat operasi untuk mendukung operasi manipulasi data dasar pada data yang dimiliki dalam basis data. Operasi manipulasi data biasanya meliputi berikut ini: 1. Penyisipan data baru ke dalam basis data. 2. Modifikasi data yang disimpan dalam basis data. 3. Pengambilan data yang terdapat dalam basis data. 4. Penghapusan data dari basis data. DML dibagi menjadi 2 jenis, yaitu procedural dan non-procedural. Procedural DML adalah Sebuah bahasa yang memungkinkan pengguna untuk memberitahu sistem data apa yang dibutuhkan dan bagaimana cara untuk mendapatkan data. Sedangkan non-procedural DML adalah Sebuah bahasa yang memungkinkan pengguna untuk menyatakan apa yang dibutuhkan data daripada memikirkan bagaimana data tersebut harus didapatkan. Fungsi utama dari DBMS adalah untuk mendukung manipulasi data, di mana pengguna dapat membuat laporan yang akan menyebabkan manipulasi data tersebut terjadi. Manipulasi data berlaku untuk tingkat eksternal, konseptual, dan internal. Namun, di tingkat internal yang kita 21 harus mendefinisikan prosedur tingkat rendah yang agak rumit yang memungkinkan akses data yang efisien. Sebaliknya, di tingkat yang lebih tinggi, penekanan ditempatkan pada kemudahan penggunaan dan usaha diarahkan untuk memberikan interaksi pengguna yang efisien dengan sistem. Bagian dari DML yang melibatkan pengambilan data disebut bahasa query. Sebuah bahasa query dapat didefinisikan sebagai tingkat tinggi dengan tujuan khusus, bahasa yang digunakan untuk memenuhi permintaan beragam untuk pengambilan data dalam basis data. 2.1.7 Integrity Enhancement Feature Menurut Thomas Connolly dan Carolyn Begg (2005:164–168) ada lima jenis integrity constraint yaitu: 1. Required Data Beberapa kolom harus berisi nilai yang valid dan tidak diperbolehkan mengandung null. null berbeda dari kosong atau nol, karena digunakan untuk merepresentasikan data yang tidak tersedia, atau tidak berlaku . Sebagai contoh, setiap anggota staf harus memiliki posisi pekerjaan yang terkait (misalnya, Manager, Asisten, dan sebagainya). Standar ISO menyediakan kolom specifier NOT NULL di CREATE dan ALTER TABLE untuk menyediakan tipe constraint. The ISO default adalah NULL. Sebagai contoh, untuk menentukan bahwa posisi kolom dari tabel staf tidak dapat null, kita mendefinisikan kolom sebagai: Position VARCHAR (10) NOT NULL 2. Domain Constraints Setiap kolom memiliki domain. Misalnya, jenis kelamin anggota staf adalah 'M' atau 'F', sehingga domain kolom jenis kelamin dari tabel staf adalah karakter tunggal yang terdiri dari 'M' atau 'F'. Standar ISO menyediakan dua mekanisme untuk menentukan domain dalam CREATE dan ALTER TABLE. Yang pertama adalah CHECK, yang memungkinkan constraint didefinisikan pada kolom atau seluruh tabel. Format CHECK adalah: CHECK (SearchCondition) 22 Dalam kolom constraint, CHECK dapat referensi hanya kolom yang ditetapkan. Dengan demikian, untuk memastikan bahwa kolom jenis kelamin hanya dapat ditetapkan sebagai 'M' atau 'F', kita bisa mendefinisikan kolom sebagai: CHAR seks NOT NULL CHECK (IN seks ('M', 'F')) Namun, standar ISO memungkinkan domain harus didefinisikan secara lebih eksplisit menggunakan CREATE DOMAIN: CREATE DOMAIN DomainName [AS] dataType [DEFAULT defaultOption] [CHECK (searchCondition)] 3. Entity Integrity Primary key dari tabel harus unik, memiliki nilai non-null di setiap baris. Sebagai contoh, setiap baris dari tabel PropertyForRent memiliki nilai yang unik untuk jumlah properti propertyNo, properti yang unik mengidentifikasi di setiap baris. Standar ISO mendukung integritas entitas PRIMARY KEY di CREATE dan ALTER TABLE. Sebagai contoh, untuk menentukan primary key dari tabel PropertyForRent, yaitu: PRIMARY KEY(propertyNo) Untuk menentukan gabungan primary key, kita menentukan beberapa nama kolom dalam PRIMARY KEY, dipisahkan dengan tanda koma. Sebagai contoh, untuk menentukan primary key dari tabel Viewing, yang terdiri dari kolom clientNo dan propertyNo, yaitu: PRIMARY KEY(clientNo, propertyNo) PRIMARY KEY ditentukan hanya sekali di setiap tabel. Namun, masih mungkin untuk memastikan keunikan untuk setiap tombol alternatif dalam tabel menggunakan kata kunci UNIQUE. Setiap kolom yang terdapat UNIQUE juga harus dinyatakan sebagai NOT NULL. Mungkin ada banyak UNIQUE di setiap tabel yang diperlukan. SQL untuk menolak setiap operasi INSERT atau UPDATE yang mencoba untuk menciptakan nilai duplikat dalam setiap candidate key (yaitu, primary key atau alternate key). Misalnya, dengan tabel Viewing kita bisa juga menulis: clientNo VARCHAR(5) NOT NULL, propertyNo VARCHAR(5) NOT NULL, UNIQUE (clientNo, propertyNo) 23 4. Referential Integrity Foreign key adalah kolom, atau set kolom, yang menghubungkan setiap baris dalam tabel anak yang berisi foreign key ke baris dari tabel induk yang mengandung nilai candidate key yang cocok. Referential integrity berarti, jika foreign key mengandung nilai,maka nilai tersebut harus mengacu pada nilai yang ada pada baris yang berlaku dalam tabel induk. Sebagai contoh, jumlah cabang kolom branchNo dalam tabel PropertyForRent menghubungkan properti untuk baris dalam tabel Branch di mana properti ditugaskan. Jika nomor cabang tidak null, maka harus berisi nilai yang valid dari branchNo di kolom tabel Branch, atau properti ditugaskan untuk kantor cabang yang tidak valid. Standar ISO mendukung definisi foreign key dengan klausa FOREIGN KEY di CREATE dan ALTER TABLE. Sebagai contoh, untuk menentukan forign key branchNo dari tabel PropertyForRent, yaitu : FOREIGN KEY(branchNo) REFERENCES Branch SQL menolak setiap operasi INSERT atau UPDATE yang mencoba untuk menciptakan nilai foreign key dalam tabel anak tanpa nilai candidate key yang cocok dalam tabel induk. SQL diperlukan untuk setiap operasi UPDATE atau DELETE yang mencoba untuk memperbarui atau menghapus nilai candidate key dalam tabel induk yang memiliki beberapa baris yang cocok di tabel anak tergantung pada tindakan referensial ditentukan menggunakan ON UPDATE dan ON DELETE dari FOREIGN KEY. Ketika pengguna mencoba untuk menghapus baris dari tabel induk, dan ada satu baris atau lebih cocok di tabel anak, SQL mendukung empat pilihan mengenai tindakan yang harus diambil: a. CASCADE: Menghapus baris dari tabel induk dan secara otomatis menghapus baris dalam tabel anak yang sesuai. Karena ini baris dihapus mungkin sendiri memiliki candidate key yang digunakan sebagai foreign key dalam tabel lain, aturan foreign key untuk tabel adalah trigger, dan juga secara cascading. b. SET NULL: Menghapus baris dari tabel induk dan menetapkan nilai foreign key dalam tabel anak ke NULL. Ini hanya berlaku jika kolom foreign key tidak memiliki kualifikasi NOT NULL yang ditentukan. 24 c. SET DEFAULT: Menghapus baris dari tabel induk dan mengatur setiap komponen foreign key dalam tabel anak dengan nilai default yang ditentukan. Ini hanya berlaku jika kolom foreign key memiliki nilai DEFAULT yang ditentukan. d. NO ACTION: Menolak operasi telah terhapus dari tabel induk. Ini adalah pengaturan default jika ON DELETE aturan dihilangkan. FOREIGN KEY (staffNo) REFERENCES Staff ON DELETE SET NULL FOREIGN KEY (ownerNo) REFERENCES PrivateOwner ON UPDATE CASCADE 5. General Constraint Memperbaharui tabel dapat dibatasi oleh aturan dari perusahaan yang mengatur transaksi dunia nyata yang diwakili oleh pembaharuan. Sebagai contoh, DreamHome mungkin memiliki aturan yang mencegah anggota staf dari mengelola lebih dari 100 properti pada waktu yang sama. Standar ISO memungkinkan kendala umum yang akan ditentukan menggunakan CHECK dan UNIQUE dari CREATE dan ALTER TABLE dan CREATE ASSERTION. Kita telah membahas CHECK dan klausa UNIQUE di awal bagian ini. CREATE ASSERTION merupakan kendala integritas yang tidak terkait langsung dengan definisi tabel. Format pernyataan itu adalah: CREATE ASSERTION AssertionName CHECK (searchCondition) 2.1.8 Pemodelan Relasi Entitas (Entity-Relatioship Modelling) Menurut Thomas Connolly dan Carolyn Begg (2005:342), Pemodelan relasi entitas (Entity-Relatioship Modelling) adalah pendekatan top-down untuk merancang basis data yang dimulai dengan mengidentifikasi data penting yang disebut entitas dan relasi antara data yang harus direpresentasikan dalam model. Kemudian menambahkan rincian seperti informasi mengenai entitas dan relasi yang disebut atribut. Dan setiap kendala pada entitas, relasi, dan atribut. Pemodelan ER adalah teknik penting untuk setiap perancang basis data untuk menguasai dan membentuk dasar dari metodologi yang disajikan. 25 2.1.8.1 Entity Types Menurut Thomas Connolly dan Carolyn Begg (2005:343), Entity types adalah sekelompok objek dengan sifat yang sama, yang diidentifikasi oleh perusahaan seperti memiliki eksistensi independen. Menurut Thomas Connolly dan Carolyn Begg (2005:345), Entity occurrence adalah Sebuah objek yang unik yang bisa diidentifikasikan dari suatu entity. Secara umum, Tipa entitas dapat diklasifikasikan menjadi : 1. Strong Entity Type Menurut Thomas Connolly dan Carolyn Begg (2005:354), Strong Entity Type adalah Sebuah tipe entitas yang keberadaannya tidak tergantung pada beberapa tipe entitas lainnya. Sebuah tipe entitas disebut kuat jika keberadaannya tidak tergantung pada keberadaan tipe entitas lain. 2. Weak Entity Type Menurut Thomas Connolly dan Carolyn Begg (2005:355), Weak entity type adalah Sebuah tipe entitas yang keberadaannya tergantung pada beberapa tipe entitas lainnya. Jenis weak entity kadang-kadang disebut sebagai anak, ketergantungan, atau entitas bawahan dan jenis strong entity sebagai orangtua, pemilik, atau badan yang dominan. 2.1.8.2 Relationship Types Menurut Thomas Connolly dan Carolyn Begg (2005:346), Relationship types adalah sekumpulan relasi antar entitas yang memiliki arti. Dan Setiap jenis relasi yang terjadi diberi nama yang menggambarkan fungsi. Relationship Occurance adalah suatu relasi unik antara satu atau lebih entitas yang teridentifikasi dalam tipe entitas. 2.1.8.3 Atribute Menurut Thomas Connolly dan Carolyn Begg (2005:350), Attribute adalah sebuah properti dari suatu entitas atau tipe relasi. Sedangkan attribute domain adalah himpunan nilai-nilai yang di ijinkan untuk satu atau lebih atribut. 26 Attribute dapat diklasifikasikan sebagai berikut, yaitu: 1. Simple attribute Menurut Thomas Connolly dan Carolyn Begg (2005:351), simple attribute adalah sebuah atribut yang terdiri dari komponen tunggal dengan keberadaan yang independen. 2. Composite attribute Menurut Thomas Connolly dan Carolyn Begg (2005:351), composite attribute adalah sebuah atribut yang terdiri dari beberapa komponen, masing-masing dengan keberadaan yang independen. 3. Single-valued attribute Menurut Thomas Connolly dan Carolyn Begg (2005:351), Singlevalued attribute adalah sebuah atribut yang memegang nilai tunggal untuk setiap kejadian dari suatu tipe entitas. 4. Multi-valued attribute Menurut Thomas Connolly dan Carolyn Begg (2005:352), Multivalued attribute adalah sebuah atribut yang memegang beberapa nilai untuk setiap kejadian dari suatu entity. 5. Derived attribute Menurut Thomas Connolly dan Carolyn Begg (2005:352), Derived attribute adalah sebuah atribut yang mewakili nilai yang diturunkan dari nilai atribut terkait atau himpunan atribut, belum tentu dalam jenis entitas yang sama. 2.1.8.4 Kunci (Keys) 1. Candidate Key Menurut Thomas Connolly dan Carolyn Begg (2005:352), Candidate Key adalah sejumlah kecil atribut unik dari entitas yang mengidentifikasikan setiap kejadian dari suatu tipe entitas. 2. Primary Key Menurut Thomas Connolly dan Carolyn Begg (2005:353), Primary key adalah candidate key yang dipilih karena unik untuk mengidentifikasi setiap kejadian dari suatu tipe entitas. 27 3. Composite Key Menurut Thomas Connolly dan Carolyn Begg (2005:353), Composite key adalah candidate key yang terdiri dari dua atau lebih atribut. 4. Alternate Key Menurut Thomas Connolly dan Carolyn Begg (2005:79), Alternate Key adalah Candidate Key yang tidak terpilih menjadi primary key. 5. Forign Key Menurut Thomas Connolly dan Carolyn Begg (2005:79), Foreign key adalah Sebuah atribut atau sekumpulan atribut dalam satu relasi yang sama dengan candidate key beberapa relasi lainnya. 6. Super Key Menurut Thomas Connolly dan Carolyn Begg (2005:79), Super key adalah Sebuah atribut atau sekumpulan atribut, yang secara unik mengidentifikasi tuple dalam relasi. 2.1.8.5 Structural Constraint Berikut ini merupakan kendala yang dapat terjadi di dalam sebuah relas, yaitu sebagai berikut: 1. Multiplicity Menurut Thomas Connolly dan Carolyn Begg (2005:356), Multiciplity adalah kejadian dari suatu entity yang mungkin berelasi dengan kejadian dari tipe entitas terkait melalui relasi tertentu. Kami menguji tiga jenis relasi menggunakan kendala integritas berikut : a. One-to-One (1:1) Relationship b. One-to-Many (1:*) Relationships c. Many-to-Many (*:*) Relationships 2. Multiplicity for Complex Relationships Menurut Thomas Connolly dan Carolyn Begg (2005:361), Multiplicity for Complex Relationships adalah kejadian dari tipe entitas dalam relasi ketika yang lain (n-1) nilainya tetap. Multiplicity sebenarnya terdiri atas dua constraint yang berbeda, yaitu: 28 a. Cardinality Menurut Thomas Connolly dan Carolyn Begg (2005:363), Cardinality menjelaskan mengenai jumlah relasi maksimum yang memungkinkan terjadinya entitas yang berpartisipasi dalam tipe relasi tertentu. b. Participant Menurut Thomas Connolly dan Carolyn Begg (2005:363), Participant menentukan apakah semua atau hanya beberapa entitas saja yang berpartisipasi dalam suatu relasi. 2.1.9 Entity Relationship Diagram (ERD) Menurut Thomas Connolly dan Carolyn Begg (2005:343), konsep dasar model Entity-Relationship, yaitu entitas, relasi, dan atribut. Dalam setiap bagian menggambarkan bagaimana konsep-konsep dasar ER diwakili dan digambarkan dalam diagram ER menggunakan UML. Menurut Indrajani (2011:18), Entity Relational (ER) Modeling adalah sebuah pendekatan top-down dalam perancangan basis data yang dimulai dengan mengidentifikasikan data-data terpenting yang disebut dengan entitas dan hubungan antara entitas-entitas tersebut yang digambarkan dalam suatu model. 2.1.10 Normalisasi (Normalization) Menurut Thomas Connolly dan Carolyn Begg (2005:388), Normalisasi adalah Sebuah teknik untuk menghasilkan himpunan relasi dengan properti yang diinginkan, yang sesuai dengan kebutuhan data dari suatu perusahaan. Menurut Thomas Connolly dan Carolyn Begg (2005:403), Unormalized Form (UNF) adalah sebuah tabel yang berisi satu atau lebih kelompok berulang. Berikut ini merupakan tahap tingkatan normalisasi: 1. First Normal Form (1NF) Menurut Thomas Connolly dan Carolyn Begg (2005:403), First Normal Form (1NF) adalah Sebuah relasi dimana setiap baris dan kolom berisi satu dan hanya satu nilai, tidak ada perhitungan. Sebuah relasi akan berada dalam bentuk 1NF jika repeating group sudah hilang. Ada dua pendekatan 29 untuk menghilangkan repeating group pada tabel yang tidak normal (unnormalized table), yaitu: a. Dengan memasukkan data yang sesuai kedalam kolom yang kosong dari basis yang mengandung kata yang berulang. b. Dengan menempatkan data yang berulang bersama salinan dari atribut kunci pada relasi yang terpisah. 2. Second Normal Form (2NF) Menurut Thomas Connolly dan Carolyn Begg (2005:407), Second Normal Form (2NF) adalah suatu relasi yang ada dalam Bentuk Normal Pertama dan setiap atribut bukan non-primer-key sepenuhnya fungsionalitas tergantung pada primary key. c. Third Normal Form (3NF) Menurut Thomas Connolly dan Carolyn Begg (2005:409), Third Normal Form (3NF) adalah suatu relasi yang ada di Bentuk Normal Pertama dan Kedua dan di mana tidak ada atribut non-primer-key transitif bergantung pada primary key. Menurut Thomas Connolly dan Carolyn Begg (2005:409), Third Normal Form (3NF) adalah suatu relasi yang ada di Bentuk Normal Pertama dan Kedua dan di mana tidak ada atribut non-primer-key transitif bergantung pada primary key. d. Boyce Codd Normal Form (BCNF) Menurut Thomas Connolly dan Carolyn Begg (2005:419), Boyce Codd Normal Form (BCNF) adalah suatu relasi yang ada pada BCNF, jika, setiap determinan adalah kunci kandidat. e. Fourth Normal Form (4NF) Menurut Thomas Connolly dan Carolyn Begg (2005:430), Fourth Normal Form (4NF) adalah sebuah relasi yang ada pada bentuk normal Boyce-Codd dan tidak mengandung ketergantungan banyak nilai. f. Fifth Normal Form (5NF) Menurut Thomas Connolly dan Carolyn Begg (2005:431), Fifth Normal Form (5NF) adalah sebuah relasi yang tidak ketergantungan yang bergabung. 30 2.1.11 Database Application Lifecycle (DBLC) Gambar 2.2 Database System Development Lifecycle (DBLC) 31 Menurut Thomas Connolly dan Carolyn Begg (2005:284), Dalam merancang aplikasi sistem basis data diperlukan tahapan-tahapan terstruktur yang harus diikuti, tahapan-tahapan tersebut dinamakan lifecycle aplikasi basis data. Tahapan-tahapan dari lifecycle aplikasi basis data adalah sebagai berikut: Tabel 2.1 Penjelasan Database System Development Lifecycle (DBLC) Perencanaan basis data Perencanaan bagaimana tahapan lifecycle dapat direalisasikan secara efisien dan (database planning) efektif. Menentukan ruang lingkup dan batas- Definisi sistem batas dari sistem basis data, termasuk (system definition) pandangan utama pengguna, dan area aplikasi. Analisis dan pengumpulan kebutuhan Pengumpulan dan analisis persyaratan (requirements collection and analysis) untuk sistem basis data baru. Perancangan basis data (database design) Seleksi DBMS (DBMS selection) (optional) Perancangan aplikasi Perancangan konseptual, logikal, dan fisikal dari basis data. Memilih DBMS yang cocok untuk sistem basis data. Merancang user interface dan program aplikasi (application design) yang menggunakan dan memproses basis data. Membangun model kerja dari sistem basis data, yang memungkinkan para Prototipe (prototyping) (optional) desainer atau memvisualisasikan pengguna dan untuk mengevaluasi bagaimana sistem akhir akan terlihat dan berfungsi. 32 Implementasi (implementation) Membuat definisi basis data fisik dan program aplikasi. Mengambil data dari sistem lama ke Konversi data dan loading sistem baru dan jika memungkinkan, (data conversion and loading) mengubah aplikasi yang ada untuk dijalankan pada basis data baru . Pengujian Sistem basis data diuji untuk kesalahan dan divalidasi terhadap persyaratan yang (testing) ditentukan oleh pengguna . Sistem basis dilaksanakan data lalu sepenuhnya sistem ini terus Operasi pemeliharaan dipantau dan dipelihara. Bila perlu, (operational maintenance) persyaratan baru dimasukkan ke dalam sistem basis data melalui tahap sebelumnya dari lifecycle . 2.1.12 Relasi Kunci (Relational Keys) 1. Candidate key Set minimal attribut yang unik mendefinisikan setiap kejadian pada suatu entity. (Thomas Connolly dan Carolyn Begg, 2005:352) 2. Primary key Kandidat kunci unik yang dipilih untuk mengidentifikasikan setiap kejadian dari suatu entity. (Thomas Connolly dan Carolyn Begg, 2005:353) 3. Composite key Kandidat kunci yang terdiri dari dua atau lebih attribut (Thomas Connolly dan Carolyn Begg, 2005:353) 33 2.1.13 Strong and Weak Entity Types Menurut Thomas Connolly dan Carolyn Begg (2005:354), Tipe entitas adalah sekelompok objek dengan sifat yang sama, yang di identifikasi oleh perusahaan yang independen keberadaannya. Ada 2 jenis tipe entitas, yaitu: 1. Tipe entitas kuat (Strong entity types) Sebuah tipe entitas yang keberadaannya tidak tergantung pada beberapa tipe entitas lainnya. (Thomas Connolly dan Carolyn Begg, 2005:354). 2. Tipe entitas lemah (Weak entity types) Sebuah tipe entitas yang keberadaannya tergantung pada beberapa tipe entitas lainnya. (Thomas Connolly dan Carolyn Begg, 2005:355). 2.1.14 Perencanaan Basis Data (Database Planning) Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:285), perencanaan basis data adalah aktivitas pengelolaan yang memungkinkan tahapan dari siklus hidup basis data (Database Lifecycle) untuk direalisasikan seefisien dan seefektif mungkin. Perencanaan basis data harus terintegrasi dengan keseluruhan system informasi. Ada dua hal utama dalam merumuskan strategi sistem informasi, yaitu: 1. Identifikasi rencana dan tujuan perusahaan dengan Kebutuhan sistem informasi perusahaan berikutnya. 2. Evaluasi sistem informasi saat ini untuk menentukan kekuatan dan kelemahan yang ada saat ini. Melakukan penilaian Teknologi Informasi yang mungkin memiliki peluang untuk menghasilkan keunggulan yang kompetitif. 2.1.15 Definisi Sistem (System Definition) Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:286), definisi sistem menjelaskan mengenai ruang lingkup dan batasan dari aplikasi basis data dan pandangan pengguna lain. Sebelum mencoba untuk merancang sebuah sistem basis data, hal penting yang harus dilakukan adalah 34 mengidentifikasi batasan-batasan dari sistem yang sedang diselidiki. Hal ini sangat penting dilakukan dalam proses perancangan basis data agar lebih terfokus pada sistem yang akan dibuat. 2.1.15.1 Tampilan Pengguna (User Views) Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:287), tampilan pengguna Mendefinisikan apa yang dibutuhkan dari sistem basis data dari perspektif peran maupun pekerjaan tertentu (seperti Manager atau Supervisor) atau bidang aplikasi enterprise (seperti pemasaran, personalia, atau stok kontrol). Sebuah sistem basis data dapat memiliki satu atau lebih pandangan pengguna. Mengidentifikasi pandangan pengguna merupakan aspek penting pengembangan sistem basis data karena membantu untuk memastikan bahwa tidak ada pengguna utama basis data dilupakan ketika mengembangkan persyaratan untuk sistem basis data baru. 2.1.16 Pengumpulan dan Analisis Kebutuhan Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:287), Pengumpulan dan Analisis Kebutuhan adalah Proses mengumpulkan dan menganalisis informasi tentang bagian dari organisasi yang akan didukung oleh sistem basis data, dan menggunakan informasi ini untuk mengidentifikasi persyaratan untuk sistem baru. Tahap ini melibatkan pengumpulan dan analisis informasi mengenai bagian dari perusahaan yang akan dilayani oleh basis data. Ada banyak teknik untuk mengumpulkan informasi ini yang disebut teknik pencarian fakta. Informasi yang dikumpulkan meliputi : 1. deskripsi data yang digunakan atau yang dihasilkan. 2. rincian tentang bagaimana data akan digunakan atau dihasilkan. 3. persyaratan tambahan untuk sistem basis data baru. Kegiatan penting lainnya yang terkait dengan tahap ini adalah memutuskan bagaimana menangani situasi jika lebih dari satu tampilan pengguna untuk sistem basis data. Ada tiga pendekatan utama untuk mengelola persyaratan sistem basis data dengan beberapa tampilan pengguna, yaitu : 1. pendekatan terpusat (the centralized approach) Kebutuhan untuk tiap pandangan pemakai disatukan menjadi satu set 35 kebutuhan untuk aplikasi basis data. Umumnya pendekatan ini dipakai jika basis datanya tidak terlalu kompleks. 2. pendekatan integrasi pandangan (the view integration approach) Kebutuhan untuk tiap pandangan pemakai digunakan untuk membangun sebuah model yang terpisah yang mepresentasikan tiap pandangan pemakai tersebut. Hasil dari data-data model tersebut kemudian digabung dalam rancangan basis data. 3. kombinasi kedua pendekatan tersebut (a combination of both approaches) 2.1.17 Perancangan Basis Data (Database Design) Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:291), Perancangan basis data adalah proses menciptakan desain yang akan mendukung pernyataan dan tujuan misi perusahaan untuk sistem basis data yang diperlukan. Pada bagian ini akan membahas mengenai gambaran dari pendekatan utama untuk desain basis data. Selain itu juga mendiskusikan tujuan dan penggunaan pemodelan data dalam desain basis data. tiga tahapan desain basis data yaitu desain konseptual, logikal, dan fisikal. Pendekatan dalam perancangan basis data, antara lain : 1. Bottom-Up Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:291), bottom-up dimulai pada tingkat dasar atribut (yaitu, sifat entitas dan relasi), yang melalui analisis relasi antara atribut, dikelompokkan ke dalam relasi yang mewakili jenis entitas dan relasi antar entitas. 2. Top-Down Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:292), Top-Down merupakan Sebuah strategi yang lebih tepat untuk desain basis data yang. Pendekatan ini dimulai dengan pengembangan model data yang berisi entitas dan relasi tingkat tinggi dan kemudian menerapkan perbaikan top-down untuk mengidentifikasi entitas tingkat rendah, relasi, dan atribut yang terkait. Pendekatan top-down diilustrasikan menggunakan konsep 36 Entity-Relationship (ER) model, dimulai dengan identifikasi entitas dan relasi antara entitas, yang menarik bagi organisasi. 3. Inside-Out Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:292), Pendekatan inside-out berkaitan dengan pendekatan bottom-up tetapi berbeda, dengan terlebih dahulu mengidentifikasi satu set entitas utama dan kemudian menyebar keluar untuk mempertimbangkan entitas lain, relasi, dan atribut yang berelasi dengan yang pertama kali diidentifikasi. 4. Mixed Strategy Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:292), Pendekatan strategi campuran menggunakan kedua pendekatan bottom-up dan top-down untuk berbagai bagian dari model sebelum akhirnya menggabungkan semua bagian bersama-sama. 2.1.17.1 Perancangan Basis Data Konseptual (Conceptual Database Design) Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:293), Perancangan basis data konseptual adalah proses membangun sebuah model dari data yang digunakan dalam suatu perusahaan, independen dari semua pertimbangan fisikal. Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:442), Tujuan perancangan basis data konseptual adalah untuk membangun sebuah model data konseptual dari persyaratan data dari perusahaan. Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:440–459), Langkah-langkah dalam membangun model data konseptual adalah sebagai berikut : 1. Membangun model data konseptual a. Langkah 1.1 : Mengdentifikasi tipe entitas b. Langkah 1.2 : Mengidentifikasi tipe relasi c. Langkah 1.3 : Mengidentifikasi dan mengasosiasikan atribut dengan entitas atau relasi jenis 37 d. Langkah 1.4 : Menentukan domain atribut e. Langkah 1.5 : Menentukan candidate, primary, and alternate key attributes f. Langkah 1.6 : Mempertimbangkan penggunaan konsep model yang disempurnakan (langkah opsional) g. Langkah 1.7 : Memeriksa model untuk redundansi h. Langkah 1.8 : Validasi model konseptual terhadap transaksi pengguna i. Langkah 1.9 : Ulasan model data konseptual dengan pengguna Berikut adalah penjelasan dari langkah-langkah diatas. 1. Langkah 1 : Membangun model data konseptual membangun model data konseptual sesuai dengan kebutuhan data pada perusahaan, Tahap pertama dalam perancangan basis data konseptual adalah membangun satu atau lebih model data konseptual yang sesuai dengan kebutuhan data dari perusahaan. (Thomas Connolly dan Carolyn Begg, 2005:442–443) Tahapan-tahapan yang dilakukan pada langkah pertama adalah : 1. Langkah 1.1 : Mengidentifikasi tipe entitas Mendefinisikan objek-objek utama user. Objek-objek ini merupakan tipe-tipe entitas untuk model tersebut. Salah satu metode untuk mengidentifikasi entitas adalah dengan memeriksa spesifikasi kebutuhan user dengan mengidentifikasi kata benda. Contohnya adalah staff number, staff name, property number, property room dan sebagainya. (Thomas Connolly dan Carolyn Begg, 2005:443–444) 2. Langkah 1.2 : Mengidentifikasi tipe relasi Setelah mengidentifikasi tipe entitas, langkah selanjutnya yaitu mengidentifikasikan semua relasi-relasi penting yang ada diantara tipe entitas yang telah diidentifikasikan. Setelah 38 mengidentifikasikan relasi, langkah selanjutnya yaitu menentukan multiplicity dari setiap relasi. Batasan multiply digunakan untuk memeriksa dan memelihara kualitas data. (Thomas Connolly dan Carolyn Begg, 2005:445–447) 3. Langkah 1.3 : Mengidentifikasi dan menghubungkan atribut dengan tipe entitas atau relationship Langkah berikutnya yaitu mengidentifikasi atribut-atribut yang terdapat dalam suatu entitas. Biasanya berupa kata benda atau frasa kata benda dari spesifikasi kebutuhan user. Ada 3 jenis atribut, yaitu : Simple atau composite attributes, single atau multivalue attributes, derived attributes. (Thomas Connolly dan Carolyn Begg, 2005:447–450) 4. Langkah 1.4 : Menentukan domain atribut Tahap ini bertujuan untuk menentukan domain atribut di model data konseptual lokal. Domain merupakan kumpulan nilai-nilai yang diperbolehkan untuk satu atau lebih atribut. Sebuah model data yang baik menentukan domain untuk setiap atribut dan termasuk sekumpulan nilai-nilai yang diperbolehkan untuk atribut juga ukuran dan format dari atribut. (Thomas Connolly dan Carolyn Begg, 2005:450-451) 5. Langkah 1.5 : Menentukan atribut candidate key, primary key, dan alternate key Candidate key adalah kunci yang unik atau tidak mungkin sama atau berbeda dengan yang lain, dapat dipakai untuk mengidentifikasi satu baris dalam tipe entitas. Primary key adalah candidate key yang dipilih sebagai kunci primer untuk mengidentifikasikan setiap entitas. Langkah ini bertujuan untuk mengidentifikasi candidate key untuk setiap tipe entitas, jika terdapat lebih dari satu candidate key kemudian pilih salah satunya menjadi primary key. Alternate key merupakan candidate key yang tidak dipilih menjadi primary key. (Thomas Connolly dan Carolyn Begg, 2005:451–452) 39 6. Langkah 1.6 : Mempertimbangkan penggunaan enhanced modeling concepts (optional step) Mempertimbangkan penggunaan enhanced modeling concepts seperti specialization atau generalization, aggregation, dan composition. Jika memilih pendekatan specialization, usahakan untuk memperhatikan perbedaan antara entitas dengan mendefinisikan satu atau lebih subclass dari sebuah entitas superclass. Jika memilih menggunakan pendekatan generalization, usahakan untuk mengidentifikasikan fitur-fitur umum antara entitas untuk mendefinisikan generalisasi entitas superclass. Pendekatan aggregation digunakan untuk mempresentasikan relasi “mempunyai sesuatu” atau “bagian dari” relasi antara tipe-tipe entitas, dimana yang satu mempresentasikan “keseluruhan” dan yang lain sebagai “bagiannya”. Pendekatan composition digunakan untuk mempresentasikan sebuah asosiasi antara tipe-tipe entitas dimana terdapat kepemilikan yang kuat dan relasi antara “keseluruhan” dan “bagiannya”. (Thomas Connolly dan Carolyn Begg 2005:453–481) 7. Langkah 1.7 : Cek model untuk redudansi Tahap ini bertujuan untuk memeriksa model data konseptual lokal, apakah masih ada redudansi pada model. Dua aktivitas pada tahap ini, yaitu : i. Memeriksa kembali relasi one-to-one (1 :1) Saat identifikasi entitas, mungkin saja kita menemukan dua entitas yang merepresentasikan objek yang sama pada perusahaan. Untuk kejadian ini kedua entitas tersebut harus digabungkan. Jika primary key berbeda, pilih salah satu untuk menjadi primary key dan biarkan yang lain menjadi alternate key. ii. Menghilangkan relasi yang redundan Data model yang baik sangat diharapkan untuk tidak memiliki relasi yang redudan. Suatu relasi dikatakan 40 redudansi jika terdapat informasi yang sama yang diperbolehkan oleh relasi lain. iii. Mempertimbangkan dimensi waktu Dimensi waktu dalam relasi sangat penting dalam menentukan redudansi. (Thomas Connolly dan Carolyn Begg, 2005:453–456) 8. Langkah 1.8 : Validasi model konseptual lokal dengan transaksi user Tahap ini bertujuan untuk memastikan bahwa model konseptual mendukung kebutuhan transaksi yang diperlukan bagi view. Dua pendekatan untuk memastikan model data konseptual mendukung kebutuhan transaksi, yaitu: i. Mendeskripsikan transaksi Memeriksa apakah semua informasi (entitas, relasi, dan atributnya) yang dibutuhkan oleh setiap transaksi telah disediakan oleh model, dengan mendokumentasikan sebuah deskripsi dari setiap kebutuhan transaksi. ii. Menggunakan jalur transaksi Memvalidasi model data terhadap kebutuhan transaksi yang melibatkan diagram yang merepresentasikan jalur setiap transaksi dalam diagram ER. (Thomas Connolly dan Carolyn Begg, 2005:456–458) 9. Langkah 1.9 : Meninjau kembali model data konseptual lokal dengan user Pada langkah ini, user akan meninjau ulang model data konseptual. Jika terjadi anomali pada model data, maka harus dilakukan perubahan yang mungkin memerlukan pengulangan langkah-langkah sebelumnya. Proses ini akan terus diulang sampai model data benar-benar menjadi representasi aktual dari perusahaan. (Thomas Connolly dan Carolyn Begg, 2005:458) 2.1.17.2 Perancangan Basis Data Logikal (Logical Database Design) Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:294), Perancangan basis data logikal adalah proses membangun sebuah model dari data yang digunakan dalam suatu perusahaan 41 berdasarkan pada model data yang spesifik, tetapi independen dari DBMS tertentu dan pertimbangan fisik lainnya. Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:442), Tujuan perancangan basis data logikal adalah untuk menerjemahkan model data konseptual menjadi model data logikal dan kemudian untuk memvalidasi model ini untuk memeriksa bahwa itu secara struktural benar dan mampu mendukung transaksi yang diperlukan. Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:462–493) Langkah-langkah dalam membangun model data logikal adalah sebagai berikut: 2. Langkah 2 : Membangun model data logikal a. Langkah 2.1 : Menurunkan relasi untuk model data logikal b. Langkah 2.2 : Validasi relasi dengan menggunakan normalisasi c. Langkah 2.3 : Validasi relasi terhadap transaksi pengguna d. Langkah 2.4 : Memeriksa kendala integritas e. Langkah 2.5 : Meninjau kembali model data logikal dengan pengguna f. Langkah 2.6 : Menggabungkan model data logikal ke dalam model global (optional step) g. Langkah 2.7 : Memeriksa perkembangan di masa depan Berikut adalah penjelasan dari langkah-langkah diatas. a. Langkah 2.1 : Menurunkan relasi untuk model data logikal Tahap ini bertujuan untuk membuat relasi untuk model data logikal untuk merepresentasikan entitas, relasi dan atribut yang telah diidentifikasikan. Cara–cara yang dapat dilakukan untuk mendapatkan relasi dari data model yang ada adalah tipe entitas kuat, tipe entitas lemah, tipe relasi binary one-to-many (1:*), tipe relasi binary one-to-one (1:1), relasi rekursif one-to-one(1:1), tipe relasi superclass / subclass, tipe relasi binary many-to-many (*:*), 42 tipe relasi kompleks, atribut multi-valued. (Thomas Connolly dan Carolyn Begg, 2005:463–472) b. Langkah 2.2 : Validasi relasi menggunakan normalisasi Normalisasi digunakan untuk memastikan relasi dan atribut yang mendukung kebutuhan dari perusahaan. Juga redudansi data yang minimal pada relasi untuk menghindari masalah yang mungkin terjadi. Proses normalisasi terdiri dari UNF, 1NF, 2NF, 3NF. (Thomas Connolly dan Carolyn Begg, 2005:473–474) c. Langkah 2.3 : Validasi relasi terhadap transaksi pengguna. Tujuan pada tahap ini yaitu untuk memvalidasi model data logikal untuk memastikan bahwa model data mendukung kebutuhan transaksi yang telah tercantum didalam spesifikasi kebutuhan user. Validasi transaksi seperti ini sudah dilakukan pada tahap 1.8, namun kembali dilakukan untuk memeriksa relasi-relasi yang telah dibuat pada langkah sebelumnya juga mendukung transaksi ini. Juga untuk memastikan tidak terdapat kesalahan dalam pembuatan relasi-relasi. (Thomas Connolly dan Carolyn Begg, 2005:474) d. Langkah 2.4 : Memeriksa kendala integritas. Kendala integritas adalah batasan-batasan yang harus ditentukan untuk melindungi basis data agar tetap konsisten (Thomas Connolly dan Carolyn Begg, 2005:474–478) Tipe integrity constraint, yaitu : i. required data ii. attribute domain constraints iii. multiplicity iv. entity integrity v. referential integrity vi. general constraints 43 e. Langkah 2.5 : Meninjau Kembali model data logikal dengan pengguna Tahapan ini Untuk meninjau model data logikal dengan pengguna dan untuk memastikan bahwa mereka mempertimbangkan model data yang terbentuk merupakan representasi data perusahaan tersebut. (Thomas Connolly dan Carolyn Begg, 2005:478–479) f. Langkah 2.6 : Menggabungkan model data logikal ke dalam model global (optional step) Tahapan ini bertujuan untuk menggabungkan model data logical local ke dalam data model single global logical yang mewakili semua user views dari basis data. Aktivitas dalam tahap ini, yaitu: i. Menggabungkan model data logikal lokal ke dalam model global, ii. Validasi model data logikal global, iii. Meninjau kembali model data logikal global dengan user (Thomas Connolly dan Carolyn Begg, 2005:479–590). g. Langkah 2.7 : Memeriksa perkembangan di masa depan Tujuan dari tahap ini adalah untuk menentukan apakah ada perubahan yang signifikan di masa depan dan untuk memperkirakan apakah model data logikal bisa mengakomodasi perubahan tersebut. (Thomas Connolly dan Carolyn Begg, 2005:490) 2.1.17.3 Perancangan Basis Data Fisikal (Physical Database Design) Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:294), Perancangan basis data fisikal adalah proses dalam menghasilkan deskripsi implementasi basis data pada secondary storage, hal ini menggambarkan relasi dasar, organisasi file, dan indeks yang digunakan untuk mencapai akses yang efisien terhadap data, setiap kendala integritas yang terkait dan tahap – tahap keamanan. 44 Menurut Thomas Thomas Connolly dan Carolyn Carolyn Begg (2005:496–517), Langkah-langkah dalam membangun model data logikal adalah sebagai berikut : 3. Langkah 3 : Menerjemahkan model data logikal global untuk sasaran DBMS a. Langkah 3.1 : Merancang relasi dasar b. Langkah 3.2 : Merancang representasi dari derived data c. Langkah 3.3 : Merancang kendala umum 4. Langkah 4 : Merancang organisasi file dan indeks a. Langkah 4.1 : Menganalisa transaksi b. Langkah 4.2 : Memilih organisasi file c. Langkah 4.3 : Memilih indeks d. Langkah 4.4 : Memperkirakan kebutuhan ruang disk 5. Langkah 5 : Mendesain user view 6. Langkah 6 : Mendesain mekanisme keamanan 7. Langkah 7 : Mempertimbangkan petunjuk controlled redundancy 8. Langkah 8 : Memonitor dan memperbaiki sistem operasional Berikut adalah penjelasan dari langkah-langkah diatas. 3. Langkah 3 : Menerjemahkan model data logikal global untuk sasaran DBMS Langkah ini bertujuan untuk menghasilkan skema basis data relational dari model data logikal yang dapat diimplementasikan pada DBMS pilihan. Bagian pertama dari proses ini melibatkan perbandingan informasi yang dikumpulkan selama perancangan basis data logikal. Sedangkan bagian kedua dari proses ini menggunakan informasi tersebut untuk menghasilkan desain relasi dasar. (Thomas Connolly dan Carolyn Begg, 2005:497–498) a. Langkah 3.1 : Merancang relasi dasar Menentukan bagaimana mempresentasikan relasi dasar dalam model data logikal ke dalam DBMS. 45 (Thomas Connolly dan Carolyn Begg, 2005:498–499) b. Langkah 3.2: Merancang representasi dari derived data Menentukan bagaimana mempresentasikan beberapa derived data yang terdapat dalam model data logikal ke dalam DBMS. (Thomas Connolly dan Carolyn Begg, 2005:499–501) c. Langkah 3.3 : Merancang kendala umum Perubahan terhadap data dapat dibatasi oleh general constraint yang mengatur transaksi dalam “dunia nyata”. Perancangan batasan ini tergantung pada pemilihan DBMS yang akan digunakan. Beberapa DBMS menyediakan fasilitas ini, namun ada juga yang tidak menyediakannya, sehingga untuk menentukan batasan harus dilakukan pada program aplikasi. (Thomas Connolly dan Carolyn Begg, 2005:501) 4. Langkah 4 : Merancang organisasi file dan indeks Langkah ini bertujuan untuk menentukan organisasi file yang optimal untuk menyimpan relasi dasar dan indeks yang dibutuhkan untuk mencapai hasil yang baik, yaitu dengan cara dimana relasi dan basis data akan dipegang di tempat penyimpanan akhir sekunder. (Thomas Connolly dan Carolyn Begg, 2005:501–502) a. Langkah 4.1 : Menganalisa transaksi Analisa transaksi berfungsi untuk memahami fungsi dari transaksi yang akan dijalankan pada basis data dan untuk menganalisa transaksi yang penting. (Thomas Connolly dan Carolyn Begg, 2005:502–506) b. Langkah 4.2 : Memilih organisasi file Bertujuan untuk menentukan organisasi file yang efisien untuk setiap relasi dasar. Ada lima tipe organisasi file, yaitu heap, hash, indexed sequential office access method (ISAM), b-tree, dan clusters. (Thomas Connolly dan Carolyn Begg, 2005:506–508) c. Langkah 4.3 : Memilih indeks Menentukan apakah dengan meningkatkan kinerja dari sistem. menambahkan indeks akan 46 (Thomas Connolly dan Carolyn Begg, 2005:508–514) d. Langkah 4.4 : Memperkirakan kebutuhan ruang disk Memperkirakan jumlah dari disk space yang dibutuhkan untuk mendukung implementasi basis data pada secondary storage. (Thomas Connolly dan Carolyn Begg, 2005:514–515) 5. Langkah 5 : Mendesain user view Mendesain user view yang telah diidentifikasi selama pengumpulan kebutuhan. (Thomas Connolly dan Carolyn Begg, 2005:515–516) 6. Langkah 6 : Mendesain mekanisme keamanan Membatasi pengaksesan basis data oleh user yang tidak berhak dan menspesifikasikan basis data yang dapat diakses oleh user. (Thomas Connolly dan Carolyn Begg, 2005:516) 7. Langkah7 : Mempertimbangkan petunjuk controlled redundancy Melakukan normalisasi agar dapat meningkatkan kinerja dari sistem dan menghilangkan redudansi. (Thomas Connolly dan Carolyn Begg, 2005:519) 8. Langkah 8 : Memonitor dan memperbaiki sistem operasional Memonitor sistem operasional dan meningkatkan kinerja dari sistem dengan memperbaiki desain yang tidak sesuai atau perubahan kebutuhan. (Thomas Connolly dan Carolyn Begg, 2005:532) 2.2 Teori yang Terkait Tema Penelitian Dalam tinjauan pustaka yang berhubungan dengan hal-hal khusus tentang topik skripsi dan alat bantu analisis dan perancangan basis data akan diruaikan secara ringkas, antara lain : pembayaran, honorarium, pertimbangan pembayaran honorarium pada PT PLN (Persero) UDIKLAT Jakarta, keputusan pembayaran honorarium pada PT PLN (Persero) UDIKLAT Jakarta, istilah-istilah ketentuan umum pada PT PLN (Persero) UDIKLAT Jakarta dan alat bantu(tools) yang digunakan seperti LAN (Local Area Network), intranet, protokol, web server, menjelajah web(web browser), web basis data(database), PHP, MySQL, diagram aliran data(data flow diagram), dan STD(state transition diagram), JavaScript, CSS (Cascading Style Sheets), HTML(hypertext markup language), prepared statements. 47 2.2.1 Pengertian Honorarium Menurut Kamus Besar Bahasa Indonesia (2009:330), Honorarium adalah gaji atau imbal jasa berupa uang untuk pegawai bukan pegawai negeri (yang bekerja di suatu instansi atau kedinasan). KPPN JAKARTA I. 20 September (2008). Daftar Kata dan Istilah (Online), diakses 1 Desember 2013 dari http://www.kppn-jktsatu.web.id/index.php?pilih =kamus&aksi=baca&kata=honorarium. honorarium diartikan sebagai pembayaran atas jasa yang diberikan pada suatu kegiatan tertentu. 2.2.2 Ketentuan Pembayaran Honorarium pada PT PLN (Persero) UDIKLAT Jakarta a. bahwa ketentuan pemberian honorarium sebagai penghargaan / kompensasi atas kegiatan mengajar dan atau setara yang diselenggarakan oleh PT PLN (Persero) Pusat Pendidikan dan Pelatihan, sudah tidak sesuai dengan perkembangan lingkungan perusahaan yang wajar, layak, dan memadai, b. bahwa pemberian penghargaan sebagaimana dimaksud pada huruf a, perlu dilakukan penyesuaian agar dapat digunakan untuk mengembangkan kemampuan kompetensi keinstrukturan dan atau peningkatan kompetensi individu instruktur / penceramah / setara, c. bahwa dengan mempertimbangkan hal-hal sebagaimana dimaksud pada huruf a dan b, perlu menetapkan keputusan Kepala PT PLN (Persero) Pusat Pendidikan dan Pelatihan tentang honorarium bagi tenaga pengajar dan penyusun materi diklat di lingkungan PT PLN (Persero) Pusat Pendidikan dan Pelatihan. 2.2.3 Keputusan Pembayaran Honorarium Pada PT PLN (Persero) UDIKLAT Jakarta 1. Anggaran dasar PT PLN (Persero), 2. Keputusan Direksi PT PLN (Persero) Nomor : 319.K/DIR/2008 tentang Organisasi PT PLN (Persero) Pusat Pendidikan dan Pelatihan, 3. Keputusan Direksi PT PLN (Persero) Nomor : 017.K/DIR/2010 tentang Organisasi dan Tata Kerja PT PLN (Persero), 48 4. Keputusan General Manajer PT PLN (Persero) Jasa Pendidikan dan Pelatihan Nomor: 159 K/PUSDIKLAT/2008 tentang Bagan Susunan Jabatan (BSJ) pada Organisasi Kantor Induk PT PLN (Persero) Pusat Pendidikan dan Pelatihan. 2.2.4 Istilah-istilah ketentuan umum pada PT PLN (Persero) UDIKLAT Jakarta 1. Perseroan adalah PT PLN (Persero) yang didirikan dengan Akte Notaris Sutjipto, SH No.169 Tahun 1994, 2. Direksi adalah Direksi Perseroan, 3. Pusdiklat adalah PT PLN (Persero) Pusat Pendidikan dan Pelatihan, 4. UDIKLAT adalah PT PLN (Persero) Unit Pendidikan dan Pelatihan, 5. Kepala adalah Kepala PT PLN (Persero) Pusat Pendidikan dan Pelatihan, 6. Diklat Reguler adalah kegiatan pendidikan dan pelatihan yang terjadwal secara rutin dan materi buku yang telah ditetapkan melalui keputusan Kepala PT PLN (Persero) Pusdiklat, 7. Pegawai adalah Pegawai Perseroan dan atau Pegawai Anak Perusahaan Perseroan, 8. workshop/sejenis adalah kegiatan pendidikan dan pelatihan atau bentuk lain proses belajar mengajar, yang tidak terjadwal rutin atau bersifat insidentil dan materinya belum/tidak dibakukan d engan keputusan Kepala PLN Pusdiklat, 9. Instruktur adalah orang yang melaksanakan tugas mengajar pada kegiatan pendidikan dan pelatihan reguler, baik dengan status Pegawai atau tidak berstatus Pegawai termasuk Asisten Instruktur, 10. Asisten Instruktur adalah orang yang melakukan proses magang mengajar untuk menjadi Instruktur dengan pengawasan Instruktur atau orang yang membantu Instruktur dalam sistem mengajar metoda praktek/sejenis secara aktif terlibat dalam proses belajar praktek/sejenis, 11. Instruktur Tetap adalah pemangku jabatan fungsional pada Pusdiklat / UDIKLAT dengan sebutan jabatan Instruktur 12. Instruktur Tidak Tetap adalah orang yang bertugas dalam proses belajar mengajar dan tidak berstatus sebagai Instruktur Tetap, 49 13. Penceramah adalah seseorang yang ditugaskan memberikan ceramah atau sebagai narasumber pada kegiatan workshop/sejenis, 14. Mentor adalah aktifitas yang dilakukan oleh Pegawai selaku mentor kepada Pegawai siswa diklat selama melaksanakan on the job training(OJT) berupa pengenalan lingkungan kerja, arahan, berbagi pengalaman, memfasilitasi dan panutan untuk melaksanakan tugas/pekerjaan secara efektif dan efisien, 15. Sertifikat Instruktur adalah sertifikat Instruktur yang diberikan oleh Pusdiklat setelah diterbitkan keputusan ini, 16. SPPD adalah surat perintah perjalanan dinas. 2.2.5 Pengertian LAN (Local Area Network) Menurut William dan Sawyer (2007:321), LAN (Local Area Network) atau jaringan lokal adalah menghubungkan komputer dan piranti dalam cakupan geografis yang terbatas, misalnya pada satu kantor, satu gedung, atau kumpulan gedung yang berdekatan. Menurut Jonathan Lukas (2006:12–130, LAN atau Jaringan area lokal adalah jaringan yang menyediakan hubungan komunikasi dalam berbagai peralatan, sehingga peralatan yang ada dalam jaringan mampu memberi dan menerima informasi dari peralatan lainnya yang ada dalam jaringan tersebut. Konsep komunikasi pada LAN umumnya mengunakan cara broadcast bukan cara switch. Dengan teknik brodcast, tidak diperlukan switching node dalam jaringan. Disemua station akan terdapat transceiver yang melakukan komunikasi ke media, dimana media dipakai bersama-sama. 2.2.6 Pengertian Jaringan Klien-Server (Client-Server) Menurut William dan Sawyer (2007:322), Jaringan Klien-Server (Client-Server) terdiri dari klien (client) yaitu mikrokomputer yang meminta data dan server yaitu komputer yang menyampaikan data. Pada sebuah LAN client-server, pengguna mikrokomputer perorangan atau klien berbagi jasa dari komputer sentral yang disebut server. Dalam hal ini server merupakan jenis server file sehingga para pengguna bias berbagi file atau program. 50 Gambar 2.3 LAN Klien-Server 2.2.7 Pengertian Intranet Menurut William dan Sawyer (2007:323), Intranet adalah jaringan pribadi internal dalam sebuah organisasi yang menggunakan infrastruktur serta standar internet dan web. Menurut Indrajani (2011:274), Intranet merupakan suatu situs web atau grup situs yang dimiliki oleh suatu organisasi, sehingga hanya dapat diakses oleh anggota-anggota organisasi tersebut. Berada di belakang firewall dan hanya dapat diakses oleh orang yang merupakan anggota dari organisasi yang sama. 2.2.8 Pengertian Protokol Menurut William dan Sawyer (2007:324), Protokol adalah sekumpulan konvensi yang mengatur pertukaran data antar komponen perangkat keras dan atau perangkat lunak dalam jaringan komunikasi. Setiap peranti yang terhubung ke jaringan memiliki alamat IP (internet protocol) sehingga komputer lain di jaringan dapat mengirim data ke alamat tersebut dengan tepat. Peranti pengirim dan penerima harus mengikuti protokol yang sama. 51 Menurut James F. Kurose dan Keith W. Ross (2003,p8), protokol mendefinisikan format dan urutan pesan yang dipertukarkan antara dua atau lebih entitas dalam berkomunikasi, serta mengambil tindakan pada transmisi dan atau melakukan penerimaan pesan atau kegiatan lainnya. Menurut Jonathan Lukas (2006:14), Protokol didefinisikan sebagai kumpulan aturan yang telah diorganisasikan dengan baik agar dua entitas dapat melakukan pertukaran data dengan kehandalan yang tinggi. 2.2.9 Pengertian Web Server Menurut James F. Kurose dan Keith W. Ross (2003 ,p90), Web Server adalah objek web yang masing-masing memiliki alamat dari URL. server web juga menerapkan sisi server HTTP. Beberapa server web yang populer yaitu Apache dan Microsoft Internet Information Server. HTTP mendefinisikan bagaimana web klien (misalnya browser) melakukan request halaman web dari web server dan bagaimana cara mentransferkan halaman web tersebut ke klien. 2.2.10 Pengertian Menjelajah Web (Web Browser) Menurut Williams dan Sawyer (2007:64), Menjelajah web (web browser) adalah perangkat lunak yang memungkinkan anda mencari dan mengakses beragam komponen web. Menurut James F. Kurose dan Keith W. Ross (2003:89), browser adalah agen pengguna untuk web. Web browser dapat menampilkan halaman web yang diminta dan menyediakan berbagai fitur navigasi dan konfigurasi. web browser yang juga menerapkan pada sisi klien HTTP. 2.2.11 Pengertian Web Basis Data (Web Database) Menurut Tirtha Indara Lesmana, Michael Onesimus Sumlang, Haryanto (2013). Analisa dan Perancangan Sistem Basis Data Pemesanan Makanan dan Minuman serta Ketersediaan Meja Pada Restoran Raja Kepiting. School of Computer Science, Teknik Informatika, Universitas Bina Nusantara, Jakarta. “Web Database System are systems in which both web and database technologies are used”. Dapat artikan bahwa web database system adalah sistem dimana 52 dipadukannya teknologi web dan basis data (database). Oleh karena itu web basis data menyediakan akses yang lebih luas ke dalam sistem basis data. Cara ini digunakan untuk mendistribusikan sistem dan banyak servis melalui sistem yang terintegrasi. 2.2.12 Pengertian PHP Menurut Deni Sutaji (2012:2), PHP (PHP Hpertext Preprocessor) adalah kode atau skrip yang akan dieksekusi pada server-side. Skrip PHP akan membuat suatu aplikasi dapat diintegrasikan ke dalam HTML, sehingga suatu halaman web tidak lagi bersifat statis, namun menjadi bersifat dinamis. Sifat server-side berarti pengerjaan skrip dilakukan di server, baru kemudian hasilnya dikirimkan ke browser. Menurut Luke W. dan Laura T. (2008:2), PHP adalah sebuah bahasa skrip dari sisi server (server-side scripting) yang di rancang khusus untuk web. Pada halaman HTML, anda bisa menggunakan kode PHP yang akan di eksekusi setiap kali mengunjungi web. Kode PHP ditafsirkan di web server dan menghasilkan HTML atau output lain yang pengunjung web akan lihat. Keunggulan PHP adalah : Performa(performance) Skalabilitas(scalability) Antar muka untuk banyak sistem basis data yang berbeda Terpasang library untuk banyak tugas web umum Murah Mudah dipelajari dan digunakan Mendukung penuh terhadap object-oriented Portabilitas(portability) Fleksibilitas pendekatan perkembangan Ketersediaan source code Ketersediaan support dan dokumentasi 53 2.2.13 Pengertian MySQL Menurut Deni Sutaji (2012:40), MySQL adalah DBMS yang di distribusikan secara gratis dibawah lisensi dari General Public License (GPL), dimana setiap orang bebas untukmenggunakannya tetapi tidak bolehuntuk dijadikan program induk turunan bersifat close source (komersial). MySQL sebenarnya merupakan turunan dari salah satu konsep utama dalam basis data sejak lama, SQL (Structured Query Language). SQL adalah sebuah konsep pengoprasian basis data terutama untuk proses seleksi, pemasukan, pengubahan, dan penghapusan data yang dimungkinkan dapat dikerjakan dengan mudah dan otomatis. Menurut Luke W. dan Laura T. (2008:3) MySQL (diucapkan My-Ess-Que-Ell) adalah relational database management system (RDBMS) yang sangat cepat dan kuat. MySQL server mengontrol akses ke data anda untuk memastikan banyak user bisa bekerja secara bersamaan, memberikan akses yang cepat, dan memastikan hanya user yang berwenang dapat mengakses.Oleh karena itu, MySQL adalah banyak pengguna (multi-user) dan multi-thread server sehingga dapat digunakan pada server yang memiliki multi-CPU. MySQL menggunakan SQL (Stuctured Query Language) yang merupakan standar bahasa query basis data. Keunggulan MySQL adalah : Performa tinggi Murah Terstruktur dan mudah dipelajari Portabilitas Ketersediaan source code Ketersediaan support 2.2.14 Pengertian Diagram Aliran Data (Data Flow Diagram) Menurut Indrajani (2011:11), Diagram Aliran Data (Data Flow Diagram) adalah sebuah alat yang menggambarkan aliran data sampai sebuah sistem selesai, dan kerja atau proses dilakukan dalam sistem tersebut. 54 2.2.14.1 Komponen Utama Diagram Aliran Data (Data Flow Diagram) Menurut Indrajani (2011:11), Dalam DFD terdapat 4 komponen utama, yaitu : 1. agen ekternal (external agent) Agen eksternal mendefinisikan orang atau sebuah unit organisasi, sistem lain, atau organisasi yang berada diluar sistem proyek tapi dapat mempengaruhi kerja sistem, 2. proses (process) proses adalah penyelenggaraan kerja atau jawaban, datangnya aliran data atau kondisinya, 3. simpanan Data (data store) data store adalah penyimpanan data 4. arus data (data flow) arus data mempresentasikan sebuah input data ke dalam sebuah proses atau output dari data atau informasi pada sebuah proses. Tabel 2.2 Beberapa komponen DFD Simbol DeMarco dan Yourdan Keterangan Kesatuan luar (source) Proses (process) Simbol Gane dan Sarson 55 Aliran data (data flow) Simpanan data (data store) 2.2.14.2 Jenis-jenis Diagram Aliran Data (Data Flow Diagram) Jenis-jenis DFD adalah sebagai berikut : 1. level 0 (diagram konteks) merupakan sebuah proses yang berada diposisi pusat, 2. level 1 (diagram nol) merupakan sebuah proses yang terdapat di level 0 yang dipecahkan menjadi beberapa proses lainnya. Sebaiknya maksimum 7 proses untuk sebuah diagram konteks, 3. level 2 (diagram rinci) a. level ini merupakan diagram yang merincikan diagram level 1, b. tanda * digunakan hanya jika proses tersebut tidak dapat dirincikan lagi. 2.0* artinya proses level rendah yang tidak dapat dirincikan lagi, c. penomoran yang dilakukan berdasarkan urutan proses. 56 Gambar 2.4 Contoh diagram konteks Dari gambar tersebut terlihat, terdapat 1 proses, 3 entitas, dan 9 aliran data. Entitas pemasok memiliki 1 aliran masuk dan 2 aliran keluar. Entitas pelanggan memiliki 2 aliran masuk dan 2 aliran keluar. Entitas manajer memiliki 4 aliran keluar. Aliran masuk adalah entitas kedalam sistem, sedangkan aliran keluar sebaliknya yaitu aliran data dari sistem entitas. 2.2.14.3 Perbandingan Sistem Diagram Alir dengan DFD Berikut ini merupakan perbandingan Sistem Diagram Alir dengan DFD : 57 Tabel 2.3 Tabel Perbandingan Sistem Aliran Data dengan DFD Sistem Diagram Alir DFD Menekankan pada kata yang spesifik dan Menunjukkan bagaimana data di proses apa yang akan dilakukan pada data dan menjelaskan aspek fisikal yang telah tersebut. Juga menjelaskan isi aliran data, pasti. proses, penyimpanan data, dan sumber serta tujuan dari data tersebut. Biasanya digunakan untuk mendokumentasikan elemen fisikal dari sistem informasi akuntansi, baik yang sistem telah ada maupun sistem baru Lebih cocok digunakan untuk analisis proses sebuah sistem. didesain. Memerlukan notasi yang bervariasi. Hanya memerlukan 4 notasi. 2.2.15 Pengertian Diagram Keadaan Transisi (State Transition Diagram) Menurut Indrajani (2011:17), diagram keadaan transisi (state transition diagram) adalah suatu kondisi yang menunjukkan keadaan tertentu, dimana suatu sistem dapat ada dan transisi menghasilkan keadaan tertentu yang baru. Biasanya digunakan dalam sistem yang waktu nyata(real time). 2.2.15.1 Hal-hal yang terdapat dalam STD Hal-hal yang terdapat dalam STD, antara lain : 1. keada an system (system state) adalah setiap empat persegi panjang menggambarkan satu keadaan sistem dari sistem secara keseluruhan, 2. keada an berubah (change of state) 58 3. kondis i dan aksi (conditions and actions) Siaga Menunggu panggilan Rekaman pesan Memutar ulang Menjawab panggilan Gambar 2.5 Contoh DFD Keadaan 1 Keadaan 2 Keadaan 3 Gambar 2.6 Keadaan Berubah (Change of State) Memainkan pesan 59 Keadaan 1 Kondisi Aksi Keadaan 2 Gambar 2.7 Kondisi dan Aksi (Conditions and Actions) 2.2.16 Pengertian JavaScript Menurut Williams dan Lawyer (2007:543), JavaScript adalah bahasa scripting berorientasi objek yang populer didukung dalam web browser. Menurut Robin Nixon (2009:7), JavaScript diciptakan untuk memungkinkan akses scripting untuk semua elemen dari sebuah dokumen HTML. 2.2.17 Pengertian CSS (Cascading Style Sheets) Menurut Luke W. dan Laura T. (2008:858), CSS (Cascading Style Sheets) digunakan untuk memperindah tampilan pada halaman aktif statis, dinamis, dan AJAX. Menggunakan CSS memungkinkan pengembang web (developer) untuk mengubah definisi tag, class, atau ID dalam satu dokumen (style sheet) dan seketika akan berubah efek di semua halaman yang terhubung dalam style sheet. Menurut Roki Aditama (2013:37), CSS (Cascading Style Sheets) merupakan salah satu bahasa pemrograman web yang bertujuan untuk membuat web kita menjadi lebih menarik dan terstruktur, dalam CSS kita bisa merubah warna tabel, besar font, atau tata letak menu yang terkendali dari CSS sehingga semua jendela web yang berkaitan dengan perubahan tersebut secara otomatis dapat berubah, dengan CSS kita tidak perlu membuat style pada setiap file PHP, karena cukup dengan satu file CSS kita telah bisa mengontrol semua style yang kita inginkan pada setiap file PHP yang akan ditampilkan nanti di browsernya. 2.2.18 Pengertian HTML (Hypertext Markup Language) Menurut Williams dan Lawyer (2007:67), HTML (hypertext markup language) adalah sekumpulan perintah khusus disebut tag atau markup yang dipakai untuk 60 menentukan struktur, bentuk, dan link pada dokumen ke dokumen multimedia lain di web. Menurut Indrajani (2011:275), HTML (hypertext markup language) merupakan bahasa standard yang digunakan untuk mendisain hampir seluruh halaman web, dimana kita dapat mengontrol tampilan web page dan kontennya, mempublikasikan dokumen secara online, membuat form online untuk pendaftaran atau transaksi, dan menambahkan objek-objek sperti image, audio, video, dan java applet ke dalam dokumen HTML. HTML adalah aplikasi Standarized Generalized Markup Language (SGML), yaitu sistem untuk mendifinisikan tipe dokumen terstruktur dan menetapkan bahasa untuk merepresentasikan tipe dokumen tersebut. 2.2.19 Prepared Statements The PHP Group. 5 April (2014). Prepared statements and stored procedures (Online), diakses 27 Januari 2014 dari id1.php.net/pdo.prepared-statements. Banyak dari basis data terbaru mendukung konsep prepared statements. Prepared statements dianggap sebagai semacam template terkompilasi untuk SQL bahwa aplikasi ingin dijalankan dan dapat disesuaikan dengan menggunakan parameter variabel. prepared statements menawarkan dua manfaat utama : 1. Query hanya perlu dipersiapkan sekali, tetapi dapat dijalankan beberapa kali dengan parameter yang sama atau berbeda. 2. Parameter untuk prepared statements tidak perlu dikutip, driver secara otomatis menangani ini. Jika sebuah aplikasi eksklusif menggunakan prepared statements, developer dapat yakin bahwa tidak akan terjadi injeksi SQL. 2.2.20 Pengertian Interaksi Manusia dan Komputer Menurut Indrajani (2011:74-75), Interaksi manusia dan komputer adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi dan implementasi sistem komputer interaktif untuk digunakan oleh manusia. Serta studi fenomenafenomena besaryang berhubungan dengannya. Terdapat delapan aturan emas dalam merancang user interface. Delapan aturan tersebut dapat digunakan dalam 61 sebuah sistem yang interaktif dan membutuhkan sebuah validasi dan pengaturan untuk sebuah tampilan domain yang spesifik. Tabel 2.4 Delapan Aturan Emas IMK Tahapan 1. Berusaha untuk konsistensi Penjelasan Konsistensi dilakukan pada urutan tindakan, perintah, dan istilah yang digunakan pada prompt, menu, serta layar bantuan. Contohnya adalah konsistensi formulir dalam hal alur form, warna, menu, tampilan, tulisan, dan masih banyak lagi. 2. Memenuhi kegunaan bersama Memungkinkan pengguna untuk menggunakan shortcut, ada kebutuhan dari pengguna yang telah ahli untuk meningkatkan kecepatan interaksi, sehingga diperlukan singkatan, tombol fungsi, perintah tersembunyi, dan fasilitas makro. 3. Memberikan umpan balik yang Untuk informatif sebaiknya disertakan suatu sistem umpan balik setiap untuk tindakan tindakan yang operator, sering dilakukan dan tidak terlalu penting, dapat diberikan umpan balik yang sederhana. Tetapi ketika tindakan merupakan hal 62 yang penting, maka umpan balik sebaiknya lebih substansial. Misalnya muncul suatu suara ketika salah menekan tombol pada waktu input data atau muncul pesan kesalahannya. 4. Desain dialog untuk menghasilkan Urutan tindakan sebaiknya diorganisir penutupan dalam suatu kelompok dengan bagian awal, tengah, dan akhir. Umpan balik yang informatif akan memberikan indikasi bahwa cara yang dilakukan telah benar dan dapat mempersiapkan kelompok tindakan berikutnya. 5. Mencagah kesalahan Sedapat mungkin sehingga sistem pengguna dirancang tidak melakukan kesalahan kesalahan terjadi, dapat fatal. Jika sistem dapat mendeteksi kesalahan dengan cepat dan memberikan mekanisme yang sederhana dan mudah dipahami untuk penanganan kesalahan. 6. Memperkenankan pembalikan aksi Hal ini dapat mengurangi kekhawatiran yang mudah pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan, sehingga pengguna tidak takut untuk mengeksplorasi pilihan- pilihan lain yang belum digunakan. 7. Dukungan internal dari tempat kendali Pengguna sistem ingin dan menjadi sistem akan pengontrol merespon 63 tindakan yang dilakukan pengguna, daripada pengguna merasa bahwa sistem mengontrol pengguna. Sebaiknya sistem dirancang sedemikian rupa sehingga pengguna menjadi inisiator daripada responden. 8. Mengurangi beban memori jangka Keterbatasan ingatan manusia pendek membutuhkan tampilan yang sederhana atau banyak tampilan halaman yang sebaiknya disatukan, serta memberikan cukup waktu pelatihan untuk kode, mnemonic, dan urutan tindakan. Namun menurut Shneiderman & Plaisant (2005:74), prinsip-prinsip ini berasal dari pengalaman dan disempurnakan selama dua dekade, perlu validasi dan tuning untuk domain desain khusus. Tidak ada daftar seperti ini yang bisa diselesaikan, tetapi telah diterima dengan baik sebagai pandauan yang berguna untuk siswa dan desainer, dalam IMK, terdapat 8 aturan emas (Eight Golden Rules) yang digunakan dalam perancangan antarmuka pemakai, yaitu : 1. Berusaha untuk konsistensi Mengikuti aturan ini bisa sulit karena banyak bentuk yang harus konsistensi. Konsistensi dari urutan tindakan harus diperlukan dalam situasi yang sama, istilah-istilah yang sama harus digunakan di menu, layar bantuan, konsistensi warna, tampilan, pengkapitalisasian, dan font. 2. Memenuhi kegunaan bersama Mengetahui kebutuhan yang beragam dari pengguna dan rancangan untuk yang kelihatan, memfasilitasi perubahan terhadap isi. Perbedaan pemula dan pakar, tentang usia, dan keragunan teknologi setiap memperkaya spektrum persyaratan yang memandu dalam perancangan menambahkan fitur untuk pemula, seperti penjelasan, dan fitur-fitur untuk yang sudah ahli. 64 3. Memberikan umpan balik informatif Untuk setiap tindakan pengguna, harus ada umpan balik dari sistem. Untuk tindakan yang sering dan tindakan yang kecil, tanggepannya harus lebih banyak. 4. Desain dialog untuk menghasilkan penutupan Urutan-urutan dari tindakan harus terorganisasi kedalam kelompokkelompok dengan awal, pertengahan, dan akhir. Umpan balik yang informatif pada penyelesaian terhadap sebuah kelompok tindakan memberikan operator kepuasan dari penyelesaiannya, rasa lega, dan isyarat untuk bersiap buat kelompok tindakan selanjutnya. 5. Mencegah kesalahan Sebanyak mungkin merancang sebuah sistem yang pengguna tidak dapat melakukan kesalahan yang serius. Jika pengguna melakukan kesalahan antarmuka harus mendeteksi kesalahannya dan menawarkan instruksi yang simple dan spesifik untuk memperbaiki kesalahan tersebut. 6. Memungkinkan pembalikan aksi yang mudah Diharapkan adanya fitur untuk kembali (back) ke aktivitas sebelumnya. Hal ini bertujuan agar user dapat kembali ke aktivitas sebelumnya jika ternyata user melakukan suatu kesalahan sehinga user dapat memperbaikinya. 7. Dukungan internal dari tempat kendali Pengurus yang sudah berpengalaman mempunyai keinginan yang kuat merasakan bahwa mereka bertanggung jawab atas antarmuka dan merespon tidakan mereka. 8. Mengurangi beban memori jangka pendek Keterbatasan memproses informasi pada manusia dalam memori jangka pendek membutuhkan tampilan yang seadanya, menampilkan beberapa halaman dikonsolidasi, gerakan windows sering dikurangi, wktu pelatihan yang menandai akan dibagikan untuk kode, yang membantu ingatan, dan urutan dari tindakan. 2.3 Hasil Penelitian atau Produk Sebelumnya 65 Pada sub bab hasil penelitian atau produk sebelumnya akan dibahas secara ringkas mengenai berbagai karya tulis atau jurnal yang berkaitan dengan judul diatas. 2.3.1 Aplikasi Penggajian Pegawai Tetap Berbasis Web APLIKASI PENGGAJIAN PEGAWAI TETAP BERBASIS WEB (Studi Kasus pada Politeknik Telkom Bandung) Vicky Andi Arista Politeknik Telkom [email protected] Abstrak Sistem penggajian merupakan salah satu sistem yang mempunyai peranan cukup penting dalam suatu perusahaan termasuk pada Politeknik Telkom. Sistem penggajian menjadi tanggung jawab staf bagian Sumber Daya Manusia pada Politeknik Telkom dimana fungsi utamanya adalah memberikan kompensasi untuk pegawai berupa gaji sebagai ganti atas kontribusi mereka terhadap instansi. Staf SDM harus menghitung gaji pegawai dengan menggunakan Microsoft Office Excel yang dibedakan berdasarkan data status kepegawaian dan jabatan, dimana hal tersebut sedikit banyak masih mengalami berbagai macam kendala dalam pengolahan data. Hal ini menjadikan sistem penggajian perlu didukung dengan sistem informasi yang baik. Berdasarkan permasalahan diatas, maka dibutuhkan aplikasi yang bisa mengelola proses penggajian agar bisa membantu staf SDM dalam proses pengelolaannya. Sistem yang dibuat adalah aplikasi penggajian pegawai tetap berbasis web yang dibangun dengan menggunakan Framework Symfony dan basis data MySQL. Proses penggajian ini terbagi atas 2 proses yaitu proses pengelolaan sistem penggajian dan proses penghitungan pajak penghasilan berdasarkan data gaji pegawai. Kata Kunci: aplikasi, penggajian, Framework Symfony, MySQL 66 Pendahuluan Proses penggajian merupakan salah satu kegiatan yang dilakukan oleh bidang SDM (Sumber Daya Penggajian didalam suatu perusahaan merupakan salah satu event yang mempunyai peranan sangat penting. Dalam perkembangan Manusia) pada Politeknik Telkom Bandung. Pada proses penggajian seperti pengolahan data gaji masih diolah dengan menggunakan Microsoft Excel. Teknologi informasi zaman sekarang, telah banyak Proses pengolahan penggajian dengan perusahaan yang melakukan pengolahan data secara terkomputerisasi dalam berbagai hal termasuk dalam mengolah sistem penggajiannya. Sistem penggajian dalam suatu perusahaan bertugas mencatat dan memproses data yang digunakan untuk membayar gaji pegawai atas kontribusi yang mereka berikan terhadap perusahaan. Politeknik Telkom Bandung berdiri tanggal 27 September 2007 yang diresmikan oleh Direktur Utama PT. Telekomunikasi Indonesia, Tbk Bapak Rinaldi Firmansyah. Politeknik Telkom Bandung merupakan suatu institusi pendidikan yang berada dibawah naungan Yayasan Pendidikan Telkom. menggunakan Microsoft Excel tersebut sedikit banyak masih mengalami berbagai macam kendala dalam pengolahan data. Kendala pada proses penggajian adalah ketika proses pencarian data-data fisik atau apabila terjadi perubahan pada data gaji itu sendiri yang akan membutuhkan waktu yang cukup lama dalam proses pengolahan datanya. Proyek akhir ini berkonsentrasi terhadap pembangunan aplikasi penggajian berbasis web yang berguna untuk membantu bagian SDM pada Politeknik Telkom Bandung dalam mengolah data- data gaji pegawainya. Berdasarkan latar belakang diatas, maka penulis tertarik mengambil judul : ”Aplikasi Penggajian Pegawai Tetap Berbasis Web Pada Politeknik Telkom Bandung”. Aplikasi penggajian pegawai tetap ini dapat membantu bagian SDM dalam proses perhitungan negara yang terutang oleh orang pribadi atau badan yang bersifat memaksa berdasarkan Undang-Undang dengan tidak mendapatkan imbalan secara langsung dan digunakan untuk keperluan negara bagi sebesar-besarnya kemakmuran rakyat (Pasal 1 angka 1 UU KUP)”. penggajian pada Politeknik Telkom Bandung Djoko (2010) mengungkapkan bahwa sehingga dapat menghasilkan suatu menghasilkan suatu laporan penggajian yang berupa slip gaji, jurnal dan buku besar serta laporan pajak yang berupa SSP dan 67 SPT. Namun aplikasi ini hanya menangani proses penggajian pada pegawai tetap dan tenaga profesional dan tidak menangani perhitungan gaji dosen LB dan pegawai tidak tetap dan tidak menangani proses absensi pegawai. Acuan perhitungan pada proses penggajian ini hanya dilihat dari gaji dasar, data tunjangan dan data potongan sedangkan untuk pembuatan laporan gaji berupa daftar gaji dan slip gaji serta laporan pajak yang berupa SSP dan SPT. Metode yang digunakan untuk mengerjakan proyek akhir adalah SDLC (Software Development Life Cycle) dengan menggunakan model Waterfall yang terdiri dari : akuntansi pajak adalah akuntansi yang ada hubungan dengan pajak yang dalam arti, ”...akuntansi yang berkaitan dengan perhitungan perpajakan dan mengacu pada perundang-undang perpajakan beserta aturan pelaksanaannya” (p. 1). peraturan Ayat jurnal yang dibuat adalah : Pada saat pemotongan pajak atas pembayaran gaji setiap bulan: a) Requirements analysis and definition. b) System and software design c) Implementation and unit testing d) Integration and system testing e) Operation and Maintenance Kesimpulan Berdasarkan analisis dari pembuatan aplikasi untuk proyek akhir ini maka didapat beberapa kesimpulan, yaitu dengan adanya aplikasi penggajian pegawai tetap berbasis web ini maka pengolahan data akan lebih terstruktur dan dapat diakomodir dengan baik. Selain itu, aplikasi juga mampu membuat laporan pajak penghasilan pasal 21 kedalam bentuk SSP dan SPT. Aplikasi ini juga sudah dapat diintegrasikan ke dalam sistem informasi yang ada pada Politeknik Telkom sehingga sedikit banyak dapat penggajian. Saran membantu meningkatkan kinerja staf SDM dalam pengelolaan 68 Disarankan dapat menghasilkan suatu laporan pajak yang dapat di export ke dalam bentuk eSPT. 2.3.2 Sistem Penggajian Berbasis Web di Dircomnet Yogyakarta SISTEM PENGGAJIAN BERBASIS WEB DI DIRCOMNET YOGYAKARTA Taufiq Ismail dan Fuad Thohari Program Studi Teknik Informatika Fakultas Tekniknologi Industri Universitas Ahmad Dahlan Jl. Prof. Soepomo, S.H., Janturan Yogyakarta Email1): [email protected] ABSTRAK Dircomnet Yogyakarta adalah suatu badan usaha yang bergerak di bidang jasa persewaan akses internet, perawatan komputer, dan pemasangan jaringan internet, memiliki banyak pegawai yang digaji setiap bulannya. Pimpinan sering menangani order pekerjaan secara langsung di luar kantor. Masalah timbul ketika pimpinan membutuhkan laporan penggajian dan memberikan kebijakan penggajian pegawai ketika di luar kantor. Karyawan ingin mengetahui berapa jumlah gaji beserta rinciannya. Berdasar persoalan tersebut, perlu dibangun suatu sistem penggajian real time yang dapat menampilkan laporan penggajian dan memberikan kebijakan penggajian yang dapat diakses dari manapun, serta rinci gaji karyawan yang akan diterima. Penelitian meliputi pengumpulan data dengan studi pustaka, wawancara dan observasi. Kemudian melakukan analisis data, perancangan sistem meliputi DAD dan ERD, perancangan menu, input dan output, serta perancangan WAP. Program dibangun dengan sistem operasi Windows XP, Internet Explorer, MySql front, Dreamweaver MX, Openwave Simulator, Apache, menggunakan bahasa pemrograman PHP, dan terakhir menguji program dengan metode black box test dan alpha test. Hasil penelitian ini diperoleh sistem penggajian berbasis web yang dapat memberikan laporan penggajian kepada pimpinan dimanapun berada, pegawai dapat mengetahui rinci gaji diteriman, dan mengoreksi kesalahan pembayaran gaji. Berdasarkan hasil pengujian program, disimpulkan bahwa program dapat berjalan 69 dengan baik dan diimplementasikan. sudah memenuhi kebutuhan pemakai serta layak Kata kunci : Internet, penggajian,WAP, web. Hasil dan Pembahasan Gambaran sistem pertama dalam bentuk Diagram Arus Data. Ada 4 entitas, yaitu Keuangan, Manajer, Pegawai dan P. Parkir. Enam proses yang ada dalam sistem yaitu Kelola Data Induk, Kelola Data Kerja, Kelola Data Lembur, Kelola Nominal Pembayaran, Kelola Penggajian dan Pembuatan Laporan. Gambar berikut menunjukkan Diagram Arus Data pada level 1. 70 Gambar 2.8 Diagram Arus Data pada level 1 DIRCOMNET 71 Gambar 2.9 Entity Relatianship Diagram DIRCOMNET Gambar berikut ini adalah struktur dari menu program. Pertama user masuk dengan login dan password, kemudian muncul menu Data Pegawai, Data Kerja Pegawai, Data lembur Pegawai, Data kerja P. Parkir, Data Penggajian. Untuk mengakhiri program, user harus logout. 72 Gambar 2.10 Perancangan menu program DIRCOMNET Gambar 2.11 Struktur menu web DIRCOMNET Simpulan Hasil penelitian ini adalah diperoleh sistem penggajian berbasis web yang dapat memberikan laporan penggajian bagi pimpinan dimanapun berada, pegawai dapat mengetahui jumlah gaji yang akan diterimanya, dan mengoreksi jika terjadi kesalahan pembayaran gaji. Berdasarkan hasil pengujian program maka dapat disimpulkan bahwa program ini dapat berjalan dengan baik dan sudah memenuhi kebutuhan pemakai serta layak diimplementasikan. 73 2.3.3 Aplikasi Penggajian dan Penghitungan Pajak Penghasilan Pasal 21 APLIKASI PENGGAJIAN dan PENGHITUNGAN PAJAK PENGHASILAN PASAL 21 (Studi Kasus pada Kantor Administrasi Pelabuhan Sunda Kelapa ) Novita Tri Astuti Assoc.Prof.DR.H.Gustian Djuanda Magdalena Karismariyanti,ST.MBA. Program Studi Komputerisasi Akuntansi Politeknik Telkom Bandung 2011 ABSTRAK Kantor Administrasi Pelabuhan Sunda Kelapa merupakan Unit Pelaksana Teknik (UPT) yang berada dibawah dan bertanggung jawab langsung kepada Direktur Jenderal Perhubungan Laut. Sistem penggajian yang dilakukan bagian keuangan pada Kantor Administrator Pelabuhan Sunda Kelapa masih menggunakan Microsoft Excel. Dalam hal ini aplikasi penggajian dan penghitungan PPh 21 dibuat untuk menghitung gaji dan pajak tiap pegawai. Adapun yang menjadi batasan permasalahannya adalah menghitung gaji pegawai berdasarkan PP No.11 Tahun 2011 dan menghitung PPh 21 sesuai dengan Undang-Undang Pajak Penghasilan Nomor 36 Tahun 2008. Aplikasi pengghitungan gaji dan PPh 21 menggunakan aplikasi berbasis web dengan menggunakan bahasa pemrograman PHP (Hypertext Preprocessor) dan menggunakan database MySQL. Dalam tahap pembangunan aplikasi penggajian dan penghitungan PPh 21 dilakukan dengan tahapan perencanaan kebutuhan, analisis kebutuhan, perancangan, implementasi, dan pengujian terhadap aplikasi. Aplikasi ini diharapkan dapat memudahkan bagian keuangan Kantor Administrasi Pelabuhan Sunda Kelapa dalam melakukan penghitungan gaji dan PPh 21 tiap pegawai dan membantu dalam melakukan cetak slip gaji dan cetak surat pemberitahuan pajak terutang (SPT). Kata Kunci : Kantor Administrasi Pelabuhan Sunda Kelapa, Aplikasi, PPh 21, Penggajian. 74 Pendahuluan Kantor Administrator Pelabuhan Sunda Kelapa merupakan Unit Pelaksana Teknik (UPT) dilingkungan Direktorat Jenderal Perhubungan Laut yang berada dibawah dan bertanggung jawab langsung kepada Direktur Jenderal Perhubungan Laut. Kantor Administrator Pelabuhan Sunda Kelapa sebagai pihak yang berwenang untuk memotong atau memungut pajak terutang pegawainya, mempunyai kewajiban untuk menghitung dan melaporkan kewajiban perpajakan pegawainya kepada Kantor Pelayanan Pajak (KPP) terdekat. Sistem penggajian yang dilakukan bagian keuangan pada Kantor Administrator Pelabuhan Sunda Kelapa masih menggunakan Microsoft Excel untuk membantu menghitung gaji yang didapat setiap karyawan setiap bulannya, cara ini kurang optimal melihat terdapat 52 pegawai yang terdapat di kantor tersebut. Pegawai di Kantor Administrator Pelabuhan Sunda Kelapa memperoleh gaji setiap bulan dengan menerima amplop yang berisi gaji masing-masing pegawai dan tercantum besarnya gaji yang diterima tanpa ada detail komponen gaji. Proses penghitungan dan pembuatan laporan Surat Pemberitahuan Pajak Terutang (SPT) PPh 21 yang dilakukan secara manual dengan melakukan pengecekan ulang pada slip gaji per bulan masing-masing pegawai, hal ini dapat memakan waktu yang cukup lama dalam mengitung dan melaporkan Pajak Penghasilan pasal 21. Untuk membantu bagian keuangan pada kantor Administrator Pelabuhan Sunda Kelapa, maka dibuat aplikasi berbasis Web dengan menggunakan bahasa pemrograman PHP (Hypertext Preprocessor) untuk melakukan penghitungan gaji dan PPh 21. Berdasarkan uraian di atas maka akan dilakukan penelitian dengan judul “Aplikasi Penggajian dan Penghitungan Pajak Penghasilan Pasal 21 (Studi Kasus pada kantor Administrator Pelabuhan Sunda Kelapa)” 75 Kesimpulan Berdasarkan analisis dan implementasi aplikasi, kesimpulan yang dapat diambil dari uraian dan penjelasan diatas adalah : a. Aplikasi dapat melakukan pencatatan penggajian pada Kantor Administrator Pelabuhan Sunda Kelapa dengan terdapatnya histori gaji pada aplikasi untuk melihat data penggajian pegawai yang sudah dilakukan oleh bagian keuanagan. b. Aplikasi dapat mengeluarkan slip gaji dengan komponen komponen gaji yang diterima masing-masing pegawai tiap bulannya. c. Aplikasi dapat melakukan penghitungan pajak dan mencetak laporan pajak penghasilan pasal 21 berupa Surat Pemberitahuan Pajak Terutang (SPT) PPh 21 tiap pegawai pertahun. Saran Aplikasi ini dapat dikembangkan dan diimplementasikan pada Kantor Administrator Pelabuhan Sunda Kelapa karena dapat memudahkan bagian keuangan dalam melakukan penggajian dan penghitungan PPh 21 untuk tiap pegawai. Saran untuk pengembangan aplikasi ini ke depannya : a. Untuk penghitungan PPh 21 dapat dikembangakan dengan disesuaikan pada masa perolehan penghasilan sehingga tidak terikat selama dua belas bulan saja. b. Aplikasi penggajian dapat menangani daftar gaji pokok apabila terjadi perubahan setiap tahunnya sehingga bagian keuangan tidak perlu update secara manual.