BAB 3 LANDASAN TEORI
3.1 Rekayasa Piranti Lunak Definisi piranti lunak dalam beberapa buku teks menurut Pressman (1992, p10), yaitu : 1. Instruksi pada program komputer yang bila dieksekusi menghasilkan fungsi dan unjuk kerja yang diinginkan 2. Data terstruktur yang dapat membuat program dapat memanipulasi informasi 3. Dokumen-dokumen yang menjelaskan suatu operasi dan pemakaian program Menurut Pressman sendiri (1992, p10), piranti lunak adalah suatu program, struktur data yang berkaitan dan menyediakan metode logika, prosedur dan kontrol yang diminta. Adapun karakteristik suatu piranti lunak adalah sebagai berikut : •
Piranti lunak tercipta karena adanya pengembangan atau rekayasa
•
Piranti lunak tidak akan pernah menjadi "usang" (tidak terpakai lagi)
•
Kebanyakan piranti lunak dibuat secara khusus untuk tujuan tertentu daripada
disusun dengan komponen-komponen yang sudah ada Untuk memenuhi karakteristik-karakteristik yang ada di atas, maka dalam merancang sebuah piranti lunak diperlukan suatu urutan dan cara kerja yang diatur dengan tujuan untuk menghasilkan piranti lunak yang baik.
Menurut Fritz Bauer (Pressman, 1992, p23), rekayasa piranti lunak adalah suatu kegiatan dalam menetapkan dan menggunakan prinsip-prinsip rekayasa yang tepat dengan tujuan untuk mendapatkan suatu piranti lunak yang ekonomis, dapat dipercaya dan bekerja dengan efisien. 3.1.1 Elemen-Elemen Rekayasa Piranti Lunak Tiga elemen utama rekayasa piranti lunak, yaitu (Pressman, 1992, p24) : 1. Metode-metode Mengarahkan sejumlah tugas yang meliputi perencanaan proyek dan analisis kebutuhan sistem dan piranti lunak. Perancangan struktur dan arsitektur program dan algoritma prosedur, penulisan kode, pengujian dan perawatan piranti lunak. 2. Alat / Tools Tools dapat berupa piranti lunak atau piranti keras. Tools menyediakan dukungan yang bersifat otomatis maupun semi otomatis bagi setiap metode. 3. Prosedur Berfungsi menyatukan metode dan tools dalam pengembangan suatu piranti lunak. Prosedur menjabarkan urutan kerja di mana metode akan diterapkan, catatan mengenai data-data yang dibutuhkan (seperti dokumen, laporan dan lain-lain), serta kendali untuk menjaga kualitas dan mencatat perubahan pada piranti lunak.
3.1.2 Siklus Klasik Rekayasa Piranti Lunak (Classic Life Cycle) Ukuran kerjanya disajikan dalam gambar dibawah ini :
Gambar 3.1 Daur Hidup Rekayasa Software (Waterfall Model)
Tahap-tahap yang dilakukan dalam siklus klasik ini adalah : 1. System Engineering (Rekayasa sistem) Piranti lunak biasanya merupakan bagian dari suatu sistem yang lebih besar. Pembuatan sebuah piranti lunak dapat dimulai dengan melihat apa yang dibutuhkan oleh sebuah sistem, kemudian kebutuhan yang sudah ada tersebut akan diterapkan ke dalam piranti lunak yang akan dibuat. 2. Requirement Analysis (Analisis kebutuhan piranti lunak) Untuk mengetahui bentuk suatu piranti lunak yang harus dibuat, seorang programmer harus mengetahui ruang lingkup informasi, fungsi-fungsi yang dibutuhkan, kemampuan kinerja yang ingin dihasilkan dan perancangan antarmuka dari piranti lunak tersebut.
3. Design (Perancangan) Perancangan piranti lunak merupakan proses bertahap yang memfokuskan pada empat bagian penting, yaitu : struktur data (perancangan struktur data/database yang akan dipakai), arsitektur piranti lunak (perancangan piranti lunak yang akan dipakai, seperti sistem operasi, bahasa pemrograman yang akan dipakai), detil prosedur (perancangan diagram mengenai alur jalannya program ketika dieksekusi), dan karakteristik antar muka (perancangan antar muka yang akan ditampilkan pada program). 4. Coding (Pengkodean) Pengkodean piranti lunak ditujukan agar rancangan yang telah dibuat dapat diterjemahkan ke dalam bentuk yang dapat dijalankan oleh mesin. 5. Testing (Pengujian) Setelah pengkodean piranti lunak selesai, maka pengujian akan dilakukan terhadap piranti lunak ini. Pengujian ini bertujuan untuk meyakinkan bahwa masukan yang diberikan akan menghasilkan keluaran yang sesuai dengan yang diinginkan. 6. Maintenance (Pemeliharaan) Tahap ini dilakukan ketika piranti lunak yang dibuat telah digunakan oleh pemakai/konsumen. Perubahan akan bisa terjadi bila konsumen menginginkan perbaikan terhadap kesalahan-kesalahan yang mungkin lolos dari tahap pengujian atau meningkatkan kemampuan piranti lunak sesuai dengan tuntutan keadaan dan kondisi yang lebih baik lagi.
3.1.3 Alat-Alat Perancangan Alat – alat atau sarana untuk merancang piranti lunak, terdiri dari dua macam, yaitu : 1. Pseudocode Menurut Jogiyanto (1993, p765), pseudocode terdiri dari dua kata, yakni pseudo dan code dimana pseudo memiliki arti imitasi atau mirip atau menyerupai dan code menunjukkan kode dari program. Dengan demikian pseudocode berarti kode yang mirip dengan instruksi kode program yang sebenarnya. Pengertian pseudocode menurut Kowal (1988, p97) adalah pernyataan logika mendetil yang mendefinisikan bagaimana data inputan ditransformasikan ke data output. Pseudocode harus mengandung semua bahasa yang digunakan untuk mengekspresikan logika secara jelas dan tidak mengandung lebih dari satu arti, tetapi tidak sekompleks bahasa pemrograman. Pseudocode ini digunakan dalam pembuatan spesifikasi proses sebagai jembatan untuk melangkah ke pemrograman yang sesungguhnya. Pseudocode dapat dituliskan dalam bentuk bahasa Inggris terstruktur, bahasa Indonesia terstruktur dan lain sebagainya. 2. Diagram Transisi Menurut Kowal (1988, p329) yang dimaksud dengan diagram transisi adalah sebuah bagan yang menggambarkan hasil perubahan dari sebuah keadaan selama pemrosesan dari sebuah finite-state process. Diagram transisi digunakan untuk menggambarkan proses dengan menggunakan persegi empat horisontal dan vertikal untuk menyatakan perubahan status bersamaan
dengan aliran data masukan atau kondisi yang akan diproses untuk menghasilkan aliran data keluaran. Ada dua macam cara untuk menggambarkan proses dalam diagram transisi, yaitu bentuk gelembung dan bentuk persegi empat. Penulis memakai bentuk persegi empat dalam menjelaskan proses yang terjadi. Berikut ini adalah gambar diagram transisi secara umum. Keadaan Sekarang Suatu kejadian Keadaan Berikutnya Gambar 3.2 Diagram Transisi Secara Umum (Kowal, 1988, p329-330)
3.1.4 Pengantar Algoritma dan Pseudocode. Sebuah algoritma mirip dengan resep, algoritma berisi langkah-langkah meliputi penyelesaian sebuah tugas. Algoritma dapat didefinisikan dalam istilah pemrograman sebagai satu set intruksi terperinci, jelas dan tidak ambigu dikembangkan untuk menjelaskan proses tertentu, menghasilkan output diinginkan dari sebuah input yang diberikan. Agar algoritma menjadi bermanfaat, ada beberapa prinsip yang harus melekat padanya. Sebuah algoritma harus : •
Mudah diikuti, tepat, dan tidak ambigu.
•
Memberikan solusi yang benar untuk semua kasus.
•
Memiliki akhir.
Diagram alir digunakan untuk merepresentasikan langkah - langkah algoritma dalam diagram, diagram alir ( flowchart ) memerlukan tempat yang banyak dan susah digambarkan, dan sering mengarahkan pada struktur program yang jelek. Berbeda dengan pseudocode mudah untuk dibaca dan ditulis, pseudocode merepresentasikan setiap pernyataan dari sebuah algoritma dalam bahasa Inggris atau bahasa asal programmer. Pseudocode benar-benar bahasa terstruktur. Penulisan pseudocode menggunakan bahasa yang telah disusun dan dipersingkat menjadi sangat mirip dengan bahasa computer tingkat tinggi. Tidak ada standar yang pasti tentang pseudocode. Programmer dapat menciptakan tekniknya sendiri dan menetapkan aturan-aturan yang menyerupai bahasa pemrograman tertentu. Penulisan pseudocode bervariasi di berbagai negara, tetapi secara umum mempunyai ciri sebagai berikut : •
Setiap statement ditulis dalam bahasa inggris yang sederhana.
•
Setiap statement atau perintah ditulis dalam baris yang terpisah (baris per
baris). •
Kata kunci digunakan untuk menandakan struktur control dalam pemrograman
seperti : selection, repetition dan sequence. •
Setiap statement ditulis dari atas ke bawah, dengan satu pintu masuk dan satu
pintu keluar ( one entry one exit ). •
Sekelompok statement dapat menjadi modul-modul yang diberi nama. Pseudocode adalah suatu bahasa yang fleksibel dan informal yang tidak
ditujukan untuk dijalankan suatu mesin, tetapi berguna untuk membantu seorang programmer dalam membuat intruksi atau langkah umum suatu program sebelum
membuat program tersebut ke dalam bahasa pemrograman tertentu. Hanya terfokus pada logika program, setiap statement yang telah di pseudocode mewakili statement dari program yang akan dibuat. Sesuai dengan fungsi dari pseudocode yaitu untuk mempermudah user dalam pembuatan program, maka pseudocode umumnya dibuat sangat mudah untuk dimengerti oleh siapapun juga. Jika pembuatan pseudocode menggunakan kata-kata yang menyerupai dengan operasi dasar komputer ( basic computer operation ) maka penerjemahan program dengan pseudocode ke bahasa pemrograman yang digunakan akan menjadi lebih mudah. Ada 6 operasi dasar komputer yang biasa dipakai dalam penulisan program dengan pseudocode yaitu : 1. Komputer dapat menerima data. Pseudocode yang umum digunakan read, get, baca. 2. Komputer dapat menampilkan data. Pseudocode yang umum digunakan write, print, put, output, display, cetak. 3. Komputer dapat melaksanakan perhitungan matematis. Kata kunci / keyword yang digunakan pseudocode yaitu : •
+
untuk tambah ( add ).
•
-
untuk pengurangan ( substrac t).
•
* untuk perkalian ( multiply ).
•
/
•
() untuk tanda kurung ( brackets ).
untuk pembagian ( divide ).
4. Komputer dapat memberikan suatu nilai kepada suatu data ( variable ). Pseudocode yang umum digunakan initialize, set, symbol ‘=’, store, save.
5. Komputer dapat membandingkan 2 kondisi data yang berbeda dan memilih satu diantaranya. Kata kunci yang digunakan dalam pseudocode if-then-else-endif, docaseenddo. 6. Komputer dapat melakukan perulangan sejumlah statement. Kata kunci yang digunakan dalam pseudocode dowhile-enddo, repeat-until. Teorema terstruktur merupakan bagian utama dari pemrograman terstruktur. Pernyataan ini memungkinkan user dapat membuat semua program computer dengan hanya menggunakan 3 struktur control dasar yang dengan jelas dan mudah diwakili dalam pseudocode sebagai sequence, selection, dan repetition.
Sequence.
Sequence adalah pelaksanaan atau pengerjaan suatu proses langkah atau statement setelah statement sebelumnya, jadi proses dilakukan secara berurutan setiap statement. Sequence dapat digunakan untuk mewakili 4 operasi dasar utama komputer yaitu menerima informasi, menampilkan informasi, melakukan perhitungan matematika dan memberikan suatu nilai.
Selection.
Kontrol struktur ini adalah perwakilan dari suatu kondisi dan pilihan antara statement. Pilihan yang diambil tergantung dari kondisi itu benar atau salah. Konsep ini mewakili kemampuan komputer dalam menentukan keputusan. Dalam pseudocode, selection ditulis dengan kata kunci : If-then-else-endif, docase-enddo.
Repetition.
Pengulangan kontrol struktur merupakan perwakilan dari suatu kumpulan statement yang terus diulang selama kondisinya benar. Repetition ditulis dengan kata kunci dowhile-enddo, repeat-until.
3.2 Sistem Informasi Menurut Jogiyanto, sistem informasi terdiri dari dua kata. Sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai tujuan tertentu Sedangkan informasi adalah data yang diolah menjadi bentuk yang lebih berguna dan lebih berarti bagi yang menerimanya. Di mana data itu sendiri merupakan kenyataan yang menggambarkan suatu kejadian-kejadian dan kesatuan nyata. Dengan demikian, dapat dikatakan bahwa sistem informasi adalah suatu sistem di dalam suatu organisasi yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung operasi, bersifat manajerial dan kegiatan strategi dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan-laporan yang diperlukan (Jogiyanto, 1993, p11).
3.3 Interaksi Manusia dan Komputer Belakangan ini penggunaan komputer semakin meluas. Dalam penggunaannya, komputer diharapkan dapat membantu pekerjaan manusia seefisien mungkin. Dan untuk mencapai hal itu, salah satu hal yang harus diperhatikan adalah bahwa komputer harus dirancang sedemikian rupa sehingga mudah digunakan. Adapun kemudahan penggunaan ini berhubungan dengan perantara antara pemakai dan komputer atau yang biasa disebut sebagai antarmuka pemakai (user interface).
Menurut Pyle dan Moore (1995, p2), user interface adalah bagian dari sistem komputer yang memungkinkan pemakai manusia untuk berinteraksi dengan komputer. Dengan demikian, pemakai tidak mengakses langsung ke bagian dalam dari sistem komputer kecuali melalui user interface.
Human User
User Interface
Interior of Computer System
Gambar 3.3 Diagram Proses User Interface
Dalam sistem informasi dan sistem perkantoran, yang disebut dengan user interface mencakup hal-hal berikut : •
bagian dari hardware komputer yang berinteraksi dengan user, seperti layar,
keyboard, mouse, dan lain-lain •
gambar-gambar yang tampak pada layar, seperti window-window, menu, pesan
(messages), dan layar bantuan •
Dokumentasi user seperti manual dan kartu referensi Sebuah user interface yang baik mudah dipelajari dan efektif dalam
penggunaannya. Dorongan untuk merancang sebuah user interface yang baik, membuat penelitian di bidang HCI (Human-Computer Interaction atau Interaksi Manusia dan Komputer) semakin semarak. Interaksi Manusia dan Komputer adalah suatu teori tentang aksi manusia di mana manusia sebagai inisiatornya dan komputer (termasuk user interface) sebagai alat yang digunakan manusia untuk mencapai tujuan mereka. Manusia beraksi, sistem
memberikan tanggapan (feedback) sehingga manusia mengetahui sistem tersebut telah melaksanakan apa yang diinginkan oleh mereka. Hal-hal yang harus diperhatikan dalam Interaksi Manusia dan Komputer adalah (Pyle dan Moore, 1995, p 39) : •
Keterbatasan memori manusia
Telah terbukti bahwa manusia hanya dapat mengingat kurang lebih tujuh item informasi yang tidak saling berhubungan dalam waktu yang singkat. Memaksa pemakai untuk mengingat-ingat sesuatu hanya akan mengakibatkan timbulnya kesalahan-kesalahan. Bagi manusia, pengenalan terhadap suatu hal lebih baik daripada memanggil kembali ingatan akan suatu hal. Berhadapan dengan suatu daftar di mana pemakai mengenali nilai apa yang akan mereka pilih dari daftar tersebut lebih baik bagi mereka daripada harus mengingat apa nilai yang valid, bagaimana mengejanya, dan lain-lain. •
Manusia membuat kesalahan
Manusia cenderung tidak konsisten dan membuat kesalahan. User interface yang baik harus dirancang sedemikian rupa sehingga cocok digunakan oleh pemakai yang cenderung membuat kesalahan.
Ada tiga cara untuk melaksanakan hal ini, yaitu : -
mencegah pemakai membuat kesalahan
-
menangkap kesalahan dengan pesan kesalahan yang membantu, baik untuk
membantu pemakai dalam melakukan apa yang mereka inginkan atau untuk membantu mereka keluar dari kesalahan
-
mengijinkan pemakai melakukan sebuah aksi, melihat hasilnya dan mengubah
pikiran mereka dan membalikkan aksi (undo) apa yang baru saja mereka lakukan •
Kemampuan manusia untuk mengeksplorasi
Adanya kemampuan manusia untuk melakukan eksplorasi patut didukung. Ciptakanlah perasaan
bahwa pemakai akan dicegah untuk membuat kesalahan atau kesalahan
tersebut dapat dengan mudah dibalikkan (undo). Dengan demikian, pemakai akan merasa aman dan percaya dalam mengeksplorasi suatu tampilan. Menurut Shneiderman (1993, p72) ada delapan macam aturan emas yang perlu diperhatikan dalam perancangan dialog, yaitu : 1. Berusaha keras untuk konsisten 2. Memungkinkan pemakai menggunakan shortcuts 3. Memberikan umpan balik yang informatif agar tidak membingungkan pemakai 4. Merancang dialog untuk menghasilkan keadaan akhir 5. Memberikan penanganan kesalahan yang sederhana 6. Mengijinkan pembalikan aksi (undo) dengan mudah 7. Pengontrolan terletak pada pemakai sendiri 8. Mengurangi hafalan bagi pemakai Eberts (1994, p19 - 44) mengatakan bahwa pada awal penggunaan komputer tidak dikenal yang disebut dengan user interface. Dalam interaksinya dengan komputer manusia menggunakan objek fisik seperti punch card dan kemudian berkembang menjadi melalui teks / karakter. Pada akhirnya tibalah era di mana dikembangkan konsep widget sebagai interface modern di mana manusia berkomunikasi dengan komputer melaluinya. Widget adalah tampilan suatu jenis objek yang bisa dimanipulasi.
Tipe - tipe widget : 1. Label Widgets Merupakan widget yang paling sederhana dan berguna untuk memberi label / nama / keterangan pada widget lainnya. 2. Form Widgets Sebuah form widget pada umumnya mengandung widget-widget lain di dalamnya (dengan demikian terjadi relasi orangtua - anak). 3. List Widgets List Widget berguna untuk memilih item-item dari sebuah list yang ditampilkan dalam sebuah window. 4. Scroll Bar Widgets Scroll Bar Widget ini tidak dapat berdiri sendiri, tetapi harus digunakan bersama-sama dengan widget lain untuk menjalankan fungsinya sebagai penggulung. 5. Push Button Widgets Jika Push Button ini ditekan, maka suatu prosedur aksi akan dipanggil dan dieksekusi. 6. Toggle Switch Widgets Widget ini menyediakan satu set pilihan yang harus dipilih oleh pemakai dan setiap toggle switch ini memiliki 2 nilai, dipilih (posisi on) atau tidak dipilih (posisi off). Ada bermacam cara untuk menandai apakah toggle dalam posisi on atau off, antara lain, dengan perubahan warna, pemberian tanda 'X' pada kotak, dan lain-lain. 7. Radio Box Widgets Berupa lingkaran kosong (posisi off) yang jika diklik (dipilih) akan menjadi lingkaran yang berisi (posisi on). Radio box widget mirip dengan toggle switch widget. Tetapi, jika
pada Toggle dalam satu saat nilai yang dipilih dapat lebih dari satu, pada Radio box, dalam satu saat hanya satu dari sekian banyak nilai yang boleh dipilih. Biasanya digunakan jika operasi yang dilakukan hanya dapat dalam satu mode dalam satu saat. 8. Paned Window Widgets Berbentuk seperti jendela dengan bingkai dan di dalamnya dapat diletakkan widgetwidget lain. 9. Dialog Widgets Sebuah dialog terjadi ketika komputer hendak menanyakan sesuatu kepada pemakai dan pemakai harus memberikan reaksi. Dalam sebuah dialog widget terkandung teks dan push button widget. Jenis-jenisnya antara lain dialog informasi, dialog peringatan, dialog konfirmasi dan dialog prompt yang meminta masukan dari pemakai. 10. Text Widgets Terdiri dari dua macam, yaitu : Single Line Text Widgets yang dapat menampung teks sebanyak satu baris dan Multiline Text Widgets yang dapat menampung teks lebih dari satu baris (biasanya diikuti dengan pemakaian scroll bar). Teks / karakter dapat diketikkan pada tempat yang disediakan dan dapat pula diberlakukan perintah-perintah edit seperti insert, delete, copy, cut dan paste terhadap teks tersebut. 11. Menu Bar Widgets Berupa kotak segi empat yang memanjang sepanjang window, baik pada bagian bawah atau atas window. Beberapa push button dapat diletakkan pada menu bar dan mewakili fungsi-fungsi yang ada yang dapat dipilih oleh pemakai. Tepat dipakai untuk menampilkan fungsi-fungsi yang jumlahnya tidak terlalu banyak. 12. Pull-Down Menu Widgets
Jika fungsi yang ingin ditampilkan banyak dan menu bar sudah tidak dapat menampungnya, maka perlu dibuat suatu pull-down menu di mana fungsi-fungsi tersebut disusun secara hirarki. Dengan mengklik satu menu, akan ditampilkan menumenu lainnya. Dengan semakin berkembangnya penggunaan metode perancangan user interface modern yang mencakup windows, button, icon, scroll bars, pull down dan pop up menu, muncul istilah GUI (Graphical User Interface). Adapun GUI ini merupakan memanfaatkan kemampuan grafik komputer dengan tujuan untuk membuat program lebih mudah digunakan. Kemudahan penggunaan tersebut memiliki empat aspek : 1. Keefektifan Seberapa cepat user dapat mengerjakan pekerjaan mereka dengan interface tersebut. 2. Kemudahan untuk dipelajari Berapa lama waktu pelatihan dan berapa banyak latihan yang harus dilakukan pemakai hingga mereka dapat menggunakan sistem tersebut secara efektif. 3. Fleksibilitas Seberapa efektif interface tersebut jika terjadi perubahan dalam tugas dan lingkungan. 4. Sikap Berhubungan dengan apakah pemakai merasa letih dan frustasi dalam menggunakan sistem tersebut ataukah merasa senang dan puas. Berikut adalah faktor-faktor yang harus diperhatikan oleh para disainer dalam merancang GUI dan dokumen elektronik multimedia yang akan digunakan atau dibaca dari layar komputer (Lynch, 1994) :
1. Karakteristik tampilan komputer Faktor utama yang harus diperhatikan adalah bentuk dan resolusi dari layar komputer. Bagaimana informasi dikemas dan ditampilkan pada layar komputer yang terbatas tanpa memaksa pemakai untuk mengingat-ingat informasi yang tidak terlihat. 2.Perancangan layar Bagaimana menciptakan keseimbangan antara pengaturan informasi dan keindahan tampilan teks dan grafik. Perlu juga diperhatikan masalah konsistensi. 3. Tipografi (seni cetak atau tata huruf) pada layar komputer Perlu diperhatikan jenis huruf dan ukuran huruf yang bagaimana yang dapat dengan mudah dibaca melalui layar dan menarik. 4. Hubungan yang renggang pada antarmuka Ditandai dengan windows yang saling menumpuk, menggulung layar ke suatu tempat, zoom, perubahan warna objek ketika sedang tidak aktif dan lain sebagainya. 5. Simbol-simbol pada antarmuka Penggunaan simbol-simbol tertentu seperti icon untuk mewakili suatu aksi. . 3.4 Perancangan Sistem Alat utama untuk merancang sistem adalah dengan menggunakan State Transition Diagram atau STD, yang menggambarkan behavior suatu sistem informasi, menjelaskan bagaimana sistem melakukan suatu tanggapan untuk setiap kejadian dan bagaimana kejadian itu merubah state suatu sistem. State Transition Diagram mudah untuk digambarkan dan sangat membantu dalam situasi dimana terjadi banyak
perubahan dari state tersebut. State Transition Diagram sangat berguna untuk menunjukan beberapa state yang mungkin untuk tipe –tipe entity dalam sistem database. Notasi yang dipergunakan dalam STD adalah : a)
State, disimbolkan dengan segi empat. Simbol tersebut didefinisikan sebagai
suatu himpunan suatu atribut-atribut / keadaan sifat seseorang / sesuatu pada saat dan kondisi tertentu, sehingga isi state dari sebuah tipikal sistem berupa : 1.
Waiting for user to enter password
2.
Hearing chemical mixture
3.
Waiting for next command
4.
Accelerating engine
5.
Mixing ingredients
6.
Filling tank
7.
Idle
Simbol state : b)
Transition state atau perubahan keadaan / kondisi dari suatu sistem, disimbolkan
dengan panah berarah Simbol transition state : c)
Condition (kondisi) adalah suatu kejadian pada lingkungan eksternal yang dapat
dideteksi oleh sistem. Misalnya sebuah sinyal, penekanan tombol atau data. d)
Action (aksi) adalah hal yang dilakukan oleh sistem bila terjadi perubahaan state
atau merupakan reaksi terhadap kondisi. Aksi akan menghasilkan keluaran yang berupa pesan pada layer, cetakan pada printer atau alat keluaran yang lain. Dibawah ini adalah gambaran STD secara umum
State X
Condition Action State Y
Gambar 3.4 State Transition Diagram
3.5 Pemrograman Java Java adalah bahasa pemrograman dengan object-oriented , atau berorientasi objek, yang dikembangkan oleh Sun Microsystems pada awal tahun 1990an. Java dimulai dengan sebuah proyek bernama “ Oak “ oleh James Gosling pada tahun 1991. Tujuan dari Gosling adalah ingin membuat sebuah bahasa pemrograman yang notasinya mirip dengan C/++ untuk mengimplementasikan virtual machine. Implementasi publik pertama kali adalah Java 1.0 pada tahun 1995. Kelebihan dari Java 1.0 dibanding bahasa pemrogaman waktu itu adalah , menyediakan runtimes yang minimum. Setelah proyek Java 1.0, diikuti dan dikembangkan dengan versi –versi selanjutnya.
Detail dari pengembangan Java adalah sebagai berikut : •
JDK 1.1.4 (Sparkler) , 12 September 1997 o
JDK 1.1.5 (Pumpkin) 3 Desember 1997
o
JDK 1.1.6 (Abigail) 24 April 1998
•
•
o
JDK 1.1.7 (Brutus) 28 September 1998
o
JDK 1.1.8 (Chelsea) 8 April 1999
J2SE 1.2 (Playground) 4 Desember 1998 o
J2SE 1.2.1 (none) 30 Maret 1999
o
J2SE 1.2.2 (Cricket) 8 Juli 1999
J2SE 1.3 (Kestrel) 8 Mei 2000 o
•
J2SE 1.3.1 (Ladybird) 17 Mei 2001
J2SE 1.4.0 (Merlin) 13 Februari 2002 o
J2SE 1.4.1 (Hopper) 16 September 2002
o
J2SE 1.4.2 (Mantis) 26 Juni 2003
•
J2SE 5.0 (1.5.0) (Tiger) 29 September 2004
•
Java SE 6 (1.6.0) (Mustang) 11 Desember 2006
•
Java SE 7 (1.7.0) (Dolphin) rencana pada tahun 2008
Di bawah ini adalah penjelasan singkat tentang Java , sintaks yang digunakan untuk pemrograman 1. Tipe data Terdiri dari Integer, Float, Char. 2. String String str1 = "alpha"; String str2 = new String("alpha");
3.Array
// Deklarasi Array SomeClass[] myArray = null; // Alokasi Array myArray = new SomeClass[10]; // Kombinasi deklarasi dan pembuatan array SomeClass[] myArray = new SomeClass[10]; // Alokasi elemen array for (int i = 0; i < myArray.length; i++) myArray[i] = new SomeClass();
4. Operator + : Penjumlahan - : Pengurangan * : Perkalian /
: Pembagian
% : Modulus ( mengembalikan nilai integer sisa )
5. Ekpresi Kondisi condition ? expression1 : expression2
contoh penggunaan :
String answer; if (p < 0.05) answer = "reject"; else answer = "keep";
6. Perulangan Contoh penggunaan : int sum = 0; int i = 1; while (i < 10) { if (i == 3) { continue; // Skip the rest of this loop iteration. } sum += i;
if (sum > 15) { break; // Exit the loop. } }
Seperti bahasa pemrograman berorientasi objek lainnya, Java menggunakan Class untuk pembuatan programnya, sehingga sifat inheritance juga berlaku disini.
3.6 Heterokedastisitas Asumsi yang paling penting pada model regresi klasik adalah bawah ragam dari error adalah konstan. Dimana E (u i2 ) = σ 2 , untuk i = 1,2,3,….,n . Sedang pada
heterokedastisitas yang sering kali muncul pada data deret waktu ( lebih rasional ) , berlaku, E (u i2 ) = σ i2 untuk i = 1,2,3,…,n . Kini kita lihat OLS ( Ordinary Least Squares ) yang biasa digunakan untuk perhitungan analisis deret waktu. OLS untuk 2 variabel adalah sebagai berikut : Yi = β1 + β 2 X i + u i ∧
Penduga untuk β 2
∑x y = ∑x i
2 i
i
∧
dengan var(β 2 ) =
σ2
∑x
2 i
Sedang, untuk heterokedastisitas dengan σ i2 = σ 2 , maka menjadi, ∧
var(β 2
∑x σ )= (∑ x ) 2 i
2 i
2 2 i
∧
permasalahan disini sekarang adalah, bahwa penduga β 2 bukan merupakan BLUE ( Best Linear Unbiased Estimator ) , karena tidak memiliki ragam minimum. Hal inilah dalam ekonometri disebut Heterokedastisitas.
3.7 Uji Goldfeld-Quandt
Uji ini dapat dipergunakan untuk mendeteksi apakah terdapat heterokedastisitas pada data deret waktu dengan asumsi bahwa ragam, σ i2 secara positif berhubungan dengan salah satu dari variabel penjelasan pada model regresi. Model regresi : Yi = β1 + β 2 X i + u i Dengan,
σ i2 = σ 2 X i2
dimana , σ 2 adalah sebuah konstan
Uji Goldfeld-Quandt mendeteksi heterokedastisitas dengan tahap-tahap : Langkah 1 : Menyusun atau memberikan peringkat data penelitian menurut nilai X i ,
dimulai dengan nilai X yang terendah. Langkah 2 : Menentukan nilai c sebagai pusat , membagi (n − c) menjadi dua bagian
yang masing-masing terdiri dari (n − c) / 2 . Nilai c ini sangat penting , karena menentukan kekuatan dari uji. Menurut Uji Montecarlo oleh Goldfeld dan Quandt, mereka menentukan bahwa c = 8 apabila ukuran sampel kurang lebih 30, dan c = 16 apabila ukuran sampel kurang lebih 60. Sedang George G. Judge menentukan bahwa c = 4, apabila n = 30 dan c = 10 apabila n = 60, yang mana merupakan nilai terbaik dari beberapa penelitian yang telah Judge lakukan. Dengan asumsi bahwa penelitian Judge lebih menjamin ketepatan dalam penelitian, maka penulis akan mengikuti anjuran Judge.
Langkah 3
: Menyusun model regresi berdasar dua data yang sudah terpisah, dan
mendapatkan Residual Sums of Squares, RSS1 adalah RSS dari kelompok
X i dengan
nilai X yang lebih kecil dan RSS 2 adalah RSS dari kelompok X i dengan nilai X yang lebih besar. Langkah 4
: Menghitung rasio λ =
Jika nilai
λ>F
RSS 2 / df RSS1 / df
maka indikasi heterokedastisitas besar, dan terbukti ada
heterokedastisitas. Dan begitu sebaliknya apabila λ < F maka kita menerima H 0 , yaitu tidak ada heterokedastisitas.
Apabila heterokedastisitas tidak terdeteksi, maka model regresi bisa digunakan untuk melakukan analisis data lebih lanjut, sedang kalau pada model regresi terdeteksi, maka model regresi dievaluasi dengan Metode Weighted Least Squares untuk mendapatkan model regresi baru yang lebih tepat untuk analisis data.
3.8 Metode Weighted Least Squares
Menurut Damodar N. Gujarati , Metode Weighted Least Squares dapat digunakan
sebagai
solusi
untuk
mengubah
model
regresi
apabila
terjadi
heterokedastisitas bila ukuran sampel adalah kecil ( n = 30 ), apabila ukuran sampel besar ( n = 60 ) maka digunakan metode yang lain yaitu Metode White. Berikut adalah model regresi normal
Yi = β1 + β 2 X i + u i
Unweighted Least Squares akan meminimalisasi ∧ ∧ ⎛ u Y β β = − − ⎜ ∑ i ∑ ⎝ i 1 2 X i ⎞⎟⎠ ∧2
2
Untuk memperoleh estimasinya, dengan Metode Weighted Least Squares , diubah menjadi berikut ∧ ∧ ⎛ ⎞ ∑ wi u i = ∑ wi ⎜⎜ Yi − β1* − β 2* X i ⎟⎟ ⎝ ⎠ ∧2
2
dimana wi =
Kemudian kita dapatkan dua persamaan normal : ∧*
∧*
∑ wiYi = β 1 ∑ wi + β 2 ∑ wi X i , dan ∧*
∧*
∑ wi X iYi = β 1 ∑ wi X i + β 2 ∑ wi X i2
Dari dua persamaan di atas, kita dapatkan ∧*
*
∧*
β1 = Y − β 2 X ∧*
β2 =
*
, dan
(∑ w )(∑ w X Y ) − (∑ w X )(∑ w Y ) (∑ w )(∑ w X ) − (∑ w X ) i
i
i
i i i
i
2 i
i
i i
2
i
i
1
σ i2