BAB 3
Tools Untuk Extreme
Programming
3.1. Netbeans
NetBeans merupakan sebuah proyek kode terbuka yang sukses dengan pengguna
yang sangat luas, komunitasyang terus tumbuh, dan memiliki hampir 100 mitra
(dan terus bertambah!). Sun Microsystems mendirikanproyek kode terbuka NetBeans
pada bulan Juni 2000 dan terus menjadi sponsor utama. Saat ini terdapat dua
produk : NetBeans IDE dan NetBeans Platform. The NetBeans IDE adalah sebuah
lingkungan pengembangan- sebuah kakas untuk pemrogram menulis, mengompilasi,
mencari kesalahan dan menyebarkan program. Netbeans IDE ditulis dalam Java -
namun dapat mendukung bahasa pemrograman lain. Terdapat banyak modul untuk
memperluas Netbeans IDE. Netbeans IDE adalah sebuah produk bebas dengan tanpa
batasan bagaimana digunakan. Tersedia juga NetBeans Platform; sebuah fondasi yang
modular dan dapat diperluas yang dapat digunakan sebagai perangkat lunak dasar
untuk membuat aplikasi desktop yang besar. Mitra ISVmenyediakan plug-in
bernilai tambah yang dapat dengan mudah diintegrasikan ke dalam Platform dan
dapatjuga digunakan untuk membuat kakas dan solusi sendiri. Kedua produk adalah
kode terbuka (open source) dan bebas (free) untuk penggunaan komersial dan non
komersial. Kode sumber tersedia untuk guna ulang dengan lisensi Common
Development and Distribution License (CDDL) dan juga ada forum yang sangat
terbuka bagi semua orang yang ingin mengetahui lebih dalam tentang netbeans itu
sendiri. Forum terseebut beralamatkan netbeans.org. didalam forum tersbut juga
terdapat fasilitas unduhan netbeans versi teranyar. Belajar tentang oarang-ornag
yang terlibat dalam suatu proyek dan masi banyak lagi.apabila anda ingin
mengunduh netbeans versi terbaru dapat diunduh alamat
http://netbeans.org/downloads/
3.1.1. Sejarah Netbans.
NetBeans dimulai pada tahun 1996 sebagai Xel (kata bermain pada Delphi), Java
IDE proyek mahasiswa di bawah bimbingan Fakultas Matematika dan Fisika di
Charles University di Praha . Pada tahun 1997 Stan¥k Romawi membentuk
perusahaan sekitar proyek tersebut dan menghasilkan versi komersial NetBeans
IDE hingga kemudian dibeli oleh Sun Microsystems pada tahun 1999. Sun
open-source IDE NetBeans pada bulan Juni tahun berikutnya. Sejak itu, komunitas
NetBeans terus berkembang.
3.1.2. Kelebihan Netbeans.
Mendukung berbagai bahasa pemograman seperti java,C/C++,php, Berjalan pada
multiplatform sistem operasi termasuk Windows, Linux, Mac OS, Solaris Berfungsi
untuk pengembangan aplikasi mobile menggunakan bahasa Java Mendukung untuk
pengembangan aplikasi web menggunakan PHP Mendukung permodelan perangkat lunak
dengan UML(Uni ed Modeling Language) Terdapat banyak modul untuk mengembangkan
lebih lanjut Merupakan produk free(baca:bebas) tanpa ada batasan penggunaannya
Merupakan produk open source (baca:kode sumber terbuka) Jika anda berminat
menggunakan Netbeans IDE silahkan download disitus resminya
http://netbeans.org/. Saat ini Netbeans IDE sudah mencapai versi 6.8. Bagi Anda
pengguna Ubuntu Linux silahkan ikuti langkah-langkah berikut untuk mendownload
Netbeans IDE6.8
3.1.3. Netbeans Versi.
·
NetBeans IDE 6.0 memperkenalkan dukungan
untuk mengembangkan modul IDE dan aplikasi klien kaya berdasarkan platform
NetBeans, Java Swing GUI builder (sebelumnya dikenal sebagai "Proyek
Matisse"), meningkatkan CVS dukungan,WebLogic 9 dan JBoss 4 dukungan, dan
perangkat tambahan banyak editor. NetBeans 6 tersedia dalam repositori resmi
dari distribusi Linux utama.
·
NetBeans IDE 6.5, dirilis pada bulan
November 2008, diperpanjang yang ada Java EE tur (termasuk dukungan Kegigihan
Java, EJB 3 dan JAX-WS). Selain itu, NetBeans Enterprise Pack mendukung
pengembangan aplikasi Java EE 5 perusahaan, termasuk SOA alat desain visual,
skema XML tools, web orkestrasi layanan (untuk BPEL), dan UML modeling. The
NetBeans IDE Bundle untuk C / C + + mendukung C / C + + pembangunan
·
NetBeans IDE 6.8 adalah IDE pertama
untuk memberikan dukungan lengkap Java EE 6 dan GlassFish Enterprise Server v3
. Hosting pengembang sumber terbuka proyek di kenai.com tambahan manfaat dari
instant messaging dan pelacakan masalah integrasi dan navigasi kanan dalam IDE,
dukungan untuk pengembangan aplikasi web dengan PHP 5.3 dan kerangka Symfony,
dan kode selesai diperbaiki, layout, petunjuk dan navigasi dalam proyek
JavaFX.
·
NetBeans IDE 6.9, dirilis pada bulan
Juni 2010, menambahkan dukungan untuk OSGi , Spring Framework 3.0, Java EE
injeksi ketergantungan (JSR-299), Zend Framework untuk PHP , dan navigasi kode
lebih mudah (seperti "Apakah / ditimpa Penerapan" penjelasan), format
, petunjuk, dan refactoring di beberapa bahasa. NetBeans IDE 7.0 dirilis pada
bulan April 2011.
3.1.1. Cara menginstals Netbeans.
Buka ke instalasi Netbeans dengan nama:
netbeans-7.0.1-mlwindows exe
Setelah itu akan tampil prosees kon gurasi installer,
anda tunggu prosesnya hingga selesai.
Jika anda melakukan pengaturan Customiz lalu klik Ok
dan kemudian Next untuk memulai proses Instalasi.
Kemudian anda dapat memilih paket instalasi java, klik
Customize. Atau dapat juga langsung menekan
tombol Next.
Berikutnya anda pilih I accept the terms in the
license agreement. Install JUnit.
Selanjutnya anda dapat menentukan lokasi instalasi
netbeans dan JDK. Kemudaian klik Next, seperti pada gambar berikut ini:
Teruskan dengan menentukan lokasi Instalasi paket
Glass Fish. Setelah itu klik Next. Seperti gambar di bawah ini:
Untuk melajutkan ke tahap penginsallan anda klik
Install.
Maka akan tampil proses installasi seperti gambar di
bawah ini, anda tunggu sampai selesai prosesnya.
Setelah proses Instalasi selesai anda klik nish, maka
Jendela wizard akan tertutup
Jalankan aplikasi Netbeans untuk memulai membuat
program java.
Tampilan IDE Netbeans akan terlihat seperti pada
gambar di bawah ini
3.2. Eclepse
Eclipse merupakan komunitas open source yang bertujuan
menghasilkan platform pemrograman terbuka. Eclipse terdiri dari framework yang dapat dikembangkan
lebih lanjut, peralatan bantu untuk membuat dan memanage software sejak awal hingga diluncurkan.
Platform Eclipse didukung oleh ekosistem besar yang terdiri dari vendor
tekonologi, start-up inovatif, universitas, riset institusi serta individu.
Banyak orang mengenal Eclipse sebagai IDE (integrated development environment)
untuk bahasa Java, tapi Eclipse lebih dari sekedar IDE untuk Java. Komunitas
Eclipse memiliki lebih dari 60 proyek open source. Proyek-proyek ini secara
konsep terbagi menjadi 7 kategori :
·
Enterprise Development
·
Embedded and Device Development
·
Rich Client Platform
·
Rich Internet Applications
·
Application Frameworks
·
Application Lifecycle Management (ALM)
·
Service Oriented Architecture (SOA)
Secara umum Eclipse digunakan untuk membangun software
inovatif berstandar industri, dan alat bantu beserta frameworknya membantu
pekerjaan menjadi lebih mudah. Lisensi Eclipse menggunakan EPL (Eclipse
PublicLicense), yaitu lisensi yang memungkinkan organisasi untuk menjadikan
Eclipse sebagai produk komersialnya, dan pada saat yang sama meminta orang yang
melakukan perubahan untuk mengkontribusikan hasilnya kembali kepada komunitas.
3.2.1. Sejarah Eclipse.
Eclipse awalnya dikembangkan oleh IBM untuk
menggantikan perangkat lunak pengembangan IBM Visual Age for Java 4.0. Produk
Eclipse ini diluncurkan oleh IBM pada tanggal 5 November 2001. IBM
menginvestasikan US$ 40 juta untuk pengembangannya. Sejak 5 November 2001,
konsorsium Eclipse Foundation mengambil alih pengembangan Eclipse lebih
lanjut.
3.2.2. Arsitektur Eclipse.
Sejak versi 3.0, Eclipse pada dasarnya merupakan
sebuah kernel. Apa yang dapat digunakan di dalam Eclipse sebenarnya adalah
fungsi dari plug-in yang sudah dipasang (diinstal). Ini merupakan basis dari
Eclipse yang dinamakan Rich Client Platform (RCP). Berikut ini adalah komponen
yang membentuk RCP:
·
Core platform
·
OSGi
·
SWT (Standard Widget Toolkit)
·
JFace
·
Eclipse Workbench
Secara standar Eclipse selalu dilengkapi dengan JDT
(Java Development Tools), plug-in yang membuat Eclipse kompatibel untuk
mengembangkan program Java, dan PDE (Plug-in Development Environment) untuk
mengembangkan plug-in baru. Eclipse beserta plug-in-nya diimplementasikan dalam
bahasa pemrograman Java. Konsep Eclipse adalah IDE yaitu :
·
Terbuka (open)
·
Mudah diperluas (extensible) untuk apa
saja
·
Tidak untuk sesuatu yang spesi k.
Eclipse tidak saja untuk mengembangkan program Java,
tetapi juga untuk berbagai macam keperluan. Perluasanapapun cukup dengan
menginstal plug-in yang dibutuhkan.
3.2.3. Sifat Eclipse.
Multi-platform: Target sistem operasi Eclipse adalah
Microsoft Windows, Linux, Solaris, AIX, HP-UX dan Mac OS X. Mulit-language:
Eclipse dikembangkan dengan bahasa pemrograman Java, akan tetapi Eclipse
mendukung pengembangan aplikasi berbasis bahasa pemrograman lainnya, seperti
C/C++, Cobol, Python, Perl, PHP, dan lain sebagainya. Multi-role: Selain
sebagai IDE untuk pengembangan aplikasi, Eclipse pun bisa digunakan untuk
aktivitas dalam siklus pengembangan perangkat lunak, seperti dokumentasi, test
perangkat lunak, pengembangan web, dan lain sebagainya. Eclipse pada saat ini
merupakan salah satu IDE favorit dikarenakan gratis dan open source, yang
berarti setiap orang boleh melihat kode pemrograman perangkat lunak ini. Selain
itu, kelebihan dari Eclipse yang membuatnya populer adalah kemampuannya untuk
dapat dikembangkan oleh pengguna dengan komponen yang dinamakan plug-in (sumber
: wikipedia). Lalu bagaimana langkah-langkah untuk dapat melakukan pemrograman
dengan Eclipse ini? Pertama kita unduh terlebih dahulu perangkat lunak ini di
situs resmi Eclipse : www.eclipse.org .
3.2.4. Instalasi Eclipse.
Kita membutuhkan Java 5 JRE untuk menjalankan Eclipse.
Download Eclipse IDE for Java Developers untuk menggunakan kode pada situs
Belajar Java ini. Gunakan utility pada sistem operasi anda untuk membuka
kompresi le tersebut ke dalam hard disk anda. Catatan untuk Windows: Apabila
Anda menggunakan utilitas kompresi le yang berasal dari Windows XP atau Windows
Vista itu sendiri, kadang kala utilitas tersebut tidak berhasil membuka le
dengan nama yang panjang. Jika Anda mengalami masalah dekompresi Eclipse pada Windows, letakkan hasil
dekompresi pada root directory (misalnya C:\eclipse) atau gunakan software
dekompresi lain yang gratis seperti 7-Zip
3.2.5. Menjalankan Eclipse.
Cari le bernama eclipse.exe (pada Windows) atau
eclipse (pada Ubuntu) kemudian double-click Pada saat Eclipse pertama kali
dijalankan, Eclipse akan menanyakan workspace, yaitu folder tempat proyek dan
data diletakkan. Anda bisa menempatkan di mana saja asalkan jangan di dalam
folder Eclipse itu sendiri. Click Browse dan pilih folder yang ada inginkan.
Tik Use this as default and do not ask again Halaman pembuka akan muncul. Klik
Workspace , tombol paling kanan berbentuk anak panah untuk masuk ke dalam
workspace Anda.
3.3. SCRUM Pada Extreme Programming
3.3.1. De nisi SCRUM.
Scrum pertama kali diperkenalkan oleh Je Sutherland tahun awal tahun1990an, dan
dikembangkan selanjutnya dilakukan oleh Schwaber dan Beedle. Pada dasarnya
Scrum merupakan salah satu komponen dari metodologi pengembangan Agile mengenai
pertemuan harian untuk membahas kemajuan sedangkan XP adalah menekankan metodologi yang berbeda yaitu ujian,
pemrograman dan pembangunan. Scrum menguraikan proses untuk mengidenti kasi dan katalogisasi pekerjaan yang
perlu dilakukan, memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan atau wakil
pelanggan, dan pelaksanaanyang bekerja menggunakan rilis iterative dan memiliki
tujuan utama untuk mendapatkan perkiraan berapa lama akan pembangunan. XP lebih
lanjut tentang pengembang membantu menyelesaikan pekerjaan secepat dan
maintainably mungkin Scrum merupakan suatu kerangka kerja. Jadi, bukannya
menyediakan deskripsi rinci tentang bagaimana segala sesuatu yang harus
dilakukan pada proyek seperti diserahkan kepada tim pengembangan perangkat
lunak pada umumnya. Hal ini dilakukan supaya tim akan tahu bagaimana cara
terbaik untuk memecahkan masalah yang mereka disajikan. Ada 3 elemen organisasi
utama pada scrum yaitu product owner, Scrum master, dan the Scrum team. Scrum
Master dapat dianggap sebagai pelatih bagi tim, membantu anggota tim
menggunakan kerangka Scrum untuk tampil di tingkat tertinggi. Product Owner
mewakili bisnis, pelanggan atau pengguna dan memandu tim ke arah pegembangan
produk yang tepat. Sedangkan The Scrum Team merupakan grup pengembang kecil
biasanya terdiri dari 5-9 orang. Untuk projek yang sangat besar, pekerjaan
biasanya dibagi dan didelegasikan ke grup-grup kecil. Jika sangat dibutuhkan
the scrum master juga dapat ikut membantu dalam koordinasi team. Scrum tepat
digunakan saat kondisi:
·
Keperluan berubah dengan cepat
·
Tim programmer sedikit, yaitu 5-9 orang
·
Pelanggan tidak terlalu paham dengan apa
yang diinginkan
Scrum memiliki prinsip yaitu:
·
Ukuran tim yang kecil melancarkan
komunikasi, mengurangi biaya, dan memberdayakan satu sama lain
·
Proses dapat beradaptasi terhadap
perubahan teknis dan bisnis Proses menghasilkan beberapa software increment
·
Pembangunan dan orang yang membangun
dibagi dalam tim yang kecil
·
Dokumentasi dan pengujian terus menerus
dilakukan setelah software dibangun
·
Proses scrum mampu menyatakan bahwa
produk selesai kapanpun diperlukan.
Kelebihan Scrum antara lain:
·
Keperluan berubah dengan cepat
·
Tim berukuran kecil sehingga melancarkan
komunikasi, mengurangi biaya dan memberdayakan satu sama lain
·
Pekerjaan terbagi-bagi sehingga dapat
diselesaikan dengan cepat
·
Dokumentasi dan pengujian terus menerus
dilakukan setelah software dibangun
·
Proses Scrum mampu menyatakan bahwa
produk selesai kapanpun diperlukan
Kelemahan Scrum antara lain:
·
Developer harus selalu siap dengan
perubahan karena perubahan akan selalu diterima.
3.3.2. Tim Scrum.
Tim Scrum terdiri dari Product Owner, Tim Pengembang
dan Scrum Master. Tim Scrum mengatur diri mereka sendiri dan berfungsi antar -
lintas. Tim yang mengatur dirinya sendiri menentukan cara terbaik untuk
menyelesaikan pekerjaannya, daripada diatur oleh pihak lain yang berada di luar
anggota tim. Tim yang berfungsi antar - lintas memiliki semua kompetensi yang
dibutuhk an untuk menyelesaikan pekerjaan, tanpa mengandalkan pihak lain yang
berada di luar anggota tim. Model tim di dalam Scrum diranc ang sedemikian rupa
untuk mengo timalisasi eksibilitas, kreati tas dan produkti tas. Tim Scrum
menghantarkan produk secara berkala dan bertahap untuk memperbesar kesempatan
mendapatkan masukan. Penghantaran secara bertahap dari sebuah produk yang
Selesai , memastikan produk yang berpotensi dapat digunakan, selalu siap.
Product: Owner bertanggung - jawab untuk memaksimalkan nilai produk dan hasil kerja Tim
Pengembang. Cara pelaksanaannya sangat bervariasi antar organisasi, Tim Scrum
dan individu. Product Owner merupakan satu satunya orang yang bertanggung -
jawab untuk mengelola Product Backlog. Pengelolaan Produc t Backlog mencakup:
·
Mengekspresikan dengan jelas item
Product Backlog
·
Mengurutkan item di dalam Product
Backlog untuk mencapai tujuan dan misi dengan cara terbaik
·
Mengoptimalkan nilai dari hasil
pekerjaan Tim Pengembang
·
Memastikan Product Backlog trans paran,
jelas, dan dapat dilihat semua pihak, dan menunjukkanapa yang akan dikerjakan
oleh Tim Scrum selanjutnya
·
Memastikan Tim Pengembang dapat memahami
item dalam Product Backlog hingga batasan yang diperlukan
Product Owner dapat saja mengerjakan peke rjaan -
pekerjaan di atas, atau menyerahkan pengerjaannya kepada Tim Pengembang, namun
satu - satunya pihak yang bertanggung jawab tetaplah Product Owner. Product
Owner adalah satu orang dan bukan berupa sebuah komite. Product Owner dapat
mengejawantahkan asp irasi dari komite ke dalam Product Backlog, namun mereka
yang ingin merubah prioritas item Product Backlog, harus melakukannya melalui
Product Owner. Agar Product Owner berhasil menjalankan tugasnya, seluruh
organisasi harus menghormati setiap keputusan yang ia buat. Keputusan dari
Product Owner ini dapat dilihat dari isi dan urutan Product Backlog. Tidak ada
seseorang pun yang dapat memerintah Tim Pengembang untuk mengerjakan kebutuhan
lain selain Product Owner. Dan Tim Pengembang pun tidak diperbolehkan untuk
melakukan apa yang diperintahkan oleh pihak lain selain Product Owner.
Tim: pengembang terdiri dari para profesional yang bekerja untuk menghasilkan tambahan
potongan produk (selanjutnya disebut Inkremen) Selesai , yang
berpotensi untuk dirilis di setiap akhir Sprint. Hanya anggota Tim Pengembang yang mengembangkan
Inkremen ini.Tim Pengembang dibentuk dan didukung oleh organisasi untuk mengatur dan mengelola
pekerjaannya secara mandiri. Sinergi yang ada di dalam tim akan meningkat kan e siensi dan
efekti tas dari Tim Pengembang secara keseluruhan.
Tim Pengembang memiliki karakteristik sebagai berikut:
·
Mereka mengatur dirinya sendiri. Tidak
ada satu orang pun (bahkan Scrum Master) yang memerintah
·
Tim Pengembang bagaimana cara merub ah
Product Backlog menjadi Inkremen yang berpotensi untuk dirilis;
·
Tim Pengembang berfungsi antar - lintas,
sebagai sebuah tim, memiliki semua keahlian yang dibutuhkan untuk menghasilkan
produk;
·
Scrum tidak mengenal adanya jabatan
tertentu untuk anggota Tim Pengembang selain Pengembang, apapun pekerjaan yang
dikerjakan oleh masing - masing anggota tim; tidak ada pengecualian untuk
aturan yang satu ini;
·
Tim Pengembang tidak mengenal adanya sub
- tim yang dikhususkan untuk bidang tertentu seperti pengujian atau analisa
bisnis; tidak ada pengecualian untuk aturan yang satu ini;
·
Anggota Tim Pengembang boleh memiliki
spesialisasi keahlian dan fokus di satu area tertentu, namun akuntabilitas dari
hasil dari pekerjaan secara keseluruhan adalah milik Tim Pengembang.
Jumlah anggota Tim Pengembang yang optimal adalah
cukup kecil untuk dapat berkoordinasi dengan cepat, dan cukup besar untuk dapat menyelesaikan pekerjaan
dalam satu Sprint. Jumlah anggota tim yang kurang dari tiga orang akan mengurangi interaksi dan akan
menyebabkan produkti tas yang rendah. Tim Pengembang yang kecil kemungkinan akan mengalami kekurangan
keahlian tertentu pada saat Sprint berjalan, yang pada akhirnya menyebabkan Tim Pengembang tidak dapat
menghasilkan Inkremen yang be rpotensi untuk dirilis. Tim Pengembang dengan jumlah anggota lebih dari
sembilan orang membutuhan terlalu banyak koordinasi. Tim Pengembang dengan jumlah anggota tim yang banyak,
akan menimbulkan terlalu banyak kompleksitas bagi proses yang berbasiskan emp irisme. Product Owner
dan Scrum Master tidak termasuk dalam hitungan, kecuali mereka juga turut ikut
mengerjakan pekerjaan yang ada di Sprint Backlog
Scrum: Master bertanggung jawab untuk memastikan Scrum telah dipahami dan dilaksanakan.
Scrum Master melakukannya dengan memastikan Tim Scrum
mengikuti teori, praktik, dan aturan main Scrum. Scrum Master adalah seorang pemimpin yang
melayani Tim Scrum. Scrum Master membantu pihak di luar Tim Scrum, untuk memahami apakah
interaksi mereka dengan Ti m Scrum bermanfaat atau tidak. Scrum Master membantu setiap pihak untuk
merubah interaksi - interaksi yang tidak bermanfaat sehingga bisa memaksimalkan nilai yang
dihasilkan oleh Tim Scrum.
3.3.3. Scrum Mater Pada Product Owner.
Scrum Master melayani Product Owner dengan berbagai
cara yang mencakup :
·
Mencari teknik yang paling efektif untuk
mengelola Product Backlog
·
Membantu Tim Scrum untuk memahami
pentingnya Product Backlog item yang jelas dan padat
·
Memahami bagaimana perencanaan produk
pada lingkun gan yang didasarkan empirisme
·
Memastikan Product Owner tahu bagaimana
mengelola Product Backlog guna memaksimalkan nilai dari produk
·
Memahami dan mempraktikkan agility
·
Memfasilitasi acara - acara dalam Scrum
bila dipanggil dan dibutuhkan.
3.3.4. Scrum Master kepada Tim Pengembang.
Scrum Master melayani Tim Pengembang lewat berbagai
cara yang mencakup:
·
Membimbing Tim Pengembang untuk dapat
mengatur dirinya sendiri dan berfungsi antar - lintas
·
Membantu Tim Pengembang untuk membuat
produk bernilai ti nggi
·
Menghilangkan hambatan - hambatan yang
dialami oleh Tim Pengembang
·
Memfasilitasi acara - acara dalam Scrum
bila dipanggil dan dibutuhkan
·
Membimbing Tim Pengembang dalam suasana
organisasi di mana Scrum belum sepenuhnya diterapkan dan dipahami.
3.3.5. crum Master Service kepada Organisasi.
Scrum Master melayani organisasi tempat dia berada
lewat berbagai cara yang mencakup:
·
Memimpin dan membimbing organisasi dalam
penerapan Scrum
·
Merencanakan implementasi Scrum di dalam
organisasi
·
Membantu se tiap pegawai dan stakeholder
dalam memahami dan menggunakan Scrum dan pengembangan produk dengan metoda
empiris
·
Membuat perubahan yang dapat
meningkatkan produkti tas di dalam Tim Scrum
·
Bekerja bersama dengan Scrum Master
lainnya guna meningkatkan efekti tas dari pengaplikasian Scrum di dalam
organisasi
3.3.6. Aktivitas Scrum. Scrum memiliki akti tas yang
meliputi :
1.
Backlog adalah daftar kebutuhan yang
jadi prioritas klien, dan daftar yang dibuat dapat bertambah
2.
Sprints Akti tas merupakan unit
pekerjaan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan
3.
dalam backlog sesuai dengan waktu yang
ditetapkan dalam time-box (biasanya 30hari). Selama
4.
proses ini berlangsung backlog tidak ada
penambahan.
5.
Scrum Meetings merupakan pertemuan
yang rutin dilakukan perhari untuk evaluasi apa yang dikerjakan,
6.
hambatan yang ada, dan target
penyelesaian untuk bahan meeting selanjutnya.
7.
Demo Akti tas adalah penyerahan
software increment ke klien didemonstrasikan dan dievaluasi oleh klien.
3.4. jUnit Pada Extreme Programming
JUnit adalah salah satu tools yang membantu kita untuk
melakukan unit testing terhadap kode yang cocok sekali bila diimplementasikan dalam XP. Martin Fowler
berkata Whenever you are tempted to type something into a print statement or a
debugger expression, write it as a test instead. JUnit adalah sebuah framework
yang dikembangkan di atas Java, yang dibuat oleh masternya Extreme Programming,
Kent Beck dan masternya Design Pattern, Erich Gamma. JUnit dapat dikatakan
sebuah simple test framework yang didesain untuk melakukan testing yang
bersifat berulang. Sebelumnya Kent Beck mengembangkan Sunit yaitu unit testing
untuk SmallTalk yang sangat populer dengan MVC-nya. Umumnya programmer malas
untuk membuat unit testing karena dianggap pekerjaan tambahan. Memang sih,
untuk pekerjaan yang simpel dan tetap, unit testin dirasakan memberatkan,
tetapi kalau programmer yang sudah terbiasa membuat komponen pasti tahu deh,
apa yang terjadi kalau ada kode-kode yang sudah berjibun dan direfactor,
sebagai contoh misalnya semua kode dari com.intercitra.model.
·
Dipindahkan ke org.blueoxygen.cimande.
model.
·
Pekerjaan di atas memang mudah apalagi
kalau menggunakan Eclipse dari eclipse.org, tinggal click kanan, pilih
refactor, terus rename, selesai. Sadar, tidak sadar, semua code yang
berhubungan dengan object didalam package com.intercitra. model.
·
Harus dirubah. Kalau semua code
dalam Eclipse Project, kita tidak perlu pusing, karena secara tidak langsung
semua import com.intercitra.model.
·
Akan di-rename menjadi import
org.blueoxygen.cimande. model.
·
Sayangnya, apa dikata, bagi programmer
JSP, tetap harus melakukan unit testing satu per satu semu kegiatan yang
memanggil object didalam package org.blueoxygen.cimande.model.
Harus edit satu per satu, makanya sampai
saat ini JSP dibilang salah satu mekanisme pemograman yang kotor dengan kata
lain membuat pekerjaan tambahan di kemudian hari. Lain halnya dengan aplikasi
menggunakan pendekatan lain yang lebih OOP, kita dapat melakukan refactoring
secara cepat terhadap seluruh kode. Apakah dengan melakukan refactoring, semua
programer yakin semua kode kita akan berjalan dengan mulus dan stable? Unit
testing adalah jawaban untuk merealisasikannya, karena unit testing adalah
sebuah mekanisme yang meyakinkan kita bahwa setiap perubahaan terhadap kode
akan menghasilkan result yang benar. Unit testing yang sukses akan lebih
meyakinkan bahwa kode kita ini benarbenar berjalan dengan baik.
Sebenarnya melakukan unit testing itu gampang-gampang
susah, karena secara konsep yang mengacu pada JUnit, unit testing itu dipecah menjadi dua bagian,
yaitu TestCase dan TestSuite, di mana TestSuite merupakan kumpulan
TestCase-TestCase. Hebatnya saat ini IDE yang ada sudah memasukan JUnit secara
terintegrasi, sehingga kita tidak perlu pusing, jalankan IDE, buat TestCase,
execute testing, selesai. Malahan IDE yang hebat tersebut kita tidak perlu
membeli, semuanya open source, cobalah kunjungi eclipse.org atau netbeans.org
untuk mendapatkannya. Apakah dengan mekanisme seperti melakukan unit testing
secara console based tidak relevan lagi? Dari pengalaman penulis, didapatkan
bahwa melakukan testing dengan IDE memang menyenangkan, kita bisa melakukan
testing satu demi satu, tetapi apa yang terjadi kalau kita ada 1000 TestSuite,
dan setiap TestSuite ada 100 TestCase.
3.4.1. TestCase dan TestSuite di JUnit.
Seperti yang telah diutarakan sebelumnya, unit testing
dengan Junit hanya diperlukan dua keahlian, yaitu membuat TestCase dan TestSuite, di mana TestSuite
adalah kumpulan testing untuk melakukan eksekusi TestCase. Struktur pengembangan TestCase itu simple
sekali, dan untuk lebih jelasnya lihatlah kode berikut ini:
public class MoneyTest extends TestCase
{
public void testSimpleAdd() {
Money m12CHF= new Money(12, CHF );
Money m14CHF= new Money(14, CHF );
Money expected= new Money(26, CHF );
Money result= m12CHF.add (m14CHF);
Assert.assertTrue(expected.equals
(result));
} }
diatas adalah kode yang sederhana,
sedangkan yang lebih lengkap adalah:
public class MoneyTest extends TestCase
{
private Money f12CHF;
private Money f14CHF;
protected void setUp() {
f12CHF= new Money(12, CHF );
f14CHF= new Money(14, CHF );
}
public void testEquals() {
Assert.assertTrue(!f12CHF.equals
(null));
Assert.assertEquals(f12CHF, f12CHF);
Assert.assertEquals(f12CHF, new
Money(12, CHF ));
Assert.assertTrue(!f12CHF.equals
(f14CHF));
}
public void testSimpleAdd() {
Money expected= new Money(26, CHF );
Money result= f12CHF.add(f14CHF);
Assert.assertTrue(expected.equals
(result));
} }
Code di atas adalah sebuah TestCase simple untuk
melakukan test terhadap code Money, di mana testingnya adalah testEquals()
untuk test method equals() dan testSimpleAdd() untuk test metho simpleAdd().
Setiap assert akan membandingkan result yang dihasilkan, bila lolos, berarti
testing lolos skenario tersebut.
3.4.2. Bekerja Dengan jUnit.
Untuk memulai pengembangan dengan JUnit, buatlah
sebuah project, yang termudah adalah menggunakan Eclipse. Artikel mengenai
Eclipse ada di InfoLINUX edisi Januari 2004 atau kunjungi http://
www.eclipse.org. Sesuai yang disarankan oleh team JUnit, sebaiknya kita membuat
2 folder pada projek tersebut yaitu src untuk menyimpan source code, dan test
untuk menyimpan unit testing code, sehingga bila kita akan melakukan packaging
binary dari source code, unit testingnya tidak terbawa. Untuk memudahkan
biasanya source code ditaruh di subfolder java di bawah src, karena umumnya
para programmer menyimpan source code lainnya juga di dalam folder src, seperti
sql, template, con g, malah tidak jarang memasukkan WAR container ke dalamnya.
Jadi struktur yang disarankan penulis adalah sebagai berikut:
src
java
org
blueoxygen
SomeClass1.java
SomeClass2.java sql
smiletown.
sql conf cimande.properties
test
java
org
blueoxygen
SomeClass1Test.java
SomeClass2Test.java S
omeClassSuite.java
Kasus di atas dapat diartikan bahwa ada code java
dengan nama org.blueoxygen. SomeClass1 yang akan dilakukan unit testing, di mana code unit testingnya
adalah org.blueoxygen.SomeClass1Test, sedangkan org.blueoxygen.SomeClass2, kode unit testingnya adalah
SomeClass2Test, serta sebuah TestSuite org.blueoxygen. SomeClassSuite. Bila
suatu hari dirasakan bahwa menggunakan package org.blueoxygen untuk test merasa
terganggu, dimungkinkan untuk menggunakan package org.blueoxygen.test atau
test.org.blueoxygen. Bila suatu hari dirasakan bahwa menggunakan package
org.blueoxygen untuk test merasa terganggu, dimungkinkan untuk menggunakan
package org.blueoxygen.test atau test.org.blueoxygen.
3.4.3. Membuat TestCase.
Untuk membuat sebuah TestCase sebenarnya mudah sekali,
Eclipse telah menyediakan Wizardnya, sehingga kita hanya perlu memasukan kode
testingnya seperti Assert.assertTrue, Assert. assertEquals atau
Assert.assertNull.
Contohnya adalah seperti berikut:
assertEquals(3,testMap.size());
assertEquals( Intercitra , testMap.get (
Company ));
Untuk memulai project unit testing, kita akan membuat
sebuah unit.
Testing untuk HashMap, sebuah kode yang sudah disediakan secara otomatis
oleh Java SDK, HashMap adalah salah satu dari Java Collection Library, selain HashMap, ada beberapa
Java Collection seperti HashTable,ArrayList, atau List. Didalam HashMap,
terdapat banyak method seperti put, putAll, size, get, ataupuncontainsKey, maka
untuk melakukan unit testing sebaiknya semua testing tersebut dilakukan satu
persatu,seperti untuk testing put kita membuat sebuah method dengan nama
testPut() didalam TestCase, testing method get menggunakan method testGet() di
dalam TestCase. Untuk memudahkannya cobalah buat sebuah le HashMapTest. java
dibawah directory yang telah diterangkan diatas, dan ketiklan baris di bawah
ini.
packageorg.blueoxygen.collection;
importjunit.framework.TestCase;
importjava.util.Map; importjava.util.HashMap;
/*
* Created on Jan 18, 2004
*
* To change the template for this generated le go to
* Window>Preferences> Java>Code Generation>
Code and Comments
*/
/**
* @author Frans Thamura (frans@intercitra.com)
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>
Code Generation>Code and Comments
*/
publicclassHashMapTest extends TestCase {
private Map testMap;
private Map testMap2;
private static nal String MAP_KEY =
Open Source ;
private static nal String MAP_VALUE = BlueOxygen ;
/**
* Constructor for HashMapTest.
* @param arg0
*/
public HashMapTest(String arg0) {
super(arg0); }
// You can run the TestCase as a standalone Swing
// If you are using Eclipse, you dont need this public static void
main(String[] args)
{
// You can use swingui, awtui or text ui. But, I love Swing UI
junit.swingui.TestRunner.run
(HashMapTest.class); }
/*
* @see TestCase#setUp()
*/
protected void setUp() throws Exception {
// First Collection
testMap = new HashMap();
testMap.put(MAP_KEY, MAP_VALUE);
testMap.put( Open Source , BlueOxygen );
testMap2 = new HashMap();
testMap2.put( Company , Intercitra );
testMap2.put( Community , Java User Group );
}
// the real test
public void testPut() {
String key = Juragan ;
String value = Patimura ;
// second Put
testMap.put(key,value);
String value2 = (String)testMap. get(key);
assertEquals( The value back from the map , value, value2);
}
public void testSize() {
assertEquals(1, testMap.size());
}
public void testGet()
{
assertEquals( BlueOxygen , testMap.get(MAP_KEY));
assertNull(testMap.get ( JUNK_KEY ));
}
public void testPutAll() {
// put testMap2 to testMap
testMap.putAll(testMap2);
// check the size, must be 3, because the Juragan in the testMap now.
assertEquals (3, testMap.size());
assertEquals( Intercitra , testMap.get( Company ));
}
public void testContainsKey()
{
assertTrue( MAP_KEY value : , testMap.containsKey(MAP_KEY));
}
public void testContainsValue()
{
assertTrue(testMap.containsValue (MAP_VALUE));
}
public void testRemove() {
String key = Juragan ;
String value = Patimura ;
testMap.put(key, value);
testMap.remove(key);
assertNull (testMap.get(key));
}
/* * @see TestCase#tearDown()
*/ protected void tearDown()
throws Exception { super.tearDown();
}
}
3.4.4. Membuat TestSuite.
TestSuite Untuk memudahkan konsep pengembangan TestSuite, buatlah
sebuah script seperti di bawah ini dan tentu saja di bawah folder
test/org/blueoxygen/collection.
public class AllTests {
public static void main(String[] args)
{
junit.swingui.TestRunner.run (AllTests.class);
}
public static Test suite() {
TestSuite suite = new TestSuite ( Test for org.blueoxygen. collection );
//$JUnit-BEGIN$ suite.addTest(new TestSuite (HashMapTest.class));
//$JUnit-END$ return suite;
}
}
TestSuite di atas akan mengeksekusi TestCase, yang dalam kasus di atas adalah
HashMapTest.class.
Penerapan Extreme
Programming
4.1. Penerapan Extreme Programming Pada Netbean
4.1.1. Pengertian Junit.
JUnit adalah salah satu tools yang membantu kita untuk melakukan unit testing
terhadap kode yang cocok sekali bila diimplementasikan dalam XP. Martin Fowler
berkata Whenever you are tempted to type something into a print statement or a
debugger expression, write it as a test instead. JUnit adalah sebuah framework
yang dikembangkan di atas Java, yang dibuat oleh masternya Extreme Programming,
Kent Beck dan masternya Design Pattern, Erich Gamma. JUnit dapat dikatakan
sebuah simple test framework yang didesain untuk melakukan testing yang
bersifat berulang. Sebelumnya Kent Beck mengembangkan Sunit yaitu unit testing untuk SmallTalk yang sangat populer dengan MVC-nya. Umumnya
programmer malas untuk membuat unit testing karena dianggap pekerjaan tambahan.
Memang sih, untuk pekerjaan yang simpel dan tetap, unit testing dirasakan
memberatkan, tetapi kalau programmer yang sudah terbiasa membuat komponen pasti
tahu deh, apa yang terjadi kalau ada kode-kode yang sudah berjibun dan
direfactor, sebagai contoh misalnya semua kode dari com.intercitra.model.*
dipindahkan ke org.blueoxygen.cimande. model.*. Pekerjaan di atas memang mudah
apalagi kalau menggunakan Eclipse dari eclipse.org, tinggal click kanan, pilih
refactor, terus rename, selesai. Sadar, tidak sadar, semua code yang
berhubungan dengan object didalam package com.intercitra. model.* harus dirubah.
Kalau semua code dalam Eclipse Project, kita tidak perlu pusing, karena secara
tidak langsung semua import com.intercitra.model.* akan di-rename menjadi
import org.blueoxygen.cimande. model.*. Sayangnya, apa dikata, bagi programmer
JSP, tetap harus melakukan unit testing satu per satu semua kegiatan yang
memanggil object didalam package org.blueoxygen.cimande.model.*, harus edit
satu per satu, makanya sampai saat ini JSP dibilang salah satu mekanisme
pemograman yang kotor dengan kata lain membuat pekerjaan tambahan di kemudian
hari. Lain halnya dengan aplikasi menggunakan pendekatan lain yang lebih OOP,
kita dapat melakukan refactoring secara cepat terhadap seluruh kode. Apakah
dengan melakukan refactoring, semua programer yakin semua kode kita akan berjalan
dengan mulus dan stable?
Unit testing adalah jawaban untuk merealisasikannya, karena unit testing
adalah sebuah mekanisme yang meyakinkan kita bahwa setiap perubahaan terhadap
kode akan menghasilkan result yang benar. Unit testing yang sukses akanlebih
meyakinkan bahwa kode kita ini benarbenar berjalan dengan baik. Sebenarnya
melakukan unit testing itu gampang-gampang susah, karena secara konsep yang
mengacu pada JUnit, unit testing itu dipecah menjadi dua bagian, yaitu TestCase
dan TestSuite, di mana TestSuite merupakan kumpulan TestCase-TestCase. Hebatnya
saat ini IDE yang ada sudah memasukan JUnit secara terintegrasi, sehingga kita tidak perlu pusing, jalankan IDE, buat TestCase, execute testing,
selesai. Malahan IDE yang hebat tersebut kita tidak perlu membeli, semuanya
open source, cobalah kunjungi eclipse.org atau netbeans.org untuk
mendapatkannya. Apakah dengan mekanisme seperti melakukan unit testing secara
console based tidak relevan lagi? Dari pengalaman penulis, didapatkan bahwa
melakukan testing dengan IDE memang menyenangkan,kita bisa melakukan testing
satu demi satu, tetapi apa yang terjadi kalau kita ada 1000 TestSuite, dan
setiap TestSuite ada 100 TestCase.
Untuk melakukan unit testing dengan Netbeans dapat dilakukan dengan tahapah
sebagai berikut :
1.
Jalankan Netbeans dan buat project java
baru
2.
buat simple class yang mempunyai nilai
kembalian (return value) dan void method.
3.
Gunakan return value untuk proses yang
mudah sebagai contoh dapat menggunakan proses penanbahan atau pengurangan
contoh classnya :
/* class SimpleMath.java */
public class SimpleMath{
public int doAddition(int a, int b){
return a + b;
}
public int doSubtraction(int a, int b){
return a/b;
}
public void printAdditon(int a, int b){
System.out.println( var1 = +a= , var2 = +b+
+
hasilnya adalah = +doAddition(a,b));
}
}
untuk membuat unit testing
Setelah mengetahui mengenai Unit testing dengan Junit,
kita dapat menatik satu kesimpulan yaitu: manfaat Unit Testing ini akan
mengerucut pada satu hal; Code Quality. Banyak metode best practice yang harus ditempuh dan diperhatikan untuk menghasilkan Code yang
berkualitas, salah satunya dengan Unit Testing. Junit merupakan cara untuk mengetahu code Quality yang
dibuat dengan menggunakan bahasa pemprograman java.
4.2. Penerapan Extreme Programming Pada Perusahaan
4.2.1. PT. Yubi Citra Karyadikara.
Jenis penelitian yang akan digunakan dalam penelitian
ini adalah deskriptif dan metode penelitiannya adalah studi kasus dan survey
yang menganalisis tentang perencanaan bahan baku material dengan menggunakan
metode Material Requirement Planning (MRP) serta unit analisisnya adalah PT.
Yubi Citra Karyadikara. Pro l Perusahaan PT. Yubi Citra Karyadikara adalah
perusanaan industri swasta yang bergerak dalam bidang industri mebel yaitu
memproduksi o ce chairs atau kursi _ kursi kantor yang memiliki pabrik
berlokasi di jalan peternakan II no.15, Kapuk Jagal jakarta 11720 dan letak
kantornya di jalan tanjung duren barat 1 no.31. Ditinjau dari segi hukum PT.
Yubi Citra Karyadikara telah berdiri sejak tahun 1989 dengan no SIUP
7237/09.03/PM/VIII/1991. Perusahaan ini sudah berjalan selama 18 tahun, dengan
modal awal adalah sebesar Rp 300.000.000. Perusahaan sebelumnya tidak hanya di
bidang industri o rice chairs saja, tetapi memproduksi mebel lainnya seperti
lemari, meja meja tetapi karena produk tersebut kurang diminati oleh pelanggan,
maka perusahaan hanya menciptakan kursi kursi kantor, karena perusahaan bekerja
sama dengan beberapa kantor juga, sehingga sudah memilki pelanggan tetap.
Banyak perkembangan dalam perusahaan ini, perusahaan terus menciptakan produk
produk baru, sehingga perusahaan memiliki banyak sekali jenis dan model kursi-
kursi dengan fungsinya yang berbeda. PT. Yubi Citra Karyadikara banyak
memproduksi kursi-kursi kantor yang mempunyai tipe dan model pilihan yaitu sta
chair, secretary chair, executive secretary chair, bar chair, manager chair,
executive manager chair, director chair, executive director chair, meeting
chair, salon chair dan visitor chair. Dalam Master Production Schedule ini menyatakan bahwa
adanya pesanan untuk produk kursi OX 830 secara keseluruhan adalah sebanyak 950 unit kursi,
untuk memproduksi kursi tersebut memerlukan waktu 10 menit per-unit. Kursi yang sudah diproduksi harus
di proses lebih lanjut ke dalam proses nishing yang memerlukan waktu 2 menit Iamanya dan proses nishing
ini akan dimulai di menit ke-8 dan selesai pada menit ke-10. Jika perusahaan menerima banyak pesanan maka
perusahaan akan menambah waktu lembur. Biasanya dalam sehari perusahaan bisa memproduksi sebanyak 60 -
80 unit, tetapi jika menambah waktu lembur maka dalam sehari perusahaan bisa memproduksi sebanyak
100-120 unit. Secara garis besar penambahan fase requirements management
pada eXtreme Programming sangat membantu untuk lebih menstrukturkan metode ini. Requirements
Management yang disisipkan terutama difokuskan dalam hal dokumentasi. Pendokumentasian pada eXtreme
Programming ini tidak akan mengganggu proses secara keseluruhan karena dilaksanakan secara paralel dengan
planning phase. Hasil pengukuran yang dilaksanakan terhadap penambahan fase requirements management yang
paralel dengan planning phase pada siklus hidup eXtreme Programming menunjukkan bahwa metodologi ini
tetap pada posisi agile. Pengukuran yang dilakukan dengan menggunakan statistik yaitu dengan menilai
indikator-indikator agile-nya yang kemudian diklasikasikan dengan menggunakan distribusi normal memperoleh empat
klasi kasi. Klasi kasi itu adalah A untuk posisi sangat agile, B untuk posisi agile, C untuk posisi
cukup agile, dan D untuk posisi tidak agile. Setelah pengukuran, penambahan fase ini menunjukkan berada pada posisi B.
Dengan hasil tersebut berarti penambahan fase requirements management tidak menjadikan eXtreme
Programming keluar dari metodologi Agile. Mempunyai RE yang bagus adalah penting karena
dampaknya mampu mengurangi biaya proyek, dan diterimanya sistem oleh stakeholder sehingga bisa
mengarah kepada keuntungan yang tinggi. Namun juga harus diakui dibutuhkan tenaga dan waktu yang tidak sedikit
untuk berinvestasi dalam pembuatan requirement yang benar-benar bagus. Untuk mendapatkan requirement yang
bagus, ada banyak pekerjaan/tasks harus dilakukan, untuk itu tim RE tidak hanya bekerja pada awal dari
proyek namun bekerja melalui tahap pengembangan sampai tahap delivery untuk memastikan requirement
benar-benar sesuai. Dengan dilakukannya penelitian mengenai penerapan
metode Material Ruirement Planning dalam perencanaan kebutuhan material kursi OX 830 pada PT. Yubi Citra
Karyadikara maka dapat disimpulkan bahwa :
1. Dalam memenuhi pesanan pelanggan akan
permintaan produkJcursi OX 830 sebanyak 950 unit ,maka PT. Yubi Citra
Karyadikara memerlukan komponen komponen sebagai berikut, komponenpapan dudukan
sebanyak 950 unit, papan senderan sebanyak 950 unit, kaki cakar lima sebanyak
950 unit, busa atau foam dudukan sebanyak 950 unit, seat mechanis sebanyak 950
unit, busa atau foam senderan sebanyak 950 unit, kote kote sebanyak 950 unit,
roda castor sebanyak 4750 unit, gas lift atau hydraulic sebanyak 950 unit, kain
alabama sebanyak 1900 unit, dan list karet sebanyak 1900 unit.
2. Dalam memproduksi seluruh pesanan
pelanggan akan permintaan kursi OX 830 sebanyak 950 unit maka setelah
diperhitungkan biaya biaya yang akan dikeluarkan oleh perusahaan dibagi menjadi
2 yaitu total biaya material berdasarkan perencanaan kebutuhan material (MRP)
yaitu sebesar Rp 298.775.000 dan total biaya material berdasarkan analisis
sistem berjalan yaitu s.'-tesar Rp 302.899.994. Jadi dapat disimpulkan bahwa
untuk memproduksi pesanan kursi OX 830 sebanyak 950 unit sebaiknya perusahaan
menerapkan sistem Material Reqiurement Planning (MRP) karena total biaya
material yang dikeluarkan perusahaan lebih minimal sehingga biaya biaya yang dikeluarkan
untuk memproduksi oleh perusahaan tidak besar dan memberikan keuntungan bagi
perusahaan.
4.2.2. Beta Mart.
Profil l: perusahaan
BetaMart adalah sebuah minimarket yang menjual
beberapa kebutuhan keluarga dan kebutuhan lainnya. BetaMart mempunyai 2 orang
kasir untuk menjaga toko dengan bergantian. Sedangkan untuk mempermudah
pengontrolan barang, BetaMart mempunyai 2 karyawan lagi sebagai staf warehouse
(gudang). Sedangkan di toko itu sendiri terdapat 4 pramuniaga toko untuk
membantu pembeli yang bekerja secara shift.
Proses:
Proses bisnis dimulai ketika pelanggan
memilih/berbelanja, setelah puas dalam memilih kebutuhannya, pelanggan akan
melakukan pembayaran, bila pelanggan tersebut belum bergabung menjadi member
maka pelangan tersebut ditawarkan untuk menjadi member dan pelayan/kasir
menjelaskan keuntungan bergabung sebagai member. Prosedur menjadi member yaitu
dengan memberikan deposit kepada BetaMart, maka pelanggan akan diberikan
voucher belanja dengan nilai sesuai dengan deposit yang disetorkan, dan akan
mendapatkan diskon 10% disetiap transaksi dan diskon promo lainnya. Nantinya
sistem pembayaran dengan deposit disebut sebagai sistem voucher. Bila tidak
maka transaksi dilakukan dengan pembayaran tunai, dimana petugas tidak mencatat
nama & identitas pembeli. Petugas kasir akan memberikan laporan penjualan
secara harian kepada petugas gudang sehingga petugas gudang dapat mengecek
persediaan barang di toko. Apabila stok barang yang dijual sudah habis atau
memerlukan tambahan stock, petugas gudang akan mengirim barang ke toko dan
petugas kasir akan melakukan pencatatan data barang yang dikirimkan. Petugas
gudang juga melakukan pengecekan harian stok barang pada gudang untuk melakukan
purchase order.
4.2.3. Penerapan Aplikasi Dengan Extreme Programming.
(1) Planning
* Use Case Diagram
Transaksi Member
Transaksi Pembayaran
3. Coding
Setelah metode designing dilakukan, maka akan
dilakukan pengkodean untuk membuat program dari sistem penjualan/kasir Beta Mart.
4. Testing
Testing yang saya lakukan hanya pada proses
pembayaran/kasir dan tidak pada semua menu. Saya melakukan testing pada menu pelanggan, menu pembayaran dan cetak
faktur. Data yang bisa di cari yaitu data barang atau pelanggan.
1. Login
2. Pelanggan
3.Input Data Pelanggan
4.Pencarian Data Pelanggan
5.Transaksi pembayaran
6. Incremental Release
Setelah melalui unit testing akan dilakukan incremental release, yaitu release
software secara bertahap.
Release Texts :
Betamart: System V.1.1
·
Fitur pada Betamart V.1.1
-Login : access database karyawan dengan authorisasi
-Member checking : access database member
-Member added : penambahan database member
-Transaction recording : access database transaksi,
detail barang, metode bayar
-Au-tomated calculation: kalkulasi otomatis diskon
& jumlah pembayaran
-Automated stock calculation: kalkulasi otomatis
pengurangan stok barang di toko
-Stock added : penambahan stok barang di toko
·
Issue
-Rejection stock added (bug130875)
-Temp solution : restart system
Betamart: System V.1.2
·
Pembaharuan & Fitur Tambahan pada
Betamart V.1.2
- Fix bug130875
- Search member Pada versi sebelumnya, search member
dilakukan secara manual dengan button
next. Dengan search member, petugas tinggal memasukkan
nama member, kemudian akan
muncul list member dengan nama sesuai keyword.
·
Issue
- Manual synchronization stock data system penjualan
& data warehouse (based on kasir report yang dibuat secara manual)
Betamart: System V.1.3
·
Pembaharuan & Fitur Tambahan pada
Betamart V.1.3
- Automatic synchronization stock data system
penjualan & data warehouse
- Automatic generate cashier report - Automatic amount
checking of stock data
6. Veri kasi Dan Validasi
LOGIN:
·
Tujuan yang ingin dicapai : User dapat
melakukan login sesuai dengan autorisasinya.
·
Data Test > > Data Login :
- Username : C31198
- Password : *******
·
Skenario :
- User mengisikan username & password
- User menekan button Login
- Apabila terjadi kesalahan penulisan, user dapat
menekan button Reset dan eld username & password akan kembali kosong
pabila terjadi kesalahan username atau password
·
Hasil yang diharapkan :
- User dapat masuk ke dalam sistem
·
Hasil yang diperoleh : 1
·
Status : Ok
PRE: TRANSACTION
·
Tujuan yang ingin dicapai : user dapat
memilih jenis transaksi (member atau non member) dan mencari data pelanggan
·
Data Test > > Data Input :
-Name : Rino Andriya (manual or automatic lled)
-Address : Karang Menur I No. 10 (automatic lled)
-Deposit : Rp 750.000, 00 (automatic lled)
-Last Transaction : 10 May 2009 (automatic lled)
·
Skenario :
-User mengisikan member code
-Data lainnya (name, address, deposit, last
transaction) akan muncul secara otomatis
-User dapat menggunakan metode lain dengan mengisikan
name
-Data lainnya (member code, address, deposit, last
transaction) akan muncul secara otomatis
-Untuk nama yang similar, user dapat menekan button
> > dan < <
-Setelah data member sesuai, user dapat menekan button
Next
-Untuk member baru, user dapat menekan button Register
-Untuk nonmember, user dapat menekan button Non Member
·
Hasil yang diharapkan :
- Jenis transaksi (member/non member) dapat diidenti
kasi dan data member dapat ditampilkan.
·
Hasil yang diperoleh : 1
·
Status : OK
MEMBER: REGISTRATION
·
Tujuan yang ingin dicapai :
- user dapat mendata member baru atau mengubah data
member
·
Data Test > > Data Input :
- Member Code : M203 (automatic generated)
- Name : Samantha Rosalia (manual lled)
- Address : Gajahmada I No. 30 (manual lled)
- Phone No. : +62812339876087
- Deposit : Rp 500.000, 00 (manual lled)
·
Skenario :
- User menginput data member seperti nama,
alamat, no. telp, dan jumlah deposit awal
- User menekan button Save
- Untuk mengubah data member, user dapat menekan
button Edit dan menekan button Save setelah melakukan perubahan
·
Hasil yang diharapkan :
- Member baru dapat atau perubahan data member dapat
tercatat pada system.
·
Hasil yang diperoleh : 1
·
Status : OK
TRANSACTION:
·
Tujuan yang ingin dicapai : user dapat
mencatat transaksi yang dilakukan pelanggan
·
Data Test > > Data Input :
- Cashier : Ranie (Automatic lled from login
data)
- Member Code : M121 (automatic lled from )
- Item Code : S141
- Discount : 10%
·
Skenario :
- User menginput item code & quantity, lalu
menekan button Insert (bisa dilakukan denganbarcode)
- User dapat menginput data barang berdasar nama,
dengan memasukkan nama barang pada
- Textbox Search lalu menekan button Search
- Field discount akan otomatis terisi apabila
pelanggan adalah member Betamart
- Field total akan otomatis terisi (automatic calculate)
- Untuk barang yang tidak jadi dibeli, user dapat
menekan button Cancel: untuk mengeluarkan barang tersebut dari list.
- Apabila pencatatan transaksi sudah selesai, user
dapat menekan button OK untuk mencetak struk sekaligus menyimpan data transaksi
pada database.
- Untuk membatalkan transaksi dan kembali ke halaman
sebelumnya, user dapat menekan button Cancel
Untuk mengosongkan eld, user dapat menekan tombol
Reset
·
Hasil yang diharapkan :
- transaksi dapat tercatat pada system dan pencetakan
struk dapat dilakukan
·
Hasil yang diperoleh : 1
·
Status : OK
4.2.4. Unit Pelayanan Teknis Perpustakaan STT
Telkom.
Extreme Programming (XP) adalah sebuah metodologi pada
pengembangan perangkat lunak yang berdasarkan pada simplicity, communication,
feedback, dan courage. Salah satu praktik dari XP adalah TDD (Test Driven
Development), TDD merupakan teknik pengembangan perangkat lunak yang melakukan
tes pada interface-interface dari implementasi perangkat lunak dan semua kode
program harus melalui tes. TDD digunakan untuk mengurangi kerugian yang
ditimbulkan dari perubahan requirement. Proses yang terdapat dalam TDD salah
satunya adalah refactoring. Refactoring adalah teknik untuk merestruktur
program dengan teknikteknik tertentu supaya memiliki struktur kode program dan
disain yang baik. Pada tugas akhir ini telah dibangun suatu perangkat lunak
peminjaman buku di Perpustakaan, studi kasus di Unit Pelayanan Teknis
Perpustakaan STT Telkom. Perangkat lunak ini sebelumnya telah dibangun dengan
mengutamakan disain bukan implementasi. Selanjutnya perangkat lunak dibangun
ulang dengan teknik Test Driven Development supaya memiliki struktur dan disain
yang lebih baik. Refactoring dapat dikatakan berhasil jika telah memiliki nilai
McCabe's cyclomatic yang rendah yaitu 1 sampai 10. Karena dengan kecilnya nilai
McCabe's cyclomatic menyatakan kesederhana perangkat lunak dan memiliki resiko
error yang kecil. Pada studi kasus ini nilai rata-rata McCabe's cyclomatic
sesudah di-refactoring lebih baik dari pada sebelum di-refactoring. Nilai
rata-rata McCabe's cyclomatic sebelum di-refactoring adalah 3,517, sedangkan
sesudah di-refactoring adalah 1,241. Reusability object dapat diukur dengan
teknik metrics suite, pada studi kasus ini nilai ideal belum dapat dicapai,
namun hasilnya lebih baik dari pada hasil sebelum direfactoring. Nilai SCCr
sebelum di-refactoring adalah 0,473, sedangkan nilai SCCr sesudah
di-refactoring 0,46, sedangkan nilai ideal adalah 0,61 sampai 1. Nilai SCCp
sebelum di-refactoring adalah 0,16, sedangkan nilai SCCp sesudah di-refactoring
adalah 0,79, sedangkan nilai ideal adalah 0,42 sampai 0,77.