BAB II LANDASAN TEORI 2.1.
MRP (Material Requirement Planning)
2.1.1. Pengertian MRP Menurut M. Siagian (2005 dalam Saleh (2012:78)) "Material Requirement Planning (MRP) dapat didefinisikan sebagai suatu teknik atau set prosedur yang sistematis dalam penentuan kuantitas serta waktu dalam proses pengendalian kebutuhan bahan terhadap komponenkomponen permintaan yang saling bergantungan (Dependent demand items)". Dari definisi tersebut dapat disimpulkan bahwa Material Requirement Planning (MRP) merupakan suatu sistem perencanaan dan penjadwalan kebutuhan material untuk produksi yang memerlukan beberapa tahapan proses/fase atau dengan kata lain adalah suatu rencana produksi untuk sejumlah produk jadi yang diterjemahkan ke bahan mentah atau komponen yang dibutuhkan dengan menggunakan tenggang waktu sehingga dapat ditentukan kapan dan berapa banyak yang dipesan untuk masing-masing komponen suatu produk yang akan dibuat. Sehingga MRP lebih ditekankan kepada persediaan material sehingga produk jadi yang dipesan dapat diproduksi sesuai dengan jumlah dan target waktu yang ditentukan. 2.1.2. Input MRP Menturut Herjanto (1999 dalam (Astana 2007:186)) ada 3 komponen dasar yang menjadi masukan MRP agar diperoleh informasi sebagai output/keluaran adalah sebagai berikut: 1. Jadwal Induk Produksi (JIP) atau Master Production Schedule (MPS) JIP atau Jadwal Induk produksi merupakan suatu jadwal yang menunjukan jumlah produk yang akan dibuat dalam setiap periode waktu untuk mengetahui kapasitas produksi dan kecepatan operasi perusahaan dalam merencanakan produksi sehingga dapat diketahui panjang horison waktu perencanaan produksi (Planning Horison). 7
2. Status Persediaan (Inventory Record) Status persedian atau inventory record terdiri dari data-data setiap jenis barang persediaan, dimana setiap jenis barang persediaan tersebut nantinya akan dibutuhkan untuk menentukan jumlah kebutuhan bersih. Berikut ini adalah beberapa data yang dapat dilihat dari status persediaan: a. Jumlah persediaan yang dimiliki pada setiap periode (on hand inventory). b. Jumlah barang yang sedang dipesan dan kapan pesanan tersebut akan datang (on order Inventory). c. Waktu ancang-ancang (lead time) dari setiap bahan. 3. Daftar Material/Struktur Produk (Bill of Material (BOM)) Struktur produk merupakan suatu daftar barang atau material yang diperlukan bagi perakitan, pencampuran, atau pembuatan produk akhir tersebut dan menunjukan berapa banyak setiap komponen dari bagian produk yang akan diperlukan serta merinci semua nama komponen, nomor identifikasi, dan sumber bahan. 2.1.3. Output MRP Menurut Gazpers (1998) keluaran atau output dari MRP, yaitu: 1. Planned Order Schedule (Jadwal Pesanan Terencana) adalah penentuan jumlah kebutuhan meterial serta waktu pemesanannya untuk masa yang akan datang. 2. Order Release Report (Laporan Pengeluaran Pesanan) berguna bagi pembeli yang akan digunakan untuk bernegoisasi dengan pemasok, dan berguna juga bagi manajer manufaktur, yang akan digunakan untuk mengontrol proses produksi. 3. Changes to planning Orders (Perubahan terhadap pesanan yang telah direncanakan) adalah yang merefleksikan pembatalan pesanan, pengurangan pesanan, dan pengubahan jumlah pesanan. 4. Performance
Report
(Laporan
Penampilan)
suatu
tampilan
yang
menunjukkan sejauh mana sistem bekerja, kaitannya dengan kekosongan stok dan ukuran yang lain.
8
2.1.4. Langkah Dasar Menyusun Proses MRP Berikut ini adalah langkah-langkah dasar dalam menyusun proses MRP menurut Nasution (1992 dalam Saleh (2012:78)). 1. Netting (kebutuhan bersih) adalah proses perhitungan untuk menetapkan kebutuhan bersih setiap periodenya selama horison perencanaan yang besarnya merupakan selisih antara persediaan dan yang sedang dipesan. 2. Lotting (kuantitas pesanan) adalah proses penentuan besarnya ukuran jumlah pesanan yang optimal untuk sebuah item, berdasarkan kebutuhan bersih yang dihasilkan. 3. Offsetting (rencana pemesanan) yang bertujuan untuk menentukan kuantitas pesanan yang dihasilkan proses lotting. Penentuan rencana saat pemesanan ini diperoleh dengan cara mengurangkan saat kebutuhan bersih yang harus tersedia dengan waktu ancang-ancang (Lead Time). 4. Exploding merupakan proses perhitungan kebutuhan kotor untuk tingkat (level) yang lebih bawah dalam suatu struktur produk, serta didasarkan atas rencana pemesanan. 2.1.5. Tujuan MRP Menurut Herjanto (1999 dalam (Astana 2007:186)) tujuan dari MRP adalah seperti berikut: 1. Meminimalkan persediaan dimana pembelian bahan dilakukan sebatas yang diperlukan saja sesuai dengan JIP. 2. Dapat mengidentifikasi banyaknya bahan dan komponen yang diperlukan baik dari segi jumlah dan waktunya dengan memperhatikan waktu tenggang produksi maupun pengadaan komponen sehingga dapat mengurangi resiko keterlambatan produksi atau pengiriman. 3. Jadwal produksi diharapkan dapat terpenuhi sesuai dengan rencana, sehingga komitmen terhadap pengiriman barang dilakukan secara realistis. 4. Dapat mendorong peningkatan efisiensi karena jumlah persediaan, waktu produksi dan waktu pengiriman barang direncanakan lebih baik sesuai dengan JIP.
9
2.2.
Konsep Aplikasi 2.2.1. Pengertian Aplikasi Menurut Yakub (2012:96) "Aplikasi merupakan perangkat lunak yang
dikembangkan untuk menyelesaikan masalah-masalah tertentu, yakni dapat mengerjakan tugas tertentu". Menurut Satzinger (2010:47) "The application is the portion of the new information system that satisfies user needs with regard to the problem domain. In other words, the application provides the processing functions for the business requirements.". Dari kedua definisi tersebut dapat disimpulkan bahwa aplikasi akan membuat prosedur kerja rutin menjadi lebih mudah dan efisien, sehingga menjadi alat bantu untuk menghasilkan informasi yang dibutuhkan oleh perusahaan dalam mengelola bisnis. Jika dalam penggunaan aplikasi tidak dilakukan secara benar dan sesuai dengan prosedur yang sudah ditentukan, hasil akhirnya tentu tidak akan dapat memenuhi kebutuhan perusahaan. 2.2.2. Basis Data (Database) Basis data atau database merupakan hal yang sangat vital keberadaannya dalam aplikasi perencanaaan dan pengendalian proses produksi. Karena semua data akan disimpan ke dalam database untuk kepentingan pengolahan menjadi informasi yang berguna bagi perusahaan. Definisi Basis Data Definisi basis data menurut Fathansyah (2012:2) adalah sebagai berikut: "Basis Data terdiri dari 2 kata, yaitu Basis dan Data. Basis kurang lebih dapat diartikan sebagai markas atau gudang, tempat bersarang/berkumpul. Sedangkan Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, siswa, pembeli, pelanggan), barang hewan, peristiwa, konsep, keadaan, dan sebagainya, yang diwujudkan dalam bentuk angka, huruf, simbol, teks, gambar, bunyi, atau kombinasinya."
10
Jadi database yaitu sekumpulan file/tabel/arsip data yang saling berhubungan yang disimpan ke dalam media penyimpanan elektronis sehingga data-data tersebut dapat diakses dengan cepat dan mudah. Komponen Basis Data Tingkat pada struktur database adalah sebagai berikut: 1. Table/tabel, sering disebut entitas atau entity. Entity adalah benda atau objek pada dunia nyata yang dapat dibedakan dari objek lain. Tabel terdiri atas record-record yang menggambarkan kesatuan data-data yang sejenis. 2. Record/baris, merupakan kumpulan field yang membentuk suatu record atau baris. Satu record menggambarkan informasi tentang individu tertentu. 3. Field/kolom, merupakan atribut dari record yang menunjukkan suatu value/item data. Kumpulan field yang membentuk suatu record harus diberi nama untuk membedakan antara field satu dengan yang lain. Syarat-syarat pembentukan nama field pada tabel : a. Harus unik atau spesifik. b. Boleh disingkat. c. Pemisah sebagai pengganti spasi dalam pembentuk field adalah tanda lambang "_". 4. Value, jenjang terkecil yang merupakan isi dari field yang dapat berupa karakter, huruf, dan angka. Value dapat juga disebut data yang tersimpan dalam setiap field/kolom. DBMS (Database Management System) Database dikelola dan diolah oleh sebuah sistem. Sistem tersebut adalah DBMS (Database Management System) yang merupakan perangkat lunak untuk menentukan bagaimana data diorganisasi, disimpan, diubah dan diambil kembali. DBMS menerapkan mekanisme pengamanan data, pemakaian data secara bersamaan, pemaksaan keakuratan/konsistensi data dan sebagainya (Fathansyah 2012:15). Sebuah DBMS menyediakan bahasa untuk mendefinisikan basis data DDL (Data Defintion Language) serta bahasa untuk memanipulasi basis data, DML (Data Manipulation Language). Keduanya merupakan bagian dari bahasa basis data tunggal yang disebut Structured Query Language (SQL) yang 11
merupakan bahasa basis data standar. Salah satu contoh DBMS yang banyak digunakan oleh pengembang aplikasi adalah MySQL. MySQL MySQL adalah salah satu DBMS yang dapat mengelola dan menyimpan data. Selain bisa dijalankan dengan menggunakan command prompt, MySQL juga dapat diakses menggunakan software berbasis GUI (Graphical User Interface) dalam bentuk windows application maupun web sehingga memudahkan dalam proses pembangunan sebuah database. 2.2.3. Web Server Web server adalah sebuah perangkat lunak server yang berfungsi menerima permintaan HTTP (Hypertext Transfer Protocol) atau HTTPS (Hypertext Transfer Protocol Secure) dari client yang dikenal dengan web browser dan mengirimkan kembali hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML (Hypertext Markup Language). Dalam aplikasi ini, web server yang digunakan adalah Apache yang ada dalam XAMPP, XAMPP adalah sebuah perangkat lunak web server open source yang sudah lengkap menjadi satu paket yang terdiri dari Aphace, Database MySQL dan interpreter untuk script PHP, sehingga memudahkan programmer untuk membangun sebuah aplikasi yang berbasis web. 2.2.4. PHP PHP merupakan server-side scripting yang umumnya digunakan untuk membuat halaman web yang dinamis. Interaksi PHP dengan database MySQL sangat baik, sehingga PHP dapat untuk membangun aplikasi berbasis web yang sederhana maupun aplikasi enterprise-level yang kompleks (Lengstorf 2009:4). Untuk menjalankan PHP, diperlukan web server untuk menjalankan script PHP. Web server yang cocok digunakan untuk interpreter PHP adalah Apache. Framework CodeIgniter Codeigniter adalah sebuah open source framework untuk membuat website yang bersifat dinamis dengan bahasa pemrograman PHP. Dalam dunia
12
pemrograman OOP (Object Oriented Programming), framework merupakan sekumpulan kode berupa kelas dan fungsi yang siap digunakan. Jadi, ini bukanlah sebuah bahasa pemrograman baru. Codeigniter dibangun menggunakan PHP yang memiliki serangkaian fungsi dan kelas yang memudahkan dalam membangun aplikasi web secara mudah, cepat, dan terstruktur. Codeigniter menggunakan pola MVC (Model-View-Controller) dalam penyusunan modul program. MVC merupakan pendekatan pengembangan perangkat lunak yang memisahkan logika aplikasi dan tampilan antar muka pengguna (Pitt 2012:1). Di bawah ini adalah penjelasan mengenai konsep MVC: 1. Model, merepresentasikan struktur data. Biasanya kelas dalam model mengandung
berbagai
macam
fungsi
yang
berguna
memperoleh,
memasukkan, dan mengubah data dalam basis data. 2. View, menampilkan antar muka yang akan diakses oleh pengguna. View dapat berupa halaman penuh website, atau sebagian dari halaman website seperti header, footer, maupun content. 3. Controller, berada diantara model dan view dalam topologi MVC. Dapat berupa logika program, pendefinisian variable global, atau navigasi menuju halaman/view lain. 2.2.5. Web Browser Web browser adalah sebuah program atau aplikasi yang digunakan untuk melintasi, mengambil dan menyajikan sumber informasi di Word Wide Web (www). Sumber informasi diidentifikasi dengan Uniform Resource Identifier (URI). Termasuk sebuah halaman web, gambar, video atau bagian lain dari konten web. Dalam hal ini web browser berfungsi sebagai pengakses aplikasi yang digunakan oleh user/pengguna. Beberapa aplikasi web browser yang sering digunakan adalah Firefox, Google Chrome, Internet Explorer dan Safari. 2.2.6. Perangkat Lunak Pendukung Pembangunan Aplikasi Diperlukan pendukung aplikasi lain agar pembangunan aplikasi menjadi mudah.
13
Notepad++ Hampir bisa dipastikan semua pengguna sistem operasi Windows mengenal aplikasi pengolah teks yang bernama Notepad. Aplikasi ini memiliki banyak keterbatasan terutama dalam menuliskan bahasa pemrograman. Notepad++ bukanlah versi baru dari Notepad, melainkan aplikasi third party yang terpisah dan dapat diunduh secara gratis di internet. Aplikasi ini cukup ringan dan sangat membantu dalam menuliskan kode program, serta memiliki serangkaian plugin yang siap digunakan. SQLyog SQLyog merupakan perangkat lunak untuk administrasi database khususnya MySQL yang berbasis Graphical User Interface (GUI) sehingga penggunaan DDL (Data Definition Language) dan DML (Data Manipulation Language) menjadi lebih mudah. Pengembang tidak perlu menulis sintak SQL untuk membangun dan mengelola database yang membutuhkan waktu cukup lama. Fitur yang sangat membantu pengembang adalah saat penulisan sintak SQL. SQLyog akan membantu dengan fitur syntax suggestion dengan maksud meminimalisir penulisan sintak SQL salah. Terdapat pula fitur Schema Designer yang berfungsi untuk menggambarkan desain tabel dalam database yang dibangun. 2.3.
Pengembangan Sistem Menurut Yakub (2012:139) "pengembangan sistem berarti menyusun suatu
sistem yang baru untuk menggantikan sistem yang lama secara kesuluruhan atau memperbaiki sistem yang telah ada". Berikut adalah beberapa hal yang menyebabkan sistem perlu diperbaiki atau diganti: a. Adanya permasalahan (problems) yang ditimbukan oleh sistem yang lama berupa ketidakberesan sehingga menghambat pertumbuhan perusahaan. b. Untuk meraih kesempatan-kesempatan (opportunities) seperti peluang pasar, peningkatan pelayanan, dan sebagainya.
14
c. Adanya instruksi (directives) baru seperti instruksi dari pimpinan perusahaan maupun peraturan pemerintah. Sebuah sistem informasi bisa dikatakan berjalan dengan baik tentu dengan pengelolaan pelaksanaan yang baik. Di dalam sistem informasi, ada metode yang paling umum digunakan dikenal dengan istilah SDLC (System Developement Life Cycle). Inilah acuan untuk bisa membangun dan mengelola sebuah sistem informasi yang baik. 2.3.1. SDLC (System Development Life Cyle) System Development Life Cycle atau yang dikenal dengan sebutan SDLC adalah alat bantu proses yang digunakan oleh sistem analis untuk membangun dan mengembangkan sebuah sistem informasi (Tantra 2012:11). Pada dasarnya SDLC memiliki 4 fase yang mempunyai keterkaitan diantaranya project planning, analysis, design dan implementation.
Gambar 2.1 System Development Life Cycle (Dennis, Wixom, and Roth 2012:11) Namun Satzinger (2010:40) menambahkan 1 fase lagi yaitu support karena untuk meningkatkan dan memelihara sistem yang telah digunakan tetapi biasanya tidak dianggap sebagai bagian dari proyek pengembangan awal. Berikut adalah gambaran ilustrasi dari kelima fase yang disebutkan.
Gambar 2.2 Fase Pengembangan Sistem Informasi (Satzinger, Jackson, and Burd 2010:40) 15
a. Project Planning, untuk mengidentifikasi lingkup sistem yang akan dibangun dan memastikan bahwa proyek tersebut layak, sehingga penjadwalan, perencanaan dan pengaturan proyek dapat dibuat dengan matang. b. Analysis, untuk mendefinisikan dan mendokumentasikan secara rinci kebutuhan bisnis dan persyaratan pengolahan sistem yang akan dibangun dari hasil penyelidikan sehingga benar-benar memahami permasalahan yang ada, agar proses bisnis berjalan dengan yang diharapkan. c. Design, untuk merancang sistem berdasarkan persyaratan yang ditetapkan dan keputusan
yang
dibuat
selama
kegiatan
analysis
sehingga
dapat
dikembangkan ke dalam struktur program dan algoritma untuk sistem yang yang akan dibangun. d. Implementation, untuk membangun, menguji, dan menginstal sistem informasi yang handal dengan pengguna terlatih siap untuk mendapatkan keuntungan seperti yang diharapkan dari penggunaan sistem. e. Support, untuk menjaga sistem berjalan secara produktif, baik awalnya dan setelah sistem berjalan sehingga akan terus memberikan manfaat yang diharapkan. Ada banyak metodologi pengembangan sistem yang berbeda-beda, tetapi tetap mengikuti fase SDLC. Beberapa model SDLC standar adalah Waterfall Development, RAD (Rapid Application Development), dan Agile Software Development. Model yang akan digunakan oleh penulis untuk membangun aplikasi perencanaan dan pengendalian proses produksi adalah model Agile Software Development. 2.3.2. Metode Agile Software Development Menurut Satzinger (2010:81-82) Agile Development memiliki karakteristik tambahan dari yang diidentifikasi untuk kemampuan beradaptasi yang meliputi berikut ini:
Berfokus pada tim dan interaksi tim.
Mengerjakan perangkat lunak melalui dokumentasi yang komprehensif. Misalnya tidak menghabiskan waktu dengan menggambar diagram dan spesifikasi tertulis. Hanya menggunakan pemodelan untuk membantu
16
memecahkan masalah dan kemudian implementasikan ke perangkat lunak yang dibangun.
Kolaborasi klien atas negosiasi kontrak. Misalnya, bekerja sama dengan pengguna dan klien sehingga menghasilkan solusi diharapkan.
Fleksibel dan menerima perubahan dalam bisnis dan kebutuhan pengguna, bahkan sampai akhir proyek. Jangan terlalu terikat pada perencanaan yang akan membuat pengembang kehilangan fleksibilitas untuk memecahkan masalah klien. Ada beberapa pendekatan untuk menerapkan Agile Software Development
diataranya adalah Extreme Programming (XP), Scrum, dan Dynamic System Development Method (DSDM). Untuk pengembangan perangkat lunak penulis menggunakan pendekatan Extreme Programming. Extreme Programming menekankan kepuasan pelanggan dan kerja sama tim. Komunikasi, kesederhanaan, umpan balik, dan keberanian adalah nilai-nilai inti. Pengembang berkomunikasi dengan pelanggan dan sesama programmer. Desain yang dibuat sederhana dan bersih. Pengujian awal dan sering memberikan umpan balik, dan pengembang dapat berani merespon perubahan kebutuhan dan teknologi. Berikut adalah ilustrasi dari pendekatan Extreme Programming:
Gambar 2.3 Extreme Programming (Dennis, Wixom, and Roth 2012:57)
17
Tujuan Agile Software Development Berikut adalah tujuan yang diharapkan dalam mengembangkan perangkat lunak menggunakan metode Agile Software Development: 1. High-value & working App system, diharapkan dengan memakai agile development methods dapat dihasilkan perangkat lunak yang mempunyai nilai jual yang tinggi, biaya pembuatan bisa ditekan dan perangkat lunak bisa berjalan dengan baik. 2. Iterative, incremental, evolutionary, agile adalah metode pengembangan perangkat lunak yang iteratif, selalu mengalami perubahan, dan evolusioner. 3. Cost control & value-driven development, salah satu tujuan dari agile yaitu pengembangan perangkat lunak disesuaikan dengan kebutuhan pengguna, pengembang perangkat lunak bisa dengan cepat merespon kebutuhan yang diinginkan pengguna sehingga waktu dan biaya pembuatan perangkat lunak bisa dikontrol. 4. High-quality production, walaupun biaya pembuatan perangkat lunak bisa ditekan dan proses pembuatan bisa dipercepat, tetapi kualitas dari perangkat lunak yang dibuat harus tetap dijaga. Dengan melakukan tes setiap fungsionalitas perangkat lunak setelah selesai dibuat berarti agile juga mengakomodir kebutuhan ini. 5. Flexible & risk management, jika kita menggunakan metode pembuatan yang biasanya dipakai, jika ingin mengubah fungsionalitas dari wireframe yang telah dibuat, akan dibutuhkan proses yang rumit. Mulai dari pertemuan dengan sistem analis untuk mengubah sistem perangkat lunak, perubahan rencana rilis produk hingga perubahan biaya produksi. Pertemuan dengan klien untuk melakukan tes perangkat lunak juga sering dilakukan sehingga fungsionalitas perangkat lunak mudah diubah dan akhirnya kegagalan perangkat lunak pun bisa diminimalisir. 6. Collaboration, dengan menggunakan agile, pengembang perangkat lunak diharuskan sering bertemu untuk membahas perkembangan proyek dan feedback dari klien yang nantinya akan ditambahkan dalam perangkat lunak, sehingga tim bisa berkolaborasi dengan maksimal.
18
7. Self-organizing, self-managing teams, rekrut orang terbaik, beri dan dukung kebutuhan mereka lalu biarkan mereka bekerja. Itulah perbedaan agile dan SDM
lainnya.
memanajemen
Dengan dirinya
agile, sendiri,
pengembang sedangkan
perangkat manajer
lunak
hanya
dapat
bertugas
mengkolaborasikan pengembang perangkat lunak dengan klien. Sehingga terciptalah tim yang solid. Kelebihan dan Kekurangan Agile Software Development Beberapa kelebihan dari Agile Software Development diantaranya:
Menambah produktifitas tim.
Menambah kualitas perangkat lunak.
Menambah kepuasan klien.
Menghemat biaya. Sedangkan kekurangan dari Agile antara lain:
Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
Tidak cocok dalam skala tim yang besar (>20 orang).
Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.
2.4.
Perancangan Aplikasi
2.4.1. Pendekatan Berorientasi Objek Pendekatan berorientasi objek akan memandang sistem yang akan dikembangkan sebagai suatu kumpulan objek yang berkorespondensi dengan objek-objek dunia nyata. Ada banyak cara untuk mengabstraksikan dan memodelkan objek-objek tersebut, mulai dari abstraksi objek, kelas, hubungan antar kelas sampai abstraksi sistem. Saat mengabstraksikan dan memodelkan objek ini, data dan proses-proses yang dipunyai oleh objek akan dienkapsulasi (dibungkus) menjadi satu kesatuan. Dalam rekayasa perangkat lunak, konsep pendekatan berorientasi objek dapat diterapkan pada tahap analisis, perancangan, pemrograman, dan pengujian perangkat lunak. Ada berbagai teknik yang dapat digunakan pada masing-masing tahap tersebut, dengan aturan dan alat bantu pemodelan tertentu.
19
Berikut beberapa karaktersitik dasar dalam sistem berorientasi objek: Abstraksi (abstraction) Abstraksi atau abstraction secara sederhana dikatakan sebagai proses memilah beberapa attribut dan beberapa operasi suatu objek hanya sampai pada yang benar-benar diperlukan saja dan membuang atribut dan operasi yang tidak diperlukan untuk persoalan yang dihadapi. Pewarisan (inheritance) Objek adalah anggota atau instan suatu kelas dan sebaliknya kelas adalah sebuah kategori dari beberapa objek yang mempunyai attribut dan operasi yang sama, maka objek mempunyai semua karakteristik dari suatu kelas. Attribut dan operasi yang ditentukan dalam kelas dapat diwariskan ke masing-masing objek dalam kelas tersebut. Banyak Bentuk (polymorphism) Kadang-kadang sebuah operasi mempunyai nama yang sama pada kelas yang berbeda. Operasi-operasi tersebut walaupun mempunyai nama yang sama tetapi diberikan pada objek yang berbeda maka mempunyai makna yang berbeda. Pada masing-masing persoalan dapat dilakukan operasi yang berbeda-beda walaupun dengan nama yang sama. Konsep tersebut dikenal dengan istilah banyak bentuk atau polymorphism, yaitu suatu operasi dengan nama yang sama, tetapi jika diberikan pada objek yang berbeda akan mengakibatkan operasi yang berbeda. Pembungkusan (encapsulation) Pembungkusan atau encapsulation adalah menyembunyikan kompleksitas dari luar dan hanya membuka operasi-operasi yang diperlukan saja terhadap objek-objek lain. Pengiriman Pesan (message sending) Bagaimana objek-objek dalam sistem bekerjasama. Mereka melakukannya dengan mengirimkan pesan dari satu objek ke objek lainnya. Suatu objek
20
mengirimkan pesan ke objek lain untuk melakukan sebuah operasi dan juga dapat menerima pesan dari objek lain untuk melakukan operasi lainnya. Asosiasi (assosiation) Asosiasi adalah hubungan antar objek yang saling membutuhkan. Hubungan ini bisa satu arah ataupun lebih dari satu arah. Pada saat seseorang menyalakan sebuah televisi, maka menurut terminologi berorientasi objek, seseorang tersebut sedang berasosiasi dengan televisi secara satu arah. Sedangkan contoh untuk hubungan dua arah yaitu pertemanan antara si X dan si Y. Tidak akan bisa disebut pertemanan jika hanya satu arah, karena pertemanan membutuhkan hubungan dua arah. Pada asosiasi terdapat sebuah aspek yaitu multiplicy yang berfungsi untuk mengetahui keterkaitan sejumlah objek dalam satu kelas yang saling berasosiasi. Ada dua jenis multiplicy, yaitu hubungan satu ke satu (one-to-one) dan hubungan satu ke banyak (one-to-many) atau sebaliknya. Agregasi (aggregation) Aggregasi adalah bentuk khusus dari asosiasi yang lebih kuat, dimana asosiasi yang terjadi adalah “part of” antara objek yang satu dengan objek yang lainnya atau asosiasi antara “keseluruhan” dengan “sebagian”. Salah satu bentuk aggregasi meliputi hubungan yang kuat antara satu objek dan objek-objek lainnya sebagai komponen pembentuknya, hal ini dikenal dengan nama lain yaitu komposisi. Kunci komposisi bahwa komponen-komponen tersebut ada hanya sebagai penyusun dari objek gabungan tersebut. 2.4.2. Basis Data Berorientasi Objek (ODBMS) Analisa pemodelan tradisional seperti Entity Relationship Diagram (ERD) dan domain class diagram dalam menganalisa object-oriented (OO) membantu untuk menerapkan ke dalam sistem informasi, sehingga pengembang harus mengubah model data konseptual menjadi model data yang lebih rinci dan menerapkan model sistem manajemen database. Object Database Management Systems (ODBMS) merupakan lanjutan dari pemrograman berorientasi objek. ODBMS dirancang untuk menyimpan objek-objek ke dalam suatu database yang
21
relational dan untuk berinteraksi dengan bahasa pemrograman berorientasi objek. Selain itu, ada banyak keuntungan untuk menggunakan ODBMS, diantaranya adalah dukungan langsung untuk metode penyimpanan, pewarisan, objek bersarang, hubungan antar objek, dan tipe data pada pemrograman. Menurut Satzinger (2010:503) untuk membuat skema database objek dari diagram kelas, berikut adalah langkah-langkahnya: 1. Menentukan kelas-kelas yang membutuhkan untuk penyimpanan atributnya. 2. Tentukan atribut kelas yang akan disimpan. 3. Tunjukan hubungan antara atribut kelas yang tersimpan. 4. Pilih yang sesuai jenis data dan pembatasan nilai (jika perlu) untuk masingmasing atribut. Menggambarkan Kelas Menurut Satzinger (2010:503-504) ada dua jenis kelas untuk keperluan pengelolaan data. 1. Objek dari transient class atau kelas sementara yang hanya ada selama masa program atau proses. Dalam desain yang mengikuti arsitektur threelayer, objek layer view seperti windows dan forms biasanya bersifat sementara. Objek transient dibuat setiap kali sebuah program atau proses dieksekusi dan kemudian hilang ketika sebuah program atau proses berakhir. 2. Sebuah objek dari kelas yang atributnya tersimpan tidak akan hilang ketika program atau proses berhenti eksekusi. Sebaliknya, objek terus ada secara independen dari setiap program atau proses.
Gambar 2.4 Contoh Class Customer (Satzinger, Jackson, and Burd 2010:504)
22
Menggambarkan Hubungan Setiap objek yang tersimpan dalam suatu ODBMS secara otomatis ditetapkan pengenal objek yang unik. Objek identifier dapat berupa alamat penyimpanan fisik atau referensi yang dapat dikonversi ke alamat penyimpanan fisik pada saat dijalankan. Dari kedua pernyataan tersebut maka, setiap objek memiliki pengenal yang unik yang dapat disimpan dalam objek lain untuk mewakili hubungannya. Sebuah ODBMS merupakan hubungan dengan menyimpan identifier dari satu objek dalam objek-objek terkait. Pengidentifikasian objek memberikan visibilitas navigasi antar berbagai objek. ODBMS menggunakan atribut yang mengandung pengidentifikasian objek untuk menemukan objek-objek yang berhubungan dengan objek lain.
Gambar 2.5 Contoh Hubungan Antar Kelas (Satzinger, Jackson, and Burd 2010:507) 2.4.3. UML (Unified Modeling Language) Pengertian UML Di dalam tahapan fase-fase SDLC, terdapat fase analisis dan fase desain. Fase tersebut dapat dibentuk dalam sebuah gambaran dan dokumen yang dibuat menggunakan UML (Unified Modeling Language). Menurut Nugroho (2010:6) "UML (Unified Modeling Language) adalah 'bahasa' pemodelan sistem atau perangkat lunak yang berparadigma 'berorientasi object'. Pemodelan (modeling) sesungguhnya digunakan untuk penyederhanaan permasalahan-permasalahan yang kompleks sedemikian rupa sehingga lebih mudah dipelajari dan dipahami.".
23
Diagram-Diagram UML Beberapa literature menyebutkan bahwa UML menyediakan sembilan jenis diagram. Namun kesembilan diagram ini tidak mutlak harus digunakan dalam pengembangan perangkat lunak, semuanya dibuat sesuai dengan kebutuhan. Diagram yang sering digunakan adalah Use Case Diagram, Activity Diagram, Class Diagram, dan Sequence Diagram. a. Use Case Diagram Menurut Nugroho (2010:34) "Use case digunakan untuk memodelkan fungsionalitas-fungsionalitas sistem/perangkat lunak dilihat dari pengguna yang ada di luar sistem yang dinamakan aktor.". Tujuan dari use case diagram adalah untuk mendokumentasikan interaksi antara pengguna yang ada di luar sistem yang dinamakan sebagai aktor dengan fungsionalitas sistem/perangkat lunak secara tidak terperinci. Berikut adalah contoh use case diagram.
Gambar 2.6 Contoh sederhana Use Case Diagram untuk 'Vichacle Sales System' (Dennis, Wixom, and Roth 2012:517) Use case diagram sangat penting untuk mengorganisasi dan memodelkan perilaku suatu sistem yang dibutuhkan agar tercapai apa yang diharapkan pengguna. Membuat use case diagram yang jelas merupakan hal yang penting dilakukan pada tahap analisis agar didapatkan banyak informasi yang berkaitan dengan apa yang terjadi dalam sistem/bisnis.
24
Tabel 2.1 Syntax for Use Case Diagram (Dennis, Wixom, and Roth 2012:158) Istilah dan Definisi
Symbol
Actor Orang atau sistem dari luar sistem yang memperoleh keuntungan dari dalam sistem Diberi label dengan perannya Dapat berasosiasi denga aktor yang lain menggunakan spesialisasi / superclass asosiasi dengan simbol panah Ditempatkan di luar system boundary Use case Memperlihatkan bagian utama dari fungsi sistem Dapat extend/include dengan use case yang lain Ditempatkan di dalam system boundary Diberi label dengan deskriptif kata kerja-kata benda System boundary Nama sistem diletakan di dalam atau di atas kotak Merupakan ruang lingkup sistem Associaton relationship Penghubung aktor dengan use case Include relationship Merepresentasikan bagian fungsi dari use case satu dengan yang lain Panah digambar dari base use case ke included use case
<
>
Extend relationship Merepresentasikan tambahan use case yang termasuk pada perilaku optional Panah digambar dari use case tambahan ke base use case Generalization relationship Merepresentasikan use case khusus ke use case umum Panah digambar dari use case khusus ke base use case
25
Gambar 2.7 Contoh lengkap Use Case Diagram untuk 'Vehicle Sales System' (Dennis, Wixom, and Roth 2012:520) Use case biasanya disertai dengan penjelesan narasi yang dirangkum dalam tabel yaitu disebut use case description. Use case Description merupakan tabel yang digunakan untuk membuat dan menjelaskan keterangan terperinci mengenai setiap use case. Terdapat istilah pre-condition dan post-condition, fungsinya adalah memberikan informasi penting mengenai keadaan sistem sebelum dan sesudah use case. Hal ini dapat dilakukan dengan memberikan penjelasan singkat atau dapat pula berupa nama use case. Berikut adalah contoh use case diagram description:
26
Gambar 2.8 Contoh Use Case Diagram Description 'Request a Chemical Use Case' (Dennis, Wixom, and Roth 2012:151)
27
b. Activity Diagram Activity
Diagram
merupakan
jenis
diagram
alur
kerja
yang
menggambarkan aktivitas pengguna dan aliran pekerjaan yang sekuensial kegiatannya (Satzinger, Jackson, and Burd 2010:175). Pada use case telah dijelaskan bahwa use case merupakan gambaran umum yang tidak terperinci. Oleh karena itu, harus diperinci lagi perilaku sistem untuk masing-masing use case yang ada dengan menggunakan activity diagram agar mendapatkan gambaran yang lebih menyeluruh. Diagram ini memperlihatkan aliaran dari suatu aktifitas ke aktifitas lainnya dalam suatu sistem. Diagram ini terutama penting dalam pemodelan fungsi-fungsi dalam suatu sistem dan memberi tekanan pada aliran kendali antar objek. Berikut ini adalah simbol-simbol yang digunakan dalam activity diagram.
Gambar 2.9 Activity Diagram Symbols (Satzinger, Jackson, and Burd 2010:142) Berikut adalah daftar simbol dari activity diagram.
28
Tabel 2.2 Simbol Activity Diagram Symbol
Istilah dan Definisi Action Sederhana, bagian yang tidak dapat dibagi dari perilaku Diberi label sesuai namanya Activity Digunakan untuk mewakili serangkaian tindakan Diberi label sesuai namanya Objct Node Digunakan untuk mewakili objek yang terhubung ke satu set rangkaian objek Diberi label sesuai nama kelasnya
Class Name
Control Flow Menampilkan urutan eksekusi Object Flow Menampilkan aliran objek dari satu aktivitas (atau action) aktivitas (atau action) lainnya
ke
Initial Node Menggambarkan awal dari serangkaian action atau activity Final Activity Node Digunakan untuk mengakhiri seluruh control flow atau object flow pada activity atau action Final Flow Node Digunakan untuk menghentikan control flow atau object flow Decision Node Digunakan untuk menampilkan tes kondisi untuk meyakinkan bahwa control flow atau object flow hanya turun satu jalur Merger Node Digunakan untuk membawa kembali alur keputusan yang telah menyatu yang telah dibuat menggunakan decision node Fork Node Digunakan untuk membagi perilaku menjadi aliran paralel dari aktivitas atau action Join Node Digunakan untuk menyatukan aliran paralel dari aktivitas atau action Swimline Node Digunakan untuk memisahkan diagram aktivitas ke dalam kolomkolom atau baris-baris untuk menetapkan aktivitas atau action tersendiri kedalam suatu objek yang bertanggung jawab melaksanakan aktivitas atau action
Berikut ini adalah contoh sederhana activity diagram. 29
Gambar 2.10 Contoh sederhana Activity Diagram (Satzinger, Jackson, and Burd 2010:177) c. Class Diagram Class Diagram adalah model statis yang mendukung pandangan statis dari sistem yang berkembang yang menunjukkan kelas dan hubungan antar kelas yang tetap konstan dalam sistem dari waktu ke waktu (Dennis, Wixom, and Roth 2012:521-522). Di dalam class diagram, kelas memiliki atribut, metode/operasi, dan state/keadaan. Nilai-nilai atribut menentukan state/keadaan setiap objek yang diciptakan dari kelas, dan perilaku yang diwakili oleh metode. Atribut merupakan
30
variabel-variabel yang dimiliki oleh suatu kelas, sehingga state/keadaan objek dari kelas diketahui. Sementara metode/operasi adalah fungsi-fungsi yang dimiliki oleh suatu kelas. Berikut adalah contoh class diagram.
Gambar 2.11 Contoh class diagram untuk 'Holiday Travel Vehicles' (Dennis, Wixom, and Roth 2012:523)
31
Berikut adalah keterangan dari simbol-simbol yang digunakan dalam class diagram. Tabel 2.3 Class Diagram Syntax (Dennis, Wixom, and Roth 2012:524) Istilah dan Definisi
Symbol
Class Merepresentasikan jenis orang, tempat, atau benda yang dibutuhkan sistem untuk penggambaran informasi Mempunyai nama yang berada di tengah bagian atas kotak Mempunyai daftar atribut yang berada di bagian tengah kotak Mempunyai daftar operasi yang berada di bagian bawah kotak Tidak menunjukkan secara eksplisit operasi yang dapat digunakan semua kelas Attribute Merepresentasikan bagian-bagian dari state objek Dapat diturunkan dari atribut lain, dengan menempatkan simbol slash (garis miring) sebelum nama atribut Method Merepresentasikan actions atau function dari kelas. Dapat diklasifikasikan sebagai constructor, query, update operation
Attribute name /derived attribute name
Operation name()
Association Merepresentasikan hubungan antara satu kelas ke kelas yang lain Diberi label menggunakan kata kerja yang merepresentasikan hubungan Dapat berada pada satu atau lebih kelas Berisi simbol multiplicity dari minimum sampai maksimum
d. Sequence Diagram Sequence diagram menggambarkan objek-objek yang berpartisipasi dalam sebuah use case dan pesan antar objek dari waktu ke waktu untuk satu use case yang menunjukkan urutan eksplisit dari pertukaran pesan yang berinteraksi diantara objek yang ditetapkan (Dennis, Wixom, and Roth 2012:556). Sequence diagram biasanya tersusun dari elemen objek, interaction dan message. Interaction menghubungkan 2 objek dengan pesannya. Diagram ini menjelaskan
32
aspek dinamis dari sistem yang sedang dibangun. Untuk satu use case bisa dibuat beberapa sequence diagram, karena satu use case biasanya terdiri dari beberapa aktivitas
yang
harus
dilakukan
dan
masing-masing
aktivitas
ini
bisa
direpresentasikan dalam satu sequence diagram. Berikut ini adalah contoh sequence diagram.
Gambar 2.12 Contoh Sequence Diagram (Dennis, Wixom, and Roth 2012:531)
33
Berikut adalah keterangan dari simbol-simbol yang digunakan dalam sequence diagram. Tabel 2.4 Sequence Diagram Syntax (Dennis, Wixom, and Roth 2012:532) Istilah dan Definisi
Symbol
Actor Adalah orang atau sistem yang memberikan keuntungan dari dan ke eksternal sistem Mengirimkan atau menerima pesan Ditempatkan di atas diagram Object Mengirimkan atau menerima pesan Ditempatkan di atas diagram Lifeline Memperlihatkan garis objek pada diagram Terdapat ’X’ pada kelas yang tidak lagi berinteraksi Focus of Control Kotak panjang vertikal segiempat yang diletakkan di atas lifeline Digunakan ketika objek mengirim atau menerima pesan Message Menunjukkan informasi dari satu objek ke objek yang lain Untuk operation call diberi simbol tanda panah bergaris padat Untuk return diberi simbol dengan tanda panah bergaris titik-titik Object Destruction Tanda ”X” ditempatkan pada akhir lifeline objek yang menunjukkan objek tersebut keluar dari keberadaan sistem
2.5.
X
Pengujian Aplikasi Sebelum sistem/perangkat lunak akhirnya digunakan oleh klien, perlu
dipastikan bahwa pengujian telah dilakukan dengan cara-cara tertentu. Selama pengujian pengembang perlu melakukan verifikasi sedemikian rupa sehingga benar-benar merasa yakin bahwa sistem/perangkat lunak sudah sesuai dengan spesifikasi dari kebutuhan pengguna (Nugroho 2010:115). Salah satu tahapan pengujian yang lengkap untuk melakukan pengujian aplikasi adalah menggunakan tahapan integration tests. Menurut Dennis (2012:454) integration tests menilai apakah perangkat lunak dengan berbagai
34
modul dapat bekerja dengan baik dan tanpa kesalahan, serta ada empat pendekatan untuk melakukan integration tests, diantaranya sebagai berikut: 1. Pengujian antarmuka pengguna (user interface testing), dilakukan dengan cara menguji melalui setiap item menu dalam antarmuka baik dalam dari atas ke bawah maupun sebaliknya. 2. Pengujian menggunakan skenario (use scenario testing), dilakukan dengan cara menguji melalui setiap skenario penggunaan untuk memastikan bahwa ia bekerja dengan benar. 3. Pengujian aliran data (data flow testing), dilakukan dengan cara membandingkan hasil data di setiap modul dengan data yang seharusnya (benar) dengan berulang kali. 4. Pengujian antarmuka sistem (system interface testing), dilakukan dengan cara memantau penggunaan untuk memastikan pengguna menggunakan perangkat lunak dengan benar. 2.6.
Instalasi (Pemasangan) Aplikasi Setelah perangkat lunak selesai tahap pengujian, maka perangkat lunak dan
perangkat keras akan di-install pada organisasi atau perusahaan klien dan secara resmi mulai digunakan. Setelah pemasangan selesaipun, dilakukan pengujian menyeluruh terhadap aplikasi yang diimplementasikan, apakah berjalan dengan baik atau tidak. Namun dalam aplikasi yang berbasis web seperti yang penulis rancang ini, proses instalasi program hanya dilakukan pada server yang nantinya user/client hanya mengakses alamat website ke server tersebut untuk menjalankan program menggunakan web browser. 2.7.
Pemeliharaan Aplikasi Pemeliharaan perangkat lunak merupakan modifikasi dari perangkat lunak
telah dibangun untuk memperbaiki kesalahan, meningkatkan performa, atau mengadaptasi dengan perubahan kebijakan agar tetap berjalan dengan maksimal agar sesuai dengan kebutuhan (Satzinger, Jackson, and Burd 2010:652). Berikut adalah beberapa aktifitas dalam pemeliharaan aplikasi:
Permintaan modifikasi dari hasil pelacakan dan laporan kesalahan 35
Menerapkan perubahan
Pemantauan kinerja sistem dan meningkatkan kinerja atau meningkatkan kapasitas
Upgrade hardware dan system software
Memperbarui dokumentasi untuk mencerminkan perubahan pemeliharaan
36