BAB II LANDASAN TEORI 2.1. Konsep Dasar Web Menurut (Abdul Kadir, 2005) dalam (Trise & Kadris, 2016) Web merupakan salah satu sumber daya internet yang berkembang pesat. Pendistribusian informasi web dilakukan melalui pendekatan hyperlink, yang memungkinkan suatu teks, gambar, ataupun objek yang lain menjadi acuan untuk membuka halaman-halaman yang lain. Melalui pendekatan ini, seseorang dapat memperoleh informasi dengan beranjak dari satu halaman ke halaman lain. Pada bab ini juga akan membahas tentang sistem informasi, e-voting, website, bahasa pemrograman, basis data, dan model pengembangan perangkat lunak, diantaranya adalah sebagai berikut: A. Website Menurut (Kadir, 2003) dalam (Khair, Fitri Astuti, & Khairina, 2016) menjelaskan bahwa: World Wide Web (WWW) atau yang disebut dengan web adalah salah satu sumber daya internet yang memungkinkan pendistribusian informasi melalui pendekatan hyperlink. Pendekatan hyperlink ini adalah pendistribusian informasi melalui halaman web yang dapat berpindah dari satu halaman web ke halaman web yang lain Bahasa Pemrograman. Sedangkan menurut (Prasetyo, 2015) menyimpulkan bahwa website merupakan media informasi yang dapat di akses oleh siapa pun dalam suatu jaringan internet. Di dalam sebuah website, ada beberapa komponen pendukung agar sebuah website dapat diakses oleh pemakai, diantaranya: 1. Internet Menurut Oneto dan Sugiarto (2009:1) dalam (Agus & Safitri, 2015) internet adalah jaringan komputer. Ibarat jalan raya, internet dapat dilalui berbagai sarana transportasi, seperti bus, mobil dan motor yang memiliki kegunaan masing-masing. 7
8 2. Web Server Menurut (Hastanti Rulia Puji, Purnama Bambang Eka, 2018) Web server adalah sistem komputer dan software yang menyimpan serta mendistribusikan data ke komputer lain lewat internet yang meminta informasi tersebut. 3. Web Browser Web browser adalah sebuah perangkat lunak atau software yang berfungsi untuk menampilkan dan melakukan interaksi dengan dokumen-dokumen yang disediakan oleh server web. (Ahmia & Belbachir, 2018) B. Sistem Informasi Menurut Arifani (2016) dalam (Utami, Nugroho, & Wijaya, 2018) menjelaskan bahwa sistem informasi merupakan senjata ampuh untuk meningkatkan efisiensi dan efektifitas dalam proses bisnis. Sedangkan Menurut Tafri D. Muhyuzir (2010:8) dalam (Wahyuni, Jasticia, & Nugraha, 2018) mengemukakan bahwa Sistem Informasi adalah data yang dikumpulkan, dikelompokkan dan diolah sedemikian rupa sehingga menjadi sebuah satu kesatuan informasi yang saling terkait dan saling mendukung sehingga menjadi suatu informasi yang berharga bagi yang menerimanya. C. E-Voting E-voting merupakan sebuah sistem yang memanfaatkan perangkat elektronik dan mengolah informasi digital untuk membuat surat suara, memberikan suara, menghitung perolehan suara, dan menayangkan hasil suara. serta menghasilkan jejak audit. (Ridwan, Arifin, & Yulianto, 2018)
9 Menurut (Riera & Brown, 2003) dalam jurnal (Purwati, 2015) menawarkan beberapa manfaat yang akan diperoleh dalam penerapan aplikasi e-voting yaitu: 1. Mempercepat penghitungan suara 2. Hasil penghitungan suara lebih akurat 3. Menghemat bahan cetakan untuk kertas suara 4. Menghemat biaya pengiriman kertas suara 5. Menyediakan akses yang lebih baik bagi kaum yang mempunyai keterbatasan fisik (cacat) 6. Menyediakan akses bagi siswa yang mempunyai keterbatasan waktu untuk mendatangi tempat pemilihan suara (TPS) 7. Kertas suara dapat dibuat ke dalam berbagai versi bahasa 8. Menyediakan akses informasi yang lebih banyak berkenaan dengan pilihan suara 9. Dapat mengendalikan pihak yang tidak berhak untuk memilih misalnya karena di bawah umur atau melebihi umur pemilih yang telah diatur. D. Bahasa Pemrograman Dalam penulisan tugas akhir ini penulisan menggunakan beberapa bahasa pemrograman web seperti HTML, PHP, CSS, Dreamweaver, dan java script. 1. HTML Menurut (Rio, 2005) dalam (Lestanti & Susana, 2016) HTML adalah Bahasa pemrograman yang fleksibel di mana kita bias meletakkan script dari bahasa pemrograman lain seperti JAVA,Visual Basic,C dan lain-lain. Jika HTML tersebut tidak dapat mendukung suatu perintah pemrograman tertentu.browser tidak akan menampilkan kotak dialog Syntax Error jika terdapat penulisan kode yang keliru pada scrip HTML sepanjang kode-kode yang kita tuliskan merupakan kode-kode HTML tanpa penambahan kodekode dari luar seperti java. Oleh karena itu,jika terjadi syntax error pada skrip HTML, efek yang paling jelas adalah HTML tersebut tak akan ditampilkan pada halaman jendela browser.
10 2. PHP (Hypertext Preprocessor) Menurut Agus Bahtiar (2008:17) dalam (Wulandari & Aprilia, 2015) mengatakan, PHP adalah sebuah bahasa pemrograman yang didesain agar dapat disisipkan dengan mudah ke halaman HTML. Sedangkan Menurut (Achmad, 2016) menjelaskan bahwa PHP merupakan bahasa pemrograman berbasis web yang dibuat secara khusus untuk membangun aplikasi berbasis website. 3. CSS (Cascading Style Sheet) Menurut (Pasaribu, 2017) CSS merupakan kumpulan perintah yang dibentuk dari berbagai sumber yang disusun menurut urutan tertentu sehingga mampu mengatasi konflik style. CSS atau yang disebut Cascading Style Sheet yaitu salah satu bahasa pemrograman web yang mengatur komponen dalam suatu web supaya lebih terstruktur dan lebih seragam. Sedangkan Menurut (Enterprise, 2016) menjelaskan bahwa css adalah kumpulan kode untuk mendefinisikan desain dari bahasa markup. 4. Atom Text Editor Menurut (Ramadhani1 & Agus Ramdhani Nugraha2, 2018) Atom adalah sebuah text editor yang memiliki lisensi open source yang tersedia untuk macos, Linux, dan Microsoft Windows dengan dukungan plug-in yang ditulis di Node.js, dan embedded Git Control, yang dikembangkan oleh GitHub. Atom adalah aplikasi desktop yang dibuat menggunakan teknologi web. 5. Dreamweaver Menurut (Lestanti & Susana, 2016) dreamweaver merupakan editor web yang handal. Adobe Dreamweaver tentunya dilengkapi dengan kemampuan manajemen situs, yang memudahkan kita mengelola keseluruhan elemen yang ada dalam sebuah situs. Sedangkan Menurut (Mandar, 2017) menjelaskan bahwa Dreamweaver merupakan aplikasi pengembang yang berfungsi mendesain web yang di buat,
11 dikembangkan, dan diproduksi oleh adobe system. E. Basis Data Menurut (Wulandari & Aprilia, 2015) Basis data (database) merupakan kumpulan data yang saling berkaitan dan berhubungan satu dengan yang lain, tersimpan di pernagkat keras komputer dan menggunakan perangkat lunak untuk memanipulasinya. Data perlu disimpan dalam basis data untuk keperluan penyediaan informasi lebih lanjut. Data di dalam basis data perlu diorganisasikan sedemikian rupa supaya informasi yang dihasilkan. Adapun beberapa database (basis data) yang digunakan oleh penulis, yaitu sebagai berikut: 1. MYSQL (My Structure Query Languange) Menurut Madcoms (2016:17) dalam (R. Hidayat, Marlina, & Utami, 2017) menjelaskan bahwa MySQL adalah sistem manajemen database SQL yang bersifat Open Source dan paling populer saat ini. Sistem Database MySQL mendukung beberapa fitur seperti multithreaded, multi-user, dan SQL database management system (DBMS). Database ini dibuat untuk keperluan sistem database yang cepat, handal, dan mudah digunakan. Berikut adalah keunggulan dari MySQL menurut (Wulandari & Aprilia, 2015) antara lain: a. MySQL merupakan program yang multi-threaded, sehingga dapat dipasang pada server yang memiliki multi-cpu. b. Didukung program-program umum seperti C, C++, Java,Perl, PHP, Python, TCL APIs dls. c. Bekerja pada berbagai platform. (tersedia berbagai versi untuk berbagai sistem operasi). d. Memiliki jenis kolom yang cukup banyak sehingga memudahkan konfigurasi sistem database. e. Memiliki sistem security yang cukup baik dengan verifikasi host. f. Mendukung ODBC untuk sistem operasi Microsoft Windows.
12 g. Mendukung record yang memiliki kolom dengan panjang tetap atau panjang bervariasi. dan masih banyak keunggulan lainnya. h. MySQL merupakan software yang free, dan bisa di download di www.mysql.com. Sedangkan software database lainnya seperti ORACLE merupakan software yang harus di beli. i. MySQL dan PHP saling terintegrasi. Maksudnya adalah pembuatan 2. Javascript database dengan menggunakan sintak PHP dapat di buat. Sedangkan input yang di masukkan melalui aplikasi web yang menggunakan script serverside seperti PHP dapat langsung dimasukkan ke database MySQL yang ada di server dan tentunya web tersebut berada di sebuah web server. Menurut (Winarno 2014) dalam (Noor, 2017) JavaScript merupakan bahasa pemprograman paling populer didunia. Ini karena javaspcript biasa dipakai di HTML, web, untuk server, laptop, tablet, ponsel. Ditinjau dari jenisnya adalah bahasa jenis cripting. Artinya anda harus perlu mengetikkan kodenya secara langsung dan dieksekusi langsung dari kode, dan tidak dikompilasi dulu untuk dijadiakan file executable. Sedangkan Menurut (RH, 2017) menjelaskan bahwa Javascript adalah sebuah bahasa script dinamis yang dapat dipakai untuk membangun interaktifitas pada halaman-halaman HTML statis. Ini dilakuakan dengan menanamkan kode javascript dihampir semua tempat pada halaman web. 3. PhpMyAdmin Menurut (Fuad, Sutarman, & Yayah, 2018) PHP MyAdmin adalah aplikasi yang dapat digunakan untuk membuat database, pengguna (user), memodifikasi tabel, maupun megirim database secara cepat dan mudah tanpa harus menggunakan perintah (Command) SQL.
13 4. XAMPP Menurut (Rohdiani & Rakhmawati, 2017) XAMPP merupakan web server yang mudah digunakan dan dapat melayani tampilan halaman web yang dinamis. Bagian terpenting XAMPP yang biasa digunakan pada umumnya yaitu: a. XAMPP Control Panel Aplication merupakan program yang mengelola layanan (service) XAMPP. Seperti mengaktifkan layanan (start) dan menghentikan (stop) layanan. b. htdocs adalah folder tempat meletakkan berkas-berkas yang akan dijalankan. Dalam Windows, folder ini berada di C:/xampp. c. phpmyadmin merupakan bagian yang digunakan untuk mengelola database. Sumber: Data Program Gambar II.1. Tampilan Control Panel XAMPP F. Model Pengembangan Perangkat Lunak Model air terjun (waterfall) sering juga disebut model sekuensial linear (sequential linear) atau alur hidup klasik (classic life cycle).
14 Menurut (Suryadi, 2018) Model waterfall adalah desain dimana pada tahapan ini bertujuan membuat desain dari hasil analisis yang dilakukan pada tahapan pertama. Informasi, model dan spesifikasi yang diubah menjadi sebuah desain sistem yang nantinya akan dikodekan. Sedangkan menurut (Sasmito, 2017) Metode pengembangan perangkat lunak yang digunakan adalah model waterfall. Metode waterfall merupakan model pengembangan sistem informasi yang sistematik dan sekuensial. Dalam model waterfall memiliki beberapa tahapan-tahapan yaitu: Sumber: (Sasmito, 2017) Gambar II.2.Waterfall models 1. Analisis Kebutuhan Layanan sistem, kendala, dan tujuan ditetapkan oleh hasil konsultasi dengan pengguna yang kemudian didefinisikan secara rinci dan berfungsi sebagai spesifikasi sistem. 2. Desain Tahapan perancangan sistem mengalokasikan kebutuhan-kebutuhan sistem baik perangkat keras maupun perangkat lunak dengan membentuk arsitektur sistem secara keseluruhan. Perancangan perangkat lunak melibatkan identifikasi dan penggambaran abstraksi sistem dasar perangkat lunak dan hubungannya.
15 3. Pengkodean Desain harus ditranslasikan ke dalam program perangkat lunak. Hasil dari tahap ini adalah program komputer sesuai dengan desain yang telah dibuat pada tahap desain. 4. Pengujian Pada tahap ini, perancangan perangkat lunak direalisasikan sebagai serangkaian program atau unit program. Pengujian melibatkan verifikasi bahwa setiap unit memenuhi spesifikasinya. 5. Pendukung (support) atau Pemeliharaan (maintenance) Melibatkan pembetulan kesalahan yang tidak ditemukan pada tahapan-tahapan sebelumnya, meningkatkan implementasi dari unit sistem, dan meningkatkan layanan sistem sebagai kebutuhan baru. 2.2. Teori Pendukung Teori pendukung landasan teori dalam penyusunan Tugas Akhir ini sangat diperlukan karena sebagai referensi untuk memperdalam pemahaman terhadap informasi-informasi yang disajikan. Adapun teori pendukung yang penulis bahas adalah sebagai berikut: A. Struktur Navigasi Menurut Prihatna (2005:51) dalam (Nuryamin, Bakhri, Kuspriyono, & Fauzi, 2016) menjelaskan bahwa Struktur navigasi adalah struktur atau alur suatu program yang merupakan rancangan hubungan dan rantai kerja dari beberapa area yang
16 berbeda dan dapat membantu mengorganisasikan seluruh elemen pembuatan website. Menurut (Agus Sugiharto, 2019) Ada 4 (empat) macam bentuk dasar dari struktur navigasi yang biasa digunakan dalam proses pembuatan aplikasi, yaitu : 1. Struktur Navigasi Linier Struktur navigasi linier hanya mempunyai satu rangkaian cerita yang berurut, yang menampilkan satu demi satu tampilan layar secara berurut menurut urutannya. Tampilan yang dapat ditampilkan pada struktur jenis ini adalah satu halaman sebelumnya atau satu halaman sesudahnya, tidak dapat dua halaman sebelumnya atau dua halaman sesudahnya. Sumber : (Agus Sugiharto, 2019) Gambar.II.3. Struktur Navigasi Linier 2. Struktur Navigasi Hirarki Struktur navigasi hirarki biasa juga disebut sebagai struktur bercabang, merupakan suatu struktur yang mengandalkan percabangan untuk menampilkan data berdasarkan kriteria tertentu. Tampilan pada menu satu akan disebut sebagai Master Page (halaman utama pertama), halaman utama ini mempunyai halaman utama ini mempunyai halaman percabangan yang disebut Slave Page (halaman pedukung). Jika salah satu halaman pendukung dipilih atau diaktifkan, maka tampilan tersebut akan bernama Master Page (halaman utama kedua) dan seterusnya. Pada navigasi ini tidak diperkenalkan adanya tampilan secara linier.
17 Sumber : (Agus Sugiharto, 2019) Gambar.II.4. Struktur Navigasi Hirarki 3. Struktur Navigasi Non-Linier Struktur navigasi Non-Linier merupakan pengembangan dari struktur navigasi linier. Pada struktur ini diperkenalkan membuat navigasi bercabang. Percabangan pada struktur non linier ini berbeda dengan percabangan pada struktur hirarki. Karena pada percabangan ini walaupun terdapat percabangan, tetapi tiap-tiap tampilan mempunyai kedudukan yang sama yaitu tidak ada Master Page dan Slave Page. Sumber : (Agus Sugiharto, 2019) Gambar.II.5. Struktur Navigasi Non-Linier 4. Struktur Navigasi Composite (Campuran) Struktur navigasi composite (campuran) disebut juga struktur navigasi bebas yang merupakan gabungan dari ketiga struktur yang ada. Struktur navigasi ini biasa digunakan dalam pembuatan multimedia karena dapat memberikan kerinteraksian yang lebih tinggi.
18 Sumber : (Agus Sugiharto, 2019) Gambar.II.6. Struktur Navigasi Linier B. Enterprise Relationship Diagram (ERD) Menurut Indrajani (2011:109) dalam jurnal (Mandiri & Octasia, 2016) Entity Relationship Diagram (ERD) adalah sebuah pendekatan top-bottom dalam perancangan basis data yang dimulai dengan mengidentifikasikan datadata terpenting yang disebut entitas dan hubungan antara entitas-entitas tersebut digambarkan dalam suatu model atau diagram. Berikut adalah Elemen-elemen diagram hubungan entitas Menurut (Rachmawati, Laila, & Susana, 2016) yaitu: 1. Entitas/Entity Merupakan data inti yang akan di simpan, bakal tabel pada basis data, benda yang memiliki data dan harus disimpan datanya agar dapat diakses oleh aplikasi komputer, penamaan entitas biasanya lebih ke kata benda dan belum merupakan nama tabel. 2. Relationship Relasi yang menghubungkan antar entitas, biasanya diawali dengan kata kerja. 3. Relationship Degree Adalah jumlah entitas yang berpartisipasi dalam satu relationship. Derajat relationship yang sering dipakai adalah : a. Unary relationship : model relationship yang terjadi dimana entity yang berasal dari entity set yang sama.
19 b. Binary relationship : model relationship antara instance-instance dari suatu tipe entitas c. Ternary relationship : relationship antara instance-instance dari tiga tipe entitas secara serentak. 4. Atribut value Adalah suatu occurrence tertentu dari sebuah atribut di dalam suatu entity atau relationship. Ada dua jenis atribut yaitu : a. Identifier (key) digunakan untuk menentukan suatu entity secara unik (primary key). b. Descriptor (nonkey atribut) digunakan untuk menspesifikasikan karakteristik dari suatu entity yang tidak unik. 5. Kardinalitas atau cardinality yaitu menjelaskan hubungan batasan jumlah keterhubungan satu entity dengan entity lainnya atau banyaknya entity yang bersesuaian dengan entity yang lain melalui relationship. Terdapat tiga macam kardinalitas relasi dalam ERD (Enterprise Relationship Diagram ) yaitu : a. One to one : tingkat hubungan satu ke satu, dinyatakan dengan satu kejadian pada entitas pertama, hanya mempunyai satu hubungan dengan entitas yang kedua dan sebaliknya. b. One to many : tingkat hubungan satu ke banyak adalah sama dengan banyak ke satu, tergantung dari arah mana hubungan tersebut dilihat. c. Many yo many : tingkat hubungan kebanyakan terjadi jika tiap kejadian pada sebuah entitas akan mempunyai banyak hubungan dengan kejadian pada entitas lainnya.
20 C. LRS (Logical Record Structure) Menurut (Riyanto, 2005) dalam (Lubis, Baginda Oloan. Salim, 2016) mengemukakan bahwa LRS (logical record structure) adalah representasi dari struktur record-record pada tabel-tabel yang terbentuk dari hasil antar himpunan entitas. Menurut (Wahyudin & Komariah, 2018) Ada beberapa perubahan yang terjadi yang mengikuti aturan-aturan sebagai berikut: 1. Setiap entitas akan diubah kebentuk kotak. 2. Sebuah atribut relasi disatukan dalam sebuah kotak bersama entitas jika hubungan yang terjadi pada diagram-er 1:M (relasi bersatu dengan cardinality M) atau tingkat hubungan 1:1 (relasi bersatu dengan cardinality yang paling membutuhkan referensi). 3. Sebuah relasi dipisah dalam sebuah kotak tersendiri (menjadi entitas baru) jika tingkat hubunganya M:M (many to many) dan memiliki foreign key sebagai primary key yang diambil dari kedua entitas yang sebelumnya saling berhubungan. D. Implementasi dan Pengujian Unit Dalam melakukan pemograman, harus ada tahap pengujian terhadap kode-kode program untuk memastikan kebenaran tersebut. Pengujian ini dilakukan untuk mencari kesalahan yang di timbulkan karena salah tulis atau kesalahan dalam pemograman. Dalam pengujian Black Box Testing. Hal ini dilakukan untuk mencari posisi kesalahan (error) dan memastikan keluaran yang dihasilkan sesuai dengan yang diinginkan.
21 Menurut (T. Hidayat & Muttaqin, 2018) Black-Box Testing merupakan pengujian yang berfokus pada spesifikasi fungsional dari perangkat lunak, tester dapat mendefinisikan kumpulan kondisi input dan melakukan pengetesan pada spesifikasi fungsional program.