BAB II LANDASAN TEORI 2.1 Prototype Prototyping merupakan salah satu metode pengembangan perangat lunak yang banyak digunakan. Dengan metode prototyping ini pengembang dan pelanggan dapat saling berinteraksi selama proses pembuatan sistem. Sering terjadi seorang pelanggan hanya mendefinisikan secara umum apa yang dikehendakinya tanpa menyebutkan secara detail output apa saja yang dibutuhkan, pemrosesan dan data-data apa saja yang dibutuhkan. Sebaliknya disisi pengembang kurang memperhatikan efesiensi algoritma, kemampuan sistem operasi dan interface yang menghubungkan manusia dan komputer. Untuk mengatasi ketidakserasian antara pelanggan dan pengembang , maka harus dibutuhakan kerjasama yang baik diantara keduanya sehingga pengembang akan mengetahui dengan benar apa yang diinginkan pelanggan dengan tidak mengesampingkan segi-segi teknis dan pelanggan akan mengetahui proses-proses dalm menyelasaikan system yang diinginkan. Dengan demikian akan menghasilkan sistem sesuai dengan jadwal waktu penyelesaian yang telah ditentukan. Kunci agar model prototype ini berhasil dengan baik adalah dengan mendefinisikan aturan-aturan main pada saat awal, yaitu pelanggan dan pengembang harus setuju bahwa prototype dibangun untuk mendefinisikan kebutuhan. Prototype akan dihilangkan sebagian atau seluruhnya dan perangkat lunak aktual aktual direkayasa dengan kualitas dan implementasi yang sudah ditentukan. Keunggulan prototyping adalah: 1. Adanya komunikasi yang baik antara pengembang dan pelanggan. 2. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan. 3. Pelanggan berperan aktif dalam pengembangan system. 4. Lebih menghemat waktu dalam pengembangan system. 5. Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya. Kelemahan prototyping adalah : 1. Pelanggan kadang tidak melihat atau menyadari bahwa perangkat lunak yang ada belum mencantumkan kualitas perangkat lunak secara keseluruhan dan juga belum memikirkan kemampuan pemeliharaan untuk jangja waktu lama. 2. Pengembang biasanya ingin cepat menyelesaikan proyek. Sehingga menggunakan algoritma dan bahasa pemrograman yang sederhana untuk membuat prototyping lebih cepat selesai tanpa memikirkan lebih lanjut bahwa program tersebut hanya merupakan cetak biru sistem . 3. Hubungan pelanggan dengan komputer yang disediakan mungkin tidak mencerminkan teknik perancangan yang baik. Prototyping bekerja dengan baik pada penerapan-penerapan yang berciri sebagai berikut: 1. Resiko tinggi yaitu untuk masalah-masalah yang tidak terstruktur dengan baik, ada perubahan yang besar dari waktu ke waktu, dan adanya persyaratan data yang tidak menentu. 2. Interaksi pemakai penting . Sistem harus menyediakan dialog on-line antara pelanggan dan komputer. 3. Perlunya penyelesaian yang cepat. 4. Perilaku pemakai yang sulit ditebak. 5. Sitem yang inovatif. Sistem tersebut membutuhkan cara penyelesaian masalah dan penggunaan perangkat keras yang mutakhi.r 6. Perkiraan tahap penggunaan sistem yang pendek. (http://achmad-rasul.blogspot.com/2009/05/pengertian-prototype_7273/) 2.2 Modeling Model adalah pola (contoh, acuan, ragam) dari sesuatu yang akan dibuat atau dihasilkan( Departemen P dan K, 1984 : 75). Definisi lain dari model adalah abstraksi dari sistem sebenarnya, dalam gambaran yang lebih sederhana serta mempunyai tingkat prosentase yang bersifat menyeluruh, atau model adalah abstraksi dari realitas dengan hanya memusatkan perhatian pada beberapa sifat dari kehidupan sebenarnya. (Simamarta, 1983: ix – xii) Jenis-jenis model dapat dibagi dalam lima kelas yang berbeda : 1. Kelas I, pembagian menurut fungsi : a. Model deskriptif : hanya menggambarkan situasi sebuah sistem tanpa rekomendasi dan peramalan. Contoh : peta organisasi b. Model prediktif : model ini menunjukkan apa yang akan terjadi, bila sesuatu terjadi. c. Model normatif : model yang menyediakan jawaban terbaik terhadap satu persoalan. Model ini memberi rekomendasi tindakan-tindakan yang perlu diambil. Contoh : model budget advertensi, model economics, model marketing. 2. Kelas II, pembagian menurut struktur. a. Model Ikonik : adalah model yang menirukan sistem aslinya, tetapi dalam suatu skala tertentu. Contoh : model pesawat. b. Model Analog : adalah suatu model yang menirukan sistem aslinya dengan hanya mengambil beberapa karakteristik utama dan menggambarkannya dengan benda atau sistem lain secara analog. Contoh : aliran lalu lintas di jalan dianalogkan dengan aliran air dalam sistem pipa. c. Model Simbolis : adalah suatu model yang menggambarkan sistem yang ditinjau dengan simbol-simbol biasanya dengan simbol-simbol matematik. Dalam hal ini sistem diwakili oleh variabel-variabel dari karakteristik sistem yang ditinjau. 3. Kelas III, pembagian menurut referansi waktu. a. Statis : model statis tidak memasukan faktor waktu dalam perumusannya. b. Dinamis : mempunyai unsur waktu dalam perumusannya. 4. Kelas IV, pembagian menurut referansi kepastian. a. Deterministik : dalam model ini pada setiap kumpulan nilai input, hanya ada satu output yang unik, yang merupakan solusi dari model dalam keadaan pasti. b. Probabilistik : model probabilistik menyangkut distribusi probabilistik dari input atau proses dan menghasilkan suatu deretan harga bagi paling tidak satu variabel output yang disertai dengan kemungkinankemungkinan dari hargaharga tersebut. c. Game : teori permainan yang mengembangkan solusi-solusi optimum dalam menghadapi situasi yang tidak pasti. 5. Kelas V, pembagian menurut tingkat generalitas. a. Umum b. Khusus Model yang akan disusun dalam penelitian ini termasuk model Simbolis, yaitu model yang menggambarkan sistem yang ditinjau dengan simbol-simbol biasanya dengan simbol-simbol matematik. Dalam hal ini sistem diwakili oleh variabel-variabel dari karakteristik sistem yang ditinjau. 2.3 Simulasi Simulasi dapat diartikan sebagai meniru suatu sistem nyata yang kompleks yang penuh dengan sifat probabilistik, tanpa harus mengalami keadaan yang sesungguhnya . Hal ini dapat dilakukan dengan membuat sebuah miniature yang representative dan valid denagn tujuan sampling dan survey statistik pada sistem nyata dapat dilakukan pada tiruan ini. Proses simulasi juga berhubungan dengan penyusunan tiruan sistem dengan menggunakan interaksi antar bilangan ramdom yang menuruti distribusi dari pola data tertentu. Sehingga diperlukan suatu distribusi tertentu untuk mensimulasikan suatu sistem. Model simulasi ada dua (2) macam : 1. Simulasi Analog Yaitu simulasi yang mempergunakan representasi fisik untuk menjelaskan karakteristik penting dari suatu masalah. Contoh : model hidraulik sistem ekonomi makro. 1. Simulasi Simbolik Pada dasarnya meniru model matematik yang pemecahannya (dipermudah) dengan menggunakan komputer, disebut simulasi komputer. Terdapat tiga (3) komponen utama yang mendasari simulasi : 1. Metode analisis sistem 2. Metode statistik 3. Pemograman computer Simulasi merupakan satu bahasan dengan cakupan sangat luas dan bersinggungan dengan berbagai bidang ilmu. Pada umumnya digunakan untuk menyelesaikan permasalahan yang: 1. Sulit diselesaikan dengan cara analisis : dynamic programming, rangkaian listrik kompleks, dll. 2. Memiliki ukuran data dan kompleksitas yang tinggi: travelling salesman problem, assignment, schedulling, dll. 3. Sangat sulit diimplementasikan secara langsung, karena biaya yang sangat tinggi: optimasi Radio Base Station atau optimasi channel assignment 4. Ketika hubungan antar variable tidak linier 5. Ketika model memiliki variable acak. (ellyns.wordpress.com/2009/08/28/definisi-simulasi-2.html) 2.4 Arduino Uno Arduino Uno adalah board mikrokontroler berbasis ATmega328 dan memiliki 14 pin input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya. Uno berbeda dengan semua board sebelumnya dalam hal koneksi USB-toserial yaitu menggunakan fitur Atmega8U2 yang diprogram sebagai konverter USB-to-serial berbeda dengan board sebelumnya yang menggunakan chip FTDI driver USB-to-serial. Nama “Uno” berarti satu dalam bahasa Italia, untuk menandai peluncuran Arduino 1.0. Uno dan versi 1.0 akan menjadi versi referensi dari Arduino. Uno adalah yang terbaru dalam serangkaian board USB Arduino, dan sebagai model referensi untuk platform Arduino. Ringkasan Arduino Uno Microcontroller ATmega328 Operasi dengan daya 5V Voltage Input Tegangan (disarankan) 7-12V Input Tegangan (batas) 6-20V Digital I / O Pins 14 (dimana 6 memberikan output PWM) Analog Input Pin 6 DC Lancar per I / O Pin 40 mA Saat 3.3V Pin 50 mA DC Flash Memory 32 KB (ATmega328) yang 0,5 KB digunakan oleh bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) Clock Speed ?16 MHz. (http://blog.kedairobot.com/2011/07/02/arduino-uno/) 2.5 Sensor ping ultrasonik Sensor PING merupakan sensor ultrasonik yang dapat mendeteksi jarak obyek dengan cara memancarkan gelombang ultrasonik dengan frekuensi 40 KHz dan kemudian mendeteksi pantulannya. Sensor ini dapat mengukur jarak antara 3 cm sampai 300 cm. keluaran dari sensor ini berupa pulsa yang lebarnya merepresentasikan jarak. Lebar pulsanya bervariasi dari 115 uS sampai 18,5 mS. Pada dasanya, Ping))) terdiri dari sebuah chip pembangkit sinyal 40KHz, sebuah speaker ultrasonik dan sebuah mikropon ultrasonik. Speaker ultrasonik mengubah sinyal 40 KHz menjadi suara sementara mikrophone ultrasonik berfungsi untuk mendeteksi pantulan suaranya. Pin signal dapat langsung dihubungkan dengan mikrokontroler tanpa tambahan komponen apapun. Ping hanya akan mengirimkan suara ultrasonik ketika ada pulsa trigger dari mikrokontroler (Pulsa high selama 5uS). Suara ultrasonik dengan frekuensi sebesar 40KHz akan dipancarkan selama 200uS. Suara ini akan merambat di udara dengan kecepatan 344.424m/detik (atau 1cm setiap 29.034uS), mengenai objek untuk kemudian terpantul kembali ke Ping. Selama menunggu pantulan, Ping akan menghasilkan sebuah pulsa. Pulsa ini akan berhenti (low) ketika suara pantulan terdeteksi oleh Ping. Oleh karena itulah lebar pulsa tersebut dapat merepresentasikan jarak antara Ping dengan objek. (https://fahmizaleeits.wordpress.com/2010/10/30/sensor-jarak-ping-paralax/) 2.6 Papan project board Project Board atau yang sering disebut sebagai BreadBoard adalah dasar konstruksi sebuah sirkuit elektronik dan merupakan prototipe dari suatu rangkaian elektronik. Di zaman modern istilah ini sering digunakan untuk merujuk pada jenis tertentu dari papan tempat merangkai komponen, dimana papan ini tidak memerlukan proses menyolder ( langsung tancap ). Karena papan ini solderless alias tidak memerlukan solder sehingga dapat digunakan kembali, dan dengan demikian dapat digunakan untuk prototipe sementara serta membantu dalam bereksperimen desain sirkuit elektronika. Berbagai sistem elektronik dapat di prototipekan dengan menggunakan breadboard, mulai dari sirkuit analog dan digital kecil sampai membuat unit pengolahan terpusat (CPU). Secara umum projectbord memiliki jalur seperti berikut ini : Gambar 2.1 Jalur projectboard (http://aisi555.blogspot.com/2011/07/mengenalprojectboard.html) Penjelasan : 2 Pasang jalur Atas dan bawah terhubung secara horizontal sampai ke bagian tengah dari breadboard. Biasanya jalur ini digunakan sebagai jalur power atau jalur sinyal yg umum digunakan seperti clock atau jalur komunikasi. 5 lubang komponen di tengah merupakan tempat merangkai komponen. Jalur ke 5 lubang ini terhubung vertikal sampai bagian tengah dari breadboard. 2.7 Ic l293b driver motor IC L293 adalah IC Quadruple Half H Driver yang dapat digunakan sebagai driver 2 arah untuk arus yang cukup besar (1A, untuk tipe L293D maks 600mA). IC ini sering di pakai untuk pembuatan suatu mobil line follower. Konfigurasi pin : Gambar 2.2 Konfigurasi L2395b Keterangan : - Pin 1 adalah pinenable - Pin 2,7,10, dan15 adalah pin input - Pin 3, 6, 11, dan14 adalah pin output - Pin 3 ke motor - Pin 6 ke motor - pin 4, 5, 12, 13 adalah pin ground - Pin 8 dan 16 adalah pin sumber daya (+) 2.8 EMS LCD Display EMS LCD Display merupakan modul LCD 16 karakter x 2 baris. Modul ini mempermudah penggunaan LCD karakter 16x2 dengan hanya menghubungkannya dengan sebuah port I/O pada mikrokontroler atau mikroprosesor. Modul ini juga memiliki konfigurasi pin yang kompatibel dengan code wizard dari CodeVisionAVR®. Spesifikasi EMS LCD Display 1. Berbasis LCD karakter 16x2 dengan antarmuka antarmuka paralel 4 bit. 2. Tersedia pin untuk mengendalikan backlight. 3. Tersedia VR untuk mengatur kontras. 4. Pilihan konfigurasi untuk operasi write only atau read/write. 5. Catu daya +5 Volt DC. 6. Kompatibel dengan DT-51 dan DT-AVR Low Cost Series serta sistem mikrokontroler/mikroprosesor lain. Konektor J3 digunakan untuk antarmuka perintah/data, pengendalian backlight, sekaligus sumber tegangan bagi EMS LCD Display.Alokasi Pin J3 dan keteranganya dapat di lihat pada gambar 2.3 dan table 2.1. Gambar 2.3 Alokasi pin J3 (Copyright © 2009 Innovative Electronics) Tabel 2.1 Keterangan pin J3 (Copyright © 2009 Innovative Electronics) 2.9 Adaptor Adaptor adalah alat elektronika yang dapat menyesuaikan atau merubah tegangan listrik AC (alternating current) ke tegangan DC (direct current). Prinsip kerja adaptor adalah merupah tegangan AC (Alternating Current) menjadi tegangan DC (Direct Current). Komponen adaptor adalah transformator, diode dan kondensator. Transformator Transformator atau sering disebut trafo adalah alat untuk mentransfer tegangan AC dari gulungan kawat ke gulungan kawat lainya. Kawat yang dipakai biasanya menggunakan kawat email, sedangkan untuk inti besi biasanya menggunakan lapisan – lapisan pelat besi. Selain itu trasformator juga berfungsi untuk menaikan tegangan listrik. Trafo jenis ini disebut trafo step up. Dan yang menurunkan tegangan listrik disebut Trafo step down. Komponen yang dihubungkan dengan tegangan input disebut komponen primer, sedangkan komponen yang dihubugnkan dengan tegangan output disebut komponen sekunder. Adapun tegangan untuk satu daya cenderung kecil, yaitu sekitar 3; 4,5; 6; 7,5; 9; 12 maka trafo ini disebut trafo step down. Diode Diode berfungsi sebagai penyearah yang dapat mengubah tegangan AC menjadi DC. Rangkaian penyearah dapat digolongkan menjadi 2 kelompok, yaitu penyearah setengah gelombang dan penyearah gelombang penuh. Kondensator Kondensator berfungsi sebagai filter. Kondensator biasanya menggunakan kondensator ELKO (Elektrolit Kondensator). Arus bolak-balik yang melewati penyearah masih harus diratakan menggunakan kondensator. Pada pembuatan adaptor biasanya menggunakan ELKO. 2.10 Diagram Alir (Flowchart) Flowchartatau diagram alir merupakan metode untuk menggambarkan tahap-tahap pemecahan masalah dengan merepresentasikan simbol-simbol tertentu yang mudah dimengerti, mudah digunakan, dan standar (Oetomo, Dharma B.S,2002 : 117). Tujuan utama penggunaan diagram alir adalah untuk menggambarkan suatu tahapan penyelesaian masalah secara sederhana, terurai, rapi, dan jelas dengan menggunakan simbol-simbol yang standar. Dalam penulisannya diagram alir dikenal dua model, yaitu diagram alir sistem dan diagram alir program. Simbol-simbol standar yang digunakan pada diagram alir sistem ditunjukkan dalam Gambar2.2. Gambar2.4 Simbol-simbol diagram alir program (Oetomo, Dharma B.S, 2002) Pada penggambaran diagram alir program, ada dua jenis metode, yaitu conceptual flowchart dan detail flowchart. Conceptual flowchart menggambarkan tentang alur dari suatu pemecahan masalah secara global saja.Sedangkan detail flowchart menggambarkan alur pemecahan masalah secara rinci. 2.11 Bola Basket Bola basket merupakan olahraga dengan menggunakan bola sebagai alat utamanya dan dimainkan secara berkelompok yang terdiri atas dua tim beranggotakan masing-masing lima orang yang saling bertanding mencetak poin dengan memasukkan bola ke dalam keranjang lawan. Permainan bolabasket di batasi oleh waktu pertandingan. Bola basket sangat cocok untuk ditonton karena biasa dimainkan di ruang olahraga tertutup dan hanya memerlukan lapangan yang relatif kecil. Selain itu, bola basket mudah dipelajari karena bentuk bolanya yang besar, sehingga tidak menyulitkan pemain ketika memantulkan atau melempar bola tersebut. Bola basket merupakan salah satu olahraga yang paling digemari oleh penduduk Amerika Serikat serta penduduk di belahan bumi lainnya, antara lain di Amerika Selatan, Eropa Selatan, Lithuania, dan juga Indonesia. • Fade Away Fade away adalah tehnik mendorong badan kebelakang saat melakukan shoot, sehingga menyulitkan defender untuk menghalau bola. tehnik ini cukup sulit dilakukan oleh pemain yang baru belajar basket. Bila keseimbangan badan tidak terjaga pemain dapat terpelanting dan jatuh kebelakang. Pemain NBA yang sering memakai teknik ini adalah sang legenda basket seperti Michael Jordan dan Kobe Bryant. • Hook Shoot Hook adalah suatu teknik yang sangat efektif jika pemain dijaga oleh orang yang lebih tinggi. Caranya yaitu menembak dari samping dengan satu tangan. Jadi jarak antara orang yang menghadang dan pemain bias agak jauh. Belakangan tehnik ini sering dipakai oleh Rony Gunawan Satria Muda Britama waktu melawan Garuda Bandung di Final 2009. • crossover merupakan tehknik dribble dengan cara memantulkan bola dari tangan kiri ke tangan kanan atau sebaliknya. biasanya teknik sudah banyak di improvisasi dengan cara memantulkan bola di antara celah kaki atau belakang kaki. • Slamdunk Slamdunk adalah salah satu teknik yang paling popular dalam permainan basket.. Sebenarnya cukup simpel, yaitu hanya memasukkan bola secara langsung ke ring dan menghempaskan tangan ke ring basket. Walaupun simpel, tapi untuk orang dengan tinggi 171 cm slam seperti ini sangat sulit untuk dilakukan karena biasanya lompatannya tidak cukup tinggi. 2.12 Metodologi Waterfall Metodologi Waterfall merupakan model klasik yang sederhana dengan aliran sistem yang linier. Output dari setiap tahap merupakan input bagi tahap berikutnya. Model ini pertama kali diperkenalkan oleh Winston Royce tahun 1970, sekarang model ini lebih dikenal dengan Liner Sequential Model. Karakteristik dari metodologi waterfall ini meliputi beberapa bagian, yaitu : • Aktivitas mengalir dari satu fase ke fase lainnya secara berurutan. • Setiap fase dikerjakan terlebih dahulu sampai selesai, jika sudah selesai mulai ke fase berikutnya, jika terjadi kesalahan dapat kembali ke fase sebelumnya. Tahapan penelitian pada model waterfall meliputi metodologi berupa : 1. System Engineering . Menetepkan segala hal yang di perlukan dalam pelaksanaan proyek. 2. Analisis Menganalisis hal-hal yang diperlukan untuk pembuatan atau pengembangan perangkat lunak 3. Design Tahap penerjemahan dari keperluan atau data yang telah dianalisis ke dalam bentuk yang mudah dimengerti oleh programmer . Tiga atribut yang penting dalam proses perancangan yaitu : struktur data, arsitektur perangkat lunak dan prosedur rinci / algoritma. 4. Coding Menerjemahkan data yang telah dirancang / algoritma ke dalam bahasa pemrograman yang telah ditentukan 5. Testing Uji coba terhadap program telah dibuat . 6. Maintenance Perubahan atau penambahan program sesuai dengan permintaan user. Kelebihan dari metode WaterFall: Metode ini masih lebih baik digunakan walaupun sudah tergolong kuno, daripada menggunakan pendekatan asal-asalan. Selain itu, metode ini juga masih masuk akal jika kebutuhan sudah diketahui dengan baik. Kekurangan dari metode Waterfall : o Pada kenyataannya, jarang mengikuti urutan sekuensial seperti pada teori. o Sulit bagi pelanggan untuk menentukan semua kebutuhan secara eksplisit. o Kesalahan di awal tahap berakibat sangat fatal pada tahap berikutnya. (http://jejakjari007.blogspot.com/2011/04/metodologi-pengembangan-sistem .html). Alasan kenapa menggunakan metode ini ialah, metode ini sangat cocok dalam pembuatan prototyledan modeling. Pengerjaan setiap fase sangat teratur dan sistematis. 2.13 Use Case Diagram Use Case Diagram adalah diagram yang menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem tersebut berinteraksi dengan dunia luar dan menjelaskan sistem secara fungsional yang terlihat user. Biasanya dibuat pada awal pengembangan. Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan system untuk melakukan pekerjaan-pekerjaan tertentu. Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk semua feature yang ada pada sistem. Sebuah use case dapat menginclude fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain. Use case diagram adalah gambaran graphical dari beberapa atau semua actor, use case, dan interaksi diantara komponen-komponen tersebut yang memperkenalkan suatu sistem yang akan dibangun. Use case diagram menjelaskan manfaat suatu sistem jika dilihat menurut pandangan orang yang berada di luar sistem. Diagram ini menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem tersebut berinteraksi dengan dunia luar. Use case diagram dapat digunakan selama proses analisis untuk menangkap requirements sistem dan untuk memahami bagaimana sistem seharusnya bekerja. Selama tahap desain, use case diagram berperan untuk menetapkan perilaku (behavior) sistem saat diimplementasikan. Dalam sebuah model mungkin terdapat satu atau beberapa use case diagram. Kebutuhan atau requirements sistem adalah fungsionalitas apa yang harus disediakan oleh sistem kemudian didokumentasikan pada model use case yang menggambarkan fungsi sistem yang diharapkan (use case), dan yang mengelilinginya (actor), serta hubungan antara actor dengan use case (use case diagram) itu sendiri (http://www.masjito.com). • Use Case Use case menggambarkan perilaku, termasuk didalamnya interaksi antara actor dengan sistem. Use case dibuat berdasarkan keperluan actor, merupakan “apa” yang dikerjakan sistem bukan “bagaimana” sistem mengerjakannya. Setiap use case harus diberi nama yang menyatakan apa hal yang dicapai dari hasil interaksinya dengan actor. Nama use case boleh terdiri dari beberapa kata dan tidak boleh ada dua use case memiliki nama yang sama. • Association antara actor dan use case Ujung panah pada association antara actor dan use case mengindikasikan siapa/apa yang meminta interaksi dan bukannya mengindikasikan aliran data Sebaiknya gunakan garis tanpa panah untuk association antara actor dan use case association antara actor dan use case yang menggunakan panah terbuka untuk mengindikasikan bila actor berinteraksi secara pasif dengan system anda (http://isebu.blogspot.com) 2.14 Bahasa C Bahasa C dirancang oleh Dennis M. Ritchie pada tahun 1972 dan dituangkan pada “C Reference Manual” yang diterbitkan oleh Bell Laboratories pada tahun 1974. Bahasa C merupakan perkembangan bahasa BCPL (Basic Combined Programming Language) yang dibuat oleh Dr. Martin Richard dari Cambridge University di Ingggris, kemudian dikembangkan oleh Ken Thompson menjadi bahasa yang disebut dengan B. Dennis M. Ritchie tertarik oleh interpreter bahasa B yang ditulis Ken Thompson tersebut dan mengembangkannya menjadi suatu compiler yang disebut dengan C. Nama C ini dipilih karena merupakan urutan selanjutnya dari B pada alphabetic. Definisi dari bahasa C dikelurkan pada tahun 1979 dalam buku “The Programming Language” oleh Brian Kerninghan dan Dennis M. Ritchie. Sejak saaat itu masyarakat mulai mengenal adanya suatu bahsa yang baik yaitu C. Hingga sekarang telah hadir puluhan versi dari compiler C. Perkembangan bahasa di komputer mikro dimulai tahun 1978 yaitu Tiny-C yang ditulis oleh Tom Gibson. Seperti versi dari C sebelumnya, Tiny-C ditulis bukan untuk tujuan komersial melainkan digunakan Tom Gibson untuk mengajarkan anaknya mengenai bahasa C. Tom menyadari nilai komersial dari usahanya dan mulai memasarkan produknya. Tetangga Tom Gibson yaitu George Eberhart (penulis bahasa CI-C68) menulis compiler tiny-c tersebut. Tiny-c kemudian banyak dikembangkan versi bahasa C lainnya yaitu Small-C, C-80, QC, CW/C dan banyak lainnya. Jenis bahasa C lain yang ditulis untuk komputer mikro adalah BD system C (BDS C). Compiler dari BDS C merupakan hasil kerja dari Leor Zolman. Sewaktu dia berumur 17 tahun Leor Zolman menulis suatu permainan Othello di system operasi UNIX. Pertama kali program Othello dijalankan kurang sempurna, kemudian Leor Zolman menulis bagian dari bahasa C untuk menunjang program Othello tersebut. Setelah mencoba compiler C tersebut Leor Zolman menyadari produknya dapat dipasarkan, yang kemudian banyak digunakan di komputer mikro. Sehingga mulai banyak ditulis versi lain bahasa C yang didasarkan pada BDS C.Versi-versi yang paling popular untuk koputer mikro adalah MS-C (Microsoft C) dan Turbo C. Sampai tahun 1982 sistem operasi CP/M dan MP/M merupakan system operasi yang dominan pada komputer mikro. Mulai awal tahun 1983 sistem operasi yang mulai banyak dipergunakan oleh komputermikro adalah MS-DOS dan bahsa C juga dapat dijanlankan denagn system operasi ini. Jadi untuk mikro komputer, system operasi yang dapat menjalankan bahasa C adalah CP/M dan MP/M, MS-DOS dan PC-DOS serta UNIX. Bahasa pemrograman C merupakan bahasa pemrograman yang bersifat umum (General Purpose Language), tidak dikhususkan untuk bidang aplikasi tertentu. Bahasa pemrograman ini digolongkan sebagai bahasa pemrograman tingkat menengah (medium level language). Hal ini dikarenakan Bahasa C memiliki kemampuan dalam mengakses mesin komputer yang mendekati kemampuan bahasa rakitan, tetapi mudah dipelajari dan digunakan seperti halnya bahasa pemrograman tingkat tinggi. Selain itu bahasa pemrograman C memilki karakteristik lain seperti : hemat ekspresi, alur kontrol, menggunakan struktur data modern, dan kaya dengan operator. Pada tahun 1978, Dennis Ritchie dan Brian Kernighan menerbitkan edisi pertama dari buku yang berjudul The C Programming Language. Buku ini hingga sekarang diakui sebagai kitab suci bahasa C dan merupakan referensi utama seorang pemrogram yang ingin mengetahui tentang bahasa C, terutama karena begitu lengkapnya cakupan buku ini tentang bahasa C dan mudahnya program yang dicontohkan dalam buku ini. Versi bahasa C yang ditampilkan dalam buku ini kemudian dikenal dalam kalangan pemrogram sebagai C K&R. Pada buku The C Programming Language edisi kedua kemudian melingkupi ANSI C yang diperkenalkan belakangan. Pada perkembangannya, muncul versi-versi C lain yang pada akhirnya membuat kebingungan di kalangan pemrogram. Karena itu, pada tahun 1983, American National Standards Institute (ANSI) membuat sebuah komite untuk membuat sebuah versi standar dari bahasa C. Setelah melalui proses yang panjang dan sengit, pada tahun 1989, telah berhasil disahkan standar yang dinamakan ANSI X3.159-1989, versi ini seringkali dinamakan ANSI C, atau kadang-kadang C89. Pada 1990, versi ANSI C diadopsi oleh Organization for Standardization (ISO) dengan sedikit perubahan dengan nama ISO/IEC 9899:1990. Versi ini seringkali dinamakan ISO C atau C90. Karena versi ANSI C dan ISO C hanya memiliki sedikit perbedaan, pemanggilan C90 dan C89 merujuk pada bahasa yang sama. C99 Versi C99 dibuat oleh ISO C pada tahun 1999. Versi ini dimaksudkan terutama untuk memperbanyak dukungan kepada pemrograman berorientasi objek, terutama setelah C++, yang dibuat berdasarkan bahasa ini mendapat tempat yang istimewa di kalangan pemrogram Beberapa alasan mengapa memakai bahasa C 1. C adalah bahasa pemrograman yang paling populer saat ini, Dengan banyaknya programmer bahasa C, membawa pengaruh semakin mudahnya kita menemukan pemecahan masalah yang kita dapatkan ketika menulis program dalam bahasa C. Pengaruh positif lain adalah semakin banyaknya kompiler yang dikembangkan untuk berbagai platform (berpengaruh ke portabilitas). 2. C adalah bahasa pemrograman yang memiliki portabilitas tinggi, Program C yang kita tulis untuk satu jenis platform, bisa kita kompile dan jalankan di platform lain dengan tanpa ataupun hanya sedikit perubahan. Ini bisa diwujudkan dengan adanya standarisasi ANSI untuk C. 3. C adalah bahasa pemrograman yang fleksibel, Dengan menguasai bahasa C, kita bisa menulis dan mengembangkan berbagai jenis program mulai dari operating system, word processor, graphic processor, spreadsheets, ataupun compiler untuk suatu bahasa pemrograman. Variabel bahasa C a. variabel lokal Variabel lokal,yaitu variabel yang dideklarasikan di dalam fungsi. Variabel lokal mempunyai sifat : a. Secara otomatis akan diciptakan ketika fungsi dipanggil dan akan hilang (dari memori) ketika eksekusi fungsi berahir. b. Hanya dikenal oleh fungsi tempat variabel dideklarasikan. c. Tidak ada inisialisasi secara otomatis(saat variabel diciptakan nilainya tidak tentu). d. Contoh variabel lokal : b. variabel Global Variabel Global, yaitu variabel yang dideklarasikan diluar fungsi. Variabel global mempunyai sifat : a. Dapat diakses/dipanggil oleh semua fungsi. b. Jika tidak di beri nilai awal,maka otomatis diinisialisasikan dengan nilai 0. Tipe data bahasa C Bahasa C menyediakan lima macam tipe data dasar, yaitu tipe data integer (nilai numerik bulat yang dideklarasikan dengan int), floating-point (nilai numerik pecahan ketepatan tunggal yang dideklarasikan dengan float), double-precision (nilai numerik pecahan ketepatan ganda yang dideklarasikan dengan double), karakter (dideklarasikan dengan char), dan kosong (dideklarasikan dengan void). Int, float, double dan char dapat dikombinasikan dengan pengubah (modifier) signed, unsigned, long, dan short. Bahasa C dikatakan sebagai bahasa pemrograman terstruktur, karena strukturnya menggunakan fungsi-fungsi sebagai program-program bagian (subroutine). Fungsi-fungsi selain fungsi utama merupakan program-program bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama atau diletakkan pada file pustaka dan akan dipakai di suatu program, maka nama judulnya (header file) harus dilibatkan di dalam program yang menggunakan preprocessor directive #include. Header file merupakan file yang berisi dengan prototype (judul, nama, sintak) dari sekumpulan fungsi- fungsi pustaka tertentu. Jadi file ini hanya berisi dengan prototype dari fungsi- fungsi pustaka, sedangkan fungsi-fungsi pustakanya sendiri disimpan dalam file pustaka (library file dengan nama extension file-nya adalah .LIB) Misalnya prototype dari fungsi- fungsi pustaka printf() dan scanf() terdapat di file stdio.h, sehingga jika fungsi-fungsi ini digunakan di program, maka nama file judulnya harus dilibatkan dengan menggunakan preposcessor #include. File judul stdio.h berisi prototype fungsifungsi pustaka untuk operasi input dan output standar. Ada dua cara melibatkan file judul disuatu program C, yaitu : #include<stdio.h> atau #include”stdio.h” File judul selain berisi dengan prototype dari fungsi-fungsi pustaka, juga umumnya berisi dengan konstanta-konstanta terdefinisi dan makro-makro. Misalnya nama konstanta terdefinisi M_PI telah didefinisikan di file judul math.h oleh Turbo-C. Selanjutnya untuk menggunakan nilai phi, nama konstanta M_PI dapat digunakan yang telah berisi dengan 3.14159265358979323846. (http://swastikayana.wordpress.com/2009/02/17/bahasa-c/) nilai konstanta