BAB II LANDASAN TEORI 2.1. Metode Rekayasa Perangkat Lunak Rosa, Shalahuddin (2013:4) Rekayasa Perangkat Lunak (Software Engineering) merupakan pembangunan dengan menggunakan prinsip atau konsep rekayasa dengan tujuan menghasilkan perangkat lunak yang bernilai ekonomi yang dipercaya dan bekerja secara efisien menggunakan mesin. Perangkat lunak banyak dibuat dan pada akhirnya sering tidak digunakan karena tidak memenuhi kebutuhan pelanggan atau bahkan karena masalah non-teknis seperti keenggan pemakai perangkat lunak atau (User) untuk mengubah cara kerja dari manual ke otomatis, atau ketidakmampuan user menggunakan komputer. Oleh karena itu, rekayasa perangkat lunak dibutuhkan agar perangkat lunak yang dibuat tidak hanya menjadi perangkat lunak yang tidak terpakai. Rosa, Shalahuddin (2013:28) Model Air Terjun (Waterfall) sering juga disebut model Sekuensial linier (Sequential Linear) atau alur hidup klasik (Classic Life Cycle). Model air terjun menyediakan pendekatan alur hidup perangkat lunak secara sekuensial atau terurut dimulai dari analisis, desain, pengodean, pengujian dan tahap pendukung (support). Berikut adalah gambar 2.1 permodelan air terjun (waterfall): Sistem Rekayasa Informasi Analisis Desain Pengodean Pengujian Pengodean Pengodean Pengodean Pengodean Pengodean Pengodean Pengodean Pengodean Gambar 2.1 Ilustrasi Model Waterfall (Rosa, Shalahuddin (2013:29)) 7 8 Analisis kebutuhan perangkat lunak Proses pengumpulan kebutuhan dilakukan secara intensif untuk menspesifikasikan kebutuhan perangkat lunak agar dapat dipahami perangkat lunak seperti apa yang dibutuhkan oleh user. Spesifikasi kebutuhan perangkat lunak pada tahap ini perlu untuk didokumentasikan. Desain Desain perangkat lunak adalah proses multi langkah yang fokus pada desain pembutan program perangkat lunak termasuk struktur data, arsitektur perangkat lunak, representasi antar muka, dan prosedur pengkodean. Tahap ini mentranslasikan kebutuhan perangkat lunak dari tahap analisis kebutuhan ke representasi desain agar dapat diimplementasikan menjadi program pada tahap selanjutnya. Desain perangkat lunak yang dihasilkan pada tahap ini juga perlu didokumentasikan. Pembuatan kode program Desain harus ditranslasikan kedalam program perangkat lunak. Hasil dari tahap ini adalah program komputer sesuai dengan desain yang telah dibuat pada tahap desain. Pengujian Pengujian fokus pada perangkat lunak dari segi logic dan fungsional dan memastikan bahwa semua bagian sudah diuji. Hal ini dilakukan untuk meminimalisir kesalahan (error) dan memastikan keluaran yang dihasilkan sesuai dengan yang diinginkan. Pendukung (support) atau pemeliharaan (maintenance) Tidak menutup kemungkinan sebuah perangkat lunak mengalami perubahan ketika sudah dikirimkan ke user. Perubahan bisa terjadi karena adanya kesalahan yang muncul dan tidak terdeteksi saat 9 pengujian atau perangkat lunak harus beradaptasi dengan lingkungan baru. Tahap pendukung atau pemeliharaan dapat mengulangi proses pengembangan mulai dari analisis spesifikasi untuk perubahan perangkat lunak yang sudah ada, tapi tidak untuk membuat perangkat lunak baru. 2.2. Definisi Web WWW (World Wide Web) atau yang sering disebut sebagai web merupakan aplikasi internet yang paling populer. Demikian populernya hingga banyak orang yang keliru mengidentikkan web dengan internet. Secara teknis, web adalah sebuah sistem dimana informasi dalam bentuk teks, gambar, suara, dan lain-lain yang tersimpan dalam sebuah internet webserver yang dipresentasikan dalam bentuk hypertext. Informasi di web dalam bentuk teks umumnya ditulis dalam format HTML (Hypertext Markup Language). Informasi lainnya disajikan dalam bentuk grafis (dalam format GIF, JPG, PNG), suara (dalam format AU, WAV), dan objek multimedia lainnya (seperti MIDI, Shockwave, Quicktime Movie, 3D World). Sebuah halaman web merupakan berkas yang ditulis sebagai berkas teks biasa (plain text) yang diatur dan dikombinasikan sedemikian rupa dengan instruksi-instruksi berbasis HTML, atau XHTML, kadang-kadang pula disisipi dengan sekelumit bahasa skrip. Berkas tersebut kemudian diterjemahkan oleh peramban web dan ditampilkan seperti layaknya sebuah halaman pada monitor komputer. Halaman-halaman web tersebut diakses oleh pengguna melalui protokol komunikasi jaringan yang disebut sebagai HTTP, sebagai tambahan untuk meningkatkan aspek keamanan dan aspek privasi yang lebih baik, situs web dapat pula mengimplementasikan mekanisme pengaksesan melalui protokol HTTPS. 10 2.2.1. Web Browser Web Browser atau yang biasa disebut dengan browser, merupakan suatu program yang dirancang untuk mengambil informasi-informasi dari suatu server komputer pada jaringan internet. 2.2.2. Web Server Web Server adalah sebuah bentuk server yang khusus digunakan untuk menyimpan halaman website atau home page. Komputer dapat dikatakan sebagai web server jika komputer tersebut memiliki suatu program server yang disebut Personal Web Server (PWS). PWS ini difungsikan agar halaman web yang ada didalam sebuah komputer server dapat dipamggil oleh koputer klien. Macam-macam Web Server: 1. Apache Web Server – The HTTP Web Server 2. Apache Tomcat 3. Microsoft Windows Server 2003 Internet Information Services (IIS) 4. Lighttpd 5. Sun Java System Web Server 6. Xitami Web Server 7. Zeus Web Server 2.3. Hypertext Preprocessor (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 sebuah CMS. Source code PHP diinterpretasi pada web server dan akan dieksekusi setiap kali halaman diminta oleh client. Mekanisme ini menyebabkan informasi yang diterima client selalu yang terbaru. Sistem kerja dari program ini adalah sebagai interpreter. Dikatakan sebagai bahasa interpreter, script mentahnya tidak harus diubah ke dalam bentuk source code. Sehingga pada saat menjalankan program, source code secara langsung akan dijalankan tanpa harus melalui proses pengubahan ke dalam bentuk source code. 11 2.4. MySQL MySQL merupakan suatu Relational Database Management System (RDBMS) yang cepat dan kuat . (Welling & Thomson, PHP and MYSQL Web Development, 2008: 3). MySQL memungkinkan secara efisien menyimpan, mencari, mengurutkan dan mendapatkan data. MySQL menggunakan Structured Query Language (SQL) sebagai standar query basisdata. Menurut (Kadir, 2003:101) merupakan kependekan dari Structured Query Language. SQL digunakan untuk berkomunikasi dengan sebuah database, sesuai dengan ANSI, SQL merupakan bahasa standar untuk sistem manajemen database relasional. Statement SQL digunakan untuk melakukan update terhadap database, atau mengambil data dari sebuah database. Suatu database memungkinkan kita untuk melakukan penyimpanan, pencarian, pengaturan dan pengambilan data secara efisien. Server MySQL mengendalikan akses ke data untuk menjamin bahwa beberapa user dapat bekerja bersama, menyediakan akses yang cepat dan menjamin hanya user yang memiliki hak yang dapat mengakses. MySQL merupakan sebuah system manajemen database relasi (relational database management system). Bersifat open source yang dapat didownload secara bebas. Pada awalnya MySQL hanya berjalan diatass platform system operasi linux, namun saat ini MySQL dapat pula bejalan diatas system operasi lainnya, contoh: Ms. Windows, Solaris, FreeBSD, Mac OSX, dsb. 2.5. JavaScript JavaScript adalah bahasa skrip yang populer di internet dan dapat bekerja di sebagian besar penjelajah web populer seperti Internet Explorer (IE), Mozilla Firefox, Netscape dan Opera. Kode JavaScript dapat disisipkan dalam halaman web menggunakan tag SCRIPT. JavaScript bisa digunakan untuk banyak tujuan, misalnya untuk membuat efek rollover baik di gambar maupun teks, dan yang 12 penting juga adalah untuk membuat AJAX. JavaScript adalah bahasa yang digunakan untuk AJAX. 2.6. Adobe Dreamweaver Adobe Dreamweaver merupakan program penyunting halaman web keluaran Adobe Systems yang dulu dikenal sebagai Macromedia Dreamweaver keluaran Macromedia. Program ini banyak digunakan oleh pengembang web karena fitur-fiturnya yang menarik dan kemudahan penggunaannya. Adobe Dreamweaver adalah aplikasi desain dan pengembangan web yang menyediakan editor WYSIWYG visual (bahasa sehari-hari yang disebut sebagai Design view) dan kode editor dengan fitur standar seperti syntax highlighting, code completion, dan code collapsing serta fitur lebih canggih seperti real-time syntax checking dan code introspection untuk menghasilkan petunjuk kode untuk membantu pengguna dalam menulis kode. Tata letak tampilan Design memfasilitasi desain cepat dan pembuatan kode seperti memungkinkan pengguna dengan cepat membuat tata letak dan manipulasi elemen HTML. 2.7. Hubungan PHP dengan MySQL Kadir, Abdul (2002:6) Model kerja diawali dengan permintaan suatu halaman web oleh browser. Berdasarkan URL (Uniform Resource Locator) dikenal juga dengan sebutan internet. Browser mendapatkan alamat dari web server, mengidentifikasi alamat yang dikehendaki, dan menyampaikan segala informasi yang dibutuhkan oleh web server. Informasinya berupa “nama browser, versi dan sistem informasinya”. Selanjutnya, web server akan memilih apakah yang diminta klien adalah kode HTML atau PHP. Apabila klien ingin menampilkan kode HTML maka web server akan melakukan proses penerjemahan kode HTML dan menampilkan ke layar klien, sebaliknya ketika berkas PHP yang diminta didapatkan oleh web server, isinya segera dikirimkan ke mesin PHP dan mesin inilah yang memproses dan memberikan hasilnya (berupa kode HTML) ke web server. Selanjutnya menyampaikan ke klien. Untuk lebih jelasnya perhatikan gambar 2.2 yang akan menjelaskan konsep kerja hubungan PHP dengan MySQL serta hubungan dengan web brpwser dalam menampilkan request dari klien. 13 Gambar 2.2 Hubungan PHP dengan MySQL 2.8. UML (Unified Modeling Language) Fowler (2005:1) UML (Unified Modeling Language) adalah sebuah “bahasa” yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem perangkat lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi perangkat lunak, dimana aplikasi tersebut dapat berjalan pada perangkat keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. UML ditemukan pertama kali oleh Grady Booch, Ivar Jacobson dan James Rumbagh pada tahun 1990-an. Meraka berdua memadukan dan mengadopsi ideide serta kemampuan tambahan dari masing-masing metodenya dan berusaha membuat metodologi terbaru. UML merupakan alat bantu yang sangat baik di dunia pengembangan/perancangan sistem berorientasi objek. Hal ini dikarenakan UML menyediakan bahasa permodelan visual yang memungkinkan pengembang sistem untuk membuat rencana mereka dalam bentuk baku., mudah dimengerti serta dilengkapi dengan mekanisme yang efektif untuk berbagi dan mengkomunikasikan rancangan mereka dengan yang lain. Pada perkembangan teknik pemrograman berorientasi objek, munculah sebuah standarisasi bahasa permodelan untuk membangun perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modeling Language (UML). UML muncul karena adanya kebutuhan 14 permodelan visual untuk menspesifikasikan , menggambarkan, membangun, dan dokumentasi dari sistem perangkat lunak. UML merupakan bahasa visual untuk permodelan dan komunikasi mengenai sebuah sistem dengan menggunakan diagram dengan teks-teks pendukung. UML hanya berfungsi untuk melakukan permodelan. Jadi penggunaan UML tidak terbatas pada metodologi tertentu, meskipun pada kenyataan UML paling banyak digunakan pada metodologi berorientasi objek. Dengan enggunakan UML dapat membuat model untuk semua jenis aplikais perangat lunak, dimana aplikasi tersebut dapat berjalan pada perangkat keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka lebih cocok untuk penulisan perangkat luak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian UML dapat juga digunakan untuk model aplikasi prosedural dalam VB atau C. Ada beberapa jenis use case diagram dalam tabel 2.1 berikut: Tabel 2.1 Jenis Use Case Diagram (Fowler (2007:17)) No 1 Diagram Class Kegunaan Kategori Class, fitur dan hubunganhubungan 2 Object Contoh konfigurasi dari contoh-contoh 3 Component Struktur dan koneksi komponen 4 Composite Structure Dekomposisi runtime pada class 5 Package Struktur hirarki compile-time Structure Diagrams 15 6 Deployment Pemindahan artefak ke node 7 Activity Behaviour prosedural dan parallel 8 Use Case Bagaimana Pengguna berinteraksi dengan sebuah sistem 9 State Machine Behavior Diagram Bagaimana event mengubah objek selama aktif 10 Interaction Overview Campuran sequence dan activity diagram 11 12 Sequence Communication Interaksi antar objek; penekanan pada objek Interaction Interaksi antar objek, Diagrams penekanan pada jalur 13 Timing Interaksi antara objek penekanan pada waktu 2.8.1. Use Case Diagram Use case diagram merupakan permodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use Case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Secara kasar, Use Case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem informasi dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut. Use Case diagram sangat membantu bila sedang menyusun kebutuhan sebuah sistem, mengkomunikasikan rancangan dengan klien dan merancang tes kasus untuk semua jenis yang ada pada sistem. Berikut pada Tabel 2.2 terdapat Notasi Use Case Diagram. 16 Tabel 2.2 Notasi Use Case Diagram (Rosa, Shalahuddin (2013:156)) Notasi Deskripsi Aktor. Digunakan untuk menggambarkan pelaku atau pengguna. Pelaku ini meliputi manusia atau sistem komputer atau subsistem lain yang memiliki metode untuk melakukan sesuatu. Contoh: user, admin, dll Use case. Untuk menggambarkan spesifikasi pekerjaan dan deskripsi pekerjaan. Contoh: memasukan data, dll Alur. Untuk menggambarkan hubungan use case satu dengan use case yang lainnya ------------> Alur perpanjangan. Untuk menggambarkan hubungan antara 2 use case yang diperpanjangkan (extension points) maupun use case yang termasuk (include use case) Alur yang digunakan untuk menggambarkan hubungan antara actor dengan use case <<extended>> Kondisi yang mendeskripsikan apa yang terjadi antara use case dengan use case yang diperpanjang <<include>> Kondisi aliran proses langsung (directed relation) antara dua use case yang secara tak langsung menyatakan kelakuan dari use case yang dimasukan <<has>> Kondisi yang mendeskripsikan apa yang terjadi antara actor dengan use case 2.8.2. Activity Diagram Rosa, Shalahudin (2013:161) Diagram aktifitas (Activity Diagram) menggambarkan workflow (aliran kerja) atau aktifitas dari sebuah sistem atau proses bisnis atau menu yang ada pada perangkat lunak. Yang perlu diperhatikan disini adalah bahwa diagram aktifitas menggambarkan aktifitas 17 sistem bukan apa yang dilakukan aktor, jadi aktifitas yang dapat dilakukan oleh sistem. Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal hal berikut: Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan. Urutan atau pengelompokan tampilan dari sistem / user interface dimana setiap aktifitas dianggap memiliki sebuah rancangan antarmuka tampilan. Rancangan pengujian dimana setiap aktifitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya. Rancangan menu yang ditampilkan pada perangkat lunak. Berikut adalah simbol-simbol yang ada pada diagram aktivitas: Tabel 2.3 Simbol-simbol Activity Diagram (Rosa, Shalahuddin (2013:162)) Simbol Deskripsi Status awal. Status awal aktifitas sistem, sebuah diagram aktifitas memiliki sebuah status awal Aktivitas Aktifitas. Aktifitas yang dilakukan sistem, aktifitas biasanya diawali dengan kata kerja. Percabangan / decision. Asosiasi percabangan dimana jika ada pilihan aktifitas lebih dari satu. Penggabungan / join. Asosiasi penggabungan dimana lebih dari satu aktifitas digabungkan menjadi satu. Status akhir. Status akhir yang dilakukan sistem, sebuah diagram aktifitas memiliki sebuah status akhir. 18 Contoh Activity Diagram: Admin Sistem Masukan id dan password admin Menampilkan Form Log In Cek log in nama dan password Tidak Valid? * * Ya Menampilkan halaman log in Gambar 2.3 Contoh Activity Diagram 2.8.3. Sequence Diagram Rosa, Shalahudin (2013:161) Diagram Sekuen (Sequence Diagram) menggambarkan kelakuan objek pada use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambar diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu. Membuat diagram sekuen juga dibutuhkan untuk melihat skenario yang ada pada use case. Banyaknya diagram sekuen yang harus digambar adalah minimal sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah 19 dicakup pada diagram sekuen sehingga semakin banyak use case yang didefinisikan maka diagram sekuen yang harus dibuat juga semakin banyak. Berikut adalah simbol-simbol yang ada pada diagram sekuen: Tabel 2.4 Simbol-simbol Diagram Sekuen (Sequence Diagram) (Rosa, Shalahuddin (2013:165)) Simbol Deskripsi Aktor. Orang, Proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat itu sendiri. Garis hidup / Lifetime. Menyatakan kehidupan suatu objek Objek. Menyatakan objek yang berinteraksi Nama objek : nama kelas pesan. Waktu aktif. Menyatakan objek dalam keadaan aktif dan berinteraksi, semua yang terhubung dengan waktu aktif ini adalah sebuah tahapan yang dilakukan didalamnya. <<create>> 1 : nama_metode() 1 : masukan Pesan tipe create. Menyatakan suatu objek membuat objek yang lain, arah panah mengarah pada objek yang dibuat. Pesan tipe call. Menyatakan suatu objek memanggil operasi/metode yang ada pada objek lain atau dirinya sendiri. Arah panah mengarah pada objek yang memiliki operasi/metode, maka operasi/metode yg dipanggil harus ada pada diagram kelas sesuai dengan objek kelas yang berinteraksi. Pesan tipe send. Menyatakan bahwa suatu objek mengirimkan data/masukan/informasi ke objek lainnya, arah panah mengarah pada objek yang dikirimi. 20 Pesan tipe return. Menyatakan bahwa suatu objek yang telah menjalankan suatu operasi/metode menghasilkan suatu kembalian ke objek tertentu, arah panah mengarah pada objek yang menerima kembalian. 1 : keluaran Contoh Sequence Diagram: Form Log In Data Log In Halaman Utama Top Package::Admin Masukan username dan password Verivikasi data Data valid Tidak valid Gambar 2.4 Contoh Sequence Diagram 21 2.8.4. Class Diagram Rosa, Shalahudin (2013:141) Diagram Kelas (Class Diagram) menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi Atribut merupakan variable-variabel yang dimiliki oleh suatu kelas Operasi atau metode adalah fungsi yang dimiliki oleh suatu kelas Diagram kelas (Class Diagram) dibuat agar pembuat program atau programmer membuat kelas-kelas sesuai rancangan di dalam diagram kelas agar antara dokumentasi perancangan dan perangkat lunak sinkron. Banyak berbagai kasus perancangan kelas yang tidak sesuai dengan kelas-kelas yang dibuat pada perangkat lunak, sehingga tidaklah ada gunanya lagi sebuah perancangan karena apa yang dirancang dan hasil jadinya tidak sesuai. Kelas-kelas yang ada pada struktur sistem harus dapat melakukan fungsifungsi sesuai dengan kebutuhan sistem sehingga pembuat perangkat lunak atau programmer dapat membuat kelas-kelas didalam program perangkat lunak sesuai dengan perancangan diagram kelas. Susunan struktur kelas yang baik pada diagram kelas sebaiknya memiliki jenis-jenis kelas berikut: Kelas Main Kelas yang memiliki fungsi awal dieksekusi ketika sistem dijalankan. Kelas yang menangani tampilan sistem (view) Kelas yang mendefinisikan dan mengatur tampilan ke pemakai. Kelas yang diambil dari pendefinisian use case (controller) Kelas yang menangani fungsi-fungsi yang harus ada diambil dari pendefinisian use case, kelas ini biasanya disebut dengan kelas proses yang menangani proses bisnis pada perangkat lunak. Kelas yang diambil dari pendefinisian data (model) Kelas yang digunakan untuk memegang atau membungkus data menjadi sebuah kesatuan yang diambil maupun akan disimpan ke basis data. Semua 22 tabel yang dibuat di basis data dapat dijadikan kelas, namun untuk tabel dari hasil relasi atau atribut multivalue pada ERD dapat dijadikan kelas tersendiri dan dapat juga tidak asalkan pengaksesnya dapat dipertanggungjawabkan atau tetap ada didalam perancangan kelas. Berikut adalah simbol-simbol yang ada pada diagram kelas: Tabel 2.5 Simbol-simbol Diagram Kelas (Class Diagram) (Rosa, Shalahuddin (2013:146)) Simbol Deskripsi Kelas. Kelas pada struktur sistem. NamaKelas +Atribut +Operasi() nama_interface Antarmuka / Interface. Sama dengan konsep interface dalam pemrograman berorientasi objek. Asosiasi / Asociation. Relasi antar kelas dengan makna umum, asosiasi biasanya juga disertai dengan multiplicity. Asosiasi berarah / directed association. Relasi antarkelas dengan makna kelas yang satu digunakan oleh kelas yang lain, asosiasi biasanya juga disertai dengan multiplicity. Generalisasi. Relasi antar kelas dengan makna generalisasi-spesialisasi (umum khusus) Agregasi / Agregation. Relasi antarkelas dengan makna semua-bagian (whole-part) 23 Contoh Class Diagram: admin reviewer -nidn_reviewer : int -nama_reviewer : string -jurusan_reviewer : string -fakultas_reviewer : string -status_karyawan : string -email_reviewer : string -no_telp_reviewer : string -alamat_reviewer : string -jk_reviewer : string +input() +simpan() +login() +logout() 1..1 -id_admin : int -nama_admin : string -password_admin : string +input() +delete() +login() +logout() +simpan() 1..* Gambar 2.5 Contoh Class Diagram