BAB II LANDASAN TEORI
Bab ini berisikan dasar – dasar teori yang bersangkutan dengan pembuatan aplikasi penjadwalan di UMB jurusan Teknik Informatika pada Program Kelas Karyawan. 2.1 PHP PHP : Hypertext Preprocessor adalah bahasa skrip yang dapat ditanamkan atau disisipkan ke dalam HTML. PHP banyak dipakai untuk memprogram situs web dinamis. PHP dapat digunakan untuk membangun CMS. Pada awalnya PHP merupakan kependekan dari Personal Home Page (Situs personal). PHP pertama kali dibuat oleh Rasmus Lerdorf pada tahun 1995. Pada waktu itu php masih bernama Form Interpreted (FI), yang diwujudkan berupa sekumpulan skrip yang digunakan untuk mengolah data formulir dari web. Selanjutnya Rasmus merilis kode sumber tersebut untuk umum dan menamakannya PHP/FI. Dengan perilisan kode sumber ini menjadi sumber terbuka, maka banyak pemrogram yang tertarik untuk ikut mengembangkan PHP. Pada tahun 1997, sebuah perusahaan bernama Zend menulis ulang interpreter php menjadi lebih bersih, lebih baik, dan lebih cepat. Kemudian pada juni 1998, perusahaan tersebut merilis interpreter baru untuk php dan meresmikan rilis tersebut sebagai php 3.0 dan singkatan php diubah menjadi akronim berulang php : Hypertext Preprocessing. Pada pertengahan tahun 1999, Zend merilis interpreter php baru dan rilis tersebut dikenal dengan php 4.0. Php 4.0 adalah php versi php yang paling banyak dipakai disebabkan kemampuannya untuk membangun aplikasi web kompleks tetapi tetap memiliki kecepatan dan stabilitas yang tinggi. 5
6
Pada juni 2004, Zend merilis php 5.0. Dalam versi ini, inti dari interpreter php mengalami perubahan besar. Versi ini juga memasukkan model pemrograman berorientasi objek ke dalam php untuk menjawab perkembangan bahasa pemrograman kea rah paradigm berorientasi objek. Php memiliki 9 tipe data, yaitu : 1. Integer
6. Array
2. Double
7. Null
3. Boolean
8. Nill
4. String
9. Resource
5. Object Beberapa kelebihan php dari bahasa pemrograman web, antara lain : 1. Bahasa pemrograman php adalah sebuah bahasa script yang melakukan sebuah kompilasi dalam penggunaanya. 2. Web server yang mendukung php dapat ditemukan dimana-mana mulai apache, IIS, Lighttpd, hingga Xitami dengan konfigurasi yang relative mudah. 3. Dalam sisi pengembangan lebih mudah, karena banyaknya milis-milis dan developer yang siap membantu dalam pengembangan. 4. Dalam sisi pemahaman, php adalah bahasa scripting yang paling mudah karena memiliki referensi yang banyak. 5. Php adalah bahasa open source yang dapat digunakan di berbagai mesin (Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah system.
7
Untuk menggunakan php ada beberapa software yang harus kita install diantaranya Apache server, php, php my admin dan mysql server. (Alan Nur Aditya, Bekasi, 2011)
2.2 PHP MyAdmin Adalah
kakas
untuk
pengelolaan
database
yang
berbasis
web.
PHPMyAdmin bukan merupakan suatau keharusan, manipulasi data bias juga digantikan dengan kakas yang lain, misalnya MySQL Console (berbasis teks). Namun, dengan PHPMyAdmin, pengelolaan atau manipulasi database menjadi lebih mudah. (Dodit Suprianto, Malang, 2008) Setiap RDBMS (Relation Database Management System) seperti Oracle, SQLServer, MySQL dan lain-lain, pasti memiliki tool yang dapat di gunakan untuk mempermudah pengoperasian database. Oracle memiliki TOAD. SQL Server memiliki Enterprise Manager dan SQL Query Analyzer. Sedangkan MySQL memiliki tool atau aplikasi yang disebut PHPMyAdmin.
PHP MyAdmin merupakan aplikasi berbasiskan web yang dikembangkan menggunakan bahasa pemrograman PHP. Melalui PHPMyAdmin, user dapat melakukan perintah query tanpa harus mengetikkan seperti pada MS DOS. Perintah tersebut misalnya administrasi user dan privileges, export dan import database, manajemen database, manajemen tabel dan struktur tabel, dan sebagainya. PHPMyAdmin sangat user friendly,
sehingga mudah untuk
digunakan walaupu pengguna baru (newbie). (Sugiri dan Haris Saputra, 2008)
2.3 Sistem Basis Data Sistem adalah sebuah tatanan (keterpaduan) yang terdiri atas sejumlah komponen
fungsional
(dengansatuan
fungsi/tugas
khusus)
yang
saling
berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses/pekerjaan tertentu.
8
Basis data hanyalah sebuah objek yang pasif/mati. Ia ada karena ada pembuatnya. Ia tidak akan pernah berguna jika tidak ada pengelola/penggeraknya. Yang menjadi pengelola/penggeraknya secara langsung adalah program/aplikasi (software). Gabungan keduanya (basis data dan pengelolanya) menghasilkan sebuah sistem. Lebih jauh lagi, dalam sebuah system basis data, secara lengkap akan terdapat komponen-komponen utama sebagai berikut :
a. Perangkat Keras (Hardware) b. Sistem Operasi (Operating System) c. Basis Data (Database) d. Sistem (Aplikasi/Perangkat Lunak) Pengelola Basis Data (DBMS) e. Pemakai (User) f. Aplikasi (perangkat lunak) lain (bersifat opsional)
Komputer
File 1
Komputer
File 4 File 2 File 5 File 3
Komputer
Gambar 2.1 Database Management System (Fathansyah, 1992:9, Bandung. Buku Teks Komputer Basis Data)
2.4 Rekayasa Perangkat Lunak Kata Rekayasa Perangkat Lunak atau Software Engineering dalam bahasa inggris terdiri dari kata „Rekayasa‟ dan „Perangkat Lunak‟. Kata rekayasa menurut kamus bahasa Indonesia adalah penerapan kaidah-kaidah ilmu dalam
9
pelaksanaan (seperti perancangan, pembuatan konstruksi serta pengoprasian kerangka, peralatan, dan sistem yang ekonimis dan efisien). (kamusbahasaindonesia.org) Sedangkan perangkat lunak menurut definisi yang ditulis oleh Pressman (2012:14) mengutip Fritz Bauer adalah pembuatan dan penggunaan prinsipprinsip penting rekayasa supaya pengguna bisa memperoleh perangkat lunak secara murah yang dapat diandalkan dan bekerja secara efisien pada mesin-mesin yang sesungguhnya. Definisi Rekayasa Perangkat Lunak dari berbagai literatur adalah: “Suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal requirement capturing (analisa kebutuhan pengguna), specification (menentukan spesifikasi dari kebutuhan pengguna), disain, coding, testing sampai pemeliharaan sistem setelah digunakan”. Namun untuk membangun sebuah perangkat lunak, dibutuhkan suatu “pendekatan, disiplin, dan dapat diukur” yang diterapkan oleh tim pengembang perangkat lunak.
2.4.1 Waterfall Model rekayasa perangkat lunak yang klasik dan tertua digunakan adalah Model Air Terjun (The Waterfall Model), dimana dalam merekayasa suatu perangkat lunak melalui pendekatan yang sistematis dan berurutan. (Pressman 2012:46) Tahapan-tahapan pengembangan perangkat lunak dengan pemodelan air terjun adalah : 1. Komunikasi Meliputi langkah-langkah : inisialisasi proyek dan pengumpulan spesifikasi kebutuhan dari user. Tujuannya untuk menentukan spesifikasi kebutuhan dan bagaimana sistem dapat membantu menyelesaikan permasalahan.
10
2. Perancangan Meliputi langkah-langkah : etimasi, penjadwalan, dan pelacakan. Tujuannya untuk membuat rencana untuk penjadwalan pengembangan aplikasi, mulai dari pembagian tugas teknis, resiko, sumber daya yang dibutuhkan, dan jadwal rencana kerja. 3. Pemodelan Meliputi langkah-langkah : Analisa dan Desain. Tujuannya untuk mendapatkan dan menstrukturkan kebutuhan sistem secara keseluruhan. Mengembangkan pemodelan yang dapat dipahami baik oleh pengembang (developer) maupun pengguna (user). 4. Konstruksi Meliputi langkah-langkah : penulisan kode-kode program dan pengujian (testing). 5. Penyerahan sistem/perangkat lunak ke pelanggan/pengguna Meliputi langkah-langkah : instalasi dan percobaan (testing) unjuk kerja aplikasi untuk dievaluasi dan diberikan umpan balik dari pengguna.
Gambar 2.2 Model air terjun
2.5 Pemodelan Spesifikasi Kebutuhan Perangkat Lunak Pada tahap awal rekayasa perangkat lunak. Pekerjaan dimulai dengan melakukan pemodelan yang menunjukan spesifikasi-spesifikasi kebutuhan perangkat lunak dan reseprentasi perancangan perangkat lunak yang akan dikembangkan.
11
2.5.1 Analisa Kebutuhan Tujuan analisis spesifikasi kebutuhan adalah untuk menghasilkan spesifikasi-spesifikasi dari karakteristik-karakteristik operasional yang akan dimiliki oleh perangkat lunak yang akan dikembangkan. Pressman (2012:180) menyatakan, bahwa analisis spesifikasi kebutuhan memberikan manfaat bagi analis atau pemodel sistem untuk menetapkan inception, elicitation, serta negotiation yang merupakan bagian dari rekayasa kebutuhan perangkat lunak. Jenis pemodelan spesifikasi-spesifikasi kebutuhan yang semakin popular di kalangan komunitas rekayasawan menurut Pressman (2012:181) yaitu pemodelan berbasis scenario. Pemodelan berbasis Skenario yaitu pemodelan yang menggambarkan spesifikasi kebutuhan pernagkat lunak dari berbagai sudut pandang “actor” sistem /perangkat lunak. Pola-pola analisis sering terjadi berulang-ulang dalam berbagai jenis aplikasi yang ada di ranah bisnis. Untuk dapat mendifinisikan pola-pola dan perancangan dan komponen-komponen perangkat lunak dalam sebuah kelompok yang dapat memungkinkan rekayasawan dapat menerapkan pola-pola dan komponen-komponen tersebut dalam sebuah model analisis. Sehingga dapat mempercepat kecepatan perangkat lunak masuk ke pasar dan akan mengurangi biaya-biaya pengembangan sistem/perangkat lunak.
2.5.2 Model-Model Unified Modeling Languange (UML)
Salah satu tahapan awal dalam rekayasa perangkat lunak atau aplikasi adalah tahapan permodelan yang berisi tentang rancangan yang menggambarkan proses-proses yang terjadi dalam dunia nyata atau proses bisnis. Permodelan yang digunakan oleh pengembang adalah dengan melakukan permodelan-permodelan secara visual. Permodelan visual adalah proses penggambaran informasi-informasi secara grafis dengan notasi-notasi baku yang telah disepakati sebelumnya. Notasinotasi baku yang lazim digunakan oleh pengembang yaitu notasi UML.
12
UML dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grandy Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun
demikian
UML
dapat
digunakan
untuk
memahami
dan
mendokumentasikan setiap sistem informasi. Pengguna UML dalam industry terus meningkat. Ini merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industry peranti lunak dan pengembangan sistem. Ada total 9 jenis diagram yang dapat dikelompokkan berdasarkan sifatnya statis atau dinamis. a) Statis : Class Diagram, Object Diagram, Use-Case Diagram. b) Dinamis : Sequence Diagram, Collaboration Diagram, Statechart Diagram, Activity Diagram, Component Diagram, dan Deployment Diagram. 1) Diagram Kelas (Class Diagram) Diagram
ini
memperlihatkan himpunan kelas-kelas,
antarmuka-
antarmuka, kolaborasi-kolaborasi, serta relasi-relasi. Diagram ini selalu ada di pemodelan sistem berorientasi objek. Tabel 2.1 Tabel relasi diagram kelas
13
2) Use Case Diagram Diagram ini memperlihatkan himpunan use case dan actor-aktor (suatu jenis khusus dari kelas). Actor merupakan representasi orang yang akan berinteraksi dengan sistem aplikasi. Sedangkan use case merupakan representasi dari operasi-operasi yang dilakukan oleh actor.
Gambar 2.3 contoh use case diagram
3) Diagram ini adalah tipe khusus dari diagram sate yang memperlihatkan aliran satu aktifitas ke aktifitas lainnya dalam suatu sistem. Diagram ini terutama penting dalam permodelan fungsi-fungsi dalam suatu sistem dan member tekanan ada aliran kendali antar objek.
4) Sequence Diagram Diagram urutan adalah diagram interaksi yang menekankan pada pengiriman pesan (message) dalam suatu waktu tertentu. Sequence diagram bermanfaat untuk memperlihatkan bagaimana eventevent yang terjadi bisa mengakibatkan trnasisi dari suatu objek ke objek lainnya.
14
Gambar 2.4 contoh sequence diagram
2.6 Flowchart Flowchart atau diagram alir merupakan sebuah diagram dengan simbolsimbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut menggunakan tanda panah. Diagram ini bisa memberi solusi selangkah demi selangkah untuk penyelesaian masalah yang ada di dalam proses atau algoritma tersebut. Jenis-Jenis Diagram Alir : Sterneckert (2003) menyarankan untuk membuat model diagram alir yang berbeda sesuai dengan perspektif pemakai (managers, system analysts and clerks) sehingga dikenal ada 4 jenis diagram alir secara umum: [2] Diagram Alir Dokumen, menunjukkan kontrol dari sebuah sistem aliran dokumen. Diagram Alir Data, menunjukkan kontrol dari sebuah sistem aliran data. Diagram Alir Sistem, menunjukkan kontrol dari sebuah sistem aliran secara fisik.
15
Diagram Alir Program, menunjukkan kontrol dari sebuah program dalam sebuah sistem. Tabel 2.2 Simbol Flowchart
2.7 Data Base Management Sistem Database menurut Toerey (2006:4) adalah bentuk yang lebih kompleks dari suatu objek, yang merupakan kumpulan saling disimpan data yang melayani kebutuhan beberapa pengguna dalam satu atau lebih organisasi, yaitu saling
16
terkait dari berbagai jenis tabel. Motivasi untuk menggunakan database bukan file termasuk ketersediaan yang lebih besar untuk satu set beragam pengguna, integrasi data untuk akses yang lebih mudah dan memperbarui transaksi yang kompleks, dan redundansi kurang data. Menurut Peter (2006:7) sebuah sistem Manajemen Basis Data adalah kumpulan program yang mengelola struktur database dan mengontrol akses ke data yang di simpan dalam database. DBMS memungkinkan untuk berbagi data dalam database antara beberapa aplikasi atau pengguna. Generalisasi perangkat lunak DBMS yang umum digunakan untuk menyimpan dan memanipulasi database. Contoh termasuk Oracle, IBM DB2, Microsoft SQL Server, atau Acces, dan MySQL. Sebuah DBMS mendukung pandangan logis (skema, subskema), tampilan fisik (metode akses, clustering data), data bahasa definisi, bahasa manipulasi data, dan utilitas penting, seperti manajemen transaksi dan control konkurensi, integritas data, pemulihan data dan keamanan.
2.8 MySQL Menurut Oracle Inc (2012: www.mysql.com), MYSQL adalah perangkat lunak database open source paling popular di dunia, dengan lebih dari 100 juta kopi dari software yang didownload atau didistribusikan sepanjang sejarah itu. Dengan kecepatan superior, kehandalan, dan kemudahan penggunaan MySQL telah menjadi pilihan utama untuk Web, Web 2.0, SaaS, ISV, perusahaan Telecom dan
IT
Managers
dari
perusahaan-perusahaan
berpikiran
maju
karena
menghilangkan masalah utama yang terkait dengan downtime, pemeliharaan dan administrasi untuk modem, aplikasi online. Banyak organisasi terbesar didunia dan pertumbuhan tercepat menggunakan MySQL untuk menghemat waktu dan uang powering volume tinggi, situs Web mereka, sistem bisnis penting, dan perangkat lunak di kemas – termasuk pemimpin industry seperti Yahoo!, Alcatel-Lucent, Google, Nokia, YouTube, Wikipedia, dan Booking.com.
17
Produk unggulan MySQL adalah MySQL, Enterprice, seperangkat produksi software yang komprehensif, alat monitoring proaktif, dan layanan dukungan premium tersedia dalam berlangganan tahunan yang terjangkau. MySQL adalah bagian penting dari LAMP ( Linux, Apache, MySQL, PHP / Perl / Python ), software open source enterprice yang yang telah berkembang cepat. Semakin banyak perusahaan yang menggunakan LAMP sebagai perangkat lunak berbayar alternative karena biaya yang lebih rendah dan kebebasan dari platform lock-in. Alasan menggunakan MySQL adalah : Kemudahan penggunaan – Proses dari download sampai dengan instalasi dalam waktu kurang dari 15 menit. Total Cost of Ownership (TCO) yang rendah – Deploy MySQL untuk misi aplikasi yang kritikal dengan penghematan biaya yang signifikan atas Microsoft SQL Server. Skalabilitas dan kinerja-Memenuhi persyaratan skalabilitas dan kinerja dari situs web yang paling banyak diakses dan aplikasi yang paling diminati. Produksi dukungan – Dukungan Premier dari Oracle membantu menurunkan total biaya dan resiko memiliki solusi-solusi MySQL.
2.9 XAMPP XAMPP (XAMPP : X Apache MySQL PHP Perl) adalah sebuah aplikasi web server. Web server sendiri adalah sebuah aplikasi tempat anda menyimpan file-file maupun data-data untuk membuat website. Juga sering diartikan sebagai layanan data pada web browser. Funsgi dari web server sebagai penerima permintaan berupa halaman client dan mengirimkan kembali hasil yang diminta dalam
bentuk
halaman
web.
Xampp
dapat
anda
download
http://www.apachefriends.org/en/xampp-windows.html. (Andi, 2012) Alan Nur Aditya (2012) mengatakan bahwa :
melalui
18
Xampp adalah perangkat lunak bebas, yang mendukung banyak sistem operasi, yang merupakan kompilasi dari beberapa program. Funsi dari xampp adalah sebagai server yang berdiri sendiri (localhost), yang terdiri atas program Apache HTTP Server, My SQL database, dan penerjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. Nama xampp merupakan singkatan dari X (empat sistem operasi apapun), Apache, MySQL, PHP, dan Perl. Program ini tersedia dalam GNU General Public License dan bebas, merupakan web server yang mudah digunakan yang dapat melayani tampilan halaman web yang dinamis. 2.10 Algoritma FIRST COME FIRST SERVED (FCFS) Algoritma ini merupakan algoritma penjadwalan yang paling sederhana yang digunakan CPU. Dengan menggunakan algoritma ini setiap proses yang berada pada status ready dimasukkan kedalam FIFO queue atau antrian dengan prinsip first in first out, sesuai dengan waktu kedatangannya. Proses yang tiba terlebih dahulu yang akan dieksekusi. Contoh Ada tiga buah proses yang datang secara bersamaan yaitu pada 0 ms, P1 memiliki burst time 24 ms, P2 memiliki burst time 3 ms, dan P3 memiliki burst time 3 ms. Hitunglah waiting time rata-rata dan turnaround time( burst time + waiting time) dari ketiga proses tersebut dengan menggunakan algoritma FCFS. Waiting time untuk P1 adalah 0 ms (P1 tidak perlu menunggu), sedangkan untuk P2 adalah sebesar 24 ms (menunggu P1 selesai), dan untuk P3 sebesar 27 ms (menunggu P1 dan P2 selesai).
19
Gambar 2.5 Gantt Chart Kedatangan Proses Urutan kedatangan adalah P1, P2 , P3; gantt chart untuk urutan ini adalah: Waiting time rata-ratanya adalah sebesar(0+24+27)/3 = 17ms. Turnaround time untuk P1 sebesar 24 ms, sedangkan untuk P2 sebesar 27 ms (dihitung dari awal kedatangan P2 hingga selesai dieksekusi), untuk P3 sebesar 30 ms. Turnaround time rata-rata untuk ketiga proses tersebut adalah (24+27+30)/3 = 27 ms. Kelemahan dari algoritma ini: 1. Waiting time rata-ratanya cukup lama. 2. Terjadinya convoy effect, yaitu proses-proses menunggu lama untuk menunggu 1 proses besar yang sedang dieksekusi oleh CPU. Algoritma ini juga menerapkan konsep non-preemptive, yaitu setiap proses yang sedang dieksekusi oleh CPU tidak dapat di-interrupt oleh proses yang lain. Misalkan proses dibalik sehingga urutan kedatangan adalah P3, P2, P1. Waiting time adalah P1=6; P2=3; P3=0. Average waiting time: (6+3+0)/3=3.
Gambar 2.6 Gantt Chart Kedatangan Proses Sesudah Urutan Kedatangan Dibalik