BAB II LANDASAN TEORI
2.1.
Definisi Sistem
Sistem merupakan suatu bentuk integrasi antara satu komponen dengan komponen lain karena sistem memiliki sasaran yang berbeda untuk setiap kasus yang terjadi dalam sistem tersebut. Menurut Kadir dalam Harpad, “sistem adalah sekumpulan elemen yang saling terkait atau terpadu yang dimaksudkan untuk mencapai suatu tujuan tertentu”. Berdasarkan definisi-definisi yang penulis kumpulkan sistem adalah sekelompok elemen yang saling berkaitan terdiri dari objek-objek untuk mencapai suatu tujuan (Sutabri (2012:22) .
2.2.
Karakteristik Sistem
Suatu sistem mempunyai karakteristik atau sifat-sifat tertentu, yaitu komponen-komponen sistem (System Components), batasan-batasan sistem (System Boundaries), penghubung sistem (System Interface), lingkungan luar sistem (System Environment), masukan sistem (System Input), pengolah sistem (System Process), keluaran sistem (System Output), dan sasaran sistem (System Target). Menurut Jogiyanto H.M. dalam Daud F. Tatang (2013), suatu sistem biasanya mempunyai karakteristik tertentu yang dapat dijelaskan adalah sebagai berikut: 1.
Komponen Sistem (Components system) Komponen sistem yaitu dari sejumlah komponen yang saling berinteraksi yang artinya saling bekerja sama membentuk satu kesatuan. Elemenelemen sistem dapat berupa suatu sub sistem atau bagian-bagian dari sistem. Setiap sub sistem mempunyai sifat-sifat dari sistem untuk 9
10
menjalankan suatu fungsi tertentu dan mempengaruhi proses sistem secara keseluruhan. 2.
Batas Sistem (Boundary System) Batas sistem yaitu daerah yang membatasi antara suatu sistem dengan sistem yang lainnya atau dengan yang lainnya atau dengan lingkungan luarnya. Batas sistem ini memungkinkan ruang lingkup suatu sistem dipandang.
3.
Lingkungan Luar Sistem (Environment System) Lingkungan luar sistem yaitu apapun di luar batas dari sistem yang mempengaruhi operasi sistem. Lingkungan luar sistem dapat bersifat menguntungkan merupakan energi dari sistem yang harus tetap dijaga dan dipelihara.
4.
Penghubung Sistem (Interface System) Penghubung sistem merupakan media penghubung antara satu sub sistem dengan sub sistem lainnya. Melalui penghubung ini memungkinkan sumber-sumber daya mengalir dari satu sub sistem ke sub sistem lainnya. Keluaran (Output) dari sub sistemakan menjadi masukan (Input) bentuk sub sistem lainnya dengan melalui penghubung satu sub sistem dapat berintegrasi dengan sub sistem lainnya membentuk satu kesatuan.
5.
Masukan Sistem (Input System) Masukan sistem merupakan energi yang dimasukkan ke dalam sistem. Masukan sistem dapat berupa masukan perawatan (Maintenance Input) dan masukan sinyal (Signal Input). Maintenance input adalah energi yang dimasukkan agar sistem tersebut beroperasi. Signal input adalah energi yang diproses untuk mendapatkan keluaran.
6.
Pengolahan Sistem (Processing System) Pengolahan sistem yaitu suatu sistem dapat mempunyai bagian pengolahan yang akan merubah masukan menjadi keluaran.Suatu sistem produksi akan mengolah masukan bahan baku atau bahan-bahan yang lainnya menjadi bahan jadi.
11
7.
Keluaran Sistem (Output System) Keluaran sistem yaitu hasil energi yang diolah dan diklasifikasikan menjadi keluaran yang berguna. Keluaran dari sistem dapat merupakan masukan untuk sub sistem lain. Keluaran dapat berupa tampilan layar di monitor yaitu dalam bentuk laporan, grafik, tabel, dan keluaran yang lainnya adalah hasil cetakan laporan ke media kertas.
8.
Sasaran Sistem (Objective) dan Tujuan (Goals) Suatu sistem pasti mempunyai tujuan atau sasaran. Jika suatu sistem tidak mempunyai tujuan, maka operasi sistem tidak akan berguna. Sasaran dari suatu sistem sangat menentukan sekali masukan yang dibutuhkan sistem dan keluaran yang dihasilkan sistem. Sebuah sistem dikatakan berhasil mengenai sasaran atau tujuannya.
2.3.
Bahasa Pemrograman PHP
PHP sama seperti bahasa pemrograman lainnya memiliki modul-modul yang dapat digunakan, di mana jumlah fungsi refernsi pada PHP berkisar 172 Modul. Setiap modul memiliki sintaks yang bervariasi jumlahnya mulai dari 10 sintaks sempai dengan kurang lebih 150 sintaks.( Menurut Stendy B. Sakur,2010) PHP memiliki kepanjangan PHP Hypertext Preprosesor, merupakan suatu bahasa
pemrograman
yang
difungsikan
untuk
membangun
suatu website dinamis.(Agus Saputra dkk,2013:2) PHP (Personal Home Page) adalah pemograman (interpreter) proses penerjemahan baris sumber menjadi kode mesin yang dimengerti komputer secara langsung pada saat baris kode dijalankan.(Menurut Sibero,2012:49) Menurut
Kustiyahningsih
(2011:114),
“PHP
(atau
resminya
PHP: Hypertext Preprosesor) adalah skrip bersifat Bersifat server-side yang di tambahkan ke dalam HTML. PHP sendiri merupakan singkatan dari Personal
12
Home Page Tools. Skrip ini akan membuat suatu aplikasi dapat di integrasikan ke dalam HTML sehingga suatu halaman web tidak lagi bersifat statis, namun menjadi bersifat dinamis. Sifat server side berarti pengerjaan skrip di lakukan di server, baru kemudian hasilnya di kirimkan ke browser”. Berdasarkan pendapat para ahli yang dikemukakan di atas dapat ditarik kesimpulan bahwa PHP adalah bahasa pemrograman yang digunakan secara luas untuk penanganan pembuatan dan pengembangan sebuah situs web dan bisa digunakan bersamaan dengan HTML. Sedangkan dalam Web resmi PHP(www.php.org/history), PHP/FI (Personal Home Page Form Interface) merupakan nama awal dari PHP. Di buat pertama kali oleh Rasmus Terdoff. PHP awalnya merupakan program CGI yang dikhususkan
untuk
menerima input melalui form yang
ditampilkan
dalam webbrowser. PHP pertama ditulis menggunakan bahasa Perl (Perl Script), kemudian ditulis ulang menggunakan bahasa pemrograman C CGI-BIN (Common Gateway
Interface-Binary)
yang
ditujukan
untuk
mengembangkan
halaman website yang mendukung formulir dan penyimpanan data. Pada tahun 1995 PHP Tool 1.0 dirilis untuk umum, kemudian pengembangannya dilanjutkan oleh Andi Gutmans dan Zeev Suraski. Perusahaan bernama Zend kemudian melanjutkan pengembangan PHP dan merilis PHP versi 5.2 terakhir pada saat ini. Software ini
disebarkan
dan
disesuaikan
sebagai software
open
source (gratis). PHP secara resmi merupakan kepanjangan dari PHP Hypertext Preprocessor, merupakan bahasa script server-slide yang disiapkan pada halaman HTML. Berikut adalah contoh yang umum pengguna script PHP untuk menjelaskan tentang PHP sebagai script yang disisipkan (embedded script) dalam bentuk HTML :
Asslamaulaikum
13
Contoh script diatas berbeda dengan script yang dituliskan dengan bahasa lain seperti Bahasa C Perl. Pemrograman tidak harus semua dokumen HTML sebagai bagian dari keluaran script PHP, cukup menuliskan bagian mana saja yang berupa tag HTML dan bagian mana yang harus ditulis atau dihasilkan dari program script PHP. Kode ? script PHP diapit dengan menggunakan tag awal dan tag akhir yang khusus, yang memungkinkan pemrograman untuk masuk dan keluar dari mode script PHP.
2.3.1. Kemampuan PHP
PHP secara mendasar dapat mengerjakan semua yang dapat dikerjakan oleh program CGI (Common Gateway Interface), seperti mendapatkan data dari form, menghasilkan isi halaman web yang dinamis dan menerima cookies. Kemampuan (feature) PHP yang dihandalkan dan signifikan adalah dukungan kepada banyak database. Membuat halaman web yang menggunakan data daridatabase dengan sangat mudah dapat dilakukan. Berikut adalah daftar database yang didukung oleh PHP : 1. AdabasD 2. Dbase 3. Empress 4. FilePro 5. FrontBase 6. Hyperwave
14
7. IBM DB2 8. Informix 9. Ingres 10. Interbase 11. MSQL 12. Direct MS SQL 13. MySQL 14. ODBC 15. Oracle 16. Ovrimos 17. PosgreSQL 18. Solid 19. SQLite 20. Sybase 21. Velosis 22. Unix DBM
PHP juga mendukung untuk berkomunikasi dengan layanan lain menggunakan protokol IMAP (Internet Message Access Protocol), SNMP (Simple Network Management Protocol), POP3 (Post Office Protocol Version 3), HTTP (Hyper Text Transfer Protocol), dan lainnya yang tidak terhitung. Pemrogram juga dapat membuka soket jaringan secara mentah dan berinteraksi dengan menggunakan protokol lainnya.
Untuk OS (Operating System), PHP dapat berjalan di platform OS Windows dan platform Linux, karena PHP merupakan bahasa script server side, maka dibutuhkan sebuah web server yang berfungsi untuk memproses script PHP sebelum ditampilkan ke browser. Beberapa web server untuk PHP diantaranya : 1.
Apache
2.
Oreily Website Pro (Windows)
15
3.
Xitami
2.4.
Pemrograman Berorientasi Objek
Pemrograman berorientasi objek merupakan kelanjutan proses analisis dan desain berorientasi objek. Dalam pemrograman berorientasi objek ini komponen yang didisain dalamproses desain kemudian diimplementasikan dengan menggunkana bahasa pemrograman berorientasi objek. Syarat sebuah bahasa pemrograman bisa digolongkan sebagai berorientasi obyek adalah bila bahasa pemrograman memiliki fitur untuk mengimplementasikan ke 4 konsep berorientasi
obyek,
yaitu
abstraksi,
encapsulation,
polymorphism,
dan
inheritance.(Julius Hernawan, Analisa dan Desain Berorientasi Objek)
Pemrograman berorientasi objek berarti sebuah teknik pemrograman yang dalam proses pengembangannya menggunakan terminlogi objek, dimana setiap objek memiliki atribut beserta dengan fungsi yang dapat saling berinterksi satu dengan yang lainnya seperti hal nya objek. Jika kita memperhatikan sebuah objek makhluk hidup baik manusia ataupun binatang maka kita dapat mengenalinya dari bentuk,ukuran, beratnya kemudian dari perilakunya kita dapat melihat bahwa makhluk hidup dapat melihat, makan ,berjalan, berlari dan selain itu terdapat fungsi lainnya seperti fungsi peredaran darah yang berhubungan dengan fungsi pernapasan atau fungsi pencernaan.( Menurut Stendy B Sakur, 2010)
2.4.1. Konsep Dasar Pemrograman Berorientasi Objek
Ada 5 dari 10 rangkuman tentang konsep orientasi objek menurut Prabowo Pudjo W. yakni sebagai berikut:
16
1. Abstraksi Absraksi adalah suatu gambaran yang dari sesuatu yang real. 2. Enkapsulasi Menggambarkan cara mengorganisir informasi sehingga dapat di gunakan secara efisien dalam sebuah aplikasi. 3. Kelas dan Objek Merupakan kumpulan objek-objek yang sejenis, misalnya kelas mobil. Sedangka objek adalah abstraksi untuk entitas tunggal suatu kelas misalkan “mobil saya”. 4. Asosiasi dan link Asosiasi mendefinisikan tipe hubungan sedangkan link merupakan abstraksi dari hubungan khusus yang telah diatur dalam kelas. 5. Agregasi Adalah tipe dari asosiasi yang menyatakan bahwa salah satu objek memengang kontrol terhadap objek-objek lain.
2.4.1. Definisi kelas dan Objek
Yang akan dibahas lebih rinci oleh penulis adalah tentang objek dan kelas. Berikut beberapa contoh mengenai objek dan kelas yang penulis rangkum sebagai berikut : 1. Objek (object) Orientasi objek merupakan teknik dalam menyelesaikan masalah yang kerap muncul dalam pengembangan perangkat lunak. Teknik ini merupakan titik kliminasi dalam menemukan cara yang efektif dalam membangun sistem dan menjadi metode yang paling banyak di pakai oleh para pengembang perangkat lunak. Objek merepresentasiakan sesuatu dalam bentuk konsep seperti nasabah bank, merk dagang atau
17
sekedar listing. Objek juga memiliki atribut seperti karakter dan kadang kala disertai dengan kondisi (state). 2. Kelas Kelas adalah gambaran suatu set objek yang memiliki atribut dan behaviour yang sama. Kelas mirip dengan tipe data pada pemrograman non objek, tapi lebih konprehensif karena terdapat struktur sekaligus karakteristiknya.
Kelas
dan
objek
merupakan
jantung
dari
pemrograman objek. Whitten L dalam bukunya “Motode Design dan Analisis sistem”, mengartikan kelas sebagai satu set objek yang memiliki atribut dan perilaku yang sama. Kelas kadang-kadang disebut kelas objek (Object Class).Sebagai contoh objek yang berupa buku analisis sistem dan buku pemrograman bisa di kelompokan dalam satu kelas yaitu kelas buku. Keduanya memiliki memiliki atribut dan perilaku yang sama, seperti nomor ISBN, judul, tanggal, penerbitan, edisi dan sebagainya. Demikian juga memiliki perilaku yang sama seperti bisa di tutup dan dibuka. Dari teori-teori diatas penulis dapat penyimpulkan mengenai pemprograman objek. OOP bukanlah sekedar cara penulisan sintaks program yang berbeda, tapi OOP adalah cara pandang dalam menganalisa sistem dan permasalahan pemrograman. Dalam OOP setiap bagian dalam pemrograman adalah objek. Sebuah objek dapat mewakili satu bagian program yang akan di selesaikan. Contohnya mobil adalah objek sebuah mobil mempunya sebuah properties atau bagian lain didalamnya sepeti warna mesin, roda, dan pintu. Sedangkan kelas(class) merupakan penjelasan atau deskripsi dari objek. Di dalam kelas terdapat penjelasan tentang suatu objek termasuk properties yang dimilikinya serta kelakuan serta method yang bisa dilakukan oleh objek. Contohnya class orang, orang tentunya mempunyai tangan,kaki,mata dan telinga class orang juga harus bisa jalan dan bisa loncat, bisa berlari dan sebagainya.
18
Tingkah Objek
Atribut
Laku
Tipe Mobil
Singa
Transmisi
Berbelok
Manufacture
Mengerem
Warna
Mempercepat
Berat
Mengaung
Warna
Tidur
Lapar
Berburu
Jinak Tabel 2-1 Objek dan Class
Dari tabel diatas menjelaskan bahwa objek mobil mempunyai atribut tipe transmisi, warna, dan manufactur,mobil juga mempunyai tingkah laku berkelok, mengerem dan berakselarasi. Ini juga berlaku pada objek singa.
2.5.
Pemodelan pada Unified Modeling Language (UML)
Pemodelan adalah proses merancang piranti lunak sebelum melakukan coding, yang di wujudkan dalam bahasa pemodelan. Pemodelan dapat menggambarkan
persoalan
diagram).(Miftakhul Huda, 20)
dalam
berbagai
sudut
pandang(jenis
19
Pada Oktober 1994 Dr. James Rumbaugh yang mengembangkan Object Modelling Technique (OMT) bergabung dengan perusahaan Rational Software. Sebelumnya juga bergabung Grady Booch yang mengembangkan Object Modelling Design (OOD). Duet mereka pada Oktober 1995 menghasilkan Unified Method versi 0.8, yang menjadi cikal bakal dari UML (Unified Modelling language) sebagai bahasa pemodelan standar untuk aplikasi object oriented. UML diaplikasi untuk maksud tertentu,biasanya antaralain untuk : 1. Merancang perangkat lunak 2. Sarana komunikasi antara perangkat Lunak dengan Proses bisnis 3. Menjabarkan sistem secara rinci untuk analisa dan mencari apa yang di perlukan 4. Mendokumentasikan siste
2.5.1. Diagram-Diagram pada UML
Beberapa literatur menyebutkan bahwa UML. Menyediakan sembilan jenis diagram, yang lain menyebutkan delapan karena ada beberapa diagram yang digabung. Berikut jenis-jenis dari UML antara lain: 1. Diagram kelas 2. Diagram paket 3. Diagram Use Case 4. Diagram interaksi 5. Diagram komunikasi 6. Diagram statechart 7. Diagram Aktivitas 8. Diagram Komponen 9. Diagram Deployment
20
2.6.2. Use Case Diagram
Dalam hal ini penulis akan menggunakan Use Case.Use case diagram menggambarkan kebutuhan sistem dari sudut pandang user. Digunakan untuk menggambarkan hubungan antara internal sistem dan eksternal sistem atau hubungan antara use case dan aktor.
2.6.1. Actor
Actor adalah sesuatu (entitas) yang berhubungan dengan sistem dan berpartisipasi dalam use case. Actor menggambarkan orang, sistem atau entitas eksternal yang secara khusus membangkitkan sistem dengan input atau masukan kejadian-kejadian, atau menerima sesuatu dari sistem. Actor dilukiskan dengan peran yang mereka mainkan dalam use case, seperti Staff, Kurir dan lain-lain.
Gambar 0-1. Bentuk Actor dalam UML Dalam use case diagram terdapat satu aktor pemulai atau initiator actor yang membangkitkan rangsangan awal terhadap sistem, dan mungkin sejumlah aktor lain yang berpartisipasi atau participating actor. Akan sangat berguna untuk mengetahui siapa aktor pemulai tersebut. 2.6.2. Use Case
21
Use case yang dibuat berdasar keperluan aktor merupakan gambaran dari “apa” yang dikerjakan oleh sistem, bukan “bagaimana” sistem mengerjakannya. Use case diberi nama yang menyatakan apa hal yang dicapai dari interaksinya dengan aktor. Dalam UML use case dinotasikan dengan gambar :
Gambar0-2. BentukUse Casedalam UML
2.6.2.1.Relationship
Relasi (relationship) digambarkan sebagai bentuk garis antara dua simbol dalam use case diagram. Relasi antara actor dan use case disebut juga dengan asosiasi (association). Asosiasi ini digunakan untuk menggambarkan bagaimana hubungan antara keduanya. Relasi-relasi yang terjadi pada use case diagram bisa antara actor dengan use case atau use case dengan use case.
Gambar0-3. BentukRelationshipdalam UML Relasi antara use case dengan use case :
22
a.
Include, pemanggilan use case oleh use case lain atau untuk menggambarkan suatu use case termasuk di dalam use case lain (diharuskan). Contohnya adalah pemanggilan sebuah fungsi program. Digambarkan dengan garis lurus berpanah dengan tulisan <
>.
b.
Extend, digunakan ketika hendak menggambarkan variasi pada kondisi perilaku normal dan menggunakan lebih banyak kontrol form dan mendeklarasikan ekstension pada use case utama. Atau dengan kata lain adalah perluasan dari use case lain jika syarat atau kondisi terpenuhi. Digambarkan dengan garis berpanah dengan tulisan <<extend>>.
c.
Generalization/Inheritance, dibuat ketika ada sebuah kejadian yang lain sendiri atau perlakuan khusus dan merupakan pola berhubungan baseparent use case. Digambarkan dengan garis berpanah tertutup dari base use case ke parent use case.
2.6.3. Activity Diagram
Diagram aktivitas menggambarkan proses bisnis dan urutan aktivitasaktivitas yang mendukung penggambaran tindakan sistem baik yang bersifat kondisional maupun paralel. Tindakan kondisional dilukiskan dengan cabang (branch) dan penyatuan (merge). Sebuah branch memiliki sebuah transition masuk atau yang disebut dengan incoming transition dan beberapa transition keluar atau yang disebut dengan outgoingtransition dari branch yang berupa keputusan-keputusan. Hanya satu dari outgoing transition yang dapat diambil, maka keputusan-keputusan tersebut harus bersifat mutually exclusive. [else] digunakan sebagai keterangan singkat yang menunjukkan bahwa transition “else” tersebut harus digunakan jika semua keputusan yang ada pada branch yang salah. Sebuah merge memiliki banyak input transition dan sebuah output. Merge menandakan akhir dari suatu kondisi yang diawali dengan sebuah branch. Selain
23
branch dan merge, di dalam diagram aktivitas terdapat pula fork dan join. Fork memiliki satu incomingtransition dan beberapa outgoingtransition. Sedangkan pada join, outgoingtransition diambil atau digunakan hanya ketika semua state pada incoming transition telah menyelesaikan aktivitasnya.
2.6.4. Sequence Diagram
Diagram yang menggambarkan bagaimana obyek berinteraksi dengan obyek lainnya melalui pesan (message) yang disampaikan, disusun dalam urutan kejadian atau waktu dan secara khusus berasosiasi dengan use case.
2.6.5. Class Diagram
Class diagram merupakan bagian yang paling penting dalm analisa dan perancangan berorientasi obyek. Dalam UML diagram kelas digunakan untuk memodelkan static structure dari sistem informasi. Kelas merupakan himpunan dari obyek yang sejenis yang mempunyai atribut (attribute) dan perilaku (behaviors/method) yang sama. Atribut adalah sebuah nilai data karakteristik yang dimiliki oleh obyek sebuah kelas sedangkan method adalah perilaku atau operasi yang dikenakan oleh suatu kelas. Pada gambar kelas terdapat tiga bagiannya.
24
Gambar0-1. Bentuk Class dalam UML Diagram
kelas
menggambarkan
struktur
obyek
sistem,
dimana
diperlihatkan hubungan amtar mereka. Diagram kelas merupakan fondasi untuk component diagram dan deployment diagram.Secara garis besar terdapat 3 jenis class, Ketiga jenis class tersebut dikelompokkan berdasarkan fungsi dan karakternya masing-masing, yaitu : a. Entity Class Diagram Merupakan paket utama dari sistem yang berisi kumpulan kelas berupa entitas-entitas yang membentuk sistem dan menjadi landasan untuk menyusun basis data pada model data konseptual.
Gambar0-2. Bentuk Entity Class dalam UML b. Control Class Diagram Berisi kumpulan kelas yang menjadi kontrol program termasuk koneksi dengan basis data dan merupakan kelas perantara atau penghubung antara entity class dengan kelas antar muka pemakai (interface).
Gambar0-3. Bentuk Control Class dalam UML c. Boundary Class Diagram
25
Berisi kumpulan kelas yang menjadi interface antara pemakai (user) dengan sistem, seperti tampilan form untuk pencetakan.
Gambar0-4. Bentuk Boundary Class dalam UML
2.6.5.1.Hubungan pada Class Diagram
Dalam class diagram, terdapat berbagai macam bentuk hubungan antar class yang merepresentasikan interaksi antara satu kelas dengan kelas lainnya.Bentukbentuk hubungan antar kelas secara umum adalah sebagai berikut: a.
Association Hubungan pada asosiasi lebih kuat dari hubungan ketergantungan dalam arti suatu kelas tetap berhubungan dengan kelas lain seterusnya hubungan dapat di putus tanpa mengganggu kelas lainnya.
Gambar0-5. Bentuk Association pada Class Diagram Asosiasi bisa dibaca “menggunakan”. Sebagai contoh jika kita memiliki kelas window yang memiliki referensi terhadap gerakan kursor mouse. Bisa dikatakan, window memiliki satu cursor. Dengan cursor kita dapat merubah bentuk window
b.
Aggregation
26
Agregrasi adalah versi kuat dari asosiasi. Tidak seperti asosiasi, agregasi mengimplementasikan kepemilikan suatu kelas.
Gambar0-6. Bentuk Aggregation pada Class Diagram Agresi bisa di baca memiliki. Misal kita memiliki window yang memiliki posisi dan ukuran pada kelas rectangle, maka bisa dikatakan window memiliki rectangle walaupun rectangle bisa saja share dengan kelas lain. Tetapi window memiliki hubungan erat dengan rectangle.
c.
Composition Komposisi merupakan hubungan yang paling kuat antar kelas. Komposisi digunakan untuk mengambil seluruh bagian hubungan. Hanya boleh ada satu komposisi dalam satu waktu. Antara instance satu kelas dengan yang lain saling terkoneksi(linked).
Gambar0-7. Bentuk Composition pada Class Diagram
27
Hubungan Komposisi dibaca “bagian dari”. Misalnya, jika Window yang kita buat harus memiliki Titlebar maka kita dapat merepresentasikan suatu kelas bernama TitleBar yang merupakan bagian dari kelas Window.
d.
Generalization Generalisasimengilustrasikanhubunganantaraelemenlebihumumkeelemen yang lebihspesifik. Generalisasiadalahelemen UML untukmemodelkanbentukpewarisan.
Animal
Cat
Gambar0-8. Bentuk Generalization pada Class Diagram Sebagai contoh kita memiliki kelas bernama cat dan kelas bernama Dog, kita dapat membuat generalisasinya dari keduanya dengan nama Animal. Generalisasi biasanya di baca “adalah” jadi Cat adalah Animal. e.
Realization Realisasiadalahhubungan yang menspesifikasikankontrakantaraduaentitas, dimanasatuentitasmendefinisikankontrak yang entitas lain menjaminpelaksanaannya.
Gambar0-9. Bentuk Realization pada Class Diagram
28
2.6.6. Perancangan Berorientasi Obyek (Object Oriented Design)
Object oriented design adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi obyek-obyek sistem atau subsistem (Suhendar dan hariman, 2001:11). Perancangan berorientasi obyek merupakan proses spesifikasi yang terperinci atau pendefinisian dari kebutuhan-kebutuhan fungsional dan persiapan untuk rancang bangun implementasi yang menggambarkan bagaimana suatu sistem dibentuk. Untuk mengembangkan suatu sistem baru digunakan dengan menguraikan hubungan proses-proses dalam bentuk diagram-diagram. Perancanganberorientasiobyekbertujuanuntuk: a. Sistematika proses pendesainan b. Menghasilkan pendesainan model program c. Memberikan gambaran pemecahanmasukandenganefektif
Tahap-tahap yang dilakukan dalam perancangan berorientasi obyek adalah sebagai berikut : 2.6.6.1.Perancangan Basis Data
Merupakan tahap merancang basis data yang akan diterapkan oleh sistem. Berbeda dengan langkah-langkah yang dilakukan dalam perancangan sistem terstruktur, secara garis besar tahap dalam merancang basis data pada perancangan berorientasi obyek sebagai berikut Entity Relationship Diagram (ERD), digunakan untuk menggambarkan dan menjelaskan tentang hubungan antara penyimpanan data (data store) yang ada di
29
dalam diagram aliran data. Komponen-komponen yang digunakan antara lain sebagai berikut : a. Entity Set Pada Entity Relationship Diagram (ERD) digambarkan dengan sebuah bentuk persegi panjang. Entity set merupakan simbol utama dari ERD. Entity adalah suatu obyek yang ada dalam suatu sistem nyata maupun abstrak dimana data terseimpan dan diberi nama dengan kata benda. Entity set adalah kumpulan entity yang sejenis. Secara umum entity set dapat dikelompokkan dalam beberapa kelas, yaitu : obyek, agen dan kejadiankejadian yang ada di dalam sistem.
b. Relationship Set Pada
Entity
Relationship
Diagram
(ERD)
setiap
relationshipset
digambarkan dengan sebuah bentuk belah ketupat, dengan garis yang menghubungkan satu entity dengan entity lain yang terkait. Relationship set menunjukkan hubungan alamiah yang terjadi pada entity. Relationship set adalah kumpulan relationship yang sejenis. Pada umumnya relationship set diberi nama dengan kata kerja. c. Attribute Secara umum attribute adalah sifat atau karakteristik dari setiap entity maupun relationship yang menyediakan penjelasan detail tentang entity atau relationship tersebut, sehingga sering dikatakan adalah elemen data dari entity dan relationship. d. Cardinality Cardinality adalah tingkat hubungan antara entitas dan dilihat dari segi kejadian atau banyak tidaknya hubungan yang terjadi antara entity pada ERD. Ada tiga kemungkinan tingkat hubungan yang ada, yaitu : a.
One To One (1:1)
30
Terjadi bila suatu entitas hanya memiliki sebuah hubungan dengan entitas lainnya dan hubungan dinyatakan satu pada satu kejadian. b.
One To Many atau Many To One (1:M, M;1) Terjadi apabila sebuah entitas memiliki banyak hubungan dengan entitas lain atau sebaliknya.
c.
Many To Many (M:N) Terjadi apabila dua buah entitas memiliki banyak hubungan.
2.6.6.2.Normalisasi
Normalisasi adalah kegiatan mengelompokkan atribut-atribut sehingga terbentuk relasi berorientasi obyek dengan baik. Normalisasi juga merupakan proses untuk mengorganisasi file dengan menghilangkan group elemen atau proses menyederhanakan relationship antar elemen data di dalam tuple (record). Normalisasi banyak dilakukan dalam mengubah bentuk database dari suatu struktur jaringan menjadi struktur hubungan. Konsep dan teknik normalisasi pertaman kali diperkenalkan oleh Dr. E. F. Codd dalam bentuk struktur hubungan. Istilah data hubungan menunjukkan suatu obyek data yang mempunyai hubungan dengan elemen-elemen data lainnya, baik dalam suatu file atau dalam file yang lain. Tahapan-tahapan dalam normalisasi : a. Normalisasi bentuk pertama (First Normal Form / 1NF) Yaitu menghilangkan beberapa group elemen berulang (repeating group) agar menjadi satu harga tunggal yang berinteraksi di antara setiap baris dan kolom pada suatu tabel dikatakan sudah berada pada 1 NF jika dan hanya jika semua nilai atributnya adalah atomic (tunggal). b. Normalisasi bentuk kedua (Second Normal Form / 2NF) Yaitu
menghilangkan
beberapa
bagian
ketergantungan
fungsional
(functional dependency) atau dengan kata lain apabila sudah berada pada 1
31
NF dan setiap atribut yang bukan key, full functional dependency terhadap primary key.
c. Normalisasi bentuk ketiga (Third Normal Form / 3NF) Yaitu
menghilangkan
beberapa
bentuk
ketergantungan
transitive
(transitivedependency) atau dengan kata lain apabila sudah berada pada 2NF dan setiap atribut yang bukan key tidak tergantung pada atribut lain (tidak transitif) kecuali terhadap primary key (non transitively dependent terhadap primary key). Pada umumnya dalam tahap ini sudah memenuhi syarat untuk sebagian besar aplikasi database. d. Boyce-Codd Normal Form (BCNF) Yaitu menghilangkan terdapatnya anomaly pada relasi yang disebabkan oleh overlapping candidate key atau apabila setiap determinan adalah merupakan candidate key. e. Normalisasi bentuk keempat (Fourth Normal Form / 4NF) Yaitu menghilangkan beberapa ketergantungan pada banyak harga (multivalue dependency). f. Normalisasi bentuk kelima (Fifth Normal Form / 5NF) Yaitu join dependency anomaly yang terjadi akibat dekomposisi relasi tidak dapat dipakai kembali untuk membentuk kembali relasi semula.
2.6.6.3.Database MYSQL
Database adalah kumpulan data yang terintegrasi dengan baik, biasanya database terdiri dari beberapa tabel didalamnya. Untuk menggunakan database dibutuhkan sebuah DBMS (Database Management System) yaitu sebuah aplikasi
32
yan mampu untuk melakukan sistem database.Data Description languages (DDL) , dan Data Manipulation Languages(DML) yaitu bahasa untuk mendeskripsikan data ke Database Management System (DBMS) serta memberi fasilitas untuk perubahan dan pemeliharaan.(Miftakhul Huda,2010).
2.7. Inventory Management
Inventory atau persediaan adalah suatu aktiva yang meliputi barang-barang milik perusahaan dengan maksud untuk di jual dalam suatu proses usaha yang normal.(Softjan Assuri,1993 : 169).
Inventory Management pada perusahaan
sangatlah penting untuk memenuhi permintaan dari konsumen dan cara untuk menggunakan biaya secara efektif. Implementasi dari inventory management di setiap perusahaan sangatlah vital. Perusahaan harus menganalisa data untuk dijadikan sebuah forecastagar inventory management berjalan dengan baik. Pada saat ini berbagai industri mengimplementasikan dan memperbaharui cara untuk membuat forecasting systemdalam inventory management agar perencanaan produksi dapat berjalan secara efisien. Oleh karena itu biasanya perusahaan mempunyai sebuah tim yang khusus untuk menganalisa data forecast atau data permintaan barang dengan menggunakan sofware system. Data forecast bisa diambil dan dianalisa secara statistik, dari data tersebut bisa dijadikan acuan untuk mengelola inventory secara profesional.
2.7.1. Jenis Inventory
Berdasarkan bentuk fisiknya inventory dapat dikelompokkan kedalam lima jenis yaitu: 1. Persediaan barang baku (Raw Material)
33
2. Komponen Rakitan (part/component) 3. Bahan Pembantu (Supplies) 4. Barang dalam proses (work in process) 5. Barang jadi (Finished goods)
2.7.2
Fungsi Inventory
Invenotry memiliki fungsi tersendiri, sebagaimana tujuan dari diadakanya persediaan, berikut ini fungsi-fungsi utamanya yakni : 1. Menghilangkan atau mengurangi resiko keterlambatan pengiriman barang 2. Menyesuaikan dengan jadwal produksi 3. Menghilangkan resiko kenaikan harga 4. Menjaga persediaan bahan yang di hasilkan secara musiman 5. Mengantisipasi permintaan yang dapat diramalkan 6. Mendapat keuntungan dari Quantity Discount 7. Komitmen terhadap pelanggan
2.8. Metode Black Box
Pengujian pernagkat lunak sangat diperlukan dalam suatu system informasi dimana melakukan suatu pengujian akan ditemukan kesalahan atau error yang muncul dari sistem perangkat lunak tersebut. Dengan demikian tentunya seorang programer akan bisa mengetahui dan apasaja yang harus dikerjakan selanjutnya. Pentingnya pengujian perangkat lunak tidak dapat terlalu ditekan karena melibatkan sederetan aktivitas produksi dimana peluang terjadinya kesalahan manusia sangat besar dan arena ketidak mampuan manusia untuk melakukan komunikasi dengan sempurna maka perangkat lunak diiringi dengan aktivitas jaminan kualitas. Metode Black Box sendiri bertujuan untuk menguji
34
apakah semua fungsi sesuai dan telah berjalan semestinya sesuai dengan kebutuhan
fungsional
yang
telah
di
definisikan.
Metode
Black
Box
memungkinkan perekayasa pernagkat lunak mendapatkan serangkaian kondisi input yang sepenuhnya menggunakan semua persyaratan fungsional untuk suatu program.
Black Box dapat menemukan kesalahan dalam kategori berikut :
1. Fungsi yang tidak benar atau hilang 2. Kesalahan Interface 3. Kesalahan struktur data atau akses basis data eksternal 4. Validasi fungsional 5. Kesensitifan dalam nilai input tertentu 6. Batasan dari suatu data
2.8.1. Jenis Black Box Testing
Black Box testing memiliki 6 jenis teknik pengujian. Penulis akan merangkum ke enamnya sebagi berikut :
1. Equivalence Class Prototiping
a) Bagi domain input ke dalam beberapa kelas yang nantinya akan dijadikan sebagai kasus uji b) Kelas yang telah terbentuk disajikan sebagai kondisi input dalam kasus uji c) Kelas tersebut merupakan himpunan sebagai kondisi input dalam kasus uji d) Kondisi input bisa merupakan suatu range, harga,khusus, suatu himpunan, atau suatu boolean
35
e) Bika kondisi input berupa satu rang, maka input kasus ujinya satu valid dan dua yang invalid f) Bila kondisi input berupa suatu harga khusus, maka input kasus ujinya satu valid dan dua invalid g) Bila kondisi input berupa suatu anggota himpunan, maka input kasus ujinya satu Valid dan dua yang invalid
2. Sample Testing
a) Melibatkan sejumlah nilai yang dipilih dari datamasukan kelas ekivalensi b) Integrasikan nilai tersebut ke dalam kasus uji c) Nilai yang dipilih berdasarkan konstanta atau variabel limit testing d) Kasus uji yang memperoleh nilai batas e) Nilai batas disimpulkan dari kelas ekivalensi dengan mengambil nilai yang sama atau mendekati nilai yang membatasi nilai ekivalnesi tersebut
3. Robustness Testing
Adalah data dipilih dari luar range yang didefinisikan. Tujuan pengujian ini adalah untuk membuktikan tidak adanya kejadian yang katastropik yang dihasilkan akibat adanya keabnormalan.
4. Behavior Testing
Suatu pengujian yang hasilnya dapat diavaluasi per sub program, tidak bisa dilakukan per modul.
36
5. Requairement Testing
a) Menyusun kasus uji untuk tiap kebutuhan yang berkorelakasi dengan modul / CSU b) Tiap kasus uji harus dapat diruntut dengan kebutuhan perangkat lunak melalui matriks keturunan.
2.9.1. Metode Waterfall
Metode Waterfall sering disebut dengan life cycle (Pressman,2010). Metode ini merupakan metode pengembangan pernagkat lunak terstruktur yang paling dikenal dan banyak digunakan secara luas, tidak hanya dilingkup akademisi tetapi juga di industri. Hal ini di sebabkan Waterfall merupakan metode yang tua dan matang (Huo et.al. 2004),(Khalaf & Al-jaidah,2008), (Petersen et. Al.,2009). Oleh sebab itu, metode ini hampir selalu digunakan untuk pengembangan perangkat lunak terutama dilingkup akademisi. Metode Waterfall pertama kali diperkenalkan oleh Royce pada tahun 1970(Petersen et.al., 2009) dengan tujuh tahapan yang berurut walaupun mempunyai feed back loop antar tahapan jika diperlukan, seperti terlihat pada gambar 2-1. Metode ini mengalamai banyak perbaikan dan perubahan diantaranya adalah perbahan langkah dari 7 (tujuh) menjadi 5 (lima) tahapan ini bisa dilihat pada gambar 2-2 dan 2-3.
37
Gambar 2-1. Metode Waterfall versi Royce (2010)
Gambar 2-2. Metode Waterfall versi Pressman (2010)
Gambar 2-3. Metode Waterfall versi Sommervile (2010)
Pada waktu perancangan (design), masalah-masalah dengan persyaratan diindetifikasi. Pada waktu pengkodean(coding), dapat ditentukan masalah perancangan, walaupun juaga masalah lainya. Proses pengembangan perangkat lunak bukan merupakan model linier yang sederhana karena juga melibatkan
38
umpan balik(feedback) dari suatu tahapan ke tahapan lainnya. Dokumen yang dihasilkan pada setiap tahapan ada kemungkinan harus diubah supaya sesuai dengan perubahan yang sudah dibuat (Sommerville,2011).
Metode Waterfall merupakan contoh dari tahapan yang plan-driven. Yaitu secara prinsip pengembang harus merencanakan dan menjadwalkan semua kegiatan tahapan sebelum mulai mengembangkan perangkat lunak. Komitmen dibuat di awal tahapan sehingga membuat sulit untuk merespom ketika ada perubahan pada kebutuhan customer.