BAB 2 LANDASAN TEORI 2.1 Teori Umum 2.1.1 Definisi Perangkat Lunak MenurutPressmandalamNugroho et al. (2010, p5) definisi perangkat lunak (software) adalah : 1. Instruksi-instruksi (program computer) yang bila dijalankan menyediakan fitur-fitur, fungsi-fungsi dan kinerja yang dikehendaki. 2. Struktur data yang memungkinkan program-program memanipulasi informasi. 3. Dokumen-dokumen yang menjelaskan tentang penggunaan dan pengoperasian program. 2.1.2 Karakteristik Perangkat Lunak Dalam menumbuhkan pengertian mengenai perangkat lunak, sangatlah penting untuk melihat karakteristik dari sebuah perangkat lunak, berikut adalah karakteristik perangkat lunak.MenurutPressman dalamNugroho et al (2010, p5) 1. Perangkat lunak dikembangkan atau dibangun, bukan dibangun (manufactured) dalam pemikiran klasik. Walaupun terdapat beberapa persamaan dalam perangkat lunak dan perangkat keras, namun kedua kegiatan ini sangat berbeda. Keduanya dapat mencapai kualitas tinggi dengan desain yang baik, namun pembuatan perangkat keras dapat menimbulkan masalah kualitas yang tidak terdapat pada perangkat lunak. 5 6 2. Perangkat Lunak tidak habis terpakai. Tingkat kegagalan perangkat keras yang tinggi pada awalnya sebagai akibat kesalahan dalam perancangan atau kesalahan pembuatan di pabrik.Setelah di perbaiki, tingkat kegagalan menurut sampai tingkat yang paling stabil untuk beberapa periode waktu.Seiring dengan berlalunya waktu, tingkat kegagalan meningkat akibat akumulasi debu, getaran, suhu tinggi dan banyak masalah lainnya terhadap lingkungan komponen perangkat keras. Dengan kata lain, perangkat keras mulai habis terpakai. Sedangkan pada perangkat lunak tingkat kegagalan yang tinggi, adalah akibat dari keadaan yang tidak dapat diperkirakan. Setelah diperbaiki , tingkat kegagalan akan menurun sampai tingkat yang paling stabil. Jadi perangkat lunak tidak pernah habis terpakai, tetapi dapat mengalami penurunan. 3. Meskipun industri terus beralih ke kontruksi berbasis komponen, sebagian besar perangkat lunak masih tetap dibuat berdasarkan spesifikasi yang diminta pengguna. Komponen perangkat lunak seharusnya didesain dan diimplementasikan sehingga dapat digunakan kembali pada program program yang lain. Komponen reusableyang modern membungkus data dan proses yang digunakan oleh data. Sehingga memudahkan para rekayasawan perangkat lunak menciptakan aplikasi baru dari bagian terdahulu. 2.1.3 Rekayasa Perangkat Lunak 2.1.3.1Pengertian Rekayasa Perangkat Lunak Dalam buku karangan PressmandalamNugroho et al. (2010, p15) pengertian awal dari rekayasa perangkat lunak (software engineering) diajukan oleh Firtz Bauer.Definisi rekayasa perangkat lunak menurut Firtz Bauer adalah 7 pembentukkan dan penggunaan prinsip-prinsip rekayasa dalam rangka mendapatkan perangkat lunak yang ekonomis, yaitu perangkat lunak yang dapat diandalkan dan bekerja secara efisien pada mesin yang nyata.Institute if electrical electronics engineers (IEEE) menyatakan definisi yang lebih komperhensif mengenai rekayasa perangkat lunak : 1. Aplikasi yang sistematis, disiplin, terukur terhadap pengembangan, pengoprasian dan pengembangan perangkat lunak. 2. Studi pada pendekatan-pendekatan rekayasa perangkat lunak. 2.1.3.2 Proses-proses Rekayasa Perangkat Lunak Dalam buku karangan Pressman dalamNugroho et al. (2010, p55)Ivan Jacobson, Fredy Booch dan James Rumbaugh menyatakan bahwa dalam proses perangkat lunak menyatakan siapa yang melakukan apa, kapan dan bagaimana mencapai tujuan yang pasti. Sementara itu MenurutPressmandalamNugroho et al. (2010, p17) : 1. Komunikasi (Communication) Sebelum pekerjaan teknis apapun dapat dimulai, sangatlah penting untuk berkomunikasi dan berkolaborasi dengan para pemangku kepentingan untuk memahami tujuan tujuan yang diinginkan para stakeholder. 2. Perencanaan (Planning) Alur yang rumit dapat disederhanakan jika terdapat suatu peta. Suatu proyek perangkat lunak pada dasarnya merupakan suatu alur yang rumit, dan kegiatan perencanaan perangkat lunak tersebut menciptakan suatu 8 “peta” yang membantu tim perangkat lunak ketika mereka melakukan suatu pekerjaan. 3. Pemodelan (Modelling) Apakah anda seorang penata taman atau seorang arsitek? Anda bekerja dengan model-model setiap harinya. Bila anda membuat “sketsa” dari benda-benda tersebut dengan tujuan untuk menjadikan anda paham akan gambaran besarnya seperti apa nantinya tampilan secara arsitektur, bagaimana bagian-bagian saling memiliki hubungan, dan masih banyak lagi karakteristik yang lain. Seorang rekayasawan perangkat lunak melakukan hal yang sama dengan cara membuat model-model untuk memahami kebutuhan perangkat lunak maupun rancangan-rancangan yang akan memenuhi kebutuhan tersebut. 4. Konstruksi (Construction) Kegiatan ini menggabungkan pembentukan code dan pengujian yang sangat dibutuhkan untuk menemukan kesalahan dalam kode program computer yang dihasilkan sebelumnya. 5. Penyerahan kepada pengguna (Deployment) Perangkat lunak diberikan kepada pelanggan kemudian akan mengevaluasi produk yang di tampilkan dan akan memberikan umpan balik berdasarkan evaluasi tersebut. 9 2.1.4 System Development Life Cycle (The Waterfall Model) Menurut Pressman dalamNugroho et al. (2010, p33) waterfall model atau classic life cycle menyarankan sebuah sistematika pendekatan yang bertahap dalam pengembangan perangkat lunak.Dimulai dengan kebutuhan spesifikasi terhadap pengguna kemudian berlanjut kepadaperencanaan (planning), pemodelan(modeling), Pembangunan (construction) dan Penyebaran (deployment), sampai akhirnya tercipta perangkat lunak yang lengkap. Gambar 2.1The Waterfall Model Process Sumber: Sommervile (2011, p30) Sommervile (2011, p31) Adapun tahap-tahap dalam proses waterfall model adalah sebagai berikut: 1. Requirements analysis and definition Proses ini menentukan dan menemukan layanan sistem, kendala, dan tujuan yang ditetapkan dari konsultasi dengan pengguna sistem. Kemudian didefinisikan secara rinci dan menggunakannya sebagai spesifikasi sistem. 10 2. System and software design Proses ini menetapkan rencana untuk pengerjaan software yang meliputi tugas-tugas teknis yang akan dilakukan, resiko yang mungkin terjadi, sumber-sumber yang dibutuhkan, hasil yang akan dibuat, serta jadwal pengerjaannya. 3. Implementation and Unit Testing Pada proses ini, desain perangkat lunak di bentuk menjadi bagian-bagian program atau unit-unit program. Unit testing berfungsi unuk mencari tahu apakah setiap unit program sudah memenuhi spesifikasi yang dibutuhkan. 4. Integration and System Testing Unit program individu atau program yang terintegrasi dan diuji sebagai sistem yang lengkap untuk memastikan bahwa persyaratan perangkat lunak telah dipenuhi. setelah pengujian, sistem perangkat lunak yang telah melewati proses ini akan dikirimkan ke pelanggan. 5. Operation and maintenance Ini adalah fase terpanjang dalam life cycle.sistem terinstal dan mulai digunakan. Pemeliharaan melibatkan pengoreksian kesalahan yang tidak ditemukan pada tahap-tahap awal dari life cycle, meningkatkan implementasi unit sistem dan meningkatkan layanan sistem untuk menemukan kebutuhan-kebutuhan baru. 11 2.1.5 Interaksi Manusia dan Komputer 2.1.5.1 Pengenalan Interaksi Manusia dan Komputer Menurut Shneiderman&Plaisant(2005,p4-8),Interaksi Manusia dan Komputer berkaitan dengan perancangan antarmuka (userinterface) yang digunakan oleh pengguna untuk berkomunikasi dan berinteraksi dengan komputer. 2.1.5.2 Pengertian User Interface Antar muka (Interface) sangat diperlukan dalam suatu pembuatan sistem. Dengan adanya antar muka, diharapkan pengguna akan mudah memahami apa yang harus dilakukan dan menghindari terjadinya kebingungan dalam menjalankan sistem. Pressman (2010,p312), Desain user interface adalah menciptakan media komunikasi yang efektif antara manusia dan computer. Gambar 2.2 Proses User Interface Sumber: Pressman (2010, p319) 12 Terdapat langkah-langkah dalam pembuatan antar muka (User Interface) : 1. Interface analysis and modeling Interface analysis berfokus pada user untuk berinteraksi dengan sistem. Kemudian dianalisis untuk mendefinisikan satu set objek dan aksi interface. Informasi yang dikumpulkan digunakan untuk membuat model analisis untuk interface. 2. Interface design Interface design mendefinsikan satu set obyek dan aksi interface yang memunginkan user untuk melakukan semua tugas desain tata letak. 3. Interface Construction Interface design mendefinisikan dimulai dengan membuat sebuah prototype yang memungkinkan skenario penggunaan untuk dievaluasi dan digunakan untuk menyelesaikan kontruksi interface. 4. Interface Validation Setelah pembuatan prototype, interface, validation berfokus pada evaluasi secara keseluruhan untuk menentukan kemampuan interface, untuk menjalankan setiap perintah berjalan dengan benar dan sejauh mana interface mudah digunakan dan mudah dipelajari serta memenuhi kebutuhan user. 13 Dalam perancangan user interfaceharus memenuhi aturan emas. Menurut Shneiderman & Plaisant, (2005, p74-75), ada delapan aturan emas dalam desain interface: 1. Konsistensi Dalam melakukan tindakan pada sistem program komputer seperti desain warna, layout, menu dan lainnya harus dibuat secara konsisten. Selain itu urutan aksi yang dilakukan oleh user juga harus dibuat secara konsisten. 2. Mudah digunakan sesuai kebutuhan Dalam pembuatan desain perlu diperhatikan user yang baru sampai yang ahli, perbedaan usia, kondisi pengguna, dan keanekaragaman teknologi sesuai dengan kebutuhan. 3. Memberikan umpan balik Sistem harus memberikan umpan balik pada saat pengguna melakukan tindakan. Untuk setiap aksi umpan balik, harus memiliki feedback dari sistem. Umpan balik sebaiknya dibagi menjadi dua bagian tergantung pada tingkat kepentingan dari suatu tindakan. Jika tindakan yang sering dilakukan dan tidak terlalu penting, dapat diberikan umpan balik yang sederhana. Dan sebaliknya, jika tindakan yang jarang dilakukan dan penting maka diberikan umpan balik yang lengkap. 4. Desain dialog Desain dialog digunakan sebagai umpan balik kepada pengguna untuk dapat melanjutkan tindakan selanjutnya. 5. Pencegahan adanya error Error atau kesalahan pada desain sistem harus bisa dicegah. Jika pengguna melakukan kesalahan. Interface harus bisa mendeteksi kesalahan tersebut dan memberikan instruksi 14 yang sederhana untuk melakukan perbaikan kesalahan tersebut. 6. Dapat mengembalikan tindakan sebelumnya Sebaliknya setiap tindakan dapat di kembalikan ke sebelumnya. Dengan begitu dapat memberikan keberanian bagi user untuk menelusuri fitur yang kurang dikenal. 7. Pendukung tempat pengembalian internal Sistem dirancang dengan memberikan umpan balik agar user dapat melakukan dan menentukan langkah-langkah apa saja yang harus diambil dan dilakukan 8. Mengurangi kapasitas untuk mengingat Dalam hal ini, desain ditampilkan dengan sederhana supaya user dapat mengingat informasi satu tampilan dan menggunakan informasi ke tampilan lainnya. 2.1.6 Data Flow Diagram Pressman (2010, p187) Data FlowDiagram(DFD) adalah diagram yang menggambarkan aliran data yang sedang berjalan yang meliputi input-proses-output dari suatu sistem. Model aliran data pertama disebut dengan DFD level 0 atau context diagram yang merupakan gambaran sistem secara keseluruhan. 15 Gambar 2.3Data Flow Diagram Sumber: Pressman (2010, p188) Menurut Yourdon (1989:139) Ada 3 (tiga) tingkatan aliran data, yaitu: 1. Diagram Konteks Merupakan tingkatan yang paling pertama, yang menggambarkan ruang lingkup sistem dari sistem yang digunakan. Diagram ini hanya memliki suatu proses yang menggambarkan sistem secara keseluruhan dan hubungan antara sistem dengan unit-unit yang berada di luar sistem tersebut. 2. Diagram Nol Diagram yang menggambarkan proses-proses dan aliran data yang terjadi di dalam suatu sistem. Proses-proses ini dapat dipecah menjadi aliran data yang lebih terperinci. 3. Diagram Rinci Diagram yang menggambarkan rincian proses-proses yang ada pada diagram nol dan diagram proses proses tersebut dapat dipecah menjadi lebih terperinci. 16 Diagram aliran data terdiri dari simbol simbol sebagai berikut : a. Proses (Bubble atau function atau tranformation) Proses menggambarkan bagian dari sistem yang mengolah masukan menjadi keluaran. Proses digambarkan dengan sebuah lingkaran. Gambar 2.4 Simbol Proses Data dalam DFD b. Aliran (flow) Aliran menggambarkan perpindahan informasi dari satu bagian ke bagian lain dari sistem. Awal panah menggambarkan asal data sedangkan awah panah menggambarkan tujuan. Gambar 2.5Simbol aliran data dalam DFD c. Store Simbol ini digunakan untuk menggambarkan penyimpanan data. Gambar 2.6 Simbol data store dalam DFD 17 d. Terminator Merupakan simbol yang menggambarkan entitas yang dapat berupa orang, kelompok, atau organisasi yang berhubungan dengan sistem. Gambar 2.7 Simbol Terminate data dalam DFD 2.1.7 Entity Relationship Diagram Connolly and Begg (2010, p445) Seringkali lebih mudah untuk memvisualisasikan sebuah sistem yang kompleks dibanding menerjemahkan deskripsi tekstual panjang mengenai spesifikasi kebutuhan user. Kita menggunakan Entity Relationship Diagram(ERD) untuk merepresentasikan entitas-entitas dan bagaimana mereka berelasi dengan satu sama lain dengan lebih mudah. Sepanjang fase desain database, kami merekomendasikan ERD harus digunakan kapan saja dibutuhkan untuk membantu membangun sebuah gambaran mengenai bagian dari perusahaan yang kita modelkan. 2.1.8 State Transition Diagram State Transition Diagram (STD) adalah suatu modelling tool yang menggambarkan sifat ketergantungan terhadap waktu pada sistem. STDdi gunakanuntukmengidentifikasikansebagaimanasistemharusberperilaku seper ti resiko dari kejadian eksternal. Untuk mencapai hal ini STD menampilkan berbagai jenis model perilaku dan hasil dan tingkahla ku yang mana transisi dibuat dari state satu ke state yang lain. 18 2.2 Teori Khusus 2.2.1 Obyek Wisata Obyek Wisata adalah segala sesuatu yang ada di daerah tujuan wisata yang merupakan daya tarik agar orang-orang mau datang berkunjung ke tempat tersebut. Menurut SK. MENPARPOSTEL No.: KM. 98 / PW.102 / MPPT-87, Obyek Wisata adalah semua tempat atau keadaan alam yang memiliki sumber daya wisata yang dibangun dan dikembangkan sehingga mempunyai daya tarik dan diusahakan sebagai tempat yang dikunjungi wisatawan. Obyek wisata dapat berupa wisata alam seperti gunung, danau, sungai, pantai, laut, atau berupa obyek bangunan seperti museum, benteng, situs peninggalan sejarah, dan lain-lain. Gambar 2.8 Obyek Wisata Sunsetdi Pantai Kuta, Bali Suatu tempat/daerah agar dapat dikatakan sebagai obyek wisata harus memenuhi hal pokok berikut : 1. Adanya something to see. Maksudnya adalah sesuatu yang menarik untuk dilihat. 19 2. Adanya something to do. Maksudnya adalah sesuatu aktivitas yang dapat dilakukan di tempat itu. Indonesia merupakan salah satu negara dengan jumlah obyek wisata yang sangat melimpah.Obyek wisata tersebut dapat kita jumpai dari sabang sampai merauke. 2.2.2 Internet Internet, yang merupakan jaringan komputer terbesar di dunia, menurut Turban et al. (2005, p78) adalah sebuah jaringan yang terdiri dari jaringan jaringan. Internet adalah kumpulan dari 200.000 atau lebih komputer pribadi yang dimiliki oleh pemerintah, universitas, organisasi nirlaba, dan perusahaan. Jaringan-jaringan interkoneksi ini saling bertukar informasi dengan menggunakan standard dan protocol yang terbuka dan umum. Jaringan-jaringan ini terkoneksi menggunakan jaringan komunikasi elektronik yang sangat besar dan diantara bisnis-bisnis, konsumen, departemen pemerintahan, sekolah dan organisasi lain di seluruh dunia. 2.2.3 Pengertian Basis Data Menurut Thomas Connolly dan Carolyn Begg (2010:14), Database merupakan suatu kumpulan data yang berhubungan dengan logika dan dirancang untuk memenuhi kebutuhan informasi didalam organisasi. Menurut Indrajani (2011:p2), kumpulan terpadu dari elemen data logis yang saling berhubungan. Basis data mengonsolidasi banyakn catatan yang sebelumnya disimpan dalam file terpisah. DBMS ( Database Management System) menurut Connoly dan Begg (2010, p66) adalah suatu sistem piranti lunak yang 20 memungkinkan user untuk mendefinisikan, membuat, merawat, dan mengontrol akses ke dalam basis data. DBMS menyediakan beberapa fasilitas sebagai berikut : Data Definition Language DDL (Data Definition Language) adalah suatu bahasa yang memungkinkan Database Administrator(DBA) stsu user untuk mendeskripsikan nama dari suatu entitas, atribut, dan relasi data yang diminta oleh aplikasi bersamaan dengan integritas data dan batasan keamanan datanya. DDL memungkinkan pemakai untuk membuat spesifikasi tipe data, mendefinisikan basis data, struktur data, dan constraint data untuk disimpan dalam basis data. Contohnya create table, drop table dan alter table. Data Manipulation Language DML (Data Manipulation Language) adalah suatu bahasa yang memberikan fasilitas pengoperasian data yang ada didalam basis data. Pengoperasian data yang akan dimanipulasi meliputi : 1. Penambahan data baru ke dalam basis data. 2. Modifikasi data yang di simpan ke dalam basis data. 3. Pemanggilan data yang terdapat didalam basis data. 4. Penghapusan data dari basis data. Sedangkan Procedural data adalah suatu bahasa yang memperbolehkan user untuk mendeskripsikan ke sistem data apa yang dibutuhkan dan bagaimana mendapatkan data tersebut. DML memungkinkan memasukkanmemperbaharui, menghapus, pemakai mengirim dan 21 mengambil data dari basis data. Contohnya insert, update, delete, dan select. Menurut Connoly dan Begg (2010, p68-71), DBMS memiliki lima komponen yang penting yaitu : 1. Hardware (piranti keras) Dalam menjalankan aplikasi dan DBMS diperlukan piranti keras.Piranti keras dapat berupa sebuah personal computer, single mainframe, atau komputer jaringan yang berupa server. 2. Software (piranti lunak) Piranti lunak meliputi DMBS software dan program aplikasi beserta Sistem Operasi (OS), termasuk piranti lunak jaringan bila DBMS digunakan dalam jaringan LAN (Local Area Network). 3. Data Data mungkin merupakan komponen terpenting dari DBMS khususnya sudut pandang dari end user mengenai data. 4. Prosedur Prosedur adalah panduan dan instruksi dalam membuat rancangan dan menggunakan basis data.Pengguna sistem dan staf dalam mengelola basis data membutuhkan prosedur dalam menjalankan sistem dan mengelola basis data itu sendiri.Prosedur di dalam basis data dapat berupa logindi dalam basis data, pengguna sebagian fasilitas DBMS.Membuat salinan backup basis data, memeriksa perangkat keras dan piranti lunak yang sedang berjalan, mengubah struktur basis data, meningkatkan kinerja atau membuat arsip data pada secondary storage. 22 5. Manusia Komponen terakhir yaitu manusa itu sendiri yang terlibat dalam sistem tersebut.Mulai dari yang merancang sampai dengan menggunakan sistem tersebut. 2.2.4 PHP PHP merupakan bahasa scripting di sisi server yang didesain khusus untuk web. Dalam sebuah halaman HTML, kode PHP dapat di tambahkan dan akan dijalankan setiap kali halaman web tersebut diakses. Kode PHP tersebut akan diolah di sisi web server dan di tampilkan di halaman HTML yang dikunjungi. (Welling, 2005,p2) Beberapa saingan PHP adalah Perl, Microsoft ASP.NET, JavaServer Pages (JSP), dan ColdFusion. Pada perbandingan dari produk-produk tersebut, PHP memiliki banyak kelebihan yaitu: Performa yang tinggi Antarmuka ke banyak sistem basis data yang berbeda Built-in libraries untuk banyak tugas web yang umum Harga yang murah Mudah dipelajari dan digunakan Mendukung orientasi objek yang kuat Portabilitas Ketersediaan source code Ketersediaan bantuan 23 2.2.5 Database Application (MySQL) MySQL merupakan Relational Database Management System (RDBMS) yang sangat cepat dan kuat.Sebuah database memungkinkan untuk menyimpan, mencari, mengurutkan dan memperoleh data.Server MySQL mengontrol akses pada data untuk memastikan bahwa banyak user dapat memakainya secara bersamaan, untuk menyediakan akses yang sangat cepat dalam mengakses data tersebut, dan untuk memastikan bahwa hanya user yang dikenali saja yang dapat mengaksesnya, maka dari itu MySQL merupakan sebuah multiuser dan multithread server, MySQL menggunakan Structures Query Language (SQL), yaitu standard querydatabasedidunia. (Welling,2005,p3) Beberapa kelebihan MySQL antara lain : Performa tinggi Harga murah Mudah dikonfigurasi dan dipelajari Portabilitas Ketersediaan source code Ketersediaan bantuan 2.3 Aplikasi Web Photo Sharing yang Serupa 24 Gambar 2.9 Screenshoot aplikasi yang sudah ada (Instagram) Gambar 2.10Screenshoot Aplikasi Yang Sudah Ada(500px) Deskripsi tentang aplikasi di atas : Aplikasi ini digunakan untuk berbagi foto, dimana semua user bebas memposting foto apapun itu dalam aplikasi ini.User juga dapat melihat foto yang diunggah oleh admin atau userlain pada halaman home dan berdasarkan kategori yang disediakan. Kelebihan aplikasi : 1. User dapat mengupload foto apapun sesuai keinginan. 2. User dapat membeli foto yang di upload oleh user lain. Kekurangan aplikasi : 1. User tidak dapat berdiskusi dalam sebuah forum. 2. Detail lokasi pengambilan foto tidak terdeskripsi secara jelas. 25