10
BAB 2
LANDASAN TEORI
2.1 Numerical Control(NC)
2.1.1 Sejarah NC
Perkembangan NC bermula pada tahun 1948 – 1949 dimana Angkatan Udara
Amerika Serikat ingin mempunyai mesin untuk industri pesawat yang dapat membuat
bagian kompleks lebih murah, lebih cepat dan lebih akurat dibandingkan metode
konvensional. Oleh karena itu mereka bekerja sama dengan John T. Parson dan MIT
untuk mengembangkan mesin tersebut. (Arnold, 2001, pp. 14-19).Parson sendiri pada
awalnya mengembangkan teknik untuk memproduksi rancangan baling – baling pada
mesin milling namun masih membutuhkan data numerik yang dihasilkan oleh mesin
punched–cardIBM untuk memposisikan secara manual sekrup mesin milling pada dua
sumbu(50 Years Of Technological Development, 2005).
Giddings and Lewis Machine Tool Co. mencoba ingin meningkatkan toleransi
mesin milling-nya melalui kontrol numerik dan menghasilkan kontrol numericord yang
menggantikan punch tape dengan magnetic tape yang dikembangkan juga oleh General
Electric.Pada bidang manufaktur dan pengerjaan logam, teknologi NC ini telah
menyebabkan revolusi, bahkan pada saat sebelum komputer menjadi standar pada setiap
perusahaan dan setiap rumah. Perkembangan terkini dari micro electronic dan komputer
yang tidak pernah berhenti menyebabkan dampak pada NC dan telah membuat
perubahan yang signifikan pada bidang manufakturing dan pengerjaan logam pada
khususnya(Smid, 2003, p. 1).
11
2.1.2 Perkembangan NC
Perkembangan NC sudah melewati 3 gelombang dimana gelombang pertama
adalah pengenalan NC untuk mesin perkakas pada tahun sekitar tahun 1950 dan
1960.Sedangkan untuk gelombang kedua muncul pada sekitar tahun 1970 dan 1980
yang dipicu oleh permintaan micro computer untuk NC karena pemotongan besar harga
dan peningkatan performa pada pasar prosesor. Pada gelombang kedua ini mulai
diperkenalkan mesin CNC yang diperlengkapi dengan fitur baru dan lebih fleksibel
dibanding mesin NC pada gelombang sebelumnya.Gelombang ketiga muncul karena
dipicu oleh efek dari komputer yang telah mempengaruhi semuanya.Pada gelombang ini
dimungkinkan untuk pemindahan dari pengerjaan pada kertas menuju pengerjaan secara
elektronik (CAD – Computer Aided Design) pada komputer dan dapat mendukung
produksi dengan komputer (CAM – Computer Aided Manufacturing). Tujuan utamanya
adalah untuk mengintegrasikan dan otomasi proses produksi secara keseluruhan (CIM –
Computer Integrated Manufacturing).CAD sendiri dikembangkan oleh MIT yang
didanai oleh Angkatan Udara Amerika Serikat. Ivan Sutherland membuat program yang
dinamakan Sketchpad pada mesin TX-2 dan penemuannya itu telah menginspirasi orang
MIT untuk membuat sistem CAD yang sebenarnya yaitu Electronic Drafting Machine
(EDM). EDM tersebut dikembangkan lagi oleh Lockheed menjadi C-5 Galaxy yang
menjadi contoh pertama dari sistem produksi CAD/CNC.
Perkembangan PC (Personal Computer) pada awal tahun 1980 telah membuat
perubahan besar dimana mesin CNC tersebut telah dapat diintegrasikan dengan
komputer sehingga menjadi standar, lebih murah dan lebih mudah untuk
pengendaliannya. Bahasa pemrograman yang awalnya berkaitan langsung dengan
perangkat keras telah digantikan dengan GUI (Graphical User Interface).Hal ini tentu
12
memudakan operator mesin untuk menggunakannya karena telah terbiasa dengan
lingkungan PC (Windows).Pengembangan selanjutnya adalah meneliti kemungkinan
untuk pengiriman data pada Local Area Networks (LAN) dan mengakses database
dimana usaha ini akan menstandarkan data dan memudahkan untuk integrasi lebih lanjut
antara desain dan proses produksi(Arnold, 2001, pp. 22-28).
Gambar 0.1Three Waves of Digital Control Technology
Sumber: (Arnold, 2001, p. 28)
2.1.3 Definisi NC
Smid (2003, p. 1) mengemukakan bahwaNCdapat didefinisikan sebagai operasi
dari mesin perkakas yang secara khusus diinstruksikan oleh kode dari mesin kontrol
sistem. Instruksi tersebut merupakan kombinasi dari alfabet, angka dan simbol yang
terpilih, sebagai contoh: angka desimal dan tanda persen dari simbol tanda kurung.
Instruksi dituliskan dalam urutan yang logis dan bentuk yang telah ditentukan.Koleksi
13
dari instruksi yang sudah ada dan penting bagi mesin dinamakan NCProgram,
CNCProgram, atau Part Program. Program tersebut dapat disimpan untuk penggunaan
di masa mendatang dan digunakan berulang – ulang untuk mendapatkan hasil yang
sama.
2.1.4 Computerized Numerical Control (CNC)
Smid (2003, p. 1) mengemukakan bahwaCNC merupakan perkembangan dari
NC dimana menggunakan internal micro processor (contoh: komputer). Komputer
tersebut mengandung memori register untuk menyimpan berbagai tugas yang berfungsi
untuk memanipulasi logical function. Ini berarti programmer atau operator mesin dapat
mengubah program untuk menyesuaikan dengan kebutuhan yang ada.Fleksibilitas ini
yang merupakan keuntungan terbesar dari sistem CNC dan kunci utama yang
berkontribusi pada penggunaan secara luas teknologi ini pada bidang manufaktur
modern.Program CNC dan logical functions disimpan pada chip komputer yang special
sebagai instruksi perangkat lunak dibandingkan menggunakan koneksi perangkat keras
seperti kabel yang mengontrol logical functions.CNC sering diasosiasikan dengan kata
“softwired”.
NC dan CNC mempunyai kesamaan dimana bertugas untuk memanipulasi data
untuk tujuan membuat bagian mesin.Oleh karena itu pada bagian internal dari sistem
kontrolnya, kedua sistem ini mengandung logical instruction yang memproses data.
Namun perbedaannya adalah pada sistem NC menggunakan logical functions yang tetap
karena sudah ada dari awal dan berupa kabel permanen di dalam unit kontrolnya. Fungsi
ini tidak dapat dirubah oleh programmer atau oleh operator mesin. Karena berupa kabel
permanen di dalam unit kontrolnya, oleh karena itu sistem kontrol NC sering
14
diasosiasikan dengan kata “hardwired”.Sistem dapat menginterpretasikan bagian
program, namun tidak dapat memperbolehkan perubahan pada program menggunakan
fitur kontrol. Sistem NC wajib menggunakan punched tapes untuk input mengenai
informasi program.
2.1.5 Keuntungan CNC
Berikut merupakan keuntungan menggunakan CNC menurut Smid (2003, pp. 2-
4):
1. Pengurangan waktu persiapan
Persiapan mesin yang awalnya dilakukan secara manual oleh operator mesin
namun sekarang sudah dapat dilakukan secara otomatis dan mengurangi
biaya.Berbagai fitur pada mesin CNC sudah dapat menggantikan tugas dari
operator mesin. Pengurangan waktu persiapan tersebut juga dapat dilakukan
dengan cara menentukan jumlah bagian mesin yang ingin dihasilkan atau juga
dengan membuat satu kelompok untuk proses yang sama sehingga waktu
persiapannya berkurang.
2. Pengurangan waktu pengerjaan
Program yang sudah dibuat dapat dijalankan dengan cepat dan perubahan desain
bagian mesin yang dapat mengubah isi program dapat dilakukan dengan cepat.
3. Akurasi dan pengulangan
Karena program disimpan dalam memori komputer atau dalam tape, maka akan
tetap sama isinya dan dapat digunakan ulang untuk memproduksi bagian dari
mesin yang diminta dengan akurasi yang tinggi.
4. Membuat bentuk kompleks
15
Mesin CNC dapat digunakan untuk membuat bentuk kompleks seperti pada
industri pesawat dan otomotif. Bentuk yang kompleks seperti cetakan juga dapat
dibuat tanpa membutuhkan biaya lain untuk membuat modelnya terlebih dahulu.
5. Penyederhanaan alat kerja
Berbagai fungsi dari mesin CNC telah menggantikan alat – alat tradisional yang
banyak sehingga dapat meminimalkan biaya yang diperlukan.
6. Waktu pemotongan yang konsisten
Mesin CNC tidak dipengaruhi oleh faktor eksternal seperti kemampuan operator,
pengalaman dan keletihan ketika menjalankan mesin konvensional. Proses
produksi seperti jadwal produksi dan alokasi pengerjaandapat dilakukan secara
berulang dan akurat.
7. Peningkatan produksi
Pengunaan mesin CNC adalah investasi yang menjanjikan karena mempunyai
nilai kompetitif yang baik serta peningkatan produktivitas serta kualitas benda
yang dihasilkan.
2.1.6 Jenis – Jenis CNC
Berikut merupakan jenis – jenis mesin CNCmenurut Smid (2003, pp. 4-5):
1. Mills and Machining Centers
Standar untuk mesin milling dan machining adalah mempunyai 3 sumbu yaitu X,
Y dan Z. Mesin milling merupakan mesin yang kecil dan mudah dioperasikan.
Pada industri, mereka digunakan untuk pembuatan alat kerja dan produksi benda
kecil lainnya.
16
Menurut Krar & Gill (1999, p. 10), mesin milling dapat melakukan operasi
seperti penggilingan, pembuatan kontur, pemotongan gigi, pengeboran dan
reaming. Mesin milling dapat diprogram pada ketiga sumbunya:
a. Sumbu X mengontrol laju ke kiri atau ke kanan.
b. Sumbu Y mengontrol laju maju atau mundur.
c. Sumbu Z mengontrol laju naik atau turun.
Gambar 0.2Mills and Machining Centers
Sumber: (Krar & Gill, 1999, p. 11)
Mesin CNC jenis millingyang digunakan di Computer Engineering Lab, kampus
Syahdan BINUS University, Jakarta Barat dapat dilihat pada Gambar 2.3 berikut:
17
Gambar 0.3 Mesin Milling
2. Lathes and Turning Centers
Mesin lathe merupakan mesin dengan dua sumbu, sumbu vertikal X dan sumbu
horisontal Z. Fungsi utama dari mesin lathe yang membedakan dengan mesin
milling adalah bagian yang berputar pada garis utama mesin.Menurut Krar &
Gill (1999, p. 10), mesin lathe biasanya digunakan untuk memproduksi benda
yang melingkar. Mesin lathe dapat diprogram pada kedua sumbunya:
a. Sumbu X mengontrol gerak alat pemotong dimana sumbu X positif
memindahkan alat jauh dari poros sedangkan sumbu X negatif memindahkan
alat menuju poros.
b. Sumbu Z mengontrol rel mendekati atau menjauhi dari pusat.
18
Gambar 0.4Lathes and Turning Centers
Sumber: (Krar & Gill, 1999, p. 10)
Pada Gambar 2.5 berikut ditunjukkan perkembangan dan inovasi mesin CNC:
Gambar 0.5Inovasi Arsitektur Mesin CNC
Sumber: (Arnold, 2001, p. 32)
2.2 Enchanced Machine Control (EMC)
EMCadalah sebuah perangkat lunak komputer untuk mengontrol mesin seperti
mesin milling,lathe, plasma cutters, cutting machines, robots, hexapods, dan lain –
19
lain.EMC pertama kali dikembangkan oleh Intelligent Systems Division di The National
Institutes of Standards and Technology(NIST), sebuah agen dari Departemen
Perdagangan Amerika Serikat.EMC adalah perangkat lunak open sourcedan versi
terbarunya semuanya berlisensi di bawah GNU General Public License dan GNU Lesser
General Public License (GPL dan LGPL).Kode sumber dan binary dari EMC tersedia
pada situshttp://www.linuxcnc.org.
EMC2 merupakan pengembangan dari EMC. Awalnya versi 2.0.0 dirilis pada
tanggal 8 Mei 2006, dan saat ini versi terbarunya sudah mencapai 2.4.7 yang dirilis pada
tanggal 16 Oktober 2011 dengan ukuran paket instalasi sebesar 24.9 MB dengan
penambahan fungsi baru dan perbaikan dari versi sebelumnya. EMC2 dapat digunakan
pada sistem operasi Linux dan terbagi menjadi 3 jenis yaitu Ubuntu 10.04 Lucid Lynx,
Ubuntu 8.04 Hardy Heron dan 6.06 Dapper Drake.Saat ini untuk Linux Ubuntu 6.06
Dapper Drake tidak di-support lagi.Pada situs tersebut kita dapat men-download versi
Live-CD Linux Ubuntu yang telah di-install-kan EMC2 untuk mencobanya terlebih
dahulu.EMC2 membutuhkan real-time extension yang berguna untuk integrasi langsung
dengan mesin namun jika hanya untuk simulasi maka tidak masalah.EMC2 mempunyai
banyak fitur dan fungsi baru antara lain Hardware Abstraction Layer(HAL) yang
memungkinkan penyesuaian ke berbagai jenis mesin, dan proses instalasi lebih mudah dari
yang sebelumnya. HAL menyediakan fungsi untuk mengirimkan data secara langsung dari
EMC2 untuk mengontrol mesin atau modul perangkat lunak tingkat rendah dan kerangka
kerja untuk mengembangkan perangkat keras driver dan modul perangkat lunak untuk
eksekusi secara langsung.Namun EMC2 tidak menyediakan fungsi CAD (Computer Aided
Design)atau menghasilkan G-Codesecara langsung.
20
Ada empat komponen utama untuk perangkat lunak EMC2: kontroler gerak
(EMCMOT), kontroller I/O diskrit (EMCIO), modul untuk mengkoordinasi controller
(EMCTASK), dan GUI (Graphical User Interface).
Gambar 0.6 Arsitektur EMC
Sumber: ( Starovešk, Brezak, Udiljak, & Majetić, 2009, p. 2)
EMC2 ini juga menyediakan:
a. Beberapa antarmuka untuk pengguna grafis termasuk satu untuk layar sentuh.
b. Interpreter untuk "G-Code" (RS-274 alat mesin bahasa pemrograman).
c. Gerakan sistem mesin secara realtime.
d. Pengoperasian mesin elektronik tingkat rendah seperti sensor dan motor.
21
e. Perangkat lunak PLC yang dapat diprogram dengan ladder diagram.
f. Kemudahan instalasi dengan .deb packages atau Live-CD.
Gambar 0.7 EMC2 Controlled Machine
Sumber: http://linuxcnc.org/docs/html/whatstep1.png
Gambar 2.7menunjukkan diagram blok sederhana yang menunjukkan sistem
EMC2 untuk mesin 3 sumbu. Diagram ini menunjukkan sistem motor stepper. PC
dengan Linux sebagai sistem operasinya, digunakan untuk mengendalikan drive stepper
motor dengan mengirimkan sinyal melalui port printer (paralel). Sinyal-sinyal (pulsa)
yang dikirim ini membuat drive stepper motor dapat bergerak.
22
2.3 Real Time Operating System (RTOS)Dan System Simulation
Real Time operating systemmerupakan sistem operasi yang ditujukan untuk
menangani permintaan aplikasi secara langsung. Karaketeristik utama dari RTOS ini
adalah tingkatan konsistensi mengenaijumlah waktuyang diperlukan untukmenerima
danmenyelesaikan tugassebuah aplikasi. Sebuah sistem umumnya dapat dibagi menjadi
3 (tiga) bagian yaitu:
1. Non Real Time System
Non real time system merupakan sistem dimana tidak adanya deadline atau tugas
yang harus dikerjakan karena mendesak dan harus selesai pada saat itu juga.
2. Soft Real Time System
Soft real time system merupakan sistem dimana adanya deadline namun jika
tidak diselesaikan tepat waktu maka tidak menimbulkan efek yang besar seperti
penurunan performa.
3. Hard Real Time System
Hard real time system merupakan sistem dimana adanya deadline dan jika tidak
diselesaikan tepat waktu maka dapat menimbulkan efek yang besar.
RTOS merupakan hard real time system, karena harus mempunyai waktu respon
yang dapat diprediksi dan dapat menggunakan waktu yang ada dengan baik.RTOS
sendiri harus mempunyai algoritma yang baik untuk scheduling, sedangkan untuk faktor
– faktor utama pada RTOS yaitu meminimalkan gangguandan meminimalkan pergantian
thread. RTOS sendiri mempunyai variabel yang dinamakan jitter yaitu kondisi dimana
tugas tersebut tidak dapat dipenuhi dan berada dalam keadaan busy.
23
Beberapa kelebihan menggunakan RTOS:
1. Waktu respon yang cepat
RTOS yang efisien mempunyai waktu respon minimal dan cepat. Beberapa
parameter yang mempengaruhinya antara lain:
• Interrupt latency yaitu waktu antara interrupt request dan interrupt servicing.
• Threads fly-back time yaitu waktu dari hardware event biasanya berupa
interrupt dan dimulainya kembali thread yang menanganinya.
• Context switch time yaitu waktu yang diperlukan untuk mengsinkronisasi
switch dari satu thread ke thread lainnya.
2. Jitter kecil
Beberapa hal yang mempengaruhi jitter antara lain:
• Penugasan prioritas thread.
• Penugasan prioritas interrupt.
• Panjang dan jumlah zona kritikal.
• Interaksi antara thread melalui resource yang dibagi bersama yang dilindungi
oleh mutual exclusion.
• Pengunaan prioritas turunan atau strategi / algoritma untuk mengurangi jitter.
3. Penggunaan memori
Karena RTOS dapat memprediksi waktu yang digunakan dan menggunakannya
dengan baik maka otomatis penggunaan memori dapat diperkecil.
4. Reabilitas
24
Dengan sifatnya yang dapat memprediksi waktu yang digunakan dan
menggunakannya dengan baik maka RTOS ini dapat diandalkan dan menjadi
pilihan orang.
5. Sinkronisasi
Karena sifatnya tersebut, maka RTOS dapat digabungkan dengan tool lain yang
mendukung seperti contoh penggunaan semaphore.
Pada Linux sendiri sudah banyak RTOS yang dapat digunakan seperti RTLinux,
RTAI namun pada skripsi ini yang digunakan adalah sistem operasi Linux Ubuntu 10.04
dengan RTAI yang bisa didapatkan di https://www.rtai.org/ yang saat ini sudah
mencapai versi terbaru yaitu 3.8 dirilis pada tanggal 16 Februari 2010 dengan ukuran
file4.55 MB.
SystemSimulation merupakan sebuah teknik untuk meniru operasi pada sistem
sebenarnya yang berjalan pada kehidupan sehari – hari.Pada umumnya sistem yang
sedang berjalan dapat dimodelkan secara matematis oleh para ahli, namun dengan
adanya simulasi ini maka operasi pada sistem sebenarnya dapat dimodelkan dan
dianalisis oleh orang yang tidak ahli seperti para manajer.Simulasi merupakan eksekusi
model yang direpresentasikan oleh program komputer yang memberikan informasi
mengenai sistem yang sedang diinvestigasi.Simulasi memungkinkan kita untuk melihat
event – event yang terjadi pada sistem untuk dapat dianalisis.Dengan memakai simulasi,
biaya yang diperlukan menjadi berkurang drastic dibanding dengan ujicoba langsung
pada sistem sebenarnya.Dengan adanya simulasi memungkinkan untuk analis dan
25
pembuat keputusan untuk membuat keputusan yang terbaik dengan menghindari
kesalahan yang tidak terduga.
Salah satu contoh untuk simulasi yang sering digunakan adalah penggunaan
perangkat lunak VMware seperti yang digunakan pada skripsi ini. Penggunaan VMware
pada skripsi ini dimaksudkan untuk menguji terlebih dahulu program aplikasi yang akan
digunakan, setelah stabil dan tidak ada masalah lagi maka baru dijalankan pada sistem
yang sebenarnya yaitu komputer yang sudah ada real time system dan terhubung ke
mesin CNC.
2.4 AXIS Interface
AXISInterfacemerupakansalah satutampilan antar mukadari EMC2 yang
mempunyai fitur live preview dan backplot.AXIS Interface ditulis menggunakan bahasa
pemrogramanPython dan menggunakan Tk dan OpenGL untuk menampilkan antarmuka
penggunanya. AXIS
InterfacedapatdikonfigurasiuntukmenambahkanVirtualControlPaneluntukmenyesuaikan
bentuk tampilan pada saat menjalankan program EMC2supaya sesuai
dengankebutuhanpengguna.AXISadalahdefault penggunainterfaceyangsecara
aktifsedangdikembangkan oleh para penggunanya.Tampilan AXISini dapat dilihat pada
Gambar 2.8berikut ini:
26
Gambar 0.8AXISInterface
Sumber: http://linuxcnc.org/docs/html/axis_2.3.png
2.5 AXIS Display
Tampilan AXIS mengandung beberapa elemen seperti:
1. Sebuah area layar yang menunjukkan hasil dari suatu file (pada kasus ini:
“axis.ngc”) yang telah dimuat dan juga lokasi sekarang dari mesin CNC
“controlled point” serta area ini akan menampilkan jalur yang telah dilalui oleh
mesin CNC yang dinamakan “backplot”.
2. Menu bar dan Toolbar untuk melakukan berbagai kegiatan.
3. “Manual Control Tab” yang dapat membuat mesin bergerak, menyalakan atau
mematikan poros dan pendingin jika dimasukkan pada file “.ini”.
27
4. “MDI Tab” dimana G-Code program dapat dimasukkan secara manual oleh
pengguna per baris. Juga menampilkan G-Code yang aktif serta G-Code yang
mempunyai efek.
5. “Feed Override” yang memungkinkan pengguna untuk menambah atau
mengurangi kecepatan dimana EMC2 memproses suatu program. Default-nya
adalah 120% dan dapat diatur ke nilai yang berbeda pada file “.ini”.
6. “Spindle Override” yang memungkinkan pengguna untuk menambah atau
mengurangi kecepatan poros pada EMC2.
7. “Jog Speed” yang memungkinkan pengguna untuk mengatur kecepatan proses
dalam batas yang telah ditetapkan yang telah diatur pada file “.ini”.
8. “Max Velocity” yang memungkinkan pengguna untuk mengatur kecepatan
maksimum pada cap feed rates.
9. Sebuah tampilan teks yang menunjukkan sumber G-Code dari suatu file yang
ingin dimuat.
10. Sebuah status bar yang menunjukkan keadaan suatu mesin.
2.6 G-Code
G-Code adalah bahasa pemrograman mesin yang berkaitan erat dengan grafik
dan vektor. Bahasa ini memakai komputer sebagai alat bantu penghubung antara mesin
dan perangkat lunak yang terdapat di komputer. Mesin akan mengikuti gerak alur dari
vektor yang dituliskan dalam G-Code. Bahasa pemrograman G-Code ini ditulis dalam
file dengan ekstensi .ngc (Numerical G-Code).Berikut adalah beberapa contoh bahasa G-
Code disertai dengan fungsinya masing-masing:
28
Tabel 0.1 Tabel G-Code 1
Code Parameters (X Y Z A B C U V W apply to all motions)
Description
G0 Rapid motion G1 Coordinated motion ("Straight feed") G2, G3 I J K or R Coordinated helical motion ("Arc
feed") CW or CCW G4 P Dwell (no motion for P seconds) G5.2, G5.3 NURBs Block G7 X Diameter mode (lathe) G8 X Radius mode (lathe) G10 L1 P Q R X W Z Tool offset, radius, orientation setting G10 L10 P Q R X W Z Tool offset, radius, orientation setting
calculated G10 L2 P R X Y Z A B C Coordinate system origin setting G10 L20 P R X Y Z A B C Coordinate system origin setting
calculated G17 Select XY plane G18 Select XZ plane G19 Select YZ plane G20 Inches G21 Millimeters G28, G28.1 G30, G30.1
Return to or Set reference point 1 Return to or Set reference point 2
G33 K Spindle Synchronized Motion
G33.1 K Rigid Tapping G38.2 - G38.5 Straight probe G40 Cancel Cutter Compensation G41, G42 D Start cutter radius compensation left or
right G41.1, G42.1 D L Start cutter radius compensation left or
right, transient tool G43 H Use Tool Length Offset from Tool
Table G43.1 I K Use specified tool length offset for
transient tool G49 Cancel Tool Length Offset G53 Motion in Machine Coordinate System G54-G59 Select Coordinate System G59.1-G59.3 Select Coordinate System
29
G61 Exact Path mode G61.1 Exact Stop mode G64 P Continuous mode with optional path
tolerance G76 P Z I J R K Q H L E Multipass lathe threading cycle G80 Cancel motion mode G81, G2 R L (P) Drilling cycle without (with) dwell G83, G73 R L Q Peck and Chip-break drilling cycles G85, G89 R L (P) Boring cycle without (with) dwell G90, Absolute distance mode G91 Incremental distance mode G90.1 Arc centers I,J,K are absolute G91.1 Arc centers I,J,K are relative to the
arc's starting point G92 X Y Z A B C Offset Coordinate Systems & Set
Parameters G92.1 Cancel offset coordinate systems and
set parameters to zero G92.2 Cancel offset coordinate systems but do
not reset parameters G92.3 Apply Parameters to Offset Coordinate
Systems G93 Inverse time feed rate G94 Units per minute feed rate G95 Units per revolution G96 SD Constant Surface Speed (foot/minute or
meter/minute) with top speed G97 RPM Mode G98 Retract to prior position G99 Retract to R position
Sumber: http://linuxcnc.org/docs/html/gcode_main.html
30
Tabel 0.2 Tabel G-Code 2
Code
Parameters (X Y Z A B C U V W apply to all motions)
Description
M0 Pause Program M1 Optional Stop M2 Other stop codes M3 S Turn spindle clockwise M4 S Turn spindle counterclockwise M5 Stop spindle M6 T Change Tool M7 Turn mist on M8 Turn flood on M9 Turn all coolant off M30, M60 Pallet Shuttle
M50 - M53
P0 (off) or P1 (on) Feed Override, Spindle Override, Adaptive Feed, Feed Hold
M61 Set Current Tool Number M62-65 P Digital Output Control
M66 P E L Q Digital and Analog Input
Control
M67 T Analog Output Synchronized
with Motion M68 T Analog Output Immediate M100-M199 P Q User Defined M-Codes O O Codes F Set Feed Rate S Spindle Speed T Select Tool (…) A comment "…" to the user
(MSG,…) Display the message "…" to the
user (e.g., in a popup)
(DEBUG,…#123…#<foo>) Display the message (with
variables substituted) like MSG
(PRINT,…#123…#<foo>) Display the message (with
variables substituted) to stderr
Sumber: http://linuxcnc.org/docs/html/gcode_main.html
31
2.7 Fraktal
2.7.1 Sejarah Fraktal
Perkembangan metode matematika fraktal pertama kali dimulai pada abad ke –
17 ketika seorang matematikawan Leibniz melakukan suatu penelitian mengenai bentuk
perulangan (rekursif)bangun yang serupa (self - similarity).Namun dia melakukan
sebuah kesalahan dengan memberikan sebuah pemikiran bahwa hanya garis lurus yang
dapat memiliki sifat self-similar.Sampai pada tahun 1872, ketika Karl Weierstrass
memberikan contoh sebuah fungsi dengan propertinon-intuitif yang memiliki
kekontinuitas tetapi tidak terdiferensiasi.Pada tahun 1904, Helge van Koch tidak puas
dengan teori dari Weierstrass dan menyebutnya sangat abstrak dan definisi yang terlalu
analitik, van Koch kemudian memberikan sebuah definisi secara geometris terhadap
fungsi yang serupa yang kemudian dikenal dengan Koch Snowflake.
Pada tahun 1915, Waclaw Sierpinski membuat sebuah geometri segitiga yang
disebut dengan segitiga sierpinski dan satu tahun kemudian membentuk sebuah geometri
yang disebut dengan karpet sierpinski. Ide terhadap konsep kurvaself-similar
dikembangkan lebih lanjut lagi oleh Paul Pierre Levy pada tahun 1938 dalam jurnalnya
“Plane Or Space Curves And Surfaces Consisting Of Parts Similar To The Whole”
menjelaskan mengenai bentuk kurva fraktal baru yaitu Levy C Curve.
George Cantor juga memberikan contoh dari sebuah himpunan yaitu Cantor Set
yang juga termasuk fraktal.Iterated Function mulai dipelajari oleh Henri Poincare, Felix
Clain, P ierre Fatou dan Gaston Julia pada akhir abad 19 dan awal abad 20. Gaston Julia
kemudia menemukan lagi sebuah bentuk geometri fraktal yang dikenal dengan Julia
Set.Dan akhirnya pada tahun 1960, Benoit Mandelbrot memulai investigasnya mengenai
32
self-similarity pada jurnalnya “How Long Is the Coast of Britain?Statistical Self –
Similarity and Fractional Dimension” dan mendefinisikan fraktal.
2.7.2 Definisi Fraktal
Menurut Mandelbrot (1983, p. 4) fraktal berasal dari kata sifat dalam bahasa latin
“fractus”yang berarti hancur atau retak sedangkan kata kerja dalam bahasa latin
“frangere” yang berarti memecah. Mandelbrot (1983, p. 15) selanjutnya mendefinisikan
fraktal sebagai “himpunan dimana dimensi Hausdorff melebihi dimensi topologikal.”
Menurut Falconer (2003, p. xxv) dimensi topologikal selalu berupa angka bulat
dan bernilai 0 jika terputus, bernilai 1 jika setiap titik mempunyai minimal
neighbourhood kecil dimana batasan dimensi 0.Sebagai contoh titik mempunyai dimensi
topologikal 0, garis mempunyai dimensi topologikal 1, permukaan mempunyai dimensi
topologikal 2, dll.Dimensi topologikal bisa dilambangkan dengan dT(s).Definisi secara
matematis yaitu “himpunan S mempunyai dimensi topologikal k jika setiap titik pada S
mempunyai minimal neighbourhood kecil dimana batasannya bertemu dengan
himpunan S dimana batasan dimensi k – 1dan k merupakan angka bulat non negatif.”
Anton (2005, p. 1002) menuliskan bahwa pada tahun 1919, seorang ahli
matematika Felix Hausdorff memberikan sebuah definisi alternatif untuk sebuah dimensi
dari sembarang himpunan di dalam Rn. Definisinya relatif kompleks, tetapi untuk
himpunan yang self-similar, maka dapat disederhenakan. Dimensi Hausdorff dari sebuah
himpunan self – similar S dilambangkan dengan dH(s) didefinisikan sebagai:
/
33
Dalam definisi tersebut, ln melambangkan logaritma natural, sedangkan k adalah
nilai banyaknya pembagian himpunan menjadi subhimpunan dan s adalah nilai skala
faktor dari subhimpunan tersebut terhadap himpunan asal. Sebagai contoh pada Koch
Curve yang terbuat dari garis, maka dimensi topologinya adalah 1 lalu jika diperkecil
dengan skala s= , maka bangunannya akan terbagi menjadi 4 bagian pada setiap sisinya
dan seterusnya, oleh karena maka dapat dihitung dimensi Hausdorff yaitu
.
Persamaan tersebut juga dapat dinyatakan dalam bentuk sebagai berikut:
Dimana dimensi Hausdorff dinyatakan dalam bentuk pangkat atau sebagai
eksponen.Dengan bentuk tersebut dapat lebih menjelaskan mengenai interpretasi konsep
dimensi Hausdorff. Sebagai contoh, ada sebuah himpunan saling serupa dengan faktor
skala s= , maka areanya atau ukurannya akan berkurang dengan faktor . Jika
kita ingin mengubah sebuah skala segmen garis dengan faktor , maka akan mengurangi
panjangnya dengan faktor dan jika ingin mengubah skala persegi dengan
faktor ,, maka akan mengurangi panjangnya dengan faktor . Beberapa
bentuk fraktal yang sudah didapatkan dimensi Hausdorff disajikan pada Tabel 2.3
berikut:
34
Tabel 0.3 Tabel Dimensi Hausdorff Untuk Beberapa Fraktal
Jenis Fraktal Dimensi Hausdorff
Gambar Fraktal
2D Cantor dust
Quadratic von Koch curve (type 1)
Quadratic von Koch curve (type 2)
Sierpiński arrowhead curve
Sierpinski triangle
Dragon curve
Sumber: http://en.wikipedia.org/wiki/List_of_fractals_by_Hausdorff_dimension
Beberapa pernyataan mengenai dimensi topologikal dan dimensi Hausdorff:
a. Dimensi topologi dan dimensi Hausdorff dari sebuah himpunan tidak harus
sama.
35
b. Dimensi Hausdorff dari sebuah himpunan tidak harus bilangan bulat.
c. Dimensi topologis dari sebuah himpunan akan lebih kecil atau sama dengan
dimensi Hausdorff, atau dengan kata lain dT(s) ≤dH(s).
Tabel 2.4 berikut merupakan perbedaan antara geometri Euklid dengan geometri
fraktal:
Tabel 0.4 Perbedaan Geometri Euklid Dengan Geometri Fraktal
Geometri Euklid Geometri Fraktal Tradisional Inovasi modern Berdasarkan ukuran atau skala spesifik
Tidak ada ukuran atau skala spesifik
Gambar berdasarkan objek modifikasi manusia
Mengacu kepada geometri alam
Dapat dideskripsikan dengan formula mudah Contoh : x2 + y2 + z2 = r2 Mendeskripsikan lingkaran
Dideskripsikan dengan algoritma Contoh Zn+1 = Zn + Z0 Mendeskripsikan himpunan Mandelbrot
Sumber: http://homepages.ulb.ac.be/~dgonze/TEACHING/fractals.pdf
2.7.3 Karakteristik Fraktal
Menurut Falconer (2003, p. xxv), fraktal biasanya mempunyai beberapa
karakteristik sebagai berikut:
1. Fraktal mempunyai struktur yang baik meskipun pada skala kecil.
2. Fraktal tidak mudah untuk dideskripsikan pada geometri euklid.
3. Mempunyai sifat self-similarity.
4. Mempunyai dimensi Hausdorff melebihi dimensi topologikal.
5. Bisa dideskripsikan secara rekursif.
36
2.8 L-System
2.8.1 Definisi L-System
L-Systemmerupakan salah satu teknik untuk mengimplementasikan
fraktal.Prusinkiewicz (2004, p. 1) menuliskan bahwa konsep utama dari L-System adalah
penulisan ulang (rewriting).Secara umum penulisan ulang adalah teknik untuk
mendefinisikan objek yang kompleks menggunakan aturan penulisan ulang.Sebagai
contoh adalah snowflake curve yang ditemukan oleh von Koch pada tahun 1905.
Gambar 0.9Snowflake Curve
Sumber: (Prusinkiewicz & Lindenmayer, 2004, p. 2)
Mandelbrot (1983, p. 39) kemudian mendefinisikan bahwa gambar tersebut
awalnya merupakan 2 bangun yang berperan sebagai initiator dan generator.Setiap
langkah konstruksi adalah generator mengganti bagian initiator dan seterusnya sampai
37
batas yang telah ditentukan.Istilah mengenai mekanisme penulisan ulang atau yang lebih
dikenal dengan namaL-System sendiri dikenalkan oleh Aristid Lindenmayer pada tahun
1968. Perbedaan antara L-System dengan Chomsky grammar adalah pada Chomsky
grammar produksi dilakukan secara berurutan, sedangkan pada L-Systemproduksi
dilakukan secara paralel dan secara simultan mengganti semua huruf pada kata.Sebagai
contoh pada Chomsky grammar diberikan aturan produksi sebagai berikut:
•
•
Maka jika diberikan start symbol adalah maka hasilnya adalah:
. Bahasa dari grammar tersebut menjadi himpunan tak terhingga yaitu:
| , , ,… .
Sedangkan pada L-System merupakan deterministic dan context-free grammar / 0
– free (D0L-System) dimana deterministic menyatakan bahwa hanya boleh ada satu
produksi untuk setiap symbol dan context-free grammar menyatakan bahwa pada sisi
kiri dari aturan produksi hanya boleh berupa satu simbol non-terminal. Penulisan ulang
pada L-System diawali dengan kata yang dinamakan oleh axiom.Sebagai contoh pada L-
System diberikan aturan produksi sebagai berikut:
•
•
Maka jika diberikan axiom b maka hasilnya adalah sebagai berikut:
38
Gambar 0.10 Penulisan Ulang Pada L-System
Sumber: (Prusinkiewicz & Lindenmayer, 2004, p. 4)
Prusinkiewicz (2004, p. 4) menuliskan definisi secara matematis untuk L-System
yaitu: “jika V adalah sebuah alfabet, V* adalah himpunan kata pada V dan V+ adalah
himpunan non kata pada V. Kata 0L-system merupakan urutan triplet
dimana V adalah alfabet pada sistem, adalah axiom dan adalah
produksi yang terbatas. Produksi ( , ) P dituliskan dengan dimana disebut
predecessor dan disebut successor. Diasumsikan bahwa untuk setiap , terdapat
minimal satu sedemikian sehingga . Jika tidak ada produksi spesifik untuk
, maka fungsi identitas diasumsikan terdapat pada himpunan P. 0L-System
disebut deterministic (D0L-System) jika dan hanya jika untuk setiap , terdapat
hanya satu sedemikian sehingga .”
Prusinkiewicz (2004, pp. 4-5) juga menuliskan definisi secara matematis untuk
penurunan L-System yaitu: “jika µ = a1…am adalah angka sembarang yang ada di V.
Kata v = x1…xm diturunkan langsung atau dihasilkan oleh µ, dinotasikan dengan µ
v, jika dan hanyak jika untuk setiap i = 1, …, m. Kata v dihasilkan oleh G
39
dengan turunan sebanyak n, jika terdapat urutan penurunan dari kata µ0, µ1, …, µn
sedemikian sehingga µ0 = , µn = v dan µ0 µ1 … µn.”
2.8.2 Turtle Geometry
Berbagai cara telah telah digunakan untuk menginterpretasikan string yang
dihasilkan pada bidang geometri namun yang sering digunakan adalah turtle.
Prusinkiewicz (2004, p. 6) menuliskan bahwa turtle definisikan sebagai triplet (x, y, α)
dimana koordinat Kartesius (x,y) merepresentasikan posisi dari turtle dan sudut α
menandakan arah untuk turtle. Jika diberikan panjang langkah d dan sudut δ, maka turtle
dapat menginterpretasikan simbol berikut:
Tabel 0.5 Tabel Contoh Interpretasi Turtle Terhadap Simbol Yang Umum
Simbol Interpretasi F, X Maju sebanyak langkah d. Status dari turtle berubah
menjadi (x’, y’, α), dimana x’ = x + d cos α dan y’ = y + d sin α. Garis diantara titik (x, y) dan (x’, y’) digambar.
f Maju sebanyak langkah d tanpa menggambar garis. + Berputar ke kiri sebanyak sudut δ. Status selanjutnya
turtle menjadi (x, y, α + δ). Orientasi positifnya sekarang adalah berbalik jarum jam.
– Berputar ke kanan sebanyak sudut δ. Status selanjutnya turtle menjadi (x, y, α - δ).
Selain simbol yang sudah terdapat pada Tabel 2.5, maka turtle tidak akan
mengintepretasikan menjadi apapun dan hanya diam di tempat ketika menemui simbol
tersebut.
Berikut merupakan contoh quadratic Koch island yang diambil dari Mandelbrot
(1983, p. 51) dengan data sebagai berikut:
• axiom: F – F – F – F
40
• aturan produksi: F → F – F + F + FF – F – F + F
• n = 3
• δ = 90
Gambar 0.11Quadratic Koch Island Menggunakan Turtle
Sumber: (Prusinkiewicz & Lindenmayer, 2004, p. 8)
Turtle juga dapat digunakan untuk membuat berbagai jenis pohon dengan
menambahkan simbol yaitu ‘[’ dan ‘]’ yang artinya:
Tabel 0.6Tabel Contoh Interpretasi TurtleTerhadap Simbol ’[’ Dan ’]’
Simbol Interpretasi [ Memasukkan status turtle ke dalam stack berupa
informasi posisi dan arah dan atribut lainnya yang akan digambar
] Mengeluarkan status turtle dari stack dan menjadikan sebagai status yang sekarang.
41
Jika diberikan data sebagai berikut:
• axiom: F – F – F – F
• aturan produksi: F → FF – F – F – F – FF
• n = 1
• δ = 90
• d = 1
Berikut merupakan contoh interpretasi turtle terhadap kata yang telah dihasilkan:
1. n = 0
Turtle string yang dihasilkan : F – F – F – F
Gambar 0.12 Interpretasi Turtle Terhadap Kata Dengan n = 0
2. n = 1
Turtle string yang dihasilkan : FF – F – F – F – FF – FF – F – F – F – FF – FF –
F – F – F – FF – FF – F – F – F – FF
42
Gambar 0.13 Interpretasi Turtle Terhadap Kata Dengan n = 1 Tahap Awal
Gambar 0.14 Interpretasi Turtle Terhadap Kata Dengan n = 1 Tahap Akhir
2.8.3 Berbagai Jenis Fraktal Menggunakan L-System
Berikut berbagai jenis fraktal yang dibentuk menggunakan metode L-System
dengan menggunakan interpretasi turtle:
1. Quadratic Koch Island(Mandelbrot, 1983, p. 52) dan modifikasi Koch curve
(Mandelbrot, 1983, p. 139)
43
Gambar 0.15Quadratic Koch Island Dan Modifikasi Koch Curve
Sumber: (Prusinkiewicz & Lindenmayer, 2004, p. 9)
2. Islandsandlakes(Mandelbrot, 1983, p. 121)
Gambar 0.16 Kombinasi Islands And Lakes
Sumber: (Prusinkiewicz & Lindenmayer, 2004, p. 9)
44
3. Modifikasi Koch curve
Gambar 0.17 Modifikasi Koch Curve
Sumber: (Prusinkiewicz & Lindenmayer, 2004, p. 10)
4. Berbagai jenis pohon
Gambar 0.18 Berbagai Jenis Pohon
Sumber: (Prusinkiewicz & Lindenmayer, 2004, p. 25)
45
2.9 Interaksi Manusia dan Komputer (IMK)
Menurut Shneiderman (2010, p. 32)ada 5 (lima) faktor manusia terukur yang
dapat dijadikan sebagai pusat evaluasi, yaitu:
1. Waktu belajar
Berapa lama waktu yang diperlukan pengguna untuk mempelajari cara yang
relevan untuk melakukan suatu tugas?
2. Kecepatan kinerja
Berapa lama waktu yang diperlukan pengguna untuk menyelesaikan tugas yang
ditentukan?
3. Tingkat kesalahan pengguna
Berapa banyak kesalahan dan kesalahan apakah yang bisa terjadi saat pengguna
mengerjakan tugas tersebut?
4. Daya ingat
Bagaimana pengguna mempertahankan pengetahuan yang mereka dapatkan
setelah beberapa waktu?
5. Kepuasan yang subjektif
Seberapa banyak pengguna menyukai penggunaan bermacam aspek dalam
antarmuka?
Selain itu, menurut Shneiderman (2010, pp. 88-89), terdapat 8 (delapan) aturan
emas dalam merancang antarmuka yaitu:
1. Berusaha untuk konsisten
46
Rangkaian aksi yang konsisten diperlukan dalam situasi yang sama, istilah yang
sama sebaiknya digunakan untuk perintah, menu dan tampilan bantuan, warna,
tampilan, penggunaan huruf kapital, font dan yang lainnya harus disamakan juga.
2. Dapat digunakan secara universal
Pahami kebutuhan pengguna yang berbeda dan gunakan desain yang terlihat dan
memfasilitasi perubahan konten.
3. Menawarkan umpan balik yang informatif
Untuk setiap tindakan dari pengguna harus ada sistem umpan balik.Untuk
tindakan sering dan kurang penting, tanggapan dapat bersifat sederhana,
sedangkan untuk tindakan jarang dan penting, tanggapan harus bersifat detail.
4. Merancang dialog yang memberikan penutupan
Urutan – urutandari tindakan yang ada harus diatur menjadi kelompok –
kelompok dengan bagian awal, tengah dan akhir.Umpan balik informatif pada
sekumpulan tindakan yang ada memberikan kepuasan kepada pengguna
penyelesaian, rasa lega, tanda untuk menghentikan suatu rencana dan pilihan dari
pikiran mereka, dan indikasi bahwa caranya jelas yaitu untuk mempersiapkan
sekelompok tindakan yang ada berikutnya.
5. Penawaran pencegahan kesalahan dan penanganan kesalahan yang sederhana
Sebisa mungkin desain dibuat dari system yang ada agar pengguna tidak berbuat
kesalahan yang serius.Namun jika pengguna membuat kesalahan dibuat, maka
sistem harus dapat mendeteksi kesalahan yang sederhana dan mekanisme yang
mudah dipahami untuk penanganan kesalahan.
6. Memungkinkan pembalikan tindakan yang mudah
47
Fitur ini bertujuan untuk mengurangi kecemasan karena pengguna tahu bahwa
kesalahan dapat dibatalkan sehingga mendorong pengguna dalam menjelajah
pilihan-pilihan tindakan yang asing.Bentuk dari pembalikan tindakan dapat
berupa satu tindakan, pengisian data, atau sekelompok lengkap dari tindakan-
tindakan yang ada.
7. Dukungan pusat kendali internal
Pengguna berpengalaman berkeinginan kuat mengenai rasa mereka bertanggung
jawab atas sistem dan sistem pun merespon tindakan mereka.Buat desain dari
sistem untuk membuat pengguna berperan sebagai pengambil inisiatif daripada
para responden yang ada.
8. Mengurangi beban ingatan jangka pendek
Keterbatasan manusia dalam mengolah informasi dalam jangka waktu pendek
memerlukan tampilan yang dibuatsessederhana mungkin.Halaman-halaman
ganda diperketat, frekuensi dari pergerakan window dikurangi, waktu pelatihan
yang memadai dialokasikan untuk kode, mnemonic, dan serangkaian tindakan.
2.10 Unified Modelling Language (UML)
Menurut Bentley &Whitten (2010, p. 371),UML adalah satu set dari ketentuan
modeling yang digunakan untuk menspesifikasi atau mendeskripsikan sebuah sistem
perangkat lunak dalam suatu kondisi dari objek.
UML dibagi menjadi beberapa komponen:
1. Class Diagram
Menurut Bentley & Whitten(2010, p. 400),class diagram adalah penggambaran
grafis mengenai struktur objek statis dari sebuah sistem, menunjukkan kelas –
48
kelas objek yang menyusun sebuah sistem dan juga hubungan antara kelas objek
tersebut.Class diagram digunakan secara grafis untuk menggambarkan objek dan
asosiasinya.
2. Use Case Diagram
Menurut Bentley &Whitten (2010, pp. 246-250),use case diagram
menggambarkan interaksi antara sistem, sistem eksternal dan pengguna. Use
case diagram menggambarkan secara grafis siapa yang menggunakan sistem dan
dengan cara seperti apa yang diharapkan pengguna untuk berinteraksi dengan
sistem. Sedangkan use case narrative adalah deskripsi tekstual kegiatan bisnis
dan bagaimana pengguna akan berinteraksi dengan sistem untuk menyelesaikan
tugas.
3. Sequence Diagram
Menurut Bentley &Whitten (2010, p. 394),sequence diagram menggambarkan
secara grafis bagaimana objek berinteraksi satu sama lain melalui pesan dalam
eksekusi use case atau operasi. Diagram ini menggambarkan langkah – langkah
pesan dikirim dan diterima antara objek.
4. Activity Diagram
Menurut Bentley &Whitten (2010, p. 390),activity diagram menggambarkan
secara grafis alur yang berurutan dari aktifitas use case atau proses bisnis, atau
logika dari method objek. Diagram ini juga dapat digunakan untuk memodelkan
logika dengan suatu sistem.
Acitvity diagram memiliki komponen sebagai berikut:
a. Initial node
Pada activity diagram, lingkaran solid menggambarkan awal sebuah proses.
49
b. Actions
Pada activity diagram, kotak bundar menggambarkan langkah
individual.Urutan dari actions membuat aktifitas tampak dalam diagram.
c. Flow
Pada activity diagram, panah mengindikasikan pergerakan melalui aksi –
aksi.
d. Decision
Pada activity diagram, bentuk belah ketupat dengan satu flow yang masuk ke
dalamanya dan dua atau lebih flow yang keluar darinya menggambarkan
kegiatan pengambilan keputusan.
e. Merge
Pada activity diagram, bentuk belah ketupat dengan dua atau lebih input flow
dan satu flow keluaran yang berguna untuk mengkombinasikan flow yang
sebelumnya dipisahkan oleh decision. Pemrosesan dilanjutkan dengan salah
satu flow yang masuk ke merge.
f. Fork
Pada activity diagram, sebuah bar hitam dengan satu flow masukan dan dua
atau lebih flow yang keluar yang berguna untuk memungkinkan analis
menggambar kegiatan yang dapat muncul secara paralel.
g. Join
Pada activity diagram, sebuah bar hitam dengan dua atau lebih flow masukan
ke simbol ini dan satu flow yang keluar, menandakan akhir dari proses yang
berlangsung. Aksi – aksi yang mengarah ke join harus selesai semua sebelum
proses dilanjutkan ke flow berikutnya.
50
h. Activity Final
Pada activity diagram, titik solid di dalam lingkaran menggambarkan akhir
sebuah proses.
2.11 Model Prototyping
Menurut Pressman (2010, p. 43), model prototyping merupakan model yang akan
terus berkembang, yang berarti bahwa pembuatan software akan terus berlanjut hingga
memenuhi apa yang diingkan oleh pelanggan. Model prototyping dituntut lebih cepat
dalam tahapan pembuatan perangkat lunak sehingga lebih cocok diterapkan untuk
menyelesaikan tugas yang memerlukan waktu pembuatan perangkat lunak tidak
banyak.Perangkat lunak yang dihasilkan nanti hanya dalam bentuk prototype sederhana
yang masih bisa dikembangkan lebih lanjut.
Beberapa langkah yang terdapat pada model prototyping yaitu sebagai berikut:
1. Communication
Merupakan tahapan awal dimana pelanggan memberikan tujuan utama dari
perangkat lunak yang diinginkan namun tidak secara detail menspesifikasikan
fungsi dan fiturnya. Hal ini menyebabkan pembuat tidak yakin mengenai
algortima, adaptabilitasi terhadap sistem operasi, atau interaksi langsung
perangkat lunak dengan manusia.
2. Quick Plan
Merupakan tahapan dimana perencanaan prototyping dilakukan secara cepat
untuk memenuhi kebutuhan yang telah dispesifikasi.
3. Modelling Quick Design
51
Merupakan tahapan dimana pengembang melakukan desain secara cepat yang
berfokus pada representasi aspek dari perangkat lunak yang akan terlihat oleh
pengguna.
4. Construction Of Prototype
Merupakan tahapan dimana konstruksi / pembuatan prototype dilakukan sesuai
dengan spesifikasi dan kebutuhan pelanggan.
5. Deployment, Delivery & Feedback
Merupakan tahapan dimana prototype tersebut dievaluasi oleh pelanggan dan
diberikan kritik saran untuk dapat memperbaiki kebutuhan.Jika pelanggan
menyatakan ya, maka perangkat lunak siap untuk digunakan namun jika
pelanggan menyatakan tidak, maka dilakukan kembali konstruksi sistem testing
dan evaluasi.
Tahapan ini akan terus berulang sampai dapat memenuhi kebutuhan yang
diinginkan oleh pelanggan dan disamping itu juga membuat kita dapat mengerti
mengenai apa yang harus dilakukan. Diagram model prototyping dapat dilihat pada
Gambar 2.19 berikut:
52
Gambar 0.19 Diagram Prototyping
Sumber: (Pressman, 2010, p. 43)
2.12 Python
Kiusalaas(Cambridge University Press, pp. 1-2) mengemukakan bahwa Python
merupakan bahasa pemrograman berorientasi objek yang dikembangkan pada tahun
1980 sebagai bahasa scripting. Meskipun Python tidak terkenal, namun Python lebih
sering digunakan oleh banyak programmer dibandingkan Fortran. Pythondapat
dikatakan sebagai bahasa yang sedang berkembang karena terus dikembangkan dan
diperbaharui.
Program Python tidak di-compile menjadi kode mesin, namun dijalankan oleh
interpreter. Keuntungan utama dari bahasa interpreter adalah program dapat langsung
diujikan dan ditemukan kesalahannya dengan cepat sehingga pengguna dapat lebih
berkonsentrasi lebih kepada prinsip disamping program.Karena tidak perlu di-compile,
linkdan dieksekusi setelah pembetulan, maka program Python dapat dikembangkan
dengan waktu yang lebih singkat dibandingkan program lainnya. Namun kelemahannya
53
adalah tidak dapat menghasilkan aplikasi utuh dan juga program Python hanya dapat
berjalan di komputer yang telah di-installinterpreter Python.
Python sendiri juga mempunyai kelebihan dibandingkan bahasa pemrograman
yang umumnya yaitu:
1. Python merupakan perangkat lunak open source yang berarti gratis. Python
sering ikut disertakan pada berbagai versi Linux.
2. Python terdapat pada kebanyakan sistem operasi (Linux, Unix, Windows, Mac
OS, dll). Program yang telah ditulis pada satu sistem maka dapat berjalan pada
semua sistem tanpa perlu dimodifikasi.
3. Python mudah untuk dipelajari dan dapat menghasilkan kode yang lebih mudah
dibaca dibanding bahasa pemrograman lainnya.
4. Python dan ekstensinya mudah untuk di-install.
Langtangen (2008, p. 20)mengemukakan alasan mengapa memilih Python:
1. Pythonmudah untuk dipelajar karena sintaks yang bersih.
2. Dapat langsung memeriksa kesalahan pada saat dijalankan.
3. Pemrograman dengan data yang heterogen dan bertumpuk sangat mudah.
4. Pemrograman berorientasi objek sangat mudah
5. Adanya bantuan untuk komputasi numerik yang efisien.
6. Integrasi Python dengan C, C++, Fortran dan Javasangat didukung.
Python sendiri dapat diperoleh di situs http://www.python.org/, sekarang
Python dirilis dalam dua versi berbeda yaitu 2.7.2 yang dirilis pada tanggal 12 Juni 2011
dan 3.2.2 yang dirilis pada tanggal 4 September 2011. Saat ini yang sedang
54
dikembangkan adalah versi 3.x yang merupakan pengembangan dari versi sebelumnya
yaitu versi 2.x.
2.13 Tkinter
Tkinter merupakan layar antarmuka standar ditulis oleh Fredrik Lundh yang
disediakan oleh Python yang biasanya sudah ada ketika Python di-install-kan di
komputer. Library Tkinter menyediakan antarmuka yang ditulis dengan orientasi objek,
maka setiap komponen pada Tkinter merupakan class yang diturunkan dari class Widget.
Tkinter terdiri dari beberapa modul sedangkan antarmukanya disediakan oleh modul
_tkinter. Modul tersebut berisi antarmuka tingkat rendah ke Tkinter dan tidak dapat
digunakan secara langsung oleh programmer karena biasanya berupa shared library
(atau DLL). Untuk dapat menggunakannya maka harus import modul Tkinter tersebut
dengan mengetikkan : “import Tkinter”, “from Tkinter import *”, atau “import Tkinter
as Tk”.Pada Tabel 2.7 berikut adalah komponen – komponen yang terdapat pada
Tkinter:
Tabel 0.7Tabel Komponen Pada Tkinter
Komponen Deskripsi Frame Sebagai tempat menampung komponen lainnya Label Menampilkan teks atau icon yang tidak bisa diubah Entry Menerima masukkan dari pengguna melalui keyboard
atau menampilkan informasi. Inputan dibatasi hanya satu baris.
Text Menerima masukkan dari pengguna melalui keyboard atau menampilkan informasi. Inputan bisa lebih dari satu baris.
Button Memanggil sebuah event ketika ditekan Checkbutton Komponen seleksi dimana pengguna dapat memilih lebih
dari satu atau tidak harus memilih Radiobutton Komponen seleksi dimana pengguna hanya dapat
memilih satu pilihan Menu Menampilkan kumpulan item yang dapat dipilih oleh
55
pengguna Canvas Menampilkan teks, gambar, garis atau bentuk Scale Memperbolehkan pengguna untuk memilih angka
menggunakan slider Listbox Menampilkan kumpulan teks ang dapat dipilih Menubutton Menampilkan popup atau pulldown menu Scrollbar Menampilkan scrollbar untuk canvas, text, dan list
Sumber: (Deitel, Deitel, Liperi, & Wiedermann, 2002, p. 344)
2.14 lxml
lxml merupakan library untuk Python yang dikembangkan secara khusus untuk
membaca dan menghasilkan fileXML.lxml bisa didapatkan di http://lxml.de/dan berada
di bawah lisensi BSD.Versi pertamanya dirilis pada tanggal 8 April 2005 dan saat ini
versi terbarunya sudah mencapai 2.3.3 dan dirilis pada tanggal 4 Januari 2012 dengan
serta penambahan fungsi yang baru dan perbaikan dari versi sebelumnya. Dalam
pemakaiannya, lxml membutuhkan Python minimal versi 2.4 atau ke atasnya.
Pada proses instalasinya, lxml membutuhkan juga librarylibxml 2.6.21 atau ke
atasnya dan juga library libxslt 1.1.15 atau ke atasnya. Library liblxml bisa didapatkan di
http://xmlsoft.org/downloads.html dan library libxslt bisa didapatkan di
http://xmlsoft.org/XSLT/downloads.html.Kedua library ini berada di bawah lisensi
MIT.