BAB II LANDASAN TEORI Bab ini menjelaskan teori-teori yang menunjang penulisan tugas akhir ini mengenai pembuatan aplikasi pemesanan melalui smartphone dengan algoritma FIFO(First In First Out) agar pelanggan Amanda Brownies dapat dengan mudah memesanya dan lebih efisien. 2.1 Android Smartphone Android adalah sistem operasi yang berbasis Linux untuk telepon seluler seperti telepon pintar dan komputer tablet. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri untuk digunakan oleh bermacam peranti bergerak. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia. Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode-kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler. 2.2 Amanda Brownies Amanda Brownies Kukus merupakan makanan khas Indonesia yang memiliki kualitas tinggi. Amanda Brownies Kukus mempunyai sebuah perusahaan yang bergerak di bidang bisnis kuliner atau makanan khas Bandung. Ny. Sumiwiludjeng adalah wanita dibalik kesuksesan Amanda Brownies. AMANDA “Anak Mantu Damai” itulah singkatan atau nama yang diciptakan wanita tua tersebut dengan harapan seluruh keluarganya bisa selalu damai. Wanita tua ini tidak pernah mengenal lelah ketika membuat brownies ini dan akhirnya mendapatkan rasa yang berkualias dengan keringatnya. Dimulai dari tahun 2000 5 http://digilib.mercubuana.ac.id/ Amanda Brownies mulai mengepakan sayapnya di bidang bisnis kuliner khususnya di kota Bandung, Amanda mulai mematenkan komposisi, rasa dan nama brand. Satu tahun berlalu sang pemilik membuka Outlet Pertama yaitu di depan ruko metro jalan Soekarno Hatta. Dari tahun ke tahun perjalanan karir Amanda sangat pesat, sesampainya ditahun 2005 Amanda berhasil membuka beberapa outlet cabang di beberapa daerah di Kota Bandung dan mendirikan kantor pusat serta pabrik di daerah Rancabolang Bandung. Pada tahun 2006 – 2008 Amanda telah mengantongi hak cipta merk, toko & restaurant. Setelah lama kemudian dan sekarang Amanda telah menjajal kota-kota besar di Nusantara, dengan inovasi kreatif dan inovatif Amanda memiliki 32 Produk yang bervarian mulai dari Brownies hingga Pastry yang akan terus kami kembangkan untuk memenuhi kebutuhan para pelanggan istimewa kami. Dengan produk berkualitas tinggi memberikan pengalaman terbaik yang tek terlupakan, Amanda akan terus mengibarkan sayapnya dan menjadi Makanan Khas Nusantara dari Indonesia untuk Dunia. 2.3 Rekayasa Perangkat Lunak Rekayasa perangkat lunak atau yang disebut dengan istilah Software Engineering (SE) yaitu bidang profesi yang mendalami cara-cara pengembangan sebuah perangkat lunak termasuk pembuatan ,pemeliharaan, manajemen organisasi pengembangan perangkat lunak dan sebagainya. Perangkat lunak (software) adalah program komputer yang terasosiasi dengan dokumentasi perangkat lunak seperti dokumentasi kebutuhan, model desain, dan cara penggunaan (user manual). Sebuah perangkat lunak juga disebut dengan sistem perangkat lunak. Sistem berate kumpulan komponen yang saling terkait dan mempunyai satu tujuan yang ingin dicapai. User atau pengguna perangkat lunak adalah orang yang memiliki kepentingan untuk memakai atau menggunakan perangkat lunak untuk memudahkan pekerjaannya. 6 http://digilib.mercubuana.ac.id/ Karakter perangkat lunak adalah sebagai berikut : 1. Perangkat lunak dibangun dengan rekayasa (software engineering) bukan diproduksi secara manufaktur atau pabrikan. 2. Perangkat lunak tidak pernah using (wear out) karena kecacatan dalam perangkat lunak dapat diperbaiki. 3. Barang produksi pabrikan biasanya komponen barunya akan terus diproduksi, sedangkan perangkat lunak biasanya terus diperbaiki seiring bertambahnya kebutuhan. 2.4 HTML5 HTML5 adalah sebuah bahasa markah untuk menstrukturkan dan menampilkan isi dari Waring Wera Wanua, sebuah teknologi inti dari Internet. HTML5 adalah revisi kelima dari HTML (yang pertama kali diciptakan pada tahun 1990 dan versi keempatnya, HTML4, pada tahun 1997) dan hingga bulan Juni 2011 masih dalam pengembangan. Tujuan utama pengembangan HTML5 adalah untuk memperbaiki teknologi HTML agar mendukung teknologi multimedia terbaru, mudah dibaca oleh manusia dan juga mudah dimengerti oleh mesin.HTML5 merupakan salah satu karya Konsortium Waring Wera Wanua (World Wide Web Consortium, W3C) untuk mendefinisikan sebuah bahasa markah tunggal yang dapat ditulis dengan cara HTML ataupun XHTML. HTML5 merupakan jawaban atas pengembangan HTML 4.01 dan XHTML 1.1 yang selama ini beijalan terpisah, dan diimplementasikan secara berbeda-beda oleh banyak perangkat lunak dan para pembuat web. 2.5 XAMPP XAMPP adalah tool yang menyediakan paket perangkat lunak kedalam satu buah paket. Dengan menginstal XAMPP tidak perlu lagi menginstal dan mengkonfigurasi web server Apache, PHP dan MySQL secara manual. XAMPP akan menginstal dan mengkonfigurasi secara otomatis. Fungsi XAMPP yaitu sebagai server berdiri sendiri (localhost), terdiri dari program Apache, http server, MySQL, database, dan penterjemah bahasa yang ditulis dengan bahasa pemrograman PHP dan Perl. 7 http://digilib.mercubuana.ac.id/ XAMPP merupakan singkatan dari X (X=Cross Platform), Apache, MySQL, PHP dan Perl. Program ini tersedia dalam lisensi GNU (General Public License) dan gratis. 2.5.1 Apache Web server merupakan software yang memberikan layanan web. Web server menggunakan protocol yang disebut dengan HTTP (HyperText Transfer Protocol). Di dunia open source memiliki banyak sekali pilihan, tergantung dengan keperluan anda. Salah satu web server yang terkenal dan menjadi standar de facto setiap distribusi linux yaitu Apache. Apache adalah nama web server yang dibuat berbasiskan kode sumber dan ide-ide yang ada pada web server keluhurnya, yaitu web server NCSA. Web server merupakan sebuah bentuk server yang khusus digunakan untuk menyimpan halaman website atau home page. Apache merupakan turunan dari web server yang dikeluarkan oleh NCSA yaitu NSCA HTTPd sekitar tahun 1995an. Pada dasarnya, Apache adalah “APatCHy” (patch) dan pengganti dari NCSA HTTPd. Adapun pertimbangan dalam memilih apache sebagai berikut : 1. Apache termasuk dalam kategori free software (software gratis). 2. Instalasinya sangat mudah. 3. Mampu beroperasi pada banyak platform sistem operasi seperti Linux, Windows dan lain-lain. Apache merupakan web server yang bersifat open source dan memiliki performance yang sangat bagus, flexsibel dan mendukung berbagai macam platformsistem operasi. Menurut (Firdaus, 2007) 2.5.2 MySQL MySQL atau yang biasa dibaca “mai-se-kuel” adalah sebuah program pembuat database yang bersifat open source, yang artinya siapa saja boleh menggunakannya. MySQL merupakan salah satu software database (basis data) opensource yang dikembangkan sebuah komunitas bernama MySQL AB dengan 8 http://digilib.mercubuana.ac.id/ tujuan membantu user utuk menyimpan data dalam table-tabel. Table terdiri atas field (kolom) yang mengkelompokan data-data berdasarkan kategori tertentu, seperti nama, alamat, nomor telepon, dan sebagainya. MySQL pertama kali dirintis oleh seorang programmer database bernama Michael Widenuius. Mysql juga merupakan program yang dapat mengakses suatu database MySQL yang berposisi sebagai client. MySQL termasuk jenis RDBMS (Relational Database Management System), itulah sebabnya isi seperti table, baris dan kolom, digunakan dalam MySQL. Disini kita menggunakan MySQL sebagai SQL server karena berbagai kelebihannya yaitu : 1. Source MySQL dapat diperoleh dengan mudah dan gratis. 2. Sintaknya lebih mudah dipahami dan tidak rumit. 3. Pengaksesan database dapat dilakukan dengan mudah. Keunggulan MySQL : 1. Mysql merupakan program yang multi-threaded, sehingga dapat dipasang pada server yang memiliki multi-CPU. 2. Didukung program-program umum seperti C, C++, Java, Perl, PHP, Python, TCL, APIs dls. 3. Bekerja pada berbagai platform. (tersedia berbagai versi untuk berbagai sistem operasi). 4. Memiliki jenis kolom yang cukup banyak sehingga memudahkan konfigurasi sistem database. 5. Memiliki sistem security yang cukup baik dengan verifikasi host. 6. Mendukung ODBC untuk sistem operasi Microsoft Windows. 7. Mendukung record yang memiliki kolom dengan panjang tetap atau panjang bervariasi, dan masih banyak keunggulan lainnya. 8. MySQL merupakan software yang free, dan bisa di download di www.mysql.com sedangkan software database lainnya seperti ORACLE merupakan software yang harus dibeli. 9 http://digilib.mercubuana.ac.id/ 9. MySQL dan PHP saling terintegrasi. Maksudnya yaitu pembuatan database dengan menggunakan sintak PHP dapat dibuat. Sedangkan input yang dimasukkan melalui aplikasi web yang menggunakan script server-side. Kekurangan MySQL : 1. Data yang ditangani belum besar 2. Untuk koneksi ke dalam bahasa pemrograman visual seperti VB, Delphi, dan Foxpro. MySQL kurang support. Karena koneksi ini menyebabkan field yang dibaca harus sesuai dengan koneksi dari program visual tersebut, hal ini yang mengakibatkan MySQL jarang dipakai kedalam program visual. Bahasa yang digunakan di database (SQL) dibedakan menjadi 3 (tiga) macam yaitu DDL (Data Definition Language), DML (Data Manipulation Language), DCL (Data Control Language). DDL (Data Definition Language) merupakan sebuah metode query yang berguna untuk mendefinisikan data pada sebuah database. DDL antara lain yaitu : CREATE : untuk membuat table DROP : untuk menghapus table ALTER : untuk melakukan perubahan struktur table yang sudah ada seperti menambah dan menghapus field, rename nama table, mengganti tipe data. DML (Data Manipulation Language) merupaan sebuah metode query yang hanya bisa terjadi setelah DDL yang digunakan untuk manipulasi data-data. DML antara lain yaitu : INSERT : untuk memasukkan data ke dalam table UPDATE : untuk memperbarui data dalam table DELETE : untuk menghapus baris dalam table DCL (Data Control Language) merupakan sebuah metode query untuk memberikan otoritas hak mengakses database, mengalokasikan space, pendefinisian space, dan penggunaan database. DCL antara lain yaitu : GRANT : untuk mengizinkan user utuk mengakses database REVOKE GRANT : untuk membatalkan hak ases user COMMIT : untuk menetapkan penyimpanan database ROLLBACK : untuk membatalkan penyimpanan database Menurut (Firdaus, 2007) 10 http://digilib.mercubuana.ac.id/ 2.6 PHP PHP merupakan akronim dari PHP : Hypertext Prepocessor adalah bahasa pemrograman script berbasis web yang paling banyak dipakai pada saat ini. PHP banyak dipakai untuk memrogram situr web yang dinamis, walaupun tidak tertutup kemungkinan digunakan untuk pemakai lain. Untuk menjalankan sistem PHP dibutuhkan 3 (tiga) komponen yaitu : 1. Web server, karena PHP termasuk behasa pemrograman server side. 2. Program PHP, program yang memproses script PHP. 3. Database server, yang berfungsi untuk mengelola database. PHP juga dapat dilihat sebagai pilihan lain dari ASP.NET/C#/VB.NET Microsoft, ColdFusion Macromedia, JSP/Java Sum Microsystems, dan CGI/Perl. Contoh aplikasi lain yang lebih kompleks berupa CMS yang dibagun menggunakan PHP adalah Mambo, Joomla!, Postnuke, Xaraya, dan lain-lain. Beberapa kelebihan PHP dari bahasa pemrograman web, antara lain yaitu : 1. Bahasa pemrograman PHP adalah sebuah bahasa script yang tidak melakukan sebuah kompilasi dalam penggunaannya. 2. Web Server yang mendukung PHP dapat ditemukan dimana-mana dari mulai IIS sampai dengan Apache, dengan konfigurasi yang relative mudah. 3. Dalam isi pengembangan lebih mudah, karena banyaknya milis-milis dan developer yang siap membantu dalam pengembangan. 4. Dalam isi pemahaman, PHP adalah bahasa scripting yang paling mudah karena mempunyai refrensi yang banyak. 5. PHP adalah bahasa open soure yang dapat digunakan diberbagai mesin (Linux, Unix, Macintosh, Windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalan perintah-perintah sistem. Selain kelebihan PHP, PHP juga mempunyai kekurangan. Namun masalah kekurangannya sangat sedikit diantaranya yaitu : 1. PHP tidak mengenal Package. 11 http://digilib.mercubuana.ac.id/ 2. Jika tidak di encoding, maka kode PHP dapat dibaca semua orang dan unuk mengecodingnya dibutuhkan tool dari Zend yang mahal sekali biayanya. 3. PHP memiliki kelemahan keamanan. Jadi programmer harus jeli dan berhati-hati dalam melakukan pemrograman dan konfigurasi PHP. Type Data PHP 1. Integer 2. Doble 3. Boolean 4. String 5. Object 6. Array 7. Null 8. Nill 9. Resource Tabel 2.1 Tipe Data PHP Menurut (Sutarman, 2003) 2.7 WWW WWW (World Wide Web) atau biasa disebut dengan web merupakan salah satu sumber daya internet yang berkembang pesat. Saat ini, informasi web didistribusikan melalui pendekatan hyperlink, yang memungkinkan suatu teks, gambar, ataupun objek yang lain menjadi acuan untuk membuka halamanhalaman web yang lain. Dengan pendekatan hyperlink ini, seseorang dapat memperoleh informasi dengan meloncat dari suatu halaman ke halaman lain. Halamanhalaman yang diaksespun dapat tersebar di berbagai mesin dan bahkan di berbagai negara. Menurut (Kadir, 2008) 12 http://digilib.mercubuana.ac.id/ 2.8 JavaScript JavaScript adalah bahasa pemograman web yang bersifat Client Side Programming Language. Client Side Programming Language adalah tipe bahasa pemograman yang pemrosesannya dilakukan oleh client. Aplikasi client yang dimaksud merujuk kepada web browser seperti Google Chrome dan Mozilla Firefox. Jenis bahasa pemograman Client Side berbeda dengan bahasa pemograman Server Side seperti PHP, dimana untuk server side seluruh kode program dijalankan di sisi server. Untuk menjalankan JavaScript, kita hanya membutuhkan aplikasi text editor, dan web browser. JavaScript memiliki fitur: high-level programming language, client-side, loosely tiped, dan berorientasi objek. 2.8.1 AJAX AJAX, singkatan dari “Asynchronous JavaScript and XML“, merupakan metode suatu laman web menggunakan JavaScript untuk mengirim dan menerima data dari server tanpa harus menyegarkan (refresh) laman itu. XML adalah sejenis markup language – seperti HTML, yang kerap dipakai untuk mengirimkan data melalui internet. Belakangan ini, JSON (“JavaScript Object Notation”) lebih populer dan bisa dibaca – secara bawaan (native) – oleh JavaScript. AJAX: Asynchronous JavaScript and XML. Sebuah sistem untuk mengirim dan menerima data dari server tanpa penyegaran laman (page refresh). Sebuah contoh perintah AJAX bisa berjalan seperti berikut: Client memanggil laman dari server Server merespon panggilan dan mengirimkan laman Client membuat perintah AJAX ke server dan memanggil lebih banyak data Server mengirimkan data tersebut Client memutakhirkan laman dengan data tersebut tanpa me-refresh laman. Facebook, Gmail, dan Pinterest adalah contoh situs-situs yang banyak menggunakan AJAX.Bagian “Asynchronous” merujuk pada fakta bahwa ketika JavaScript menyampaikan panggilan AJAX ke webserver. Menurut (Sunyoto, 2007) 13 http://digilib.mercubuana.ac.id/ 2.8.2 Javascript Object Notation (JSON) JSON adalah format pertukaran data (lightweight data-interchange format), mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer.Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript, Standar ECMA-262 Edisi ke-3 – Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data. Menurut (Safaat, 2012) 2.9 Eclipse Eclipse adalah sebuah IDE (Integrated Development Environtmen) untuk mengembangkan perangkat lunak dan dapat dijalankan di semua platform(platform-inependent). Sifat – sifat dari eclipse ini adalah : Multi-platform : Target system operasi Eclipse adalah Microsoft Windows, Linux, Solaris, AIX, HP-UX, dan Mac OS X. Multi-language : Eclipse dikembangkan dengan Bahasa java, tetapi eclipse mendukung pengembangan aplikasi berbasis Bahasa pemrograman lainnya, seperti C/C++, Cobol, Python, Perl, PHP dan sebagainya. Multi-role : Selain sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test perangkat lunak, pengembangan web dan sebagainya. 2.10 Basis Data Database atau basis data adalah kumpulan data yang disimpan secara sistematis di dalam komputer dan dapat diolah atau dimanipulasi menggunakan perangkat lunak (program aplikasi) untuk menghasilkan informasi. Pendefinisian basis data meliputi spesifikasi berupa tipe data, struktur, dan juga batasan-batasan data yang akan disimpan. Basis data merupakan aspek yang sangat penting dalam 14 http://digilib.mercubuana.ac.id/ sistem informasi dimana basis data merupakan gudang penyimpanan data yang akan diolah lebih lanjut. Basis data menjadi penting karena dapat menghidari duplikasi data, hubungan antar data yang tidak jelas, organisasi data, dan juga update yang rumit. Proses memasukkan dan mengambil data ke dan dari media penyimpanan data memerlukan perangkat lunak yang disebut dengan sistem manajemen basis data (database management system | DBMS). DBMS merupakan sistem perangkat lunak yang memungkinkan user untuk memelihara, mengontrol, dan mengakses data secara praktis dan efisien. Dengan kata lain semua akses ke basis data akan ditangani oleh DBMS. Ada beberapa fungsi yang harus ditangani DBMS yaitu mengolah pendefinisian data, dapat menangani permintaan pemakai untuk mengakses data, memeriksa sekuriti dan integriti data yang didefinisikan oleh DBA (Database Administrator), menangani kegagalan dalam pengaksesan data yang disebabkan oleh kerusakan sistem maupun disk, dan menangani unjuk kerja semua fungsi secara efisien. Tujuan utama dari DBMS adalah untuk memberikan tinjauan abstrak data kepada user (pengguna). Jadi sistem menyembunyikan informasi tentang bagaimana data disimpan, dipelihara, dan tetap dapat diambil (akses) secara efisien. Pertimbangan efisien di sini adalah bagaimana merancang struktur data yang kompleks tetapi masih tetap bisa digunakan oleh pengguna awam tanpa mengetahui kompleksitas strukturnya. Pembagian database menurut jenisnya: 1. Basis data flat-file. Basis data flat-file ideal untuk data berukuran kecil dan dapat dirubah dengan mudah. Pada dasarnya, mereka tersusun dari sekumpulan string dalam satu atau lebih file yang dapat diurai untuk mendapatkan informasi yang disimpan. Basis data flat-file baik digunakan untuk menyimpan daftar atau data yang sederhana dan dalam jumlah kecil. Basis data flat-file 15 http://digilib.mercubuana.ac.id/ akan menjadi sangat rumit apabila digunakan untuk menyimpan data dengan struktur kompleks walaupun dimungkinkan pula untuk menyimpan data semacam itu. Salah satu masalah menggunakan basis data jenis ini adalah rentan pada korupsi data karena tidak adanya penguncian yang melekat ketika data digunakan atau dimodifikasi. 2. Basis data relasional. Basis data ini mempunyai struktur yang lebih logis terkait cara penyimpanan. Kata "relasional" berasal dari kenyataan bahwa tabel-tabel yang berada di basis data dapat dihubungkan satu dengan lainnya. Basis data relasional menggunakan sekumpulan tabel dua dimensi yang masing-masing tabel tersusun atas baris (tupel) dan kolom (atribut). Untuk membuat hubungan antara dua atau lebih tabel, digunakan key (atribut kunci) yaitu primary key di salah satu tabel dan foreign key di tabel yang lain. Saat ini, basis data relasional menjadi pilihan karena keunggulannya. Beberapa kelemahan yang mungkin dirasakan untuk basis data jenis ini adalah implementasi yang lebih sulit untuk data dalam jumlah besar dengan tingkat kompleksitasnya yang tinggi dan proses pencarian informasi yang lebih lambat karena perlu menghubungkan tabel-tabel terlebih dahulu apabila datanya tersebar di beberapa tabel. Menurut (Fathansyah, 2012) 2.11 ERD ERD merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi. ERD untuk memodelkan struktur data dan hubungan antar data, untuk menggambarkannya digunakan beberapa notasi dan simbol. Pada dasarnya ada tiga simbol yang digunakan, yaitu : 16 http://digilib.mercubuana.ac.id/ A Entiti : Entiti merupakan objek yang mewakili sesuatu yang nyata dan dapat dibedakan dari sesuatu yang lain. Simbol dari entiti ini biasanya digambarkan dengan persegi panjang. B Atribut : Setiap entitas pasti mempunyai elemen yang disebut atribut yang berfungsi untuk mendeskripsikan karakteristik dari entitas tersebut. Isi dari atribut mempunyai sesuatu yang dapat mengidentifikasikan isi elemen satu dengan yang lain. Gambar atribut diwakili oleh simbol elips. C Hubungan/ Relasi : Hubungan antara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Relasi dapat digambarkan sebagai berikut : Relasi yang terjadi diantara dua himpunan entitas (misalnya A dan B) dalam satu basis data yaitu : 1. Satu ke satu (One to one) : Hubungan relasi satu ke satu yaitu setiap entitas pada himpunan entitas A Berhubungan paling banyak dengan satu entitas pada himpunan entitas B. 2. Satu ke banyak (One to many) : Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi setiap entitas pada entitas B dapat berhubungan dengan satu entitas pada himpunan entitas A. 3. Banyak ke banyak (Many to many) : Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B. Menurut (Fathansyah, 1999: 30) 2.12 Algoritma (First In First Out) FIFO First In First Out merupakan penjadwalan tidak berprioritas. FIFO juga merupakan penjadwalan paling sederhana pada sebuah system operasi. Ciri – ciri FIFO : Proses – proses diberi jatah waktu pemroses berdasarkan waktu kedatangan. Pada saat proses mendapat jatah waktu pemroses, proses dijalankan sampai selesai baru dilakukan proses yang kedua dan seterusnya. 17 http://digilib.mercubuana.ac.id/ Menurut (Fathansyah, 1999) 2.13 Metode Waterfall Metode waterfall biasa disebut juga dengan siklus hidup perangkat lunak merupakan salah satu model pengembangan perangkat lunak dari sekian banyak model pengembangan perangkat lunak. Waterfall adalah model yang umumnya paling banyak digunakan. Pada model ini, desain perangkat lunak atau sistem dibagi menjadi sejumlah langkah linier, sistematis, dan sekuensial yaitu evolusi perangkat lunak atau sistem terlihat seperti air yang mengalir semakin turun melalui serangkaian tahapan. Gambar 2.1 Metodologi waterfall 18 http://digilib.mercubuana.ac.id/ Model pengembangan ini tidak mengizinkan tahapan tertentu langsung menggantikan tahapan berikutnya sampai operasi tahapan yang terdahulu telah terpenuhi. Pada umumnya tahapan-tahapan yang ada di dalam model ini adalah : 1. Analisis dan Definisi Persyaratan Pada tahapan ini biasanya dilakukan pengumpulan data-data atau informasi-informasi yang berkaitan dengan perangkat lunak atau sistem yang akan dikembangkan 2. Perancangan Sistem dan Perangkat Lunak Pada tahapan ini, arsitektur perangkat lunak mulai dibuat berdasarkan data-data yang diperoleh sebelumnya pada tahapan analisa. Penulisan kode juga dilakukan pada tahapan ini, selanjutnya komponen antarmuka untuk perangkat lunak juga dirancang dengan mengacu pada kebutuhankebutuhan yang sebelumnya telah dilakukan pada tahapan analisa. 3. Implementasi dan Pengujian Unit Pada tahapan ini, dilakukan pengujian terhadap tiap unit-unit program yang telah dibuat. Tujuan dilakukannya tahapan ini adalah untuk memverifikasi bahwa setiap unit program telah berjalan sesuai dengan fungsi yang telah ditetapkan sebelumnya. 4. Integrasi dan Pengujian Sistem Pada tahapan ini, seluruh unit program mulai diintegrasikan satu sama lain kemudian diuji. Tujuan dari tahapan ini adalah untuk menjamin bahwa segala persyaratan yang sebelumnya dicatat pada tahapan analisa telah terpenuhi dan tidak ada yang meleset dari perkiraan atau prediksi. 5. Operasi dan Pemeliharan Pada tahapan ini biasanya dilakukan perbaikan, penambahan atau pengembangan perangkat lunak berdasarkan permintaan dari user atau pemilik. Manfaat yang bisa didapatkan dengan menggunakan model waterfall adalah penjadwalan proyek atau pengembangan perangkat lunak terjadwal dengan baik karena jadwal tersusun secara sistematis. Menurut (Pressman, 2005) 19 http://digilib.mercubuana.ac.id/ 2.14 Unified Modelling Language (UML) Unified Modelling Language (UML) adalah sebuah “bahasa” yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem perangkat lunak. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemograman apapun. Menurut (Alan, System Analysis Design UML Version 2.0 Virginia, 2010) 2.14.1 Diagram Use Case Use case atau diagram atau diagram use case merupakan pemodelan untuk sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem informasi yang akan dibuat. Syarat penamaan use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut aktor dan use case . Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem informasi yang akan dibuat di luar sistem informasi yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang. Use case merupakan fungsionalitas yang disediakan sistem sebagai unitunit yang saling bertukar pesan antar unit atau aktor. Berikut adalah simbolsimbol yang ada pada diagram use case: 20 http://digilib.mercubuana.ac.id/ Tabel 2.2 Simbol diagram use case No Simbol Nama Keterangan Aktor adalah orang atau sistem yang 1 Actor berasal dari manfaat dan eksternal untuk subjek. Digambarkan sebagai salah satu tongkat (default) atau jika aktor non-manusia yang terlibat, sebagai persegi panjang dengan aktor <<>> di dalamnya (alternatif). Merupakan bagian utama dari fungsi 2 Use Case sistem. Dapat memperpanjang kasus penggunaan lain. Dapat mencakup use case lain. Apakah ditempatkan di dalam batas sistem. Apakah label dengan frase kata kerja-kata benda deskriptif. Merupakan kasus penggunaan khusus ke 3 Generalizatio yang lebih umum. Memiliki panah yang diambil dari kasus n penggunaan khusus untuk kasus penggunaan dasar. Merupakan dimasukkannya fungsi satu 4 Include kasus penggunaan dalam yang lain. Memiliki panah yang diambil dari kasus penggunaan dasar untuk kasus penggunaan digunakan 21 http://digilib.mercubuana.ac.id/ Tabel Lanjutan 2.2 Merupakan 5 Extend perpanjangan dari kasus penggunaan untuk memasukkan perilaku opsional. Memiliki panah yang diambil dari kasus penggunaan ekstensi untuk kasus penggunaan dasar. 6 7 Association Link aktor dengan use case dengan yang Relationship berinteraksi. Subject Termasuk nama subjek di dalam atau di Boundary atas. Merupakan lingkup subjek, misalnya, sistem atau individu proses bisnis. 2.14.2 Diagram Activity Digunakan untuk model perilaku dalam independent proses bisnis benda . Dalam banyak hal, diagram aktivitas dapat dipandang sebagai diagram aliran data yang canggih yang digunakan dalam hubungannya dengan analysis terstruktur. Namun, tidak seperti aliran data diagram, diagram aktivitas termasuk notasi yang membahas pemodelan paralel , kegiatan bersamaan dan proses. 22 http://digilib.mercubuana.ac.id/ Tabel 2.3 Simbol diagram activity No Simbol Nama Keterangan Merupakan 1 Activity sebuah gambaran aktivitas yang terjadi. Merupakan tanda awal dari 2 3 Initial Node Final-Activity Node 4 Control Flow sebuah aktivitas. Merupakan tanda berakhirnya sebuah aktivitas. Menunjukkan urutan eksekusi. Memisahkan 6 Swinlane organisasi yang bertanggung jawab terhadap aktifitas yang terjadi. Membawa kembali jalur 7 Merge Node keputusan bersama yang berbeda yang dengan dibuat menggunakan keputusan simpul. Pilihan untuk mrngambil 8 Decision Node keputusan. Aliran akhir. 9 Flow Final 23 http://digilib.mercubuana.ac.id/ 2.14.3 Diagram Sequence Diagram sequence 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 sequence maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu. Banyaknya diagram sequence yang harus digambar adalah minimal sebanyak pendefinisian use case yang memiliki proses sendiri atau yang penting semua use case yang didefinisikan maka diagram sequence yang harus dibuat juga semakin banyak. Berikut simbol yang ada pada diagramsequence : Tabel 2.4 Simbol diagram sequence No Simbol Nama Keterangan Orang atau sistem yang berasal dari 1 Actor manfaat dan eksternal ke sistem yang berpartisipasi secara berurutan dengan mengirim atau menerima pesan. Berpartisipasi secara berurutan dengan 2 Object mengirim atau menerima pesan yang ditempatkan diatas diagram. 3 Execcution Menyatakan objek dalam keadaan aktif Occurrenc dan berinteraksi pesan. e 4 Message Pesan yang mengambarkan komunikasi yang terjadi antar objek 24 http://digilib.mercubuana.ac.id/ Tabel Lanjutan 2.4 5 Self Pesan yang dikirim untuk diri sendiri Message secara langsung. Menyatakan kehidupan suatu objek 6 Lifeline 7 Return Pesan yang dikirim untuk diri sendiri Message Menurut (Alan, System Analysis Desaig UML Version 2.0 Virgina, 2010) 25 http://digilib.mercubuana.ac.id/