BAB II DASAR TEORI
2.1 Perangkat Lunak 2.1.1 Definisi Perangkat lunak Perangkat lunak adalah objek tertentu yang dapat di jalankan seperti sumber kode objek atau sebuah program yang lengkap. Perangkat lunak memiliki banyak bagian yang meliputi manual, referensi, tutorial, intruksi instalasi, data sampel, pelayanan pendidikan, pelayanan pendukung teknis dan sebagainya. Semua yang di hasilkan oleh projek perangkat lunak adalah produk kerja yang di sebut dengan work product [Ali Bahra bin Ladjamudin, 2006 : 5]. Produk kerja meliputi: 1. Dokumen engginering yang di pakai untuk menentukan, mengontrol, dan memantau usaha kerja. 2. Objek yang di jalankan seperti prototipe, kendali tes (test harnes) dan piranti pengembangan tujuan khusus. 3. Data yang di gunakan untuk testing, melacak proyek dan sebagainya. Perangkat lunak lebih merupakan elemen logika dan bukan merupakan elemen fisik. Ciri yang membedakan perangkat lunak dengan perangkat keras, yaitu: perangkat lunak dibangun dan dikembangkan tidak dalam bentuk klasik, perangkat lunak tidak pernah rusak, dan sebagian besar perangkat lunak dibuat
11
12
secara custom-built
serta tidak dapat dirakit dari komponen yang sudah ada
sebelumnya. Sebuah komponen perangkat lunak harus didesain dan diimplementasikan sehingga dapat dipakai lagi pada berbagai program yang berbeda. Komponen perangkat lunak dibangun dengan bahasa pemrograman yang memiliki kosakata yang terbatas, sebuah tata bahasa yang dibatasi secara ekspisit, serta aturan-aturan sintaks dan semantic yang dibentuk secara baik. 2.1.2 Kelompok Perangkat Lunak Perangkat lunak komputer merupakan serangkaian instruksi dengan aturan tertentu yang mengatur operasi perangkat keras. Perangkat lunak terdiri atas tiga kelompok, yaitu: 1. Sistem Operasi / Operating System / OS, adalah perangkat lunak yang digunakan untuk mengendalikan resource selama proses berlangsung. Fungsi sistem operasi adalah mengalokasikan memori dan pekerjaan, dan penjadwalan pekerjaan. Contoh OS adalah DOS, Unix, Novell, Windows, dan lain-lain. 2. Bahasa pemrograman / Programming Language, merupakan perangkat lunak yang digunakan sebagai alat untuk pengembangan program aplikasi. Level / generasi pemrograman komputer dikenal dengan 4GL, yaitu : a. Bahasa mesin (machine language), b. Bahasa rakitan (assembly language), c. Bahasa pemrograman tingkat tinggi (programming language), d. Aplikasi (application).
13
Bahasa pemrograman tingkat tinggi telah mengalami perkembangan yang pesat dan secara umum dapat dibagi dalam tiga kelompok, yakni sebagai berikut : a.
Konvensional.
b.
Terstruktur, mengandung teknik pemecahan masalah yang tepat dan benar, memiliki algoritma pemecahan masalah yang sederhana, standar, dan efektif, penulisan program memiliki struktur logika yang benar dan mudah difahami, serta menghindari terjadinya loncatan proses yang tidak terstruktur.
c.
OOP (object oriented programming), dapat melakukan beberapa proses pada saat bersamaan.
3.
Bahasa Query (query language), Bahasa query merupakan perangkat lunak bahasa tingkat tinggi yang dapat
digunakan untuk menampilkan informasi-informasi yang diinginkan hanya dengan menuliskan sedikit perintah saja. Contoh bahasa query yang tersedia adalah SQL ( structure query language) yang dimiliki oleh sebagian besar paket perangkat lunak pengelolaan basis data [Edhy Sutanta, 2005 : 20].
14
2.1.3 Rekayasa Perangkat Lunak Pendefinisian “Rekayasa Perangkat Lunak” telah dilakukan oleh banyak pihak, antara lain: Menurut Ian Sommarville: Rekayasa perangkat lunak berkaitan dengan teori, metode, dan kakas yang diperlukan dalam mengembangkan perangkat lunak untuk komputer. Menurut Fritz Bauer: Rekayasa perangkat lunak adalah penetapan dan penggunaan prinsip-prinsip rekayasa yang tangguh / teruji dalam upaya memperoleh perangkat lunak secara ekonomis, handal dan bekerja efisien di mesin nyata. Menurut Mynatt: Rekayasa perangkat lunak secara sederhana dinyatakan sebagai pendekatan sistematis untuk penciptaan dan pemilikan perangkat lunak. Menurut IEEE: [IEEE Standard Glossary of SE Terminology (IEEE 83)] Rekayasa perangkat lunak adalah Pendekatan yang sistematis, berdisiplin dan dapat dikuantifikasi untuk pengembangan, pengoperasian dan pemeliharaan perangkat lunak, yaitu penerapan rekayasa terhadap perangkat lunak [Bambang Hariyanto, 2004 : 8].
15
2.2 Objek Objek adalah sesuatu yang berarti dalam konteks suatu sistem. James Martin dan James Odell mengemukakan objek adalah sesuatu yang dapat dikonsepkan yang diperlukan dalam penyelesaian masalah. Objek dapat berupa konsep, abstraksi atau sesuatu dengan batas-batas tegas dan mempunyai arti untuk persoalan yang ditangani. Objek mempunyai identitas dan dapat dibedakan. Identitas berarti objek terbedakan oleh keberadaannya secara inheren dan bukan oleh properti-properti deskriftif yang dipunyainya. Beberapa objek yang diciptakan pada perangkat lunak juga dapat mempunyai korespondensi langsung dengan objek-objek dunia nyata [Bambang Hariyanto, 2004 : 195]. Objek adalah instan kelas saat jalan. Misalkan pada sistem penggajian, objek Employee yang merupakan instan waktu jalan merupakan pemodelan dari pegawai (employee) di dunia nyata. Dalam perspektif manusia, objek adalah sembarang dari hal-hal berikut : 1. Sesuatu yang tampak atau fisik. 2. Sesuatu yang dapat dikenal secara intelektual. 3. Sesuatu yang menuntun pemikiran dan aksi. Rumbaugh mendefinisikan objek sebagai konsep, abstraksi atau sesuatu dengan batas dan arti yang jelas untuk masalah yang dihadapi. Dengan demikian, terdapat dua kegunaan objek, yaitu: 1. Untuk meningkatkan pemahaman dunia nyata. 2. Menyediakan basis praktis untuk dunia komputer.
16
Pada pendekatan berorientasi objek, objek mempunyai dualitas, yaitu: 1. Objek dari pandangan pemrograman berorientasi objek (dan perancangan) adalah instan waktu jalan dan nilai yang didefinisikan oleh deskripsi statik disebut kelas. Objek adalah instan (saat jalan) dari suatu kelas. Perangkat lunak yang yang berisi kelas C dapat pada suatu saat menciptakan (lewat operasi penciptaan) instan dari kelas C. Instan tersebut adalah struktur data yang memenuhi pola yang didefinisikan oleh kelas C. 2. Objek pada pandangan analisis merupakan sesuatu atau entitas yang berperan didalam domain persoalan. Penggunaan dualitas istilah “objek” berkonsekuensi bagus memiliki keampuhan metode berorientasi objek sebagai kakas pemodelan. Dualitas ini meyediakan sarana yang lebih baik disbanding metode lain. Metodologi berorientasi objek mendukung pemodelan di pengembangan perangkat lunak (objek sebagai peran pertama di dualitas) sekaligus juga bertindak sebagai pemodelan dunia nyata (objek sebagai peran kedua di dualitas).
17
2.2.1 Konsep Dasar Pendekatan Objek Adapun konsep dasar Pendekatan Objek yaitu : 1.
Suatu teknik atau cara pendekatan baru dalam melihat permasalahan dari sistem (sistem perangkat lunak, sistem informasi, atau sistem lainnya).
2.
Pendekatan berorientasi objek akan memandang sistem yang akan dikembangkan sebagai suatu kumpulan objek yang berkorespondensi dengan objek-objek dunia nyata.
3.
Ada banyak cara untuk mengabstraksikan dan memodelkan objekobjek tersebut, mulai dari abstraksi objek, kelas, hubungan antar kelas sampai abstraksi sistem.
4.
Saat mengabstraksikan dan memodelkan objek ini, data dan prosesproses yang dipunyai oleh objek akan dienkapsulasi (dibungkus) menjadi satu kesatuan.
5.
Dalam rekayasa perangkat lunak, konsep pendekatan berorientasi objek
dapat
diterapkan
pada
tahap
analisis,
perancangan,
pemrograman, dan pengujian perangkat lunak. 6. Ada berbagai teknik yang dapat digunakan pada masing-masing tahap tersebut, dengan aturan dan alat bantu pemodelan tertentu.
18
2.2.2 Pengembangan Berorientasi Objek Pengembangan sistem berorientasi objek memerlukan keterampilan untuk analisis, perancangan, pemrograman dan pengujian berorientasi objek. Peribahasa mengatakan “ Memiliki palu tidak menjadikan seseorang jadi tukang kayu”. Demikian juga dengan teknologi berorientasi objek, mengetahui kakas pemrograman berorientasi objek canggih seperti (C++. Java) dan mengakses pustaka kaya (semacam MFC- Microsoft Foundation Class, OWL – Object Windows Library, pustaka Java) adalah perlu tapi belum mencukupi untuk dapat melakukan penciptaan sistem berorientasi objek yang berkualitas. Pemahaman pendekatan objek sangat diperlukan dalam pengembangan sistem berorientasi objek. Analisis dan perancangan berorientasi objek merupakan bagian kritis dalam pengembangan sistem berorientasi objek. Pendekatan berorientasi objek mempunyai keunggulan sebagai berikut: 1.
Pendekatan objek menuntun penggunaan ulang (reuse) komponenkomponen program sebelumnya. Penggunaan kembali menuntun sebelumya. Penggunaan kembali menuntun pengembangan perangkat lunak yang lebih cepat dan berkualitas tinggi.
2.
Perangkat lunak yang dikembangkan dengan berorientasi objek mempermudah pemeliharaan karena strukturnya secara inheren sudah decouple. Decouple dalam level micro.
3.
Sistem berorientasi objek lebih mudah diadaptasi dan diskala menjadi sistem lebih besar karena sistem-sistem lebih besar dibuat dengan
19
merakit subsistem-subsistem yang dapat diguna ulang [Bambang Hariyanto, 2004:82].
2.2.3 Karakteristik Objek Oriented Konsep object oriented memiliki karakteristik: a.
Abstraction (abstraksi) Abstraksi adalah teknik untuk menentukan ciri, sifat atau informasi penting dari suatu objek, mana yang akan ditampilkan dan mana yang akan disembunyikan. Dalam melakukan perancangan sebuah perangkat lunak, abstraksi sangat bergantung pada persfektif yang diambil oleh perancang program.
b.
Object (objek) Objek adalah elemen dasar dari konsep pemrogaman berorientasi objek. Objek merupakan abstraksi sesuatu didalam dunia nyata. Sesuatu ini bias berarti apa saja: sebuah benda, aktivitas manusia, business system, atau workflow. Sebuah objek memiliki attribute dan method. Attribute adalah data yang terkandung dalam objek, sedangkan method adalah operasi-operasi yang yang disediakan oleh objek untuk mengakses atau memodifikasi attribute yang dimilikinya [Farid Azis, 2005 : 4].
c.
Enkapsulasi (Encapsulation) Selain
dengan
menggunakan
metoda
abstraksi
dalam
menyembunyikan method pada super class, maka juga dapat dilakukan
20
dengan proses pembungkusan suatu fungsi.
Dengan kata lain,
sebenarnya proses pembungkusan itu sendiri merupakan salah satu metoda atau mekanisme untuk melakukan abstraksi.
Dalam
pemrograman tradisional, proses semacam ini sering juga disebut dengan penyembunyian informasi (information hiding).
Dalam
melakukan pembungkusan kode dan data dalam java terdapat tiga tingkatan akses data yang perlu diketahui yaitu:
Enkapsulasi
berhubungan class control yang diberlakukan terhadap class member yang ada di dalamnya d.
Pewarisan (Inheritance ) Pewarisan merupakan sarana untuk mengilangkan penulisan ulang terhadap kode yang dapat digunakan berulang kali. Penulisan berulang menyiakan banyak waktu, menimbulkan ketidak konsistenan dan meninggkatkan resiko menimbulkan kesalahan. Pewarisan merupakan bentuk berguna dalam pemodelan konseptual
bahkan
implementasi.
Pewarisan
memberi
fasilitas
pemodelan untuk menstrukturkan kelas-kelas menjadi lebih ringkas, menangkap apa yang serupa dan apa yang berbeda diantara kelas-kelas. Pewarisan atribut dan operasi berguna selama implementasi kerena memberikan sarana gunaulang sehingga pemrogram tidak perlu menulis ulang yang telah dilakukan dikelas induk. Pewarisan adalah abstraksi ampuh untuk berbagi keserupaan diantara kelas-kelas sambil tetap menjaga perbedaan-perbedaan di kelas-kelas itu. Hanya sekali
21
mendefinisikan fitur-fitur dan kemudian menambahkan rincian-rincian berikutnya dikelas-kelas turunan kelas itu. e. Polymorphism Polymorphism adalah kemampuan dapat memperoleh beberapa bentuk. Pada pengembangan berorientasi objek yang dimaksud dapat memperoleh beberapa bentuk adalah suatu variable mempunyai kemampuan pada saat jalan dicantolkan ke objek-objek yang bertipe berbeda. Semuanya itu dikendalikan dengan deklarasi statik dimana variable di deklarasikan bertipe kelas moyang. Polymorphism merupakan konsep pokok di perancangan berorientasi objek. Dua objek atau lebih dikatakan sebagai polymorphism bila objek-objek itu memiliki antarmuka-antarmuka yang identik, namun mempunyai prilaku berbeda. Polymorphism berupa satu nama tunggal (seperti deklarasi fungsi) dan dapat menyatakan objek-objek kelas-kelas berbeda terhubung dengan suatu superclass yang common diantara kelas-kelas itu. Sembarang objek yang ditandai dangan nama ini dapat menanggapi sekumpulan operasi yang common [Bambang Hariyanto, 2004 : 229].
22
2.3 Unified Modeling Language (UML) Unified Modeling Language adalah keluarga notasi grafis yang didukung oleh meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya system yang dibangun menggunakan pemrograman berorientasi objek (OO). Bahasa pemodelan ini telah ada di industri perangkat lunak sejak lama. Pemicu dibalik semuanya adalah bahwa bahasa pemrograman berada pada tingkat abstraksi yang tidak terlalu tinggi untuk memfasilitasi diskusi tentang desain. UML merupakan standar yang relatif terbuka yang dikontrol oleh Object Managemen Group (OMG), sebuah konsorsium terbuka yang terdiri dari banyak perusahaan. OMG dibentuk untuk membuat standar-standar yang mendukung interoperabilitas, khususunya interoperabilitas sistem berorientasi objek. OMG mungkin lebih dikenal dengan standar-standar CORBA (Common Object Broker Archiitecture). UML lahir dari penggabungan banyak bahasa pemodelan grafis berorientasi objek yang berkembang pesat pada akhir 1980 – an dan awal 1990 – an. Sejak hadirnya di tahun 1997, UML menghancurkan menara Babel tersebut dalam sejarah [Martin Fowler, 2005 : 1] . Diagram – diagram yang terdapal dalam UML (Unified Modelling Language) antara lain :
23
2.3.1 Class Diagram Class diagram mendeskripsikan jenis-jenis objek dalam sistem dan berbagai macam hubungan statis yang terdapat diantara mereka. Class diagram juga menunjukkan properti dan operasi sebuah class dan batasan-batasan yang terdapat dalam hubungan-hubungan
objek tersebut. UML menggunakan istilah fitur
sebagai istilah umum yang meliputi properti dan operasi sebuah class [Martin Fowler, 2005: 58]. a.
Property Properti mewakili fitur-fitur struktural dari sebuah class sebagai bayangan awal, anda dapat menganggap properti berhubungan dengan bidang-bidang dalam sebuah class. Properti merupakan sebuah konsep tunggal, tetapi tampak seperti dua notasi yang berbeda attribute dan asosiasi meskipun mereka tampak berbeda dalam sebuah diagram mereka sebenarnya dalah hal yang sama. [Martin Fowler, 2005 : 54]
b.
Atribut Notasi atribut mendeskripsikan properti dengan berbasis teks didalam kotak class diagrams tersebut [Martin Fowler, 2005 : 55].
c.
Asosiasi Cara lain untuk medeskripsikan sebuah properti adalah asosiasi. Banyak informasi yang sama dengan ditunjukan dalam sebuah atribut terdapat dalam sebuah asosiasi.
24
Asosiasi merupakan sebuah garis solid antara dua class, ditarik dari class sumber ke class target. Nama properti bergerak sampai tujuan akhir sebuah asosiasi menghubungkan dengan class yang merupakan jenis properti [Martin Fowler, 2005 : 56]. Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metoda pada saat run-time. d.
Hubungan Antar Class 1.
Asosiasi,
yaitu hubungan statis antar class. Umumnya
menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class. 2.
Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
3.
Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
25
4.
Hubungan dinamis, yaitu rangkaian pesan (message) yang dipassing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian.
e.
Multiplicity Multiplicity sebuah properti merupakan indikasi tentang berapa banyak objek yang akan mengisi sebuah properti. Umumnya multiplicity didefinisikan dengan sebuah batas yang lebih bawah dan sebuah batas atas. properti multipilcity yang sering ditemui adalah: a) 1 (sebuah pesanan hanya bias memiliki seorang pelanggan) b) 0..1 (sebuah pelanggan perusahaan dapat memiliki sebuah sales rep.) c) ..* (seorang pelanggan tidak perlu membuat sebuah dan tidak ada batas maksimal berapa jumlah
pesanan
pesanan dan tidak
ada batas maksimal berapa jumlah pesanan yang dapat dibuat oleh seorang pelanggan –nol atau lebih pesanan) [Martin Fowler, 2005 : 57].
26
2.3.2 Sequence Diagram Interaction diagram menunjukan bagaimana kelompok-kelompok objek saling berkolaborasi dalam beberapa behaviour. UML memiliki beberapa bentuk intreraction diagram dan yang paling umum digunakan adalah sequence diagram. Sebuah sequence diagram, secara khusus, menjabarkan behavior sebuah skenario tunggal. Diagram tersebut menunjukan sebuah objek contoh dan pesan-pesan yang melewati objek-objek ini di dalam use case. Diagram ini menjelaskan bagaimana objek berinteraksi dengan lainnya dengan cara mengirim dan menerima pesan. Sequence diagram memiliki dua sumbu: sumbu vertikal dan sumbu horizontal. Sumbu vertikal putus-putus merepresentasikan
“lifetime”
objek
dan
sumbu
horizontal
menunjukan
sekumpulan objek. Diagram ini juga menyatakan interaksi khusus diantara objek yang terjadi pada beberapa tempat selama fungsi tertentu dijalankan. Komunikasi diantara objek direpresentasikan dengan garis horizontal disertai dengan nama operasinya [Martin Fowler: 2005 : 81]. a. Kerangka Interaksi Masalah umum di sequence diagram adalah bagaimana menunjukkan behaviour loop dan kondisional. Interaction fragment merupakan hal baru di UML 2. Kita mungkin tidak menemukan diagram disisipkan sebelum UML 2. Umumnya, kerangka tersebut terdiri dari beberapa daerah dari sebuah sequence diagram yang dipisahkan menjadi satu atau lebih fragment. Setiap kerangka memiliki sebuah operator dan setiap fragment dapat memiliki sebuah penjaga. Untuk menunjukkan sebuah loop, gunakan
27
operand “loop” dengan sebuah fragment tunggal dan letakkan dasar interaksi pada penjaga. Untuk logika kondisional, dapat digunakan operand “alt” dan memberi sebuah kondisi pada setiap fragment. Hanya fragment yang nilai penjaganya true yang akan dieksekusi. Jika anda hanya memiliki satu daerah, itu merupakan operator “opt”.
Tabel 2.1 Operator umum untuk kerangka interaksi (Martin Fowler, 2005 : 90) Operator alt opt par loop region neg ref
sd
Arti Alternative multiple fragment, hanya fragment dengan kondisi true yang akan diekseskusi Optional, fragment dieksekusi jika kondisi yang ada bernilai true Parallel, setiap fragment berjalan parallel Loop, fragment dapat mengeksekusi berulang kali dan penjaga menunjukkan dasar iterasi Critical region, fragment hanya memiliki satu alur yang mengeksekusi sekaligus Negative, fragment menunjukkan sebuah interaksi invalid Reference, mengacu pada sebuah interaksi yang dibuat didiagram lain. Kerangkan dibuat untuk mencakup garis alur dan interaksi tersebut. Anda dapat mendefinisikan parameter dan nilai kembali. Sequence diagram, digunakan untuk melingkupi seluruh sequence diagram, jika anda menginginkan.
28
Gambar 2.1 Contoh penggunaan kerangka interaksi (Martin Fowler, 2005 : 89) b. Membuat dan menghapus partisipan Sequence diagram menunjukkan beberapa notasi tambahan untuk membuat dan menghapus partisipan. Untuk membuat partisipan, anda tinggal membuat sebuah sebuah tanda panah langsung ke kotak partisipan.
Disini,
nama pesan
merupakan
pilihan
jika anda
menggunakan sebuah konstruktor, tetapi saya biasanya menandainya dengan kata “baru” dalam semua kasus. Jika partisipan tersebut langsung melakukan sesuatu segera setelah dibentuk, seperti query command, anda mulai sebuah aktivasi dibelakang kotak partisipan. Penghapusan sebuah partisipan ditandai dengan tanda X besar. Garis pesan melewati X menunjukkan satu partisipan mengahapus dirinya sendiri.
29
Gambar 2.2 Pembuatan dan penghapusan partisipan (Martin Fowler, 2005: 87)
Didalam lingkungan tempat pembuangan, anda jangan langsung menghapus objek, tetapi gunakanlah X untuk menunjukkan bahwa sebuah objek sudah tidak diperlukan dan siap untuk dibuang. Ini juga berlaku pada operasi – operasi penutup, menunjukkan bahwa objek sudah tidak dapat digunakan lagi [Martin Fowler, 2005 : 86 - 87]
Gambar 2.3 Partisipan (Martin Fowler, 2005 : 218)
30
2.3.3 Activity Diagram Activity diagram adalah teknik untuk menggambarkan logika prosedural, proses bisnis, dan jalur kerja. Dalam beberpa hal, diagram ini memainkan peran mirip sebuah diagram alir, tetapi perbedaan prinsip antara diagram ini mendukung behaviour parallel. Activity diagram memungkinkan siapapun yang melakukan proses untuk memilih urutan dalam melakukannya. Dengan kata lain diagram hanya menyebutkan aturan-aturan rangkaian dasar yang harus kita ikuti. Hal yang ini penting untuk pemodelan bisnis karena proses-proses sering muncul secara parallel, ini juga berguna pada algoritma yang bersamaan, dimana urutan-urutan independent dapat melakukan hal-hal secara parallel.
Jika anda memiliki
paralelismi, maka anda membutuhkan sinkronisasi. Misalkan, kita tidak bisa menutup pesanan sebelum diantar dan dibayar. Kita menampilkannya dengan join sebelum aksi menutup pesanan. Dengan sebuah join, aliran keluar dilakukan hanya jika seluruh aliran tersebut telah mencapai join. Jadi anda hanya dapat menutup pesanan tersebut hanya jika anda telah menerima pembayaran dan mengantarkan barang [Martin Fowler, 2005 : 163]. a.
Partisi Activity diagram memberi tahu anda tentang yang terjadi, tetapi diagram ini tidak memberi tahu anda tentang siapa yang melakukan apa. Jika anda ingin menunjukkan siapa melakukan apa, anda dapat memisahkan activity diagram kedalam partisi-partisi yang menampilkan aksi mana yang yang dilakukan oleh sebuah class atau organisasi.
31
b.
Spesifikasi Join Secara default, join melakukan eksekusi pada aliran keluarnya pada saat semua aliran inputnya telah sampai. (Dalam bahasan yang lebih formal, join mengeluarkan sebuah token pada aliran keluarnya jika token-token sampai pada setiap aliran inputnya). Dalam beberapa kasus, khususnya saat anda memiliki sebuah aliran dengan banyak token, akan lebih membantu jika memiliki sebuah aturan yang lebih rinci [Martin Fowler, 2005 : 177].
Gambar 2.4 Activity Diagram Sederhana (Martin Fowler, 2005 : 164)
32
2.3.4 Use case Diagram Use case adalah teknik untuk merekam persyaratan fungsional sebuah sistem. Use case mendeskripsiskan interaksi antara para pengguna sistem dengan sistem itu sendiri, dengan memberi sebuah narasi tentang bagaimana sebuah sistem tersebut digunakan. Dalam bahasa use case, para pengguna disebut sebagai aktor. Aktor merupakan sebuah peran yang dimainkan seorang pengguna dalam kaitannya dengan sistem. Aktor dapat meliputi pelanggan, petugas layanan konsumen, manajer penjualan,dan analisis produk. Seorang aktor dapat menggunakan banyak use case, sebaliknya use case juga dapat digunakan banyak aktor. Setiap langkah dalam use case adalah sebuah elemen dalam interakasi antara aktor dan sistem. Setiap langkah harus berupa pernyataan sederhana dan dengan jelas menunjukan siapa yang menjalankan langkah tersebut. Langkah tersebut harus menunjukan tujuan aktor. Bukan mekanisme yang harus dilakukan aktor. Konsekuensinya, anda tidak menjabarkan antarmuka pengguna dalam use case [Martin Fowler, 2005 : 141]. Hubungan yang terdapat dalam use case yaitu : a. Bentuk
<
>
adalah
stereotype
ketergantungan.
Hal
ini
menunjukkan bahwa jalur sebuah use case dimasukkan ke dalam use case lain. Khususnya, bentuk ini muncul saat beberapa use case berbagai langkah-langkah
yang
sama. Use case
yang
dimasukkan dapat
memfaktorkan behavior umum. Ini menggantikan penggunaan <<uses>>.
33
b. Generalisasi use case menunjukkan bahwa satu use case merupakan variasi terhadap lainnya. c. Bentuk <<extend>> adalah stereotype sebuah ketergantungan. Hal ini member bentuk perluasan yang lebih terkontrol dari pada hubungan generalisasi. Disini,use case dasar menyatakan sejumlah titik perluasan. Use case yang diperluas dapat mempengaruhi behavior hanya pada titiktitik perluasa tersebut. Jadi, jika anda member produk secara online, anda mungkin memilik use case untuk membeli sebuah produk dengan titik perluasan untuk merekam informasi pengiriman barang dan merekam informasi pembayaran. Use case tersebut kemudian dapat diperluas bagi konsumen sehingga informasi ini didapat dengan cara lain [Martin Fowler, 2005 : 207].
Gambar 2.5 Contoh Use Case Diagram (Martin Fowler, 2005 : 147)
34
2.3.5 Deployment Diagram Deployment / physical diagram menggambarkan detail bagaimana komponen di-deploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal. Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini. Hal utama dalam diagram tersebut adalah pusat-pusat yang dihubungkan oleh jalur komunikasi. Sebuah pusat adalah sebuah titik yang dapat mengumpulkan beberapa perangkat lunak. Pusat-pusat mempunyai dua bentuk. Sebuah alat adalah perangkat keras, alat ini dapat berupa sebuah computer atau perangkat keras sederhana yang terhubung pada sebuah sistem. Sebuah lingkungan eksekusi merupakan perangkat lunak yang mengumpulkan atau terdiri dari perangkat lunak lain., contohnya adalah sebuah sostem operasi atau sebuah process kontainner. Titik pusat terdiri dari artifak, yang merupakan manifestasi fisik dari perangkat lunak: biasanya file. File-file ini dapat berupa file yang dieksekusi (sperti file .exe, binary, DLL, file JAR, assembly, atau script ), atau file data, file konfigurasi, dokumen HTML, dan sebagainya. Dengan mendaftar artifak dalam pusat menunjukkan bahwa artifak tersebut disebar oleh pusat dalam sistem yang sedang berjalan.
35
Anda dapat menampilkan artifak-artifak tersebut baik sebagai kotak class atau dengan mendaftar nama mereka
dalam sebuah pusat. Jika anda
menampilkannya sebagai kotak-kotak . class, anda dapat menambah sebuah icon <<artifact>>. Anda dapat member label pusat atau artifak dengan label nilai untuk menunjukkan berbagai macam informasi menarik tentang pusat, seperti vendor, sistem operasi, lokasi atau hal lain yang menyenangkan anda [Martin Fowler, 2005 : 137 - 138].
Gambar 2.6 Contoh Deployment Diagram (Martin Fowler, 2005 : 138).
36
2.4 Jaringan Komputer Jaringan komputer merupakan gabungan antara teknologi komputer dan teknologi komunikasi. Gabungan teknologi ini melahirkan pengolahan data yang dapat didistribusikan mencakup pemakaian database, software aplikasi dan peralatan hardware secara bersamaan, untuk membantu proses otomatisasi perkantoran dan peningkatan kearah efisiensi [Dede Sopandi, 2005 : 5]. Jaringan komputer adalah ”interkoneksi” antara 2 komputer autonomous atau lebih, yang terhubung dengan media transmisi kabel atau tanpa kabel (wireless). Autonomous adalah apabila sebuah komputer tidak melakukan kontrol terhadap komputer lain dengan akses penuh, sehingga dapat membuat komputer lain, restart, shutdowns, kehilangan file atau kerusakan sistem. Dalam defenisi networking yang lain autonomous dijelaskan sebagai jaringan yang independent dengan manajemen sistem sendiri (punya admin sendiri), memiliki topologi jaringan, hardware dan software sendiri, dan dikoneksikan dengan jaringan autonomous yang lain. (Internet merupakan contoh kumpulan jaringan autonomous yang sangat besar.) Dua unit komputer dikatakan terkoneksi apabila keduanya bisa saling bertukar data/informasi, berbagi resource yang dimiliki, seperti: file, printer, media penyimpanan (hardisk, floppy disk, cd-rom, flash disk, dll). Data yang berupa teks, audio maupun video, bergerak melalui media kabel atau tanpa kabel (wireless) sehingga memungkinkan pengguna komputer dalam jaringan komputer dapat saling bertukar
file/data, mencetak pada printer yang sama dan
menggunakan hardware/software yang terhubung dalam jaringan bersama-sama.
37
Didalam jaringan komputer dikenal sistem koneksi antar node
(komputer).
2.4.1 Peer to peer Peer artinya rekan sekerja. Peer-to-peer network adalah jaringan komputer yang terdiri dari beberapa komputer, terhubung langsung dengan kabel crossover atau wireless atau juga dengan perantara hub/switch. Komputer pada jaringan peer to peer ini biasanya berjumlah sedikit dengan 12 printer. Untuk penggunaan khusus, seperti laboratorium komputer, riset dan beberapa hal lain, maka model peer to peer ini bisa saja dikembangkan untuk koneksi lebih dari 10 hingga 100 komputer. Peer to peer adalah suatu model dimana tiap PC dapat memakai resource pada PC lain atau memberikan resourcenya untuk dipakai PC lain, Tidak ada yang bertindak sebagai server yang mengatur sistem komunikasi dan penggunaan resource komputer yang terdapat dijaringan, dengan kata lain setiap komputer dapat berfungsi sebagai client maupun server pada periode yang sama. Misalnya terdapat beberapa unit komputer dalam satu departemen, diberi nama group sesuai dengan departemen yang bersangkutan. Masing-masing komputer diberi alamat IP dari satu kelas IP yang sama agar bisa saling sharing untuk bertukar data atau resource yang dimiliki komputer masing-masing, seperti printer, cdrom, file dan lain-lain.
38
Gambar 2.7 In a peer-to-peer system there are no fixed clients and servers (Andrew S Tanembaum, 2003) 2.4.2 Client Server Client Server merupakan model jaringan yang menggunakan satu atau beberapa komputer sebagai server yang memberikan resource-nya kepada komputer lain (client) dalam jaringan, server akan mengatur mekanisme akses resource yang boleh digunakan, serta mekanisme komunikasi antar node dalam jaringan. Selain pada jaringan lokal, sistem ini bisa juga diterapkan dengan teknologi internet. Dimana ada suatu unit komputer) berfungsi sebagai server yang hanya memberikan pelayanan bagi komputer lain, dan client yang juga hanya meminta layanan dari server. Akses dilakukan secara transparan dari client dengan melakukan login terlebih dulu ke server yang dituju. Client hanya bisa menggunakan resource yang disediakan server sesuai dengan otoritas yang diberikan oleh administrator. Aplikasi yang dijalankan pada sisi client, bisa saja merupakan resource yang tersedia di server. namun hanya
39
bisa dijalankan setelah terkoneksi ke server. Pada implementasi software splikasi yang di-install disisi client berbeda dengan yang digunakan di server. Jenis layanan Client-Server antara lain : 1.
File Server
: memberikan layanan fungsi pengelolaan file.
2.
Print Server
: memberikan layanan fungsi pencetakan.
3.
Database Server : proses-proses fungsional mengenai database dijalankan pada mesin ini dan stasiun lain dapat minta pelayanan.
4.
DIP (Document Information Processing) : memberikan pelayanan fungsi penyimpanan, manajemen dan pengambilan data.
Gambar 2.8 Model Client-Server dengan sebuah Server yang berfungsi umum
40
2.5 Unified Process Unfied Process terdiri dari empat tahap yang berbeda. Empat fase fokus pada aspek yang berbeda dari proses desain. Empat fase
tersebut yaitu : Insepsi,
Elaborasi, Konstruksi dan Transisi.
Gambar 2.9 Fase Unified Process (John Hunt, 2003 : 31) 1. Inseption Tahap ini mendefinisikan ruang lingkup proyek dan mengembangkan kasus bisnis untuk sistem. juga menetapkan kelayakan dari sistem yang akan dibangun. Berbagai prototipe dapat dikembangkan selama fase ini untuk memastikan kelayakan proposal. 2. Elaboration Tahap ini menangkap kebutuhan fungsional dari sistem. juga harus menentukan persyaratan non-fungsional untuk memastikan bahwa mereka diperhitungkan. Tugas utama lainnya untuk tahap ini adalah penciptaan arsitektur yang akan digunakan di seluruh sisa dari tahapan Unified Process. 3. Construction Fase ini berkonsentrasi pada menyelesaikan analisis sistem, melakukan sebagian besar desain dan diimplementasikan sistem. Yaitu, pada dasarnya membangun produk.
41
4. Transition Tahap transisi memindahkan sistem ke lingkungan pengguna. ini melibatkan aktivitas seperti menyebarkan sistem dan merawatnya.
2.5.1 Disiplin Dalam Unified Process Lima disiplin dalam Unified Process adalah requirement, analisa, desain, implementasi, dan test. Perhatikan bahwa desain, implementasi dan disiplin testing bagian yang rusak. Hal ini untuk menunjukkan bahwa unsur-unsur dari setiap disiplin dapat dilakukan lebih awal dari bagian-bagian inti dari disiplin. Pada pelaksanaan, khususnya desain dan pengujian arsitektur akan terjadi awal (dalam fase elaborasi). Sehingga masing-masing bagian dari desain, implementasi dan disiplin uji harus terjadi saat ini.
Gambar 2. 10 Disciplines Versus Phase (John Hunt, 2003 : 33)
42
Berdasarkan gambar diatas, penjabaran disiplin dalam Unified Process yaitu: 1. Requirements Disiplin ini berfokus pada kegiatan yang memungkinkan prasyarat fungsional dan non-fungsional dari sistem untuk diidentifikasi. Produk utama disiplin ini adalah model use case. 2. Analisys Tujuan disiplin ini adalah untuk merestrukturisasi kebutuhan yang diidentifikasi dalam disiplin requirement atau dalam kontek perangkat lunak yang akan dibangun dan bukan dalam kontek pengguna. Hal ini dapat dilihat sebagai jalan pertama pada tahapan desain. Bagaimanapun, hal ini bertujuan untuk melewatkan titik apa yang pada disiplin ini hendak dicapai. 3. Design Disiplin desain menghasilkan rancangan rinci yang akan dilaksanakan pada disiplin berikutnya. 4. Implementation Disiplin ini merupakan pengkodean desain dalam bahasa pemrograman yang
sesuai
dan
kompilasi,
pengemasan,
penyebaran
dan
mendokumentasikan perangkat lunak. 5. Test Disiplin uji menggambarkan kegiatan yang dilakukan untuk menguji perangkat lunak untuk memastikan bahwa (perangkat lunak yang dibangun) memenuhi kebutuhan user, handal dll [John Hunt, 2003 : 33].
43
2.5.2 Penerapan Unified Process Pada penerapan Unified Process untuk sebuah proyek dunia nyata, anda akan melihat bahwa itu adalah kerangka. Ini berarti bahwa tidak ada proses universal yang selalu akan berlaku secara keseluruhan. Sebaliknya, Unified Process adalah desain yang bersifat fleksibilitas dan extensibilitas. Itu memungkinkan berbagai strategi siklus hidup dan juga memungkinkan pemilihan artefak apa yang harus diproduksi. Mendefinisikan aktifitas apa yang harus dikerjakan. Kapan dan dimana pekerja harus melakukan kegiatan tersebut. Sehingga ada kemungkinan untuk menanggalkan elemen-elemen yang tidak sesuai proyek ini. Misalnya, Anda mungkin meninggalkan deployment diagram jika Anda hanya men-deploy pada satu procesor, atau jika Anda bekerja dengan system batch pengolahan berorientasi (tertentu), anda dapat memutuskan untuk mengabaikan beberapa elemen dinamis yang dihasilkan, seperti diagram statechart. Pada gilirannya, kita dapat menambahkan elemen tambahan jika memang diperlukan. Misalnya, memutuskan untuk menggabungkan beberapa ekstensi realtime ke dalam UML, dan beberapa kegiatan untuk mendukung hal tersebut. Anda mungkin memutuskan untuk menggabungkan pandangan keamanan sistem anda. Anda mungkin juga merasa perlu untuk memasukkan proses tambahan. Misalnya, anda bisa memasukkan kegiatan tambahan untuk membantu mengidentifikasi set awal kelas, atribut dan hubungan. pada kenyataannya, anda bahkan dapat memutuskan untuk meninggalkan seluruh tahapan, iterasi dan disiplin yang sesuai: misalnya, sebuah sistem yang sederhana mungkin tidak membutuhkan model analisis eksplisit [John Hunt, 2003 : 35].
44
Workflow
Activities
Requirement
Menemukan aktor dan use case, memprioritaskan kasus penggunaan, kasus detail gunakan, antarmuka pengguna prototipe, struktur model use case
Analisys
Analisis arsitektur, menganalisa use case, mengeksplorasi kelas, menemukan paket
Design
Desain arsitektur, trace use case, memperhalus dan desain kelas, paket desain
Implementation
Pelaksanaan arsitektur, menerapkan kelas dan interface, mengimplementasikan subsistem, melakukan unit testing, mengintegrasikan
Test
Merencanakan dan merancang tes, melaksanakan uji, melakukan integrasi dan tes sistem, mengevaluasi tes
Gambar 2.11 Workflow dan aktifitas pada unified process(John Hunt, 2003 :35)
2.5.3 Tahapan dalam menemukan aktor Dalam menemukan aktor pada sebuah sistem, dibutuhkan sebuah pernyataan yang dapat membantu developer dalam mengidentifikasi aktor. Pertanyaan yang dapat membantu dalam menemukan aktor antara lain: 1.
Siapa yang memiliki ketertarikan atas sistem?
2.
Siapa yang menyukai untuk menggunakan sistem?
45
3.
Siapa yang memiliki keuntungan atas sistem?
4.
Siapa yang men-supply informasi terhadap sistem?
5.
Siapa yang melakukan maintenance information pada sistem?
6.
Siapa yang menerima informasi dari sistem?
7.
Di organisasi mana sistem akan digunakan?
Dengan menjawab pertanyaan diatas dapat membantu untuk melakukan identifikasi atas aktor yang berinteraksi dengan sistem [John Hunt, 2003 : 72]. 2.6
Basis Data Basis data (database) dapat didefinisikan dalam sejumlah sudut pandang
yaitu: -
Mendefinisikan basis data sebagai kumpulan informasi bermanfaat yang diorganisasikan ke dalam tata cara khusus.
-
Basis data adalah sistem berkas terpadu yang dirancang terutama untuk meminimalkan pengulangan data.
-
Basis data dapat dianggap sebagai tempat untuk sekumpulan berkas data terkomputerisasi [Abdul Kadir, 2003].
Secara
sederhana,
basis
data
dapat
diungkapkan
sebagai
suatu
pengorganisasian data dengan bantuan komputer yang memungkinkan data dapat diakses dengan mudah dan cepat. Dalam hal ini, pengertian akses dapat mencakup pemerolehan data, maupun pemanipulasian data, seperti menambah dan menghapus data. Manajemen modern mengikutsertakan informasi sebagai sumber daya manusia, uang, mesin, dan material. Informasi adalah suatu bentuk penyajian data yang melalui mekanisme pemrosesan, yang berguna bagi pihak tertentu,
46
misalnya manajer. Bagi pihak manajemen, informasi merupakan bahan untuk pengambilan keputusan [Abdul Qodir,2004]. 2.6.1 Structured Query Language (SQL) SQL merupakan kependekan dari Structured Query Language. SQL merupakan bahasa standar yang digunakan untuk melakukan manipulasi data seperti penyimpanan data kesuatu tabel
kemudian mengubahnya atau
menghapusnya atau hanya sekedar menampilkannya kembali. Standar SQL mula-mula di definisikan oleh ISO (international standard organization) dan ANSI (the american national standards institute), yang di kenal dengan sebutan SQL86. Seiring degan perjalanan waktu, sejumlah standard telah di tetapkan. SQL sebenarntya tidak hanya untuk melakukan query, secara prinsip perintah-perintah SQL (biasa disebut pernyataan ) dapat dibagi menjadi tiga kelompok, yaitu : 1. DDL (Data Definition Language) atau bahasa pendefinisi data, 2. DML (Data Manipulation Language) atau bahasa pemanipulasi data, 3. DCL (Data Control Language) atau bahasa pengendali data. DDL adalah perintah-perintah yang berkaitan dengan penciptaan atau penghapusan objek seperti tabel dan indeks dalam basis data. Versi ANSI mencakup CREATE TABLE, CREATE INDEX. ALTER TABLE, DROP TABLE, DROP VIEW dan DROP INDEX. Beberapa sistem basis data menambahkan pernyataan DDL seperti CREATE DATABASE dan CREATE SCHEMA.
47
DML mencakupi perintah-perintah yang digunakan untuk memanipulasi data. Misalnya, untuk menambahkan data (INSERT), memperoleh data (SELECT), megubah data (UPDATE) dan menghapus data (DELETE). DCL adalah kelompok perintah yang dipakai untuk melakukan otorisasi terhadapa pengaksesan data dan pengalokasian ruang. Misalnya, suatu data bisa diakses si A, tetapi tidak bisa diakses oleh si B. Termasuk dalam kategori DCL yaitu pernyataan-pernyataan GRANT, REVOKE, COMMIT, dan ROLLBACK [Abdul Qadir 2002 : 16]. 2.7
Teknologi Barcode
2.7.1 Pengertian Barcode Mengutip wikipedia, barcode atau dalam bahasa indonesia sering disebut kode batang adalah an-optical machine-readable representation of data. Kode berbentuk garis dan berwarna hitam putih tersebut mengandung suatu kumpulan kombinasi yang berlainan ukuran, dan disusun sedemikian rupa menurut aturan tertentu sehingga dapat diterjemahkan oleh mesin pembacanya. Kode didalam barcode tersebut mengumpulkan data dalam dalam simbologi linear satu dimensi atau ada juga yang memiliki bentuk persegi, titik, heksagon dan bentuk geometri lainnya didalam simbologi dua dimensi. Selanjutnya karena barcode biasanya menempel pada produk tertentu, sudah barang tentu merepresentasikan data yang terkait dengan produk tempat barcode tersebut berada [Teguh Wahyono, 2010 : 2].
48
2.7.2 Sejarah Barcode Sejarah barcode diawali pada tahun 1948, ketika Bernard Silver (1924 1963), salah seorang mahasiswa Drexel Institute of Technology di Philadelphia (Amerika Serikat) melakukan penelitian tentang sistem pembacaan informasi pada produk makanan lokal di kota tersebut. Ia melakukan penelitian bersama sahabatnya yang bernama Norman Joseph Woodland. Pada perkembangannya, Silver dan Woodland akhirnya mengusulkan untuk menggunakan sebuah kode dengan tinta yang sensitif terhadap sinar ultraviolet. Prototype tersebut ditolak karena tidak stabil dan mahal. Selanjutnya tanggal akhir tahun 1949 Woodland dan Silver berhasil membuat prototype kode batang yang lebih baik dan tepatnya pada tanggal 7 oktober 1952, mereka mendapat hak paten dari hasil penelitian mereka. Pada tahun 1970, untuk pertama kalinya kode batang temuan keduanya dipakai secara komersial, yaitu pada saat Logicon Inc membuat Universal Grocery Product Identification Standard (UGPIC). Sedangkan perusahaan pertama yang memproduksi perlengkapan kode batang untuk perdagangan retail adalah Monach Marking. Selanjutnya sejak tahun 1973, Uniform Code Council, sebuah organisasi industri membuat Uniform Product Code (UPC) yang menyediakan suatu standar barcode yang dapat digunakan oleh toko-toko retail. Beberapa barcode standar telah dikembangkan selama beberapa tahun, yang biasa disebut dengan simbology. Simbology yang digunakan tentunya berbeda untuk aplikasi berbeda. Hal ini misalnya ketika anda menggunakan huruf miring atau tebal yang
49
dimaksudkan untuk memperjelas makna tertentu yang akan dibuat sebagai barcode. Simbology yang berbeda digunakan untuk aplikasi yang berbeda pula. Jadi ketika anda mencatak barcode, anda akan bisa membaca makna sandinya selama menggunakan sandi yang sama, dalam spesifikasi yang telah diatur dalam standar barcode [Teguh Wahyono, 2010 : 4]. 2.7.3 Tipe Barcode Seperti namanya, barcode digambarkan dalam bentuk baris hitam tebal dan tipis yang disusun berderet sejajar horisontal. Satu unit barcode sebenarnya terdiri dari salah satu warna hitam atau putih. Sebuah unit warna hitam ditunjukkan dengan sebuah bar, sedangkan yang berwarna putih ditunjukan dengan sebuah space (spasi). Cara lain penulisan barcode adalah dengan bilangan ”1” untuk menyatakan bar dan bilangan ”0” untuk menyatakan spasi. Tetapi meski demikian, secara umum barcode terbagi menjadi dua kelompok besar, yaitu barcode satu dimensi dan barcode dua dimensi [Teguh Wahyono, 2010 : 6]. 2.7.3.1 Barcode Satu Dimensi Barcode ini dinamakan satu dimensi atau disebut juga linear barcode, karena kodenya hanya terdiri dari baris-baris. Berikut dibawah ini jenis – jenis simbology untuk tipe barcode satu dimensi.
50
Tabel 2.2 Jenis Barcode Satu Dimensi (Teguh Wahyono, 2010 : 7) Symbology
Pengguna
U.P.C
Worldwide retail, GS1 approved
Codabar
Old format used in libraries, blood banks, airbills
Code 25 – Non-Interleaved 2 0f 5
Industrial (NO)
Code 25 – Interleaved 2 0f 5
Wholesale, Libraries (NO)
Code 39
Various
Code 93
Various
Code 128
Various
Code 11
Telephones
CPC Binary
Post Office
DUN 14
Various
EAN 2
Addon Code (magazines),
GS1
Approved EAN 5
Addon
Code
(Books),
GS1
Approved EAN 8, EAN 13
Worldwide Retail, GS1 approved
ITF-14
Non-retail packaging levels, GS1 approved
Latent image barcode
Color print film
Pharmacode
Pharmaceutical Packaging
Plessey
Catalogs, store shelves, inventory
PLANET
United States Postal Service
POSTNET
United States Postal Service
Intelligent Mail Barcode
United States Postal Service
MSI
Used for warehouse shelves and inventory
PostBar
Canadian Post Office
RM4SCC / KIX
Royal Mail / Royal TPG Post
51
Salah satu dari simbologi barcode diatas adalah tipe Code 39 (code 3 of 9), merupakan barcode alphanumerik (full ASCII) yang dapat mewakili abjad (A-Z) dan angka (0-9), serta beberapa karakter lain, seperti $, /, +, %, titik dan spasi. Jumlah digit maksimal 16. Kode seperti ini biasanya cock untuk barcode buku ataupun barcode anggota perpustakaan. Aplikasi lain misalnya untuk inventory, asset tracking dan digunakan pada tanda pengenal identitas. Barcode tersebut memiliki panjang baris yang bervariasi [Teguh Wahyono, 2010]. Simbologi yang lain adalah EAN 13, simbologi model ini dikeluarkan EAN untuk identitas suatu produk. Standarisasi EAN menggunakan 3 digit pertama adalah untuk kode negara asal produk, 4 digit berikutnya adalah Manufacture Number, 5 digit berikutnya adalah Product Number (kode produk atau atau nomor urut produk) dan 1 digit terakhir adalah check digit atau angka untuk melakukan test validasi barcode. Kode EAN juga sering digunakan di Indonesia untuk identifikasi produk nasional dengan kode 899 untuk 3 digit pertama [Teguh Wahyono, 2010 : 8]. 2.7.3.2 Barcode Dua Dimensi Barcode jenis ini disebut barcode dua dimensi karena tidak hanya terbuat dari garis-garis saja, tetapi lebih mendekati bentuk gambar tertentu. Dengan menggunaan barcode dua dimensi, informasi atau data yang besar bisa disimpan dalam suatu ruang yang lebih kecil.
52
Tabel 2.3 Barcode Dua Dimensi (Wahyono Teguh, 2010 : 11) Symbology
.
Pengembang / Penemu
3-DI
Lynn Ltd.
ArrayTag
ArrayTech Systems.
Aztec Code
Hand Held Product
Chromatic Alphabet
C.C Elian
Code 49
Intermec Corp
Compact Matrix Code
Syscan Group, Inc
CP Code
CP Tron, Inc
CyberCode
Sony Corp.
DataGlyphs
Xerox PARC
Datamatrix
CiMatrix / Siemens
DatastripCode
Datatrip Inc.
GridMatrixCode
Syscan Group, Inc
High Capacity Color Barcode
Microsoft Corporation.
INTACTA CODE
INTACTA Technologies, Inc
InterCode
Iconlab, Inc
MaxiCode
United Parcel Service
mCode
NextCode Corporation
MiniCode
From Owniplanar, Inc
Optar
Twilight Labs
PDF417
Symbol Technologies
PDMark
Ardaco
QuickMark Code
SimpleAct Inc
SmartCode
Infolmaging Technologies.
SnowFlake Code
Marconi Data Systems, Inc
53