BAB II LANDASAN TEORI Dalam bab ini penulis akan menjelaskan teori-teori yang berkaitan dengan permasalahan yang akan dibahas sebagai dasar dalam pemahaman. Teori-teori tersebut diambil dari buku-buku ilmiah, jurnal, pendapat para ahli serta berbagai website. 2.1. Proyek 2.1.1. Pengertian Proyek Proyek adalah sebuah kegiatan yang bersifat sementara yang telah ditetapkan awal pekerjaannya dan waktu selesainya (dan biasanya selalu dibatasi oleh waktu, dan seringkali juga dibatasi oleh sumber pendanaan), untuk mencapai tujuan dan hasil yang spesifik dan unik, dan pada umumnya untuk menghasilkan sebuah perubahan yang bermanfaat atau yang mempunyai nilai tambah. Proyek selalu bersifat sementara atau temporer dan sangat kontras dengan bisnis pada umumnya (Operasi-Produksi), dimana Operasi-Produksi mempunyai sifat perulangan (repetitif), dan aktivitasnya biasanya bersifat permanen atau mungkin semi permanen untuk menghasilkan produk atau layanan (jasa/servis). Menurut Schwalbe (2006:4), proyek adalah usaha yang bersifat sementara untuk menghasilkan produk atau layanan yang unik. Pada umumnya proyek melibatkan beberapa orang yang saling berhubungan aktivitasnya dan sponsor utama proyek biasanya tertarik dalam penggunaan sumber daya yang efektif untuk menyelesaikan proyek secara efisien dan tepat waktu. Sedangkan menurut Larson dan Gray (2011), proyek adalah kegiatan yang kompleks, tidak rutin, dan usaha satu waktu yang dibatasi oleh waktu, anggaran, sumber daya dan spesifikasi kinerja yang dirancang untuk memenuhi kebutuhan pelanggan. 9 10 2.1.2. Pengertian Manajemen Proyek Manajemen proyek adalah sebuah disiplin keilmuan dalam hal perencanaan, pengorganisasian, pengelolaan (menjalankan serta pengendalian), untuk dapat mencapai tujuan-tujuan proyek. Menurut Soetari (2014:21), manajemen proyek merupakan tata cara mengorganisasikan dan mengelola sumber penghasilan yang penting untuk menyelesaikan proyek dari awal sampai akhir proyek. Manajemen proyek dapat diterapkan pada jenis proyek apapun, dan dipakai secara luas untuk menyelesaikan proyek yang besar dan kompleks. Fokus utama manajemen proyek adalah pencapaian tujuan akhir proyek dengan segala batasan yang ada, waktu, dan dana yang tersedia. Tantangan utama sebuah proyek adalah mencapai sasaran-sasaran dan tujuan proyek dengan menyadari adanya batasan-batasan yang telah dipahami sebelumnya. Pada umumnya batasan-batasan itu adalah ruang lingkup pekerjaan, waktu pekerjaan dan anggaran pekerjaan. Dan hal ini biasanya disebut dengan "triple constrains" atau "tiga batasan". Gambar 2.1 The Triple Constraints Dengan semakin meningkatnya kesadaran akan harkat dan martabat individu dalam menjalankan proyek, maka batasan ini kemudian berkembang dengan ditambahkan dengan batasan keempat yaitu faktor keselamatan. Tantangan selanjutnya adalah bagaimana mengoptimalkan dan pengalokasian 11 semua sumber daya dan mengintegrasikannya untuk mencapai tujuan proyek yang telah ditentukan. 2.2. Program Aplikasi 2.2.1. Program Program komputer atau sering kali disingkat sebagai program adalah serangkaian instruksi yang ditulis untuk melakukan suatu fungsi spesifik pada komputer (Stair:132). Komputer pada dasarnya membutuhkan keberadaan program agar bisa menjalankan fungsinya sebagai komputer, biasanya hal ini dilakukan dengan cara mengeksekusi serangkaian instruksi program tersebut pada prosesor (Silberschatz:58). Program yang bisa dibaca oleh manusia disebut kode sumber, yaitu suatu bentuk program yang bisa dipahami dan dianalisa algoritmanya oleh programmer. Kode sumber tersebut pada akhirnya akan dikompilasi oleh compiler dari bahasa pemrograman tertentu menjadi suatu bentuk program yang mudah dan efisien ketika dijalankan oleh komputer. Bentuk lain dari pengeksekusian program adalah menggunakan interpreter, dimana kode sumber akan langsung dijalankan oleh komputer. Dari pengertian tersebut maka dapat disimpulkan bahwa program adalah urutan instruksi yang diwujudkan dalam bentuk kode atau bahasa yang bisa dimengerti dan mampu dijalankan oleh komputer untuk melakukan tugas-tugas tertentu. 2.2.2. Aplikasi Aplikasi merupakan program yang berisikan perintah-perintah untuk melakukan pengolahan data. Aplikasi secara umum adalah suatu proses dari cara manual yang ditransformasikan ke komputer dengan membuat sistem atau program agar data diolah lebih berdaya guna secara optimal (Jogiyanto 4). 12 2.2.3. Aplikasi Berbasis Web Aplikasi berbasis web adalah aplikasi yang bisa diakses melalui Internet atau intranet dengan menggunakan browser. Aplikasi tersebut dibangun dengan bahasa yang disebut dengan HTML (Hypertext Markup Language) yang kemudian dapat diakses dan ditampilkan oleh browser. Protokol yang digunakan untuk mentransfer data atau dokumen yang berformat HTML dari web server ke browser adalah HTTP (Hypertext Transfer Protocol). Pada perkembangannya, skrip dan obyek sudah ditambahkan dan dikembangkan untuk memperluas kemampuan HTML. Pada saat ini banyak skrip yang bisa digunakan dengan HTML, antara lain PHP, ASP, ASP.NET. Sedangkan contoh yang berupa obyek adalah Flash dan Applet (Java). Dengan adanya skrip dan obyek tersebut maka banyak sekali fungsi-fungsi yang ditambahkan ke aplikasi berbasis web, salah satu diantaranya adalah koneksi dengan database. Sebuah aplikasi berbasis web disimpan dan dijalankan pada sebuah komputer yang disebut dengan web server. Ketika seorang user mengetik sebuah alamat di browser, maka sebenarnya alamat tersebut adalah alamat dari web server. Melalui protokol HTTP, browser akan meminta isi dari halaman web kepada web server. Jika permintaan tersebut valid, maka web server akan mengirimkan dokumen dalam bentuk HTML kepada browser untuk kemudian ditampilkan kepada user tersebut. Saat ini aplikasi berbasis web menjadi sangat populer. Banyak sekali perusahaan-perusahaan yang berpindah dari aplikasi berbasis desktop menjadi aplikasi berbasis web. Berikut adalah beberapa kelebihan aplikasi berbasis web: a. Dapat dijalankan secara langsung tanpa harus melakukan penginstalan. b. Dapat dibuka di semua sistem operasi. Tidak perduli apakah menggunakan Windows, Linux atau Mac, selama ada browser maka aplikasi bisa dijalankan. c. Bisa diakses dari media selain komputer, misalnya smart phone atau smart tv. 13 d. Tidak memerlukan spesifikasi komputer yang tinggi. 2.3. Pemrograman Berbasis Web 2.3.1. Pemrograman PHP Pemrograman adalah pembuatan kode program untuk suatu aplikasi tertentu berdasarkan rancang bangun yang telah dibuat (Jogiyanto 2005). PHP adalah salah satu dari bahasa pemrograman web yang paling populer saat ini. PHP atau yang memiliki kepanjangan PHP: Hypertext Preprocessor merupakan suatu bahasa pemrograman yang difungsikan untuk membangun suatu website yang dinamis (Saputra 2012). Kode PHP menyatu dengan kode HTML. HTML digunakan untuk membangun kerangka dan layout web sedangkan PHP digunakan untuk menjalankan proses bisnis dari aplikasi web tersebut. PHP merupakan server-side scripting yang artinya program tersebut dieksekusi oleh web server. Ketika user membuka website, maka browser akan mengirimkan permintaan halaman PHP kepada web server. Setelah menerima permintaan tersebut maka web server akan mengeksekusi program PHP tersebut kemudian hasilnya yang berupa HTML akan dikirimkan kembali ke browser untuk ditampilkan ke user. Dengan lisensinya yang open source, maka PHP bisa digunakan oleh siapa saja tanpa dikenakan biaya, dengan membuka atau membebaskan kode sumbernya sehingga dapat mengetahui dengan jelas cara kerja program tersebut. PHP merupakan bahasa pemrograman web yang paling populer pada saat ini. Bahasa pemrograman ini awalnya diciptakan pada tahun 1994 oleh Rasmus Lerdorf, pada saat ini dikembangkan dibawah naungan The PHP Group. Sampai dengan Januari 2013 PHP sudah diinstall pada lebih dari 240 juta website dan 2,1 juta web server (Ide 2013). 2.3.2. Database MySQL Database atau basis data adalah sekumpulan informasi yang diatur agar mudah dicari. Dalam arti umum basis data adalah sekumpulan data yang diproses 14 dengan bantuan komputer yang memungkinkan data dapat diakses dengan mudah dan tepat, yang dapat digambarkan sebagai aktivitas satu atau lebih organisasi yang berelasi (Kustiyahningsih 2010:145). Konsep dasar database adalah kumpulan dari catatan, atau potongan dari pengetahuan. Sebuah database memiliki penjelasan terstruktur dari jenis fakta yang tersimpan di dalamnya, penjelasan ini disebut skema. Ada banyak cara untuk mengorganisasi skema, atau memodelkan struktur database: ini dikenal sebagai database model atau model data. Model yang umum digunakan sekarang adalah model relasional, yang menurut istilah yaitu mewakili semua informasi dalam bentuk tabel yang saling berhubungan dimana setiap tabel terdiri dari baris dan kolom. Dalam model ini, hubungan antar tabel diwakili dengan menggunakan nilai yang sama antar tabel. MySQL adalah sistem manajemen database SQL yang bersifat Open Source dan paling populer saat ini. Sistem Database MySQL mendukung beberapa fitur seperti multi-threaded, multi-user, dan SQL database management system (DBMS). Database ini dibuat untuk keperluan sistem database yang cepat, handal dan mudah digunakan. Berikut adalah beberapa kelebihan MySQL: a. MySQL adalah program database dengan lisensi open source sehingga mudah didapatkan dan digunakan tanpa biaya. b. MySQL mempunyai kinerja yang cukup bagus dan cepat dikarenakan menggunakan MyISAM. c. MySQL menggunakan ruang penyimpanan yang sangat sedikit. d. MySQL bisa diinstal dengan mudah di berbagai sistem operasi baik itu Windows, MacOS maupun Unix. e. Mempelajari MySQL sangat mudah karena di Internet banyak sekali tutorial yang bisa didapatkan dengan gratis. f. MySQL sangat cocok untuk aplikasi dengan sekala kecil dan menengah. 15 2.3.3. Apache Web Server Web server merupakan server Internet yang mampu melayani koneksi transfer data menggunakan protokol HTTP. Web server telah dirancang untuk dapat melayani beragam jenis data, dari text, grafis hingga video. Salah satu web server yang biasa digunakan oleh banyak web master di dunia adalah Apache. Software tersebut dapat di download secara gratis. Dalam penggunaannya Apache merupakan software web server open source yang paling populer saat ini. Software tersebut telah menguasai diatas 50% dari pasar web server. 2.4. Metode Pengembangan Sistem Metode pengembangan yang digunakan dalam perancangan sistem informasi ini adalah menggunakan Model Waterfall. Metode ini merupakan metode yang paling sering digunakan oleh pada penganalisa sistem. Inti dari metode waterfall ini adalah pengerjaan pengembangan sistem yang dilakukan secara berurutan, artinya sebuah tahap hanya bisa dilakukan jika tahap yang sebelumnya telah selesai. 2.4.1. Metode Pengembangan Sistem Waterfall Menurut Pressman (2014) metode waterfall adalah suatu proses pengembangan perangkat lunak berurutan, di mana kemajuan dipandang sebagai terus mengalir ke bawah (seperti air terjun) melewati fase-fase perencanaan, pemodelan, implementasi (konstruksi), dan pengujian. Berikut adalah gambar pengembangan perangkat lunak dengan metode waterfall: 16 Gambar 2.2 Metode Waterfall Pengembangan sistem dengan menggunakan metode waterfall memiliki tahapan sebagai berikut: 1. Analisis kebutuhan Analisa kebutuhan merupakan awal dari tahapan metode waterfall. Pada tahap ini dilakukan penggalian informasi sebanyakbanyaknya dari user. Pengumpulan data tersebut bisa dilakukan dengan cara wawancara atau studi literatur. Tahap ini akan menghasilkan sebuah dokumen yang akan menjadi acuan pada perancangan sistem. 2. Desain sistem Ini adalah proses yang harus dilakukan sebelum coding. Fokus pada tahap ini adalah struktur data, arsitektur perangkat lunak, tampilan layar serta detail dari algoritma proses yang akan digunakan. Tahapan ini menghasilkan dokumen yang disebut software requirement yang akan menjadi acuan dalam pembuatan sistem. 3. Pembuatan (coding) 17 Tahapan ini merupakan tahapan yang paling terlihat nyata dalam pembuatan sistem. Pelaku utama dalam proses ini adalah programmer yang menterjemahkan dari software requirement menjadi sebuah proses dalam aplikasi dengan menggunakan kodekode program. 4. Pengujian Pengujian dilakukan dengan tujuan mencari kesalahan-kesalahan yang mungkin terjadi pada tahap pembuatan sistem. 5. Penerapan dan pemeliharaan Tahapan ini bisa dikatakan final dalam pembuatan sebuah sistem. Paha tahap ini sistem sudah benar-benar bisa digunakan oleh user. Pelatihan user juga merupakan bagian dari tahap ini. 2.4.2. Keuntungan Menggunakan Metode Waterfall Waterfall adalah metode pengembangan sistem yang banyak digunakan saat ini. Kelebihan atau keuntungan dalam menggunakan metode waterfall adalah sebagai berikut: a. Kualitas dari sistem yang dihasilkan akan menjadi sangat bagus dikarenakan pengerjaan sistem dilakukan secara bertahap sehingga para pembuat sistem bisa fokus pada satu tahapan saja pada satu waktu. b. Dokumen pengembangan sistem akan menjadi rapi dan terorganisir karena pada setiap tahap menuntun untuk membuat dokumen yang bisa diandalkan. Tanpa dokumen yang bagus maka pengembangan sistem tidak bisa melanjutkan ke tahap berikutnya. c. Metode ini bisa diterapkan di berbagai kondisi, baik perancangan yang rumit dimana pembuat sistem belum memahami sistem yang akan dibuat maupun perancangan yang bersifat umum yang semua orang sudah memahaminya. 18 2.4.3. Kerugian Menggunakan Metode Waterfall Walaupun metode waterfall banyak digunakan, bukan berarti merupakan metode perancangan yang sempurna. Ada beberapa kekurangan dari metode ini, yaitu: a. Diperlukan manajemen yang baik, karena ketika sudah berada di sebuah tahap maka tidak bisa mengulang tahap sebelumnya. b. Kesalahan kecil yang terjadi pada suatu tahap bisa menjadi masalah besar pada tahap berikutnya jika tidak diantisipasi dengan baik. c. Pada saat awal pengembangan biasanya pelanggan tidak dapat menyampaikan secara detail kebutuhannya. Kebutuhan tersebut menjadi tidak bisa diakomodir ketika tahap analisa kebutuhan sudah terlewatkan. 2.5. Metode Pengujian Sistem Dalam pengembangan sistem informasi, pengujian sistem mutlak diperlukan. Pengujian merupakan bagian tidak terpisahkan dari proses pengembangan sistem. Pengembangan Aplikasi Manajemen Proyek Perangkat Lunak di PT. Global Anugerah Indonesia ini menggunakan metode pengujian Black Box, yaitu sebuah metode pengujian yang berfokus pada spesifikasi fungsional pada perangkat lunak. Penguji dapat mendefinisikan kumpulan kondisi input dan melakukan pengujian pada spesifikasi fungsional program. Pengujian dengan metode black box memiliki ciri-ciri sebagai berikut: a. Pengujian berfokus pada fungsionalitas perangkat lunak yaitu berdasarkan spesifikasi perangkat lunak. b. Pengujian dilakukan tanpa memerlukan pengetahuan detail dari struktur internal dari sistem atau komponen yang diuji. Pengujian ini bisa juga disebut behavioral testing, specification-based testing, input/output testing atau functional testing. 19 Pengujian ditujukan untuk menemukan kesalahan. Pada proses pengujian dengan menggunakan metode black box, kesalahan-kesalahan yang mungkin muncul bisa dikategorikan sebagai berikut: a. Fungsi tidak ada atau tidak benar b. Kesalahan pada antar muka c. Kesalahan pada struktur data atau akses ke database d. Kinerja yang tidak baik, misalnya lambat e. Kesalahan pada saat inisialisasi dan terminasi