BAB II LANDASAN TEORI Pada bab ini berisi teori-teori yang mendukung penyusunan tugas akhir dan berbagai macam literatur yang dipergunakan sebagai dasar pelaksanaan penelitian maupun metode-metode yang digunakan pada saat perancangan dan pengembangan sistem. 2.1. Pengertian Penjadwalan Pada Proses Produksi Penjadwalan merupakan proses pengurutan pembuatan produk secara menyeluruh pada sejumlah mesin tertentu. Penjadwalan juga dapat dipandang sebagai proses pengalokasian sumber daya atau mesin -mesin yang ada untuk menjalankan sekumpulan tugas dalam jangka waktu tertentu (Baker, 1974). Tujuan penjadwalan secara umum yaitu : 1. Meningkatkan produktivitas mesin, yaitu dengan mengurangi waktu mesin menganggur. 2. Mengurangi persediaan barang setengah jadi dengan cara mengurangi jumlah rata-rata pekerjaan yang menunggu dalam antrian suatu mesin karena mesin tersebut sibuk. 3. Meminimasi ongkos produksi. 2.1.1 Pengertian Penjadwalan Produksi Pekerjaan-pekerjaan yang berupa alokasi kapasitas untuk pemesanan , penugasan prioritas pekerjaan dan pengendalian jadwal produksi membutuhkan informasi terperinci yang disebut sebagai input sistem penjadwalan. Terdapat beberapa hal yang perlu diketahui sebelum pekerjaan dapat dijadwalkan (Bedworth, 1987), yaitu: a. Jumlah dan jenis pekerjaan yang harus diselesaikan selama periode tertentu. b. Perkiraan waktu penyelesaian suatu pekerjaan (processing time) c. Batas waktu (due date) penyelesaian pekerjaan untuk memperkirakan keterlambatan (lateness) yang mungkin terjadi. d. Tujuan dari penjadwalan yang ada. e. Situasi pekerjaan yang dihadapi . 7 http://digilib.mercubuana.ac.id/ 2.1.2 output penjadwalan Untuk memastikan bahwa suatu aliran kerja yang lancar akan melalui tahapan produksi, maka sistem penjadwalan harus membentuk aktivitas -aktivitas output (Nasution, 2003) sebagai berikut: a. Pembebanan (Loading) Pembebanan melibatkan penyesuaian kebutuhan kapasitas untuk pesanan yang diterima dengan kapasitas yang tersedia. b. Pengurutan (Sequencing) Pengurutan ini merupakan penugasan tentang pekerjaan mana yang diprioritaskan untuk diproses dahulu bilasuatu fasilitas mempunyai banyak pekerjaan yang harus diselesaikan. c. Prioritas Job (Dispatching) Dispatching merupakan prioritas kerja mana yang diseleksi dan diprioritaskan untuk diproses. d. Pengendalian kinerja penjadwalan 2.2 Java 2.2.1 Sejarah Singkat Java Java lahir dari sebuah green project yang berjalan selama 18 bulan yaitu pada awal 1991 sampai musim panas 1992. Proyek yang dimotori oleh Patrick Naugton, Bill Joy, James Gosling, dan sembilan pemrogram lainnya dari tim Sun Microsystem yang pada awalnya membuat bahasa pemrograman kecil yang akan di terapkan pada perangkat elektronik. Bahasa pemrograman ini kemudian diberi nama Oak yang merupakan nama salah satu jenis pohon yang tumbuh diluar jendela pemimpin proyek tersebut. Bahasa pemrograman Oak merupakan modifikasi dari C++ tetapi lebih mudah beradaptasi pada berbagai sistem operasi dan platform. Seperti yang telah dibuktikan oleh pengembang C++, bahasa pemrograman baru ini lebih kuat tetapi telah memasukan banyak fitur yang dimikiki C++. Bahasa Oak berganti (Westriningsih, 2012)nama menjdai Java setelah bergantinya cara pelayanan konsumen peralatan elektronik dari pelayanan manual ke 8 http://digilib.mercubuana.ac.id/ pelayanan online kemudian tim Sun Microsystem mengganti bahasa pemrograman desktop menjadi web browser. Web browser yang dirilis pada Maret 1995 ini diberi nama HotJava karena Oak sudah digunakan untuk merk dagang perangkat lunak yang telah dikembangkan terlebih dahulu. Maka, nama HotJava-lah yang digunakan untuk versi rilis perangkat lunak buatan Sun Microsystem yang berjalan pada web. Nama ini diambil dari nama kopi murni yang digiling langsung (kopi tubruk) kesukaan James Gsoling. Java mempunyai tiga komponen yang sangat penting yaitu: The Java Programming Language adalah bahasa pemrograman yang digunakan untuk menulis kode program dalam platform Java. The Java Platform adalah lingkungan yang digunakan untuk menjalankan kode program yang telah ditulis pada bahasa pemrograman Java. 2.2.2. Pengertian Java Java adalah bahasa yang dapat dijalankan di sembarang platform, di beragam lingkungan seperti internet, consumer electronic product, dan computer applications. Salah satu edisi java adalah Java 2 Standard Edition. Java 2 Standard Edition atau sering disebut dengan J2SE menyediakan lingkungan pengembangan yang kaya fitur, stabil, aman, dan cross platform. Edisi ini mendukung konektivitas basis data, rancangan antar muka pemakai, masukan/keluaran, dan pemrograman jaringan dan termasuk sebagai paket-paket dasar bahasa Java (Kadir, 2004). 2.2.3. Kelebihan Java Java sebagai bahasa pemograman memiliki kelebihan dan kekurangan dengan bahasa pemograman lain, sehingga java cocok untuk pemograman apa saja. Berikut beberapa kelebihan dari bahasa pemograman java : Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis sekali, jalankan di mana saja. Dengan kelebihan ini pemrogram 9 http://digilib.mercubuana.ac.id/ cukup menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan diatas sistem operasi Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebabnya adalah setiap sistem operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java) untuk meninterpretasikan bytecode tersebut. OOP. OOP ( Object Oriented Programming ) , metode pemrograman yang berorientasi kepada objek. Tujuan dari OOP diciptakan adalah untuk mempermudah pengembangan program dengan mengikuti model yang telah ada di kehidupan sehari-hari. Jadi, setiap bagian dari suatu permasalahan adalah objek. Objek itu sendiri merupakan gabungan dari beberapa objek yang lebih kecil lagi. Library / Kumpulan Fungsi Lengkap. Java terkenal dengan kelengkapan library / perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus membuat perpustakaan-perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan aplikasi. Bergaya C++. Memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid 10 http://digilib.mercubuana.ac.id/ dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer. Pengumpulan sampah / Pengaturan penggunaan memori. Memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas). 2.2.4. Kekurangan Java Adapun beberapa kekurangan bahasa pemograman java : Tulis sekali, jalankan di mana saja. Masih ada beberapa hal yang tidak kompatibel antara platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X. Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode jadi menjadi kode sumber. Ini dimungkinkan karena kode jadi Java merupakan bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan demikian, algoritma yang digunakan program akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer. Penggunaan memori yang banyak. Penggunaan memori untuk program berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin komputer berumur lebih dari 4 tahun. 11 http://digilib.mercubuana.ac.id/ Sebagai sebuah platform, java terdiri dari dua bagian utama yaitu : Java Virtual Machine (JVM) Java Virtual Machine adalah sebuah spesifikasi untuk sebuah komputer abstrak. JVM terdiri dari sebuah kelas pemanggil dan sebuah interpreter Java yang mengeksekusi kode arsitektur netral. Kelas pemanggil memanggil file API untuk dieksekusi oleh interpreter Java. Dengan kata lain JVM adalah sebagai perantara antara program yang akan dijalankan dan sistem operasi yang sedang digunakan. Java Application Programming Interface (Java API) Java API merupakan komponen-komponen dan kelas JAVA yang sudah jadi, yang memiliki berbagai kemampuan. Kemampuan untuk menangani objek, string, angka, dsb. Java API terdiri dari tiga bagian utama: Java Standard Edition (SE), sebuah standar API untuk merancang aplikasi desktop dan applets dengan bahasa dasar yang mendukung grafis, keamanan, konektivitas basis data dan jaringan. Java Enterprise Edition (EE), sebuah inisiatif API untuk merancang aplikasi server dengan mendukung untuk basis data. Java Macro Edition (ME), sebuah API untuk merancang aplikasi yang jalan pada alat kecil seperti telepon genggam, komputer genggam dan pager 12 http://digilib.mercubuana.ac.id/ Pada saat ini teknologi java semakin berkembang, Sun Microsystem memperkenalkan Java versi 1.2 atau lebih dikenal dengan nama Java 2 yang terdiri atas JDK dan JRE versi 1.2. Pada Java 2 ini, java dibagi menjadi 3 kategori: Java 2 Standart Edition (J2SE) Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi Java pada level PC (Personal Computer) Java 2 Enterprise Edition (J2EE) Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi Java pada lingkungan enterprise dengan menambahkan fungsionalitas-fungsionalitas java semacam EJB (Enterprise Java Bean), Java CORBA, Servlet dan JSP serta Java XML (Extensible Markup Language) Java 2 Micro Edition (J2ME) Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi java pada handled devices atau perangkatperangkat semacam handphone, Palm,PDA, dan Pocket PC. J2ME dirancang untuk dapat menjalankan program Java pada perangkatperangkat semacam handphone dan PDA, yang memiliki karakteristik yang berbeda dengan sebuah komputer biasa, misalnya kecilnya jumlah memori pada handphone dan PDA. J2ME terdiri atas komponen-komponen sebagai berikut Java Virtual Machine (JVM) dan Java API (Application Programming Interface) serta Tools lain untuk pengembangan aplikasi Java semacam emulator Java Phone dan emulator Motorolla. Dalam J2ME dibagi menjadi dua bagian yang dikenal dengan istilah configuration dan profile. 13 http://digilib.mercubuana.ac.id/ Tabel 2.1 Package pada Java Package Nama Package Keterangan Language java.lang Class-class utama yang merupakan inti dari Bahasa java Utilities java.util Class-class yang mendukung utilitas struktur java I/O java.io Class yang mendukung berbagai macam tipe input dan output Text java.text Class yang mendukung lokalisasi penanganan teks, tanggal, bilangan, dan message Math java.math Class untuk melakukan perhitungan aritmatik arbitrary-precesion, baik integer atau floating point AWT java.awt Class untuk perancangan userinterface dan envent-handling. Swing java.swing Javax Javax Class untuk membuat berbagai komponen dalam java yang bertingkah laku sama dengan berbagai platform Perluasan dari bahasa java Applet java.applet Class untuk membuat applet Beans java.beans Class untuk membuat java Beans Reflection java.lang.reflect Class untuk memperoleh informasi runtime SQL java.sql Class untuk mendukung akses dan pengolahan data dalam database RMI java.rmi Class untuk mendukung distributed programming Networking java.net Class untuk medukung dalam membangun aplikasi jaringan Security java.security Class untuk mendukung keamanan kriptografi 14 http://digilib.mercubuana.ac.id/ 2.3 Netbeans dan Database MySQL NetBeans adalah imtegrated Development Environment (IDE) berbasiskan Java dari Sun Microsystems yang berjalan di atas Swing, Swing adalah sebuah teknologi Java untuk pengembangan aplikasi Dekstop yang dapat berjalan diberbagai macam platform seperti Windows, Linux, Mac OS X and Solaris. Suatu IDE adalah lingkup pemrograman yang diintegrasikan kedalam suatu aplikasi perangkat lunak yang menyediakan pembangun Graphic User Interface (GUI), suatu text atau kode editor, suatu compiler atau inrerpreter dan suatu debugger. NetBeans merupakan software development yang Open Source, dengan kata lain software ini dibawah pengembangan bersama, bebas biaya. NetBeans merupakan sebuah proyek kode terbuka yang sukses dengan pengguna yang sangat luas, komuitas yang terus tumbuh, dan memiliki hampir 100 mitra. Sun Microsystems mendirikan proyek kode terbuka NetBeans pada bulan Juni 2000 dan terus menjadi sponsor utama. Saat ini terdapat dua produk Netbeans, yaitu NetBeans IDE dan NetBeans Platform. The NetBeans IDE adalah sebuah produk bebas dengan tanpa batasan bagaimana digunakan. Tersedia juga NetBeans Platform, yaitu sebuah fondasi yang moduloar dan dapat diperluas yag dapat digunakan sebagai perangkat lunak dasar untuk membuat aplikasi dekstop yang besar. 2.3.1. Database MySQL Basis data (atau database) adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari basis data tersebut. Database digunakan untuk menyimpan informasi atau data yang terintegrasi dengan baik di dalam komputer. Untuk mengelola database diperlukan suatu perangkat lunak yang disebut DBMS (Database Management System). DBMS merupakan suatu sistem perangkat lunak yang memungkinkan user (pengguna) untuk membuat, memelihara, mengontrol, dan mengakses database secara praktis dan efisien. Dengan DBMS, user akan lebih mudah mengontrol dan memanipulasi data yang ada. Salah satu 15 http://digilib.mercubuana.ac.id/ software atau perangkat lunak DBMS yang sering digunakan dalam aplikasi program adalah MySQL. MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia (Solichin, 2005). MySQL dapat didownload di situs resminya, http://www.mysql.com. 2.4. Rekayasa perangkat lunak 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 (S & Shalahuddin, 2013). Perangkat lunak banyak dibuat dan pada akhirnya sering tidak digunakan karena tidak memenuhi kebutuhan pelanggan atau bahkan karena masalah non-teknis seperti keengganan pemakai perangkat lunak (user) untuk mengubah cara kerja dari manual ke otomatis. Oleh karena itu rekayasa perangkat lunak dibutuhkan agar perangkat lunak yang dibuat tidak hanya menjadi perangkat lunak yang tidak terpakai. Rekayasa perangkat lunak lebih fokus pada praktik pengembangan perangkat lunak dan mengirimkan perangkat lunak yang bermanfaat kepada pelanggan. Adapun ilmu komputer lebih fokus pada teori dan konsep dasar perangkat komputer, rekayasa perangkat lunak lebih fokus pada bagaimana membuat perangkat lunak yang memenuhi kriteria berikut: Dapat terus dipelihara setelah perangkat lunak selesai dibuat seiring berkembangnya tekonologi dan lingkungan (maintainability). Dapat diandalkan dengan proses bisnis yang dijalakan dan perbuhan yang terjadi (dependentbility dan robust). Efisien dari segi sumber daya dan penggunaan. Kemampuan untuk dipakai sesuai dengan kebutuhan (usability). Dari kriteria diatas maka perangkat lunak yang baik adalah perangkat lunak yang dapat memenuhi kebutuh pelanggan (customer) atau pengguna (user) atau 16 http://digilib.mercubuana.ac.id/ berorientasi pada pelanggan atau pemakai perangkat lunak, bukan berorientasi pada pembuat atau pengembang perangkat lunak. 2.4.1. Ruang lingkup rekayasa perangkat lunak Ruang lingkup Rekayasa perangkat lunak dapat digambarkan sebagai berikut : Gambar 2.1 Ruang lingkup Rekayasa Perangkat Lunak (Verdi, 2012:4) 2.4.2 Software Development live cycle SDLC atau Software Development Life Cycle adalah proses mengembangkan atau mengubah suatu sistem perangkat lunak dengan menggunakan model-model dan metodologi yang digunakan orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya (berdasarkan best practice atau cara-cara yang sudah teruji baik). Seperti halnya proses metamorfosis pada kupu-kupu, untuk menjadi kupu-kupu yang indah maka dibutuhkan beberapa tahap untuk dilalui, sama halnya dengan membuat perangkat lunak, memiliki daur tahapan yang dilalui agar menghasilkan perangkat lunak yang berkualitas (S & Shalahuddin, 2013). Tahapan-tahapan yang ada pada SDLC secara global adalah sebagi berikut: 1. Inisiasi (initiation) 17 http://digilib.mercubuana.ac.id/ Tahapan ini biasasnya ditandai dengan pembuatan proposal proyek perangkat lunak. 2. Pengembangan konsep sistem (system concept development) Mendefinisikan lingkup konsep termasuk dokumen lingkup sistem, analisis manfaat biaya, manajemen rencana, dan pembelajaran kemudahan system. 3. Perencanaan (planning) Mengembangkan rencana manajemen proyek dan dokumen perencanaan lainnya. Menyediakan dasar untuk mendapatkan sumber daya (resources) yang dibutuhkan untuk memperoleh solusi. 4. Analisis kebutuhan (requirement analysis) Menganalisis kebutuhan pemakai sistem perangkat lunak (user) dan mengembangkan kebutuhan user. Membuat dokumen kebutuhan fungsional. 5. Desain (design) Mentransformasikan kebutuhan detail menjadi kebutuhan yang sudah lengkap, dokumen desain sistem fokus pada bagaimana dapat memenuhi fungsi-fungsi yang dibutuhkan. 6. Pengembangan (development) Mengkonversi desain ke sistem informasi yang lengkap termasuk bagaimana memperoleh dan melakukan instalasi lingkungan sistem yang dibutuhkan; membuat basis data dan mempersiapkan prosedur kasus pengujian; mempersiapkan berkas atau file pengujian, pengkodean, pengkompilasian, memperbaiki dan membersihkan program; peninjauan pengujian. 7. Integrasi dan pengujian (integration dan test) Mendemonstrasikan sistem perangkat lunak bahwa telah memenuhi kebutuhan yang dispesifikasikan pada dokumen kebutuhan fungsional. Dengan diarahkan oleh staf penjamin kualitas (quality assurance) dan user. Menghasilkan laporan analisis pengujian. 18 http://digilib.mercubuana.ac.id/ 8. Implementasi (implementation) Termasuk pada persiapan implementasi, implementasi perangkat lunak pada lingkungan produksi (lingkungan pada user) dan menjalankan resolusi dari permasalahan yang teridentifikasi dari fase integrasi dan pengujian. 9. Operasi dan pemeliharaan (operations and maintenance) Mendeskripsikan pekerjaan untuk mengoperasikan dan memlihara sistem informasi pada lingkungan produksi (lingkungan pada user), termasuk implementasi akhir dan masuk pada proses peninjauan. 10. Disposisi (disposition) Mendeskripsikan aktifikas akhir dari pengembangan sistem dan membangun data yang sebenarnya sesuai dengan aktivitas user. 2.4.3. Model Waterfall Metode pengembangan sistem yang digunakan adalah System Development Life Cycle (SDLC) atau biasa disebut dengan siklus hidup pengembangan sistem. Metode SDLC menggunakan pendekatan sistem yang disebut waterfall yang menggunakan beberapa tahapan dalam mengembangkan sistem. Menurut Ian Sommerville (2011), tahapan siklus hidup pengembangan sistem waterfall yakni sebagai berikut : 1. Tahap Analisis Kebutuhan (Requirement Analysis and Definition) Merupakan tahapan penetapan fitur, kendala dan tujuan sistem melalui konsultasi dengan pengguna sistem. Semua hal tersebut akan ditetapkan secara rinci dan berfungsi sebagai spesifikasi sistem. 2. Tahap Perancangan Sistem dan Software (System and Software Design) Dalam tahapan ini akan dibentuk suatu arsitektur sistem berdasarkan persyaratan yang telah ditetapkan. Dan juga mengidentifikasi dan menggambarkan abstraksi dasar sistem perangkat lunak dan hubunganhubungannya. 19 http://digilib.mercubuana.ac.id/ 3. Tahap Implementasi dan Pengujian (Implementation and Unit Testing) Dalam tahapan ini, hasil dari desain perangkat lunak akan direalisasikan sebagai satu set program atau unit program. Setiap unit akan diuji apakah sudah memenuhi spesifikasinya. 4. Tahap Integrasi dan Pengujian Sistem (Integration and System Testing) Dalam tahapan ini dilakukan pengujian sistem dengan metode black box testing dan setiap unit program akan diintegrasikan satu sama lain sebagai satu sistem yang utuh untuk memastikan sistem sudah memenuhi persyaratan yang ada. Setelah itu sistem akan dikirim ke pengguna sistem. 5. Tahap Operation and Maintenance Dalam tahapan ini, sistem diinstal dan mulai digunakan. Selain itu juga memperbaiki error yang tidak ditemukan pada tahap pembuatan. Dalam tahap ini juga dilakukan pengembangan sistem seperti penambahan fitur dan fungsi baru. Gambar 2.1 Metode Waterfall (Ian Sommerville, 2011) 2.4.4. Pengujian Perangkat Lunak Perangkat lunak sering mendapatkan kesalahan (error) pada proses-proses tertentu pada saat perangkat lunak sudah berada di tangan user. Kesalahan pada perangkat lunak ini sering disebut dengan “bug”. Untuk menghindari banyaknya bug maka diperlukan adanya pengujian perangkat lunak sebelum perangkat lunak diberikan ke pelanggan atau selama perangkat lunak masih terus dikembangkan. 20 http://digilib.mercubuana.ac.id/ Adanya bug adalah suatu yang biasa, bahkan di sebuah perangkat lunak yang sudah besar dan terkenal pun biasanyan masih terdapat bug. Oleh karena itu tidak perlu merasa tersinggung atau bersedih jika masih ditemukan bug pada perangkat lunak yang dikembangkan. Yang bisa dilakukan pengembang perangkat lunak adalah meminimalisir bug dengan melakukan pengujian. Kelakukan perangkat lunak yang tidak sesuai dengan spesifikasi yang dibutuhkan bisa dianggap sebagai bug. Pengujian adalah salah satu set aktivitas yang direncanakan dan sistematis untuk menguji atau mengevaluasi kebenaran yang diinginkan (S & Shalahuddin, 2013). Aktivitas pengujian terdiri dati satu set atau sekumpulan langkah dimana dapat menempatkan desain kasus uji yang spesifik dan metode pengujian. Secara umum pola pengujian pada perangkat lunak adalah sebagi berikut : Pengujian dimulai dari level komponen hingga integrasi antar komponen menjadi sebuah sistem. Teknik pengujian berbeda-beda sesuai dengan berbagai sisi atau unit uji dalam waktu yang berbeda-beda pula, bergantung pada pengujian pada bagian mana yang dibutuhkan. Pengujian dilakukan oleh pengembang perangkat lunak, jika untuk proyek besar, pengujian bisa dilakukan oleh tim uji yang tidak terkait dengan tim pengembang perangkat lunak (Independent Test Group). Pengujian perangkat lunak adalah sebuah elemen sebuah topik yang memiliki cakupan luas dan sering dikaitkan dengan verifikasi (verification) dan validasi (validation) (S & Shalahuddin, 2013). Verifikasi mengacu pada sekumpulan aktivitas yang menjamin bahwa perangkat lunak mengimplementasikan dengan benar sebuah fungsi yang spesifik. Validasi mengacu pada sekumpulan aktivitas yang berbeda yang menjamin bahwa perangkat lunak yang dibangun dapat ditelusuri sesuai dengan kebutuhan pelanggan (customer). Dapat juga dikatakan sebagai berikut : Verifikasi : “Apakah produk yang dibangun dengan benar?” atau “apakah proses pengembangan produk sudah benar dan telah mengimplementasikan fungsi yang benar?”. 21 http://digilib.mercubuana.ac.id/ Validasi : “Apakah sudah membangun produk yang benar?” atau “Apakah hasil produk sudah sesuai dengan yang diinginkan?”. 2.4.5. Verifikasi Pengujian Pengujian untuk verifikasi memiliki tahapan sebagai berikut : Pengujian Unit Pengujian Integrasi Pengujian Sistem Pengujian Penerimaan Gambar 2.3 Pengujian perangkat lunak Pengujian diawali dari pengujian unit. Unit disini bisa berupa kumpulan fungsi atau prosedur yang memiliki keterkaitan pada pemrograman terstruktur atau class pada pemrograman berorientasi objek. Unit juga dapat berupa modul atau dikenal juga sebagai package. Setelah unit-unit selesai diuji maka dilakukan pengujian integrasi. Pengujian integrasi sebaiknya dilakukan secara bertahap, tidak dilakukan secara satu tahap langsung di akhir untuk menghindari kesulitan penelusuran jika terjadi kesalahan (error). Pengujian integrasi lebih pada pengujian penggabungan dari dua atau lebih unit pada perangkat lunak. Setelah pengujian integrasi maka dilakukan pengujian sistem, yang dimana unit-unit proses yang sudah diintergrasikan akan diuji dengan antarmuka yang sudah dibuat sehingga pengujian ini dimaksudkan untuk menguji sistem perangkat lunak secara keseluruhan dan diuji secara satu sistem. Setelah pengujian sistem selesai maka dapat dilakukan pengujian penerimaan perangkat lunak oleh pelanggan (customer) atau pengguna (user). Pengujian penerimaan digunakan untuk mengetahui kepuasan pelanggan atau user terhadap perangkat lunak yang sudah dibuat. Jika pelanggan sudah puas dengan perangkat lunaknya, maka perangkat lunak tersebut dapat diserahkan kepada pelanggan (customer). 22 http://digilib.mercubuana.ac.id/ 2.4.6. Validasi Pengujian Pengujian untuk validasi memiliki beberapa pendekatan sebagai berikut : Black-Box Testing (pengujian kotak hitam) Pengujian kotak hitam menguji perangkat lunak dari segi spesifikasi fungsional tanpa menguji desain dan kode program. Pengujian dimaksudkan untuk mengetahui apakah fungsi-fungsi, masukan dan keluaran dari perangkat lunak tersebut sudah sesuai dengan spesifikasi yang dibutuhkan. Pengujian kotak hitam dilakukan dengan membuat kasus uji yang bersifat mencoba semua fungsi dengan memakai perangkat lunak sesuai dengan spesifikasi yang dibutuhkan. Kasus uji yang dibuat untuk melakukan pengujian kotak hitam harus dibuat dengan kasus benar dan kasus salah. White-Box Testing (pengujian kota putih) Pengujian kotak putih menguji perangkat lunak dari segi desain dan kode program, apakah mampu menghasilkan fungsi-fungsi, masukan dan keluaran dari perangkat lunak tersebut sudah sesuai dengan spesifikasi yang dibutuhkan. Pengujian kotak putih dilakukan dengan memeriksa logika dari kode program. Pembuatan kasus uji bisa mengikuti standar pengujian dari standar pemrograman yang seharusnya. 2.5 Unified Modeling Language (UML) Pada perkembangan teknologi perangkat lunak, diperlukan adanya bahasa yang digunakan untuk memodelkan perangkat lunak yang akan dibuat dan perlu adanya standarisasi agar orang di berbagai negara dapat mengerti pemodelan perangkat lunak. Banyak orang yang telah membuat bahasa pemodelan pembangunan perangkat lunak sesuai dengan teknologi pemrograman yang berkembang pada saat itu, misalnya yang sempat berkembang dan digunakan oleh 23 http://digilib.mercubuana.ac.id/ banyak pihak adalah Data Flow Diagram DFD) untuk memodelkan perangkat lunak yang menggunakan pemrograman prosedural atau struktural. Pada perkembangan teknik pemrograman berorientasi objek, munculah sebuah standarisasi bahasa pemodelan untuk pembangunan perangkat lunak yang dibangun dengan menggunakan teknik pemrograman berorientasi objek, yaitu Unified Modeling Language (UML). UML adalah kosakata umum berbasis objek dan diagram teknik yang efektif untuk memodelkan setiap proyek pengembangan sistem mulai tahap analisis sampai tahap perancangan dan tahap implementasi (Alan Dennis, 2012). 2.5.1. Use Case Diagram Use Case Diagram merupakan suatu diagram yang menangkap kebutuhan bisnis untuk sistem dan untuk menggambarkan interaksi antara sistem dan lingkungannya (Alan Dennis, 2012). 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 unit-unit yang saling bertukar pesan antar unit atau aktor. Gambar 2.4 Contoh Use case Diagram (Pressman, 2010) 24 http://digilib.mercubuana.ac.id/ Berikut adalah simbol-simbol yang ada pada use case diagram: Tabel 2.2 Simbol Use Case Diagram (Alan Dennis, 2012) NO GAMBAR NAMA KETERANGAN 1 Actor/Role 2 Use Case 3 Subject 4 Seseorang atau sesuatu yang berinteraksi dengan sistem Menggambarkan bagaimana seseorang akan menggunakan sistem Merupakan lingkup subjek, misalnya sistem atau individu proses bisnis Association Untuk mendokumentasikan aliran- Relationship aliran logika dalam setiap Use Case Memungkinkan Use Case untuk menggunakan fungsional yang disediakan oleh Use Case lainnya Memungkinkan suatu Use Case memiliki kemungkinan memperluas fungsionalitas yang disediakan oleh Use Case lainnya 5 Include 6 Extend 7 Generalization Digunakan untuk memperlihatkan bahwa beberapa aktor atau Use Case memiliki sesuatu yang bersifat umum 2.5.2. Activity Diagram Activity Diagram digunakan untuk model perilaku dalam independen 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 (Alan Dennis, 2012). Yang perlu diperhatikan disini adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas 25 http://digilib.mercubuana.ac.id/ 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 aktivitas dianggap memiliki sebuah rancangan antarmuka tampilan. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan sebuah pengujian yang perlu didefinisikan kasus ujinya. Rancangan menu yang akan ditampilkan pada perangkat lunak. Berikut ini adalah contoh gambar activity diagram Gambar 2.5 Contoh Activity Diagram (Alan Dennis, 2012) 26 http://digilib.mercubuana.ac.id/ Berikut adalah simbol-simbol yang ada pada activity diagram: Tabel 2.3 Simbol Activity Diagram (Alan Dennis, 2012) NO GAMBAR NAMA 1 Actifity 2 Initial Node 3 4 5 KETERANGAN Merupakan sebuah gambaran aktivitas yang terjadi Final-Actifity Node Menggambarkan awal dari serangkaian tindakan atau kegiatan Digunakan untuk menghentikan semua arus kontrol dan arus objek dalam suatu kegiatan (atau tindakan). Digunakan Final-Flow untuk menghentikan aliran kontrol atau aliran objek Node tertentu. Control Flow Menunjukkan urutan eksekusi Menunjukkan aliran objek dari satu 6 Object Flow kegiatan (atau tindakan) untuk kegiatan lain (atau tindakan) Merupakan sebuah gambaran kondisi 7 Decision tes untuk memastikan bahwa aliran Node kontrol atau aliran objek hanya menuju satu jalur Membawa kembali jalur keputusan 8 Merge Node bersama yang berbeda yang dibuat dengan menggunakan keputusan simpul Digunakan untuk membagi perilaku 9 Fork Node menjadi satu set arus paralel atau bersamaan kegiatan (atau tindakan) 27 http://digilib.mercubuana.ac.id/ Lanjutan Tabel 2.3 (Alan Dennis, 2012) NO GAMBAR NAMA KETERANGAN Digunakan untuk membawa kembali 10 Join Node bersama satu set arus paralel atau bersamaan kegiatan (atau tindakan) Memisahkan organisasi bisnis yang 11 Swimlane bertanggung jawab terhadap aktivitas yang terjadi 2.5.3. Sequence Diagram Sequence diagram adalah salah satu dari dua jenis diagram interaksi. Mereka menggambarkan benda-benda yang berpartisipasi dalam kasus penggunaan dan pesan yang melewati antara mereka dari waktu ke waktu untuk satu use case. Sebuah diagram sequence adalah model dinamis yang menunjukkan urutan eksplisit pesan yang lewat di antara objek dalam interaksi didefinisikan. Karena urutan diagram menekankan pemesanan berbasis waktu kegiatan yang terjadi di antara set benda, mereka sangat membantu untuk memahami spesifikasi real-time dan kompleks menggunakan kasus (Alan Dennis, 2012). Gambar 2.6 Contoh Sequence Diagram (Alan Dennis, 2012) 28 http://digilib.mercubuana.ac.id/ Berikut adalah simbol-simbol yang ada pada sequence diagram: Tabel 2.4 Simbol Sequence Diagram (Alan Dennis, 2012) NO GAMBAR NAMA KETERANGAN Pengguna atau sistem yang berasal dari manfaat dan eksternal ke 1 Actor sistem yang berpartisipasi secara berurutan dengan mengirim dan / atau menerima pesan Berpartisipasi 2 Object dengan secara mengirim berurutan dan / atau menerima pesan yang ditempatkan diatas diagram Menandakan 3 LifeLine Execution 4 Occurrenc e 5 kehidupan obyek selama berurutan Menyatakan objek dalam keadaan aktif dan berinteraksi pesan Guard Merupakan tes yang harus dipenuhi Condition untuk pesan yang akan dikirim Menyampaikan informasi dari satu objek satu sama lain. Sebuah panggilan operasi dilabeli dengan 6 Message pesan yang dikirim dan panah padat, sedangkan kembali diberi label dengan nilai yang akan dikembalikan dan ditampilkan sebagai panah putus-putus 29 http://digilib.mercubuana.ac.id/ 2.5.4. Class Diagram Sebuah diagram kelas (class diagram) adalah model statis yang menunjukkan kelas dan hubungan antar kelas yang tetap konstan dalam sistem dari waktu ke waktu. Diagram kelas menggambarkan kelas, yang mencakup baik perilaku dan negara, dengan hubungan antara kelas. Berikut bagian pertama menyajikan unsurunsur dari diagram kelas, diikuti dengan cara di mana diagram kelas ditarik (Alan Dennis, 2012). Gambar 2.7 Contoh Class Diagram (Alan Dennis, 2012) 30 http://digilib.mercubuana.ac.id/ Berikut adalah simbol-simbol yang ada pada class diagram: Tabel 2.5 Simbol Class Diagram (Alan Dennis, 2012) NO GAMBAR NAMA KETERANGAN Merupakan jenis orang, tempat, 1 atau hal mengenai yang sistem Class akan butuhkan untuk mengambil dan menyimpan informasi. Merupakan 2 Attribute sifat yang menggambarkan keadaan suatu objek Merupakan tindakan atau fungsi 3 Operation yang sebuah kelas dapat hubungan antara melakukan Merupakan 4 Association beberapa kelas atau sebuah kelas dengan kelas itu sendiri 5 Generalization Mewakili semacam hubungan antara beberapa kelas 2.6 Algoritma Pada algoritma ini prioritas jadwal pekerjaan menggunakan bobot dari pesanan. Bobot di bagi menjadi 2 bobot. Bobot yang pertama di hitung berdasarkan jenis pesanan yaitu Export dan Lokal, jika jenis pesanan adalah pesana export maka nilai bobotnya adalah 30 sedangkan jenis lokal mempunyai bobot 20 hal ini di karenakan pesanan export akan lebih di prioritaskan dari pada pesanan lokal. Kemudian bobot yang ke 2 berdasarkan lama pengerjaan yang di hitung dari jumlah hari tanggal pesanan sampai tanggal kirim, semakin sedikit jumlah harinya maka nilai bobotnya besar. Jika jumlah harinya kurang dari atau sama dengan 10 hari maka nilai bobotnya adalah 40, jika jumlah harinya lebih dari atau sama dengan 11 sampai kurang dari atau sama dengan 20 maka nilai bobotnya 30, jika jumlah harinya lebih dari atau sama dengan 21 sampai kurang dari atau sama dengan 30 maka nilai bobotnya 20, jika lebih dari atau sama dengan 31 hari maka nilai bobotnya adalah 10. Jika telah mendapat nilai bobot 1 dan nilai bobot 2 maka 31 http://digilib.mercubuana.ac.id/ pesanan akan di urutkan berdasarkan jumlah nilai bobot 1 dan bobot 2 secara descending atau bedasarkan nilai yang terbesar. Gambar 2.8 Flowchart algoritma 32 http://digilib.mercubuana.ac.id/