4
BAB II LANDASAN TEORI 2.1
Pengertian Sistem Sistem berasal dari bahasa Latin (Systema) dan bahasa Yunani (Sustema) adalah suatu
kesatuan yang terdiri komponen atau elemen yang dihubungkan bersama untuk memudahkan aliran informasi, materi, atau energi. Istilah ini sering dipergunakan untuk menggambarkan suatu set entitas yang berinteraksi, dimana suatu model matematika seringkali biasa dibuat. Sistem juga merupakan kesatuan bagian-bagian yang saling berhubungan yang berada dalam suatu wilayah serta memiliki item-item penggerak. Menurut Kendall & Kendall (2003 : 469), sistem adalah serangkaian subsistem yang saling terkait dan tergantung satu sama lain, bekerja bersama-sama untuk mencapai tujuan dan sasaran yang sudah ditetapkan sebelumnya. Secara garis besar sistem dapat dibagi 2, yaitu : 1. Sistem Fisik (Physichal System), yaitu kumpulan elemen-elemen / unsur-unsur yang saling berinteraksi satu sama lain secara fisik serta dapat diidentifikasikan secara nyata tujuantujuanya. Contoh : sistem komputer dengan elemen peralatan yang berfungsi bersama-sama untuk menjalankan pengolahan data. 2. Sistem Abstrak (Abstract Systemi), yaitu sistem yang dibentuk akibat terselenggaranya ketergantungan ide, dan tidak dapat diidentifikasikan secara nyata, tetapi dapat diuraikan elemen-elemennya. Contoh : Sistem Teologi yaitu hubungan antara manusia dengan Tuhan.
Dalam mendefinisikan sistem terdapat dua kelompok, yaitu
pendekatan yang
menekankan pada prosedur dan pendekatan dan pendekatan yang menekankan pada komponen atau elemennya. Pendekatan sistem yang lebih menekankan pada prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu. Prosedur adalah urutan-urutan yang tepat dari tahapantahapan instruksi untuk menerapkan apa yang harus dikerjakan, siapa yang mengerjakannya, kapan dikerjakan, dan bagaimana mengerjakannya.
5
Pendekatan sistem yang lebih menekankan pada elemen atau komponennya mendefinisikan bahwa : sistem adalah kumpulan dari elemen-elemen yang berinteraksi untuk mencapai suatu tujuan tertentu. Dengan demikian dapat disimpulkan bahwa sistem adalah sebuah tatanan yang terdiri dari sejumlah komponen fungsional dengan satuan fungsi atau tugas khusus yang saling berhubungan dan secara bersama-sama bertujuan untuk memenuhi suatu proses atau pekerjaan tertentu.
2.2
Konsep Dasar Rekayasa Piranti Lunak Dalam merancang suatu piranti lunak, perlu diadakan suatu pendekatan sistematis dalam
rekayasa piranti lunak. Tujuan dari rekayasa piranti lunak adalah menghasilkan piranti lunak yang ekonomis yang dapat diandalkan.
2.2.1 Pengertian Piranti Lunak Piranti lunak adalah sekumpulan perintah yang dijalankan (dieksekusi) oleh komputer. Program komputer ini terdiri dari susunan logika untuk menjalankan suatu pekerjaan tertentu di komputer. Perangkat lunak ini melibatkan berbagai komponen dalam komputer, seperti sistem operasi, program, dan data yang disimpan atau dibaca. Logika yang berada dalam perangkat lunak tersebut disusun sedemikian rupa sehingga komputer dapat memahami dan menjalankan instruksi yang terkandung didalamnya. Ada beberapa karateristik yang dimiliki oleh piranti lunak, diantaranya 1.
Piranti bersifat intangible, kita tidak dapat merasakan bentuk dari piranti lunak dan perancangan dari piranti lunak sulit untuk dibayangkan.
2.
Mudah untuk mengembangkan suatu piranti lunak, tetapi sulit untuk mengembangkan suatu piranti lunak yang mudah dimengerti dan mudah dimodifikasi.
3.
Piranti lunak tidak dapat rusak akan tetapi dapat ketinggalan zaman
2.2.2 Pengertian Rekayasa Piranti Lunak Rekayasa piranti lunak merupakan analisa, disain, pembuatan , verifikasi dan manajemen teknis yang sistematik dengan memikirkan batasan-batasan seperti batasan biaya, waktu, dan batasan lainnya.
6
Tujuan Rekayasa Piranti Lunak, diantaranya : 1. Meningkatkan keakuratan, performance dan efficiecy produk secara keseluruhan. 2. Menerapkan metodologi yang terdefinisi dengan baik untuk resolusi piranti lunak. 3. Melengkapi secara rasioanal konflik-konflik dan dokumentasi. 4. Pengembangan piranti lunak yang baik yang artinya reabilitas lebih tinggi mudah diperbaiki, mudah untuk dikembangkan, mudah digunakan, dan efisien.
2.2.3 Proses Rekayasa Piranti Lunak System Development Life Cycle (SDLC) Proses piranti lunak merupakan aktifitas yang saling terkait (koheren) untuk menspesifikasikan, merancang, implementasi dan pengujian sistem piranti lunak. Sedangkan SDLC adalah fase pendekatan untuk analisa dan disain untuk suatu sistem yang dikembangkan melalui daur tertentu dari analisis dan aktifitas user (Kenneth E. Kendall, Julie E. Kendall). Model Waterfall merupakan salah satu model dari model-model yang terdapat pada penerapan System Development Life Cycle (SDLC). Dalam rekayasa piranti lunak terdapat suatu pendekatan yang disebut sebagai waterfall. Waterfall disebut juga sebagai classic life cycle atau linear sequential model. Model ini memberikan sebuah pendekatan untuk pembangunan perangkat lunak yang sistematis dan berangkaian. Model waterfall pertama kali diajukan oleh Winston Royce (Sommerville, 1989). Aktifitas-aktifitas atau tahapan-tahapan dalam waterfall adalah sebagai berikut
1.
Analisis dan definisi kebutuhan Tugas, batasan dan tujuan dari sistem ditentukan dari konsultasi dengan pengguna sistem.
Setelah diperoleh kesepakatan, ketetapan tersebut di definisikan dalam suatu bentuk yang dapat dimengerti oleh pengguna dan staf pengembangan perangkat lunak.
2.
Perancangan sistem dan perangkat lunak Berdasarkan definisi kebutuhan yang telah ditetapkan, kebutuhan tersebut dibagi secara
spesifik menjadi kebutuhan sistem perangkat keras atau perangkat lunak. Proses ini disebut sebagai perancangan sistem. Perancangan perangkat lunak adalah proses representasi kebutuhan
7
dari setiap sistem perangkat lunak dalam suatu bentuk yang siap untuk diubah ke program komputer.
3.
Implementasi dan unit testing Pada tahap ini, perancangan perangkat lunak diwujudkan sebagai satu set program yang
ditulis dengan bahasa pemrograman. Unit testing meliputi pemeriksaan pada setiap unit program untuk memenuhi spesifikasi tersebut.
4.
Tes sistem Unit dari setiap program disatukan dan dites sebagai sebuah sistem menyeluruh untuk
memastikan bahwa syarat dari perangkat lunak telah dipenuhi. Setelah pengujian, sistem perangkat lunak diserahkan kepada pelanggan.
5.
Operasi dan perawatan Secara umum, ini merupakan tahap yang paling lama. Sistem di-install dan digunakan.
Proses perawatan meliputi perbaikan dari kesalahan yang tidak ditemukan pada tahap-tahap sebelumnya, perbaikan pengimplementasian unit sistem dan meningkatkan kemampuan sistem dari persyaratan baru yang diterima.
Rekayasa sistem Analisis Disain Pengkodean Pengujian Pemeliharan
Gambar 2.1 Pendekatan model Waterfall
8
2.3
UML (Unified Modelling Language) Unified Modeling Language (UML) adalah bahasa spesifikasi standar untuk
mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. UML tidak berdasarkan pada bahasa pemrograman tertentu. Standar spesifikasi UML dijadikan standar defacto oleh OMG (Object Management Group) pada tahun 1997. UML yang berorientasikan object mempunyai beberapa notasi standar. Spesifikasi ini menjadi populer dan standar karena sebelum adanya UML, telah ada berbagai macam spesifikasi yang berbeda. Hal ini menyulitkan komunikasi antar pengembang perangkat lunak. Untuk itu beberapa pengembang spesifikasi yang sangat berpengaruh berkumpul untuk membuat standar baru. UML dirintis oleh Grady Booch, James Rumbaugh pada tahun 1994 dan kemudian Ivar Jacobson. UML menggunakan notasi grafis untuk menyatakan suatu desain. Pemodelan UML berarti menggambarkan yang ada dalam dunia nyata ke dalam bentuk yang dapat dipahami dengan menggunakan notasi standar UML. Pemodelan dengan UML terdiri dari 13 tipe diagram yang berbeda untuk memodelkan sistem perangkat lunak. Masing-masing diagram UML di desain untuk menunjukkan satu sisi dari bermacam-macam sudut pandang (perspektif) dan terdiri dari tingkat abstraksi yang berbeda
2.3.1 Pemodelan Sistem dengan UML Saat ini piranti lunak semakin luas dan besar lingkupnya, sehingga tidak bisa lagi dibuat asal-asalan. Piranti lunak saat ini seharusnya dirancang dengan memperhatikan hal-hal seperti scalability, security, dan eksekusi yang robust walaupun dalam kondisi yang sulit. Selain itu arsitekturnya harus didefinisikan dengan jelas, agar bug mudah ditemukan dan diperbaiki, bahkan oleh orang lain selain programmer aslinya. Keuntungan lain dari perencanaan arsitektur yang matang adalah dimungkinkannya penggunaan kembali modul atau komponen untuk aplikasi piranti lunak lain yang membutuhkan fungsionalitas yang sama. Pemodelan (modeling) adalah proses merancang piranti lunak sebelum melakukan pengkodean (coding). Model piranti lunak dapat dianalogikan seperti pembuatan blueprint pada pembangunan gedung. Membuat model dari sebuah sistem yang kompleks sangatlah penting karena kita tidak dapat memahami sistem semacam itu secara menyeluruh. Semakin komplek sebuah sistem,
9
semakin penting pula penggunaan teknik pemodelan yang baik. Dengan menggunakan model, diharapkan pengembangan piranti lunak dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat, termasuk factor-faktor seperti scalability, robustness, security, dan sebagainya. Kesuksesan suatu pemodelan piranti lunak ditentukan oleh tiga unsur, yang kemudian terkenal dengan sebutan segitiga sukses (the triangle for success). Ketiga unsur tersebut adalah metode pemodelan (notation), proses (process) dan tool yang digunakan. Memahami notasi pemodelan tanpa mengetahui cara pemakaian yang sebenarnya (proses) akan membuat proyek gagal. Dan pemahaman terhadap metode pemodelan dan proses disempurnakan dengan penggunaan tool yang tepat, menurut Dharwiyanti (2003)
Gambar 2.2 Tiga Unsur Segitiga Sukses (Dharwiyanti, 2003)
UML didefinisikan sebagai bahasa untuk menggambarkan ide dalam notasi dan semantik yang lebih mudah dipahami oleh siapapun (visualisasi), memberikan spesifikasi dari semua keputusan penting analisa, perancangan, dan penerapan yang harus diambil dalam pengembangan dan deployment sistem perangkat lunak, merancang, membuat model, dan mendokumentasikan aspek-aspek dari sebuah sistem. UML lebih mengedepankan penggunaan diagram untuk menggambarkan aspek dari sistem yang sedang dimodelkan. Tujuan dari pemodelan sistem ini adalah memodelkan proses bisnis yang terjadi pada rancangan sistem yang dibuat dan mendokumentasikan sistem perangkat lunak yang akan dibuat, sehingga akan memudahkan dalam mengembangkan sebuah rancangan sistem.
10
Ada 4 macam hubungan didalam penggunaan UML, yaitu; dependency, association, generalization, dan realization.(Dharwiyanti, 2003). 1.
Dependency, hubungan semantik antara dua benda / things yang mana sebuah benda berubah mengakibatkan benda satunya akan berubah pula. Umumnya sebuah dependency digambarkan sebuah panah dengan garis terputus-putus.
Gambar 2.3 Dependency
2.
Association, hubungan antar benda struktural yang terhubung diantara obyek. Kesatuan obyek yang terhubung merupakan hubungan khusus, yang menggambarkan sebuah hubungan struktural diantara seluruh atau sebagian. Umumnya assosiation digambarkan dengan sebuah garis yang dilengkapi dengan sebuah label, nama, dan status hubungannya.
Gambar 2.4 Association
3.
Generalization, menggambarkan hubungan khusus dalam obyek anak (child) yang menggantikan obyek induk (parent). Dalam hal ini, obyek anak memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada obyek induk. Digambarkan dengan garis panah.
Gambar 2.5 Generalization
11
4.
Realization, hubungan semantik antara pengelompokkan yang menjamin adanya ikatan diantaranya. Hubungan ini dapat diwujudkan diantara interface dan kelas atau elements, serta antara use cases dan collaborations. Model dari sebuah hubungan realization seperti terlihat dalam gambar 2.6.
Gambar 2.6 Realizations
2.3.2 Konsep Dasar UML Abstraksi konsep dasar UML yang terdiri dari structural classification, dynamic behavior, dan model management, bisa kita pahami dengan mudah apabila kita melihat gambar 2.7. Main concepts bisa kita pandang sebagai term yang akan muncul pada saat kita membuat diagram. Dan View adalah kategori dari diagram tersebut.
Gambar 2.7 Abstraksi UML (Dharwiyanti, 2003)
12
2.3.3 Diagram UML Seperti juga tercantum pada gambar 2.7, UML mendefinisikan diagram-diagram sebagai berikut :
A.
Use Case Diagram 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. Pemodelan dengan use case dilakukan secara iterative (berulang) pada fase awal analisis. Seorang / sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem 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 fitur yang ada pada sistem. Sebuah use case dapat meng-include 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 diinclude oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat mengextend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.
13
Gambar 2.8 Contoh use case diagram (Dharwiyanti, 2003) Notasi-notasi yang terdapat pada use case model adalah sebagai berikut : 1.
Actor, merupakan user atau sistem eksternal yang berinteraksi dengan sistem yang akan dibuat. Actor menjawab pertanyaan apa dan siapa yang berinteraksi dengan sistem. “Actor instance” adalah user yang spesifik dalam sistem.
Gambar 2.9 Notasi Actor
14
2.
Use case adalah kebutuhan fungsional yang digambarkan dari sudut pandang user sebuah sistem. Use case menjawab pertanyaan bagaimana actor berinteraksi dengan sistem dan menggambarkan action yang akan dilakukan oleh sistem. Nama use case haruslah unik, yang membedakannya dengan use case yang lain.
Gambar 2.10 Notasi Use Case 3.
Name adalah textual string, sedangkan path name adalah use case yang menunjukkan use case dari paket lain.
4.
Dependensi antar use case menunjukkan keterkaitan masing – masing use case. Ada 3 macam dependensi dalam use case : a. Include, menunjukkan bahwa sebuah use case (disebut base use case) akan memanggil use case yang lain (inclusion case). Include ditunjukkan dengan panah bergaris putus dengan tulisan ‘include’.
15
Gambar 2.11 Notasi Dependensi – Include
b. Extends, dari satu use case (extension use case) ke use case yang lain (base use case) menunjukkan extension use case akan meng-extends (atau dimasukkan ke) dan menambah base use case. Extension use case bisa menambahkan behavior dari base use case. Namun, base use case harus menambahkan extension point.
Gambar 2.12 Notasi Dependensi – Extends
16
c. Generalization,
hampir
sama
dengan
extends
namun
lebih
umum.
Generalization menunjukkan bahwa sebuah use case mengerjakan sesuatu yang hampir sama dengan use case lain, namun lebih. Generalization digambarkan dengan anak panah dengan garis tidak putus-putus.
Gambar 2.13 Notasi Dependensi – Generalization B.
Class Diagram Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek
dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok, yaitu : 1. Nama (dan stereotype) 2. Atribut 3. Metoda Atribut dan metoda dapat memiliki salah satu sifat berikut : • Private, tidak dapat dipanggil dari luar class yang bersangkutan • Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya
17
• Public, dapat dipanggil oleh siapa saja
Gambar 2.14 Contoh Atribut (Dharwiyanti, 2003) Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metoda pada saat run-time. Sesuai dengan perkembangan class model, class dapat dikelompokkan menjadi package. Kita juga dapat membuat diagram yang terdiri atas package. Hubungan Antar Class 1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class. 2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”). 3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi. 4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram.
18
Gambar 2.15 Contoh class diagram (Dharwiyanti, 2003)
C.
Statechart Diagram Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke
state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima. Pada umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram). Dalam UML, state digambarkan berbentuk segiempat dengan sudut membulat dan memiliki nama sesuai kondisinya saat itu. Transisi antar state umumnya memiliki kondisi guard yang merupakan syarat terjadinya transisi yang bersangkutan, dituliskan dalam kurung siku. Action yang dilakukan sebagai akibat dari event tertentu dituliskan dengan diawali garis miring. Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan berwarna setengah.
Gambar 2.16 Contoh statechart diagram (Dharwiyanti, 2003)
19
D.
Activity Diagram Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang
dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi. Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. Sama seperti state, standar UML menggunakan segiempat dengan sudut membulat untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Activity diagram dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang bertanggung jawab untuk aktivitas tertentu.
20
Gambar 2.17 Contoh activity diagram tanpa swimlane (Dharwiyanti, 2003)
E.
Sequence Diagram Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem
(termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objekobjek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message. Untuk objekobjek yang memiliki sifat khusus, standar UML mendefinisikan ikon khusus untuk objek boundary, controller dan persistent entity.
21
Gambar 2.18 Contoh sequence diagram
2.4
Perancangan Basis Data dengan Object Oriented Menurut Thomas Connolly (2002), database adalah sekumpulan data yang saling
berhubungan yang menggambarkan data ini sendiri, dan dirancang untuk memenuhi kebutuhan informasi dalam sebuah organisasi. Dua tujuan utama dari konsep database adalah untuk meminimalkan pengulangan data dan mencapai independensi data. Pengulangan data dapat menyebabkan bertambahnya kebutuhan akan ruang penyimpanan data. Selain itu pengulangan data juga dapat menimbulkan terjadinya inkonsistensi data, yaitu apabila nilai data yang berulang tersebut tidak sama. Hal ini sangat merugikan, terutama dalam hal biaya. Independesi data adalah kemampuan untuk membuat perubahan dalam struktur datda tanpa membuat perubahan terhadap program aplikasi yang memproses data. Independensi data dapat dicapai dengan menempatkan spesifikasi data dalam tabel dan kamus yang secara fisik terpisah dari program. Sistem basis data adalah suatu sistem menyusun dan mengelola record-record menggunakan komputer untuk menyimpan atau merekam serta memelihara data operasional lengkap pada sebuah organisasi/perusahaan sehingga mampu menyediakan informasi yang optimal yang diperlukan pemakai untuk proses pengambilan keputusan.
22
2.5
Interaksi Manusia dan Komputer Sekarang ini, kebanyakan dari program yang dibuat mempunyai sebuah antarmuka yang
merupakan bagian dari aplikasi yang memungkinkan user untuk berinteraksi dengan program. Interaksi manusia dan komputer muncul pada sekitar tahun 1980. Konsep utama dari interaksi manusia dan komputer ini sebenarnya adalah bagaimana membuat sistem yang mudah dipelajari dan digunakan. Menurut Shneiderman (1998, p8), Interaksi manusia dan komputer adalah disiplin ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interkatif untuk digunakan oleh manusia, serta studi fenomena – fenomena besar yang berhubungan dengannya.
2.6
Tujuan Perancangan Antarmuka Pemakai Tujuan perancangan antarmuka pemakai adalah sebagai berikut :
a. Penentuan sasaran masyarakat pemakai dan tugas-tugasnya sangat penting. b. Faktor-faktor manusia terukur yang menjadi pusat evaluasi untuk membuat sebuah sistem antaru,ka pemakai yang user friendly. Shneiderman (1988, p15) user friendly, yaitu : 1.
Waktu belajar. berapa lama waktu yang dibutuhkan orang biasa (pemakai awam) untuk mempelajari cara relevan untuk melakukan suatu tugas atau pengoperasian sistem.
2.
Kecepatan kinerja. berapa lama waktu yang dibutuhkan oleh sistem untuk menyelesaikan suatu tugas.
3.
Tingkat kesalahan. Berapa banyak kesalahan dan kesalahan – kesalahan apa saja yang dibuat pemakai dalam menggunakan sistem.
4.
Daya ingat. Bagaimana kemampuan pemakai mempertahankan pengetahuannya setelah jangka waktu tertentu.
5.
Kepuasan subjektif. Bagaimana kesukaan pemakai terhadap berbagai aspek sistem.
23
2.6.1 Prinsip dan Pedoman Perancangan Perancangan pada dasarnya adalah proses kreatif dan tak dapat diduga. Perancangan sistem interaktif harus memadukan penegetahuan seksama dari kelayakan teknis dan rasa estetik apa yang menarik bagi pemakai.
2.7
Prinsip Perancangan Prinsip-prinsip yang berguna dalam membuat dan membandingkan alternatif desain
yaitu: A.
Prinsip 1: Kenali perbedaan Dilihat dari jenis pemakainya maka konsep dan desain perancangan dibedakan menjadi: 1. Novice (first time users) Konsep perancangan antarmuka yang akan dibuat haruslah sesederhana mungkin. Jumlah pilihan didalam sistem harus dibatasi, desain perancangannya harus mempunyai umpan balik yang informatif, serta terdapat petunjuk penggunaan secara manual dan tutorial online yang efektif. 2. Knowledgeable Intermittent users Konsep tugasnya stabil. Konsep antarmukanya luas namun sulit mengingat sintatik. Pada desain perancangan, struktur menunya dibuat rapi, konsistensi, kejelasan antarmuka yang jelas, perlindungan dari bahaya karena eksplorasi fitur. 3. Expert frequent users Pemakai jenis ini adalah pemakai yang sudah terbiasa dengan konsep tugas dan antarmuka. Pemakai jenis ini juga menginginkan pekerjaannya cepat selesai. Desain perancangannya harus banyak dibuat shorcuts, singakatan, dan sebagainya.
B.
Prinsip 2 : Gunakan delapan aturan emas perancangan antarmuka pemakai Delapan aturan emas ini adalah prinsip-prinsip dasar untuk desain antarmuka. Peraturan
ini diperoleh berdasarkan pengalaman pembuatan desain. 1. Berusaha untuk konsisten. Konsistensi yang dimaksud adalah konsisten dalam aksi-aksi dan situasi tertentu seperti konsistensi menu, warna, layout, jenis huruf dan sebagainya. 2. Memungkinkan frequent users menggunakan shorcuts.
24
Bagi user yang sudah ahli dalam menggunakan sistem, ia membutuhkan suatu jumlah interaksi yang lebih singkat. Interaksi yang singkat ini dapat diperoleh dengan shorcuts. 3. Memberikan umpan balik yang informatif. Untuk setiap aksi yang dilakukan user terhadap sistem, sistem harus memiliki umpan balik. Respon sistem terhadap user harus sopan dan jelas. 4. Merancang dialog untuk menghasilkan penutupan (keadaan akhir). Urutan-urutan aksi diatur ke dalam grup-grup dengan bagian awal, tengah dan akhir. Umpan balik pada saat akhir dari grup aksi tersebut harus dapat memuaskan pengguna sistem. 5. Memberikan pencegahan kesalahan dan penanganan kesalahan yang sederhana. Sedapat mungkin sistem dibuat agar user tidak dapat membuat kesalahan. Jika user membuat kesalahan, sistem harus dapat mendeteksinya dan memberikan instruksi sederhana dan membangun recovery. 6. Memungkinkan pembalikan aksi yang mudah. Sedapat mungkin semua aksi dapat dibalik. Fitur ini mengurangi kekhawatiran karena user tahu bahwa error dapat dikembalikan. Bagian pembalikan ini dapat berupa aksi tunggal, entri data atau suatu grup aksi yang lengkap. 7. Mendukung pusat kendali internal. User yang sudah berpengalaman menginginkan suatu perasaan bahwa mereka menguasai sistem dan sistem harus merespon semua keinginan mereka. 8. Mengurangi beban ingatan jangka pendek. Terbatasnya kemampuan manusia untuk ingatan jangka pendek membutuhkan perhatian yang cukup. Untuk mengatasi hal ini dapat dilakukan dengan mengurangi frekuensi pergerakan window dan dengan waktu pelatihan yang cukup.
C.
Prinsip 3 : Cegah kesalahan 1. Membetulkan pasangan yang bersesuaian a.
Menempatkan tanda pembuka dan penutup dalam satu aksi.
b. Mengingatkan pemakai bahwa tanda penutup belum dipasang. 2. Melengkapi urutan aksi
25
a.
Memungkinkan penggabungan aksi-aksi menjadi suatu aksi baru dengan makro atau sejenisnya.
b.
Melakukan aksi-aksi yang tergantung aksi lain secara otomatis.
3. Membetulkan perintah a.
Mengenali kekurangan perintah dan melengkapinya.
b.
Memberikan pilihan sebagai ganti mengetik.
2.8
Pedoman Perancangan
A.
Tujuan tingkat tinggi data display : 1. Konsistensi tampilan data. 2. Beban ingatan pemakai yang minimal. 3. Kompatibilitas tampilan data dengan pemasukan data. 4. Fleksibilitas kendali pemakai
B.
Tujuan tingkat tinggi data entry :
3.1 Konsistensi transaksi pemasukan data. 3.2 Aksi pemasukan yang minimal oleh pemakai. 3.3 Beban ingatan pemakai yang minimal. 3.4 Kompatibilitas pemasukan data dengan tampilan data. 3.5 Fleksibilitas kendali pemakai.
2.9
Delphi Menurut Kadir, Delphi merupakan perangkat lunak pengembangan aplikasi yang sangat
populer di lingkungan Windows. Perangkat lunak ini dapat digunakan untuk membangun sebuah aplikasi apa saja, aplikasi berbasis database (stand alone atau client/server) sampai dengan aplikasi yang berbasis internet. Untuk membangun sebuah aplikasi diperlukan komponen-komponen yang ada pada Delphi. Komponen pada Delphi memiliki dua sifat, yaitu komponen visual dan komponen nonvisual. Komponen visual adalah komponen yang terlihat pada saat aplikasi dijalankan. Contoh dari komponen visual diantaranya adalah Label, Edit, Memo, Button, dan RadioButton. Komponen nonvisual adalah komponen yang tidak terlihat oleh user pada saat aplikasi
26
dijalankan, tetapi komponen tersebut menghasilkan tampilan sesuai dengan fungsi komponen tesebut. Contoh dari komponen nonvisual ini diantaranya adalah MainMenu, PopUpMenu, OpenDialog dan Timer.
A. Kegunaan Delphi 1. Untuk membuat aplikasi windows 2. Untuk merancang aplikasi program berbasis grafis 3. Untuk membuat program berbasis jaringan (client / server) 4. Untuk merancang program .Net (berbasis internet) B. Keunggulan Delphi 1.
IDE (Integrated Development Environment) atau lingkungan pengembangan aplikasi sendiri adalah salah satu dari beberapa keunggulan Delphi, didalamnya terdapat menumenu yang memudahkan kita untuk membuat suatu proyek program.
2.
Proses Kompilasi cepat, pada saat aplikasi yang kita buat dijalankan pada Delphi, maka secara otomatis akan dibaca sebagai sebuah program, tanpa dijalankan terpisah.
3.
Mudah digunakan, source code Delphi yang merupakan turunan dari Pascal, sehingga tidak diperlukan suatu penyesuaian lagi.
4.
Bersifat multi purpose, artinya bahasa pemrograman Delphi dapat digunakan untuk mengembangkan berbagai keperluan pengembangan aplikasi.
2.10
Delphi dan OOP (Object Oriented Programming) Secara default ketika kita merancang suatu aplikasi program, mau
tidak mau dan tanpa kita sadari bahwa kita telah menerapkan OOP, walaupun secara teori kita kurang memahami OOP dalam arti yang sebenarnya. Contoh sederhananya adalah ketika kita merancang suatu form (Tform1) baru, sadar atau tidak sebenarnya form yang kita aktifkan merupakan turunan dari Tform sebagai induknya atau ketika kita mengaktifkan button pada form merupakan turunan dari Tbutton.
27
2.11
Atribut yang di gunakan dalam aplikasi simulasi alat musik piano. Ada beberapa macam atribut yang digunakan dalam memainkan alat musik piano
diantaranya :
2.11.1 Octave (oktaf) Pilihan nilai oktaf untuk nada direpresentasikan oleh angka dari 0 sampai 10; sebagai contoh, C6 memainkan nada C dalam oktaf ke-enam. Jika tidak ada nilai oktaf ke-lima dan untuk panduan nada secara default akan berbeda dalam oktaf ke-tiga.
Gambar 2.19. Oktaf 3 sampai 6. 2.11.2 Nada dan Istirahat Untuk menspesifikasikan sebuah nada atau istirahat dimulai dengan nama nada atau karakter istirahat, yaitu salah satu dari berikut: C, D, E, F, G, A, B, atau R. Penuliasan sebuah nada juga dapat di representasikan dengan angka. Ini berguna saat menggunakan algorithmic music, dimana setiap nada dapat diindikasikan dengan suatu nilai dalam angka bukan dalam huruf. Sebuah algorithmic musik dituliskan dengan nilai didalam kurung kotak, seperti [60]. Nilai oktaf telah difaktorkan kedalam nilai nada., jika tidak perlu lagi menspesifikasikan nilai oktaf ketika menggunakan algorithmic musik. Nilai anda diubah kedalam byte, sehingga nilai di atas 127 tidak disediakan.
28
Tabel 2.1 Contoh Kunci Nada Oktave
C
C#Db
D
D#Eb
E
F
F#Gb
G
G#Ab
A
A#Bb
B
0
0
1
2
3
4
5
6
7
8
9
10
11
1
12
13
14
15
16
17
18
19
20
21
22
23
2
24
25
26
27
28
29
30
31
32
33
34
35
3
36
37
38
39
40
41
42
43
44
45
46
47
4
48
49
50
51
52
53
54
55
56
57
58
59
5
60
61
62
63
64
65
66
67
68
69
70
71
6
72
73
74
75
76
77
78
79
80
81
82
83
7
84
85
86
87
88
89
90
91
92
93
94
95
8
96
97
98
99
100
101
102
103
104
105
106
107
9
108
109
110
111
112
113
114
115
116
117
118
119
10
120
121
122
123
124
125
126
127
2.11.3 Duration (durasi) Menetapkan berapa panjang sebuah not yang akan dimainkan dalam pembuatan sebuah lagu. Durasi juga dapat saling menambahkan untuk membuat nada dengan durasi yang lebih panjang.
2.11.4 Default: perempat (“q”) Diletakan setelah nilai oktaf ataupun setelah nama nada, walaupun nilai oktaf dihilangkan ataupun nama nada menggunakan angka, durasi untuk nada tersebut dapat diberikan. Durasi diindikasikan dengan satu huruf dari antara huruf dalam table 2.2. jika dursai tidak ditulisakan, default durasi adalah perempat.
29
Tabel 2.2 Durasi untuk sebuah nada Duration
Character
Whole
W
Half
H
Quarter
Q
Eighth
I
Sixteenth
S
thirty-second
T
sixty-fourth
X
one-twentyeighth
N
Durasi dapat saling menambahkan untuk membuat nada dengan durasi yang lebih panjang. Sebagai contoh, untuk memainkan nada D6 dalam tiga ketuk, MusicString yang digunakan adalah D6www.
2.11.5 Nada dimainkan secara melodi dan harmoni Seperti yang telah diulas diatas, untuk menuliskan nada yang dimainkan secara melodi, tanda (token) ditulis terpisah satu dengan yang lain dengan spasi, seperti ditunjukkan pada gambar 2.20.
Gambar 2.20. Melodi; MusicString: “C E G”
Dalam kondisi lain sebuah nada dapat dimainkan secara harmoni dengan dua atau lebih nada yang dimainkan secara melodi. Untuk menuliskan nada tersebut, gunakan karakter garisbawah, _, untuk menggabungkan nada, seperti Gambar 2.21. Paduan nada dan istirahat juga dapat dimainkan secara harmoni atau gabungan harmoni/melodi dengan menggunakan tanda plus dan karakter garis bawah sebagai penghubung.
30
2.11.6 Ties (slur) Dalam lembar Musik, sebuah slur menghubungkan dua nada dengan pola titinada (pitch) yang sama, dan mengindikasikan bahwa kedua nada tersebut dimainkan sebagai sebuah nada, dengan total durasi sama dengan jumlah dari durasi milik kedua nada yang dihubungkan (Gambar 2.21). slur juga digunakan untuk menghubungkan dua nada dengan durasi yang berbeda, seperti dua ketuk ditambah setengah ketuk (Gambar 2.22).
Gambar 2.21 slur dua nada melewati satu bar
Gambar 2.22 Slur dua nada dengan durasi yang berbeda
Gambar 2.23 Contoh slur dalam MusicString. MusicString untuk runtunan nada ini adalah: “G B G C- | C B A G” 2.11.7 Tempo Default: 120 ketuk permenit Ketika tempo telah ditetapkan, tempo akan mempengaruhi semua kejadian rangkaian musik setelah perintah tempo, dalam semua channel. Tempo umumnya yang pertama kali ditentukan dalam MusicString. Perintahnya ditulis dengan huruf “I”, diikuti dengan angka dari 0 sampai 255.
2.11.8 Objek Pada dasarnya semua benda yang ada didunia nyata dapat dianggap sebagai sebuah objek. Jikadi perhatikan lebih lanjut, ada dua karakteristik yang utama pada sebuah objek, yaitu :
31
1.
Setiap objek memiliki atribut sebagai status yang kemudian akan disebut sebagai state.
2.
Setiap objek memiliki tingkah laku yang kemudian akan disebut sebagai behaviour.
3.
Contoh sederhana adalah : objek sepada. Sepeda memiliki atribut (state); pedal, roda, jeruji, dan warna.
4.
Sepeda memiliki tingkah laku (behaviour): kecepatanmenaik, kecepatan menurun, dan perpindahan gigi sepeda.
5.
dalam pengembangan perangkat lunak berorientasi objek, objek dalam perangkat lunak akan menyimpan state-nya dalam variabel dan menyimpan informasi tingkah laku (behiviour) dalam metode-metode atau fungsi-fungsi/prosedur.
2.12
Kelas Kelas
berbeda
dengan
objek.
Class
merupakan
merupakan
prototype
yang
mendefinisikan variabel-variabel dan metode-metode secara umum. Sedangkan objek pada sisi yang lain merupakan instansiasi dari suatu kelas.
2.13
Enkapsulasi Dalam sebuah objek yang mengandung variabel-variabel dan metode-metode, dapat
ditentukan hak akses pada sebuah variabel atau method dari objek. Pembungkusab variabel dan method dalam sebuah objek dalam bagian yang terlindungi ini yang disebut dengan enkapsulasi. Jadi, enkapsulasi dapat diartikan sebagai bungkusan (wrapper) pelindung program dan data yang sedang diolah. Pembungkus ini mendefinisikan perilaku dan melindungi program dan data yang sedang diolah agar tidak diakses sembarangan oleh program lain. Karena kita dapat menentukan hak akses sebuah variabel/method dari objek, dengan demikian kita bisa menyembunyikan informasi yang tidak perlu diketahui objek lain. Manfaat dari proses enkapsulasi adalah: Modularitas Kode sumber dari sebuah objek dapat diolah secara independen dari kode sumber objek lain.
2.14
Inheritance Kelas dapat didefinisikan dengan referensi pada kelas yang lain yang telah terdefinisi.
Inheritance merupakan pewarisan atribut dan method pada sebuah kelas yang diperoleh dari
32
kelas yang telah terdefinisi tersebut. Setiap subclass akan mewarisi state (variabel-variabel) dan behaviour yang diturunkan oleh subclass-nya. Keuntungan dari inheritance adalah: Subclass menyediakan statelbehaviour yang spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer java untuk menggunakan ulang source code dari superclass yang telah ada. Programmer java dapat mendefinisikan superclass kasus yang bersifat genetik, yang tersebut abstract class, untuk mendefinisikan kelas dengan behaviour dan state secara umum. Istilah dalam inheritance yang perlu diperhatikan : •
Extend Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.
•
Superclass Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass anak.
•
Subclass Subclass adalah class anak atau turunan secara hirarki dari superclass.
•
Super Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass.
2.15
Metode Overriding Pendefinisian ulang metode yang sama pada subclass. Dalam inheritance, metode
overriding berbeda dengan
metode overloading. Kalau method overriding adalah
mendefinisikan kembali method yang sama, baik nama method maupun signature atau parameter yang diperlukan dalam subclass, kalau metode overloading adalah mendefinisikan method yang memiliki nama yang sama, tetapi dengan signature yang berbeda dalam definisi class yang sama.
2.16
Polymorphism Kata Polymorphism yang berarti satu objek dengan banyak bentuk yang berbeda, adalah
konsep sederhana dalam bahasa pemrograman berorientasi objek yang berarti kemampuan dari suatu variabel referensi objek untuk memiliki aksi berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari tipe objeknya. Kondisi yang harus dipenuhii supaya polymorphism dapat diimplementasikan adalah:
33
•
Method yang dipanggil harus melalui variabel dari basis class atau superclass
•
Method yang dipanggil harus juga menjadi method dari basis class.
•
Signature metode harus sama baik pada superclass maupun subclass.
•
Method acces attribute pada subclass tidak boleh lebih terbatas dari basis class