7 BAB 2 LANDASAN TEORI 2.1 Entity Menurut Whitten (2004, p295), Entity merupakan kelompok orang, tempat, objek, kejadian atau konsep tentang apa yang diperlukan untuk menangkap dan menyimpan. Dapat juga diartikan sebagai sesuatu yang digunakan untuk menyimpan data. Entity merupakan dasar dari relational data modeling. Entity sering disamakan dengan tabel, akan tetapi entity bukanlah tabel. Entity biasanya diterapkan sebagai tabel– tabel dan digambarkan sama seperti tabel – tabel pada grafik model data. Tabel – tabel biasanya diterapkan secara fisik, tetapi beberapa entity terlalu konseptual untuk menjadi tabel. Conceptual entity biasanya tidak memiliki karakteristik lebih lanjut yang berhubungan dengan conceptual entity dan digunakan sebagai alat untuk berkomunikasi dengan tim untuk mempelajari garis besar permasalahan dan dianalisis lebih lanjut. Contoh conceptual entity dapat dilihat pada gambar 2.1. Gambar 2.1 Contoh Conceptual entities 8 Apabila conceptual entities sudah diberi hubungan (relationship) antar entity maka akan terlihat seperti gambar 2.2. Gambar 2.2 Contoh Conceptual entities with relationship names Logical entity sedikit lebih rumit karena telah dijelaskan dan didokumentasikan secara rinci. Mereka ada diantara model konseptual dan model fisik yang menunjukkan rancangan basis data. Contoh logical entity dapat dilihat pada gambar 2.3. Gambar 2.3 Contoh Logical entities 9 Ketika model logikal sudah diberi atribut dengan lengkap, maka akan terlihat seperti gambar 2.4. Gambar 2.4 Contoh Logical entities with relationship names 2.2 Atribut (Attribute) Menurut Whitten (2004, p295), Atribut merupakan sifat atau karakteristik suatu entity. Atribut sering dianggap data oleh kebanyakan orang. Atribut berupa nomor / bilangan, kode, kata – kata, frasa, teks – teks besar, dan bahkan suara - suara atau gambar – gambar yang digabungkan untuk membentuk sebuah instance pada sebuah entity. Atribut bukanlah kolom (column) pada tabel, meskipun atribut mungkin akan berkembang untuk diterapkan menjadi tabel. Atribut bersifat sederhana, terpisah, jelas, dan berkarakteristik tunggal yang menggambarkan atau mengenalkan sebuah entity. 10 Atribut merupakan gen, atau DNA bagi sebuah entity. Sebuah atribut dapat dijelaskan sebagai karakteristik yang jelas bagi data yang ada. Atribut dapat diklasifikasikan menjadi : - Simple Attribute Simple attribute adalah atribut yang terdiri dari satu komponen tunggal yang keberadaannya bebas. Simple attribute tidak dapat dibagi lagi menjadi komponen yang lebih kecil. - Composite Attribute Composite attribute adalah atribut yang terdiri dari banyak komponen dengan keadaan bebas. Dalam hal ini beberapa atribut dapat dipisahkan menjadi komponen yang lebih kecil. - Single Value Attribute Single value attribute adalah atribut yang memiliki nilai tunggal untuk masing – masing kejadian dari entity. - Multi value attribute Multi value attribute adalah atribut yang memiliki banyak nilai untuk masing – masing kejadian dari entity. 11 - Derived Attribute Derived attribute adalah atribut yang menggantikan nilai yang diturunkan dari nilai sebuah atribut yang berhubungan, tidak perlu pada jenis entity yang sama. Contoh atribut dapat dilihat pada gambar 2.5. Gambar 2.5 Contoh Atribut 2.3 Keys Menurut Whitten (2004, p298), Keys berfungsi untuk menghubungkan suatu objek dengan objek yang lain. Keys diletakkan pada atribut yang telah ditentukan kedudukannya, agar dapat dihubungkan dengan atribut pada entity yang lain. 12 Beberapa jenis key yang biasa digunakan : - Candidate Key Candidate key adalah himpunan yang mengidentifikasikan tiap – tiap keberadaan suatu entity. - Composite Key Composite key adalah sebuah candidate key yang terdiri dari dua atau lebih atribut. - Primary Key Primary key adalah candidate key yang dipilih secara unik untuk mengidentifikasikan tiap – tiap keberadaan suatu tipe entity. - Foreign Key Foreign key adalah himpunan atribut dalam suatu relasi yang cocok dengan beberapa candidate key dari beberapa relasi. - Alternate Key Alternate key adalah candidate key yang tidak dipilih menjadi primary key. 13 2.4 Relasi (Relationship) Menurut Whitten (2004, p298), Relasi adalah asosiasi atau hubungan alami antara satu entity atau lebih. Relasi merupakan hubungan logis antara entity – entity. Relasi bersifat dua arah, merupakan hubungan timbal balik antar entity yang dihubungkan dengan relasi tersebut. Relasi menampilkan hubungan dari satu entity ke entity lain, atau menghubungkan entity dengan dirinya sendiri. Ada dua jenis relasi, yaitu relasi yang mengidentifikasi (identifying relationship) dan relasi yang tidak mengidentifikasi (nonidentifying relationship). ‐ Relasi yang mengidentifikasi (Identifying) terjadi apabila primary key pada entity induk berpindah ke posisi primary key dari entity anak dan oleh karena itu instance anak harus diidentifikasi. ‐ Relasi yang tidak mengidentifikasi (Nonidentifying) terjadi apabila primary key pada entity induk berpindah ke posisi non-key dimana entity anak tidak perlu diidentifikasi tetapi harus menjelaskan fakta tentang entity anak. Setiap relasi memiliki simbol cardinality dan nullability. Cardinality menjelaskan berapa banyak instance yang dapat dihubungkan untuk setiap instamce pada entity induk. Satu entity induk dapat dihubungkan dengan entity – entity anak dengan cardinality sebagai berikut : ‐ Nol atau satu ‐ Satu dan hanya satu 14 ‐ Nol, satu, atau banyak ‐ Satu atau banyak ‐ Spesifik (angka) ‐ Interval (angka) – (angka) ‐ Apapun yang disebut tentang hubungan lebih dari satu Derajat yang biasanya digunakan pada suatu relationship adalah binary relationship, yang terdiri atas : 1. One – to – One (1 : 1) Relationship Setiap relationship menggambarkan hubungan antara sebuah entity occurrence pada entity yang satu dengan sebuah entity occurrence pada entity lainnya yang ikut serta dalam relationship tersebut. Contoh one – to – one relationship dapat dilihat pada gambar 2.6. Gambar 2.6 Contoh One – to – One Relationship 15 2. One – to – Many (1 : *) Relationship Setiap relationship menggambarkan hubungan antara sebuah entity occurrence pada entity yang satu dengan satu atau lebih entity occurrence pada entity lainnya yang ikut serta dalam relationship tersebut. Contoh one – to – many relationship dapat dilihat pada gambar 2.7. Gambar 2.7 Contoh One – to – Many Relationship 3. Many – to – Many (* : *) Relationship Setiap relationship menggambarkan hubungan antara satu atau lebih entity occurrence pada entity yang satu dengan satu atau lebih entity occurrence pada entity lainnya yang ikut serta dalam relationship tersebut. Contoh many – to – many relationship dapat dilihat pada gambar 2.8. Gambar 2.8 Contoh Many – to – Many Relationship 16 Contoh relationship terlihat dari gambar 2.9 di bawah ini : Gambar 2.9 Contoh Relationship Entity Relationship Diagram (ERD) merupakan model data yang menggunakan beberapa notasi untuk menggambarkan data dalam konteks entity dan hubungan yang dideskripsikan oleh data tersebut. 2.5 Data Model Menurut Elmasri (2003, p26), Data model adalah sekumpulan konsep yang bisa digunakan untuk menggambarkan struktur basis data. Kebanyakan model data mencakup kumpulan operasi dasar (basic operation) untuk mendapatkan update pada database. Database Designer dapat mendefinisikan user-defined operation. Misalnya HITUNG_NILAI dapat diletakkan pada objek MAHASISWA. Namun, operasi umum 17 seperti insert, delete, modify, atau lainnya biasanya sudah disatukan ke dalam operasi dasar pemodelan data. Kategori Model Data Banyak model data yang dapat digunakan. Model – model data tersebut dapat digolongkan menurut tipe konsep yang digunakan untuk menggambarkan struktur basis data. High – level data model (tingkat tinggi) atau model data konseptual (conceptual data models) menyediakan konsep yang mirip dengan cara yang digunakan banyak orang untuk mengamati dan memahami data, sebaliknya low – level data model (tingkat rendah) atau model data fisik (physical data model) menyediakan konsep yang menggambarkan rincian tentang bagaimana data disimpan dalam komputer. Di antara dua model data ini terdapat class representational data model, yang menggambarkan konsep yang dapat dimengerti oleh end users tetapi tetap memperhatikan bagaimana data diorganisasikan dalam komputer. Representational data model menutupi beberapa rincian penyimpanan data tetapi dapat diterapkan pada sistem komputer secara langsung. a. Model Data Konseptual (Conceptual Data Models) Menurut Simsion (2005, p273), Model Data Konseptual (Conceptual Data Models), terkadang disebut juga model domain, secara khusus digunakan untuk mengeksplorasi konsep domain dengan pemimpin proyek. Model konseptual tingkat tinggi (high – level 18 conceptual models) biasanya dibuat sebagai bagian dari prediksi kebutuhan tahap awal. Model data konseptual menggunakan konsep – konsep seperti entity, atribut, dan relasi. Suatu entity melambangkan objek atau konsep yang nyata, seperti seorang pegawai atau sebuah proyek, yang digambarkan di basis data. Suatu atribut melambangkan kepemilikan yang menggambarkan entity lebih lanjut, seperti nama atau gaji pegawai. Suatu relasi (relationship) antara dua atau lebih entity melambangkan interaksi (timbal balik) di antara entity – entity; contohnya relasi antara seorang pegawai dan sebuah proyek. Manfaat penggunaan model data konseptual dalam perancangan basis data : ‐ Memberikan gambaran yang lengkap dari struktur basis data yaitu arti, hubungan, dan batasan – batasan ‐ Alat komunikasi antar pemakai basis data, perancang (designer), dan analis Contoh model data konseptual dapat dilihat pada gambar 2.10. 19 Gambar 2.10 Contoh Conceptual Data Models b. Model Data Logikal (Logical Data Models) Menurut Simsion (2005, p321), Model Data Logikal (Logical Data Model) merupakan representasi grafis dari keperluan bisnis. Model data logikal menggambarkan hal – hal penting dari sebuah organisasi dan bagaimana caranya mereka berhubungan satu dengan yang lain. Model data logikal dapat divalidasi dan diterima oleh perwakilan bisnis, dan dapat menjadi dasar perancangan basis data fisik (physical database). Model data logikal digunakan untuk mengeksplorasi konsep domain, dan relasinya pada ruang lingkup masalah. Hal ini dapat dibuat untuk lingkup satu proyek atau untuk seluruh perusahaan. Model data logikal menggambarkan tipe entity logikal, secara khas ditujukan untuk menyederhanakan tipe entity, atribut yang dimiliki entiy – entity, dan 20 relasi antara entity – entity tersebut. Contoh model data logikal dapat dilihat pada gambar 2.11. Gambar 2.11 Contoh Logical Data Models c. Model Data Fisik (Physical Data Models) Menurut Simsion (2005, p359), Model Data Fisik (Physical Data Models) digunakan untuk merancang skema internal suatu basis data, menggambarkan tabel data, kolom data dari tabel – tabel tersebut, dan hubungan antara tabel – tabel. Model data fisik menggambarkan bagaimana data disimpan di dalam komputer dengan melambangkan informasi seperti record formats, record orderings, dan access paths. Access paths merupakan struktur yang membuat pencarian suatu record 21 basis data menjadi efisien. Contoh model data fisik dapat dilihat pada gambar 2.12. Gambar 2.12 Contoh Physical Data Models Table perbandingan antara model data konseptual, model data logikal, dan model data fisik : Tabel 2.1 Tabel Perbandingan Model Data Feature Conceptual Logical Physical Entity Names ✓ ✓ 22 Entity Relationships ✓ ✓ Attributes ✓ Primary Keys Foreign Keys 2.6 ✓ ✓ ✓ ✓ ✓ Table Names ✓ Column Names ✓ Column Data Types ✓ Algoritma Konversi Model Data Konseptual Menjadi Model Data Fisik Untuk mengubah model data konseptual menjadi model data fisik dilakukan melalui langkah – langkah berikut ini: Langkah 1 : Setiap entity dalam ERD diubah menjadi tabel beserta semua atributnya. Apabila terdapat atribut gabungan (composite attribute), maka ambil atribut sederhana / spesifik dalam skema relasional. Primary key dari tabel yang terbentuk dari entity tersebut diambil dari key attribute (atribut kunci) dari entity tersebut. Langkah 2 : Untuk setiap entity lemah, buat tabel baru untuk entity lemah tersebut dengan memasukkan semua atribut yang dimiliki oleh entity lemah tersebut ke dalam tabel baru tersebut. Key attribute (atribut kunci) dari entity kuatnya 23 menjadi foreign key dalam tabel tersebut. Primary key dari tabel yang dibuat diambil dari gabungan key kuat dan key lemah. Langkah 3 : Jika terdapat relasi binary 1 : 1, primary key pada entity dependent (entity yang bergantung pada entity lain) akan menjadi foreign key pada entity independent (entity yang tidak bergantung pada entity lain). Langkah 4 : Jika terdapat relasi 1 : N, maka primary key milik entity dengan kardinalitas (cardinality) 1 akan menjadi foreign key pada entity dengan kardinalitas (cardinality) N. Langkah 5 : Jika terdapat relasi M : N antara S dan T, buat tabel baru. Primary key dari tabel ini merupakan gabungan dari primary key S dan primary key T. Atribut tabel ini adalah kedua primary key tersebut dan atribut – atribut lainnya. Langkah 6 : Untuk setiap atribut dengan banyak nilai (multivalued attribute), buat tabel baru. Primary key dari tabel baru tersebut adalah gabungan primary key dari entity pemilik. Apabila atribut dengan banyak nilai tersebut merupakan composite attribute, maka atribut tabel ini adalah komponen – komponen sederhana dari atribut tersebut. Langkah 7 : Jika terdapat relasi N – ary, buat tabel baru. Primary key dari tabel baru tersebut adalah gabungan dari primary key setiap entity yang berelasi. Sedangkan foreign key tabel baru tersebut adalah primary key dari setiap entity yang berelasi. 24 2.7 Oracle Database Management System 2.7.1. Sistem Basis Data Menurut Connolly dan Begg (2002, p7), Sistem Basis Data merupakan suatu kumpulan data yang berhubungan secara logis dan deskripsi dari data tersebut dirancang untuk memenuhi informasi yang dibutuhkan oleh suatu organisasi. 2.7.2. Database Management System (DBMS) Menurut Connolly dan Begg (2002, p16), DBMS merupakan piranti lunak yang memungkinkan user mendefinisikan, membuat, mengurus, dan mengontrol akses ke basis data. Database Management System menyediakan dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). ‐ Data Definition Language (DDL) Data Definition Language digunakan untuk mendefinisikan objek – objek pada basis data. Dengan menggunakan Data Definition Language, pengguna dapat menentukan tipe, struktur, dan batasan data yang akan disimpan ke dalam basis data. Secara umum, Data Definition Language yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek. 25 ‐ Data Manipulation Language (DML) Data Manipulation Language digunakan untuk memanipulasi dan memproses objek – objek tertentu. Manipulasi yang biasa dilakukan antara lain SELECT untuk menampilkan data, INSERT untuk menambahkan data baru, UPDATE untuk mengubah data yang sudah ada, dan DELETE untuk menghapus data. 2.7.3. Relational Database Management System (RDBMS) Menurut Whalen (1998, p6), Relational Database Management System merupakan Database Management System yang berhubungan. Ini berarti akses data secara internal dilakukan dengan cara relasional. Salah satu contoh Relational Database Management System adalah Oracle. 2.7.4. Oracle Menurut Abramson, Abbey, dan Corry (2004, p2), Oracle merupakan piranti lunak yang kaya dan penuh fitur yang digunakan untuk mengubah cara banyak perusahaan melakukan pengaturan basis data mereka. Oracle Relational Database Management System atau Oracle RDBMS terdiri dari basis data (informasinya) dan instance (perwujudan sebuah sistem). 26 Oracle RDBMS dirancang untuk memungkinkan akses secara bersama – sama pada sejumlah besar informasi yang tersimpan. Cara paling sederhana untuk mengakses data dengan Oracle adalah dengan menggunakan Structured Query Language (SQL). Menurut Gruber (2000, p20), SQL merupakan bahasa yang dipergunakan untuk mengakses data dalam basis data relasional. Bahasa ini merupakan bahasa standar yang digunakan dalam manajemen basis data relasional. Secara umum SQL terdiri dari dua bahasa, yaitu DML dan DDL. Membuat tabel baru termasuk dalam kategori bahasa definisi data (Data Definition Language / DDL). Aturan pembuatan tabel pada Oracle adalah sebagai berikut ; - Nama tabel harus dimulai dengan huruf - Panjang nama tabel antara 1 – 30 karakter - Nama tabel hanya bisa terdiri dari A – Z, a – z, 0 – 9, _, $, dan # - Nama tabel baru tidak boleh sama seperti nama objek lain yang dimiliki oleh pengguna yang sama - Nama tabel tidak boleh menggunakan kata kunci pada Oracle 27 Teori penulisan pembuatan tabel pada Oracle dengan menggunakan SQL : CREATE TABLE [schema.] nama_tabel ( nama_kolom1 tipe_data, nama_kolom2 tipe_data [ekspresi], ); Atau CREATE TABLE [schema.] nama_tabel ( nama_kolom1 tipe_data, nama_kolom2 tipe_data, [CONSTRAINT nama_kolom constraints] ); Contoh sintaks pembuatan tabel pada Oracle dengan menggunakan SQL : CREATE TABLE hire_dates ( id NUMBER(9), hire_date DATE DEFAULT SYSDATE ); 28 Selain membuat tabel baru, yang termasuk kategori bahasa definisi data (Data Definition Language) adalah menghapus tabel dengan menggunakan perintah DROP. Apabila perintah drop dijalankan maka semua data dan struktur tabel akan dihapus, semua transaksi yang menunggu akan di – commit, dan semua indeks akan dihapus. Perintah menghapus tabel menggunakan drop tidak dapat di – rollback. Format penulisan untuk menghapus tabel adalah sebagai berikut : DROP TABLE [schema.] nama_tabel ; Contoh sintaks untuk menghapus tabel pada Oracle dengan menggunakan SQL : DROP TABLE hire_dates ; Yang termasuk dalam bahasa manipulasi data (Data Manipulation Language) antara lain Insert, Update, dan Delete. Perintah insert digunakan untuk memasukkan nilai atau data pada suatu tabel. Format penulisan perintah insert adalah sebagai berikut : INSERT INTO nama_tabel [(nama_kolom [, nama_kolom … ])] VALUES (nilai[, nilai …]) ; Contoh sintaks insert pada Oracle dengan menggunakan SQL : INSERT INTO hire_dates VALUES (1, SYSDATE) ; Perintah update digunakan untuk memodifikasi baris data yang ada pada tabel. Format penulisan perintah update adalah sebagai berikut : 29 UPDATE nama_tabel SET nama_kolom = nilai [, nama_kolom = nilai, …] [WHERE kondisi] ; Contoh sintaks update pada Oracle dengan menggunakan SQL : UPDATE hire_dates SET hire_date = SYSDATE WHERE id = 1 ; Perintah delete digunakan untuk menghapus baris data yang ada pada tabel. Format penulisan perintah delete adalah sebagai berikut : DELETE [FROM] nama_tabel [WHERE kondisi] ; Contoh sintaks delete pada Oracle dengan menggunakan SQL : DELETE FROM hire_dates WHERE id = 1 ; 2.8 Rekayasa Piranti Lunak Menurut Pressman (2001, p20), rekayasa piranti lunak adalah penerapan dan pemakaian prinsip rekayasa dalam rangka mendapatkan piranti lunak ekonomis yang terpercaya dan bekerja secara efisien pada mesin komputer. 30 Menurut Fritz Bauer, rekayasa piranti lunak adalah peletakan dan penggunaan prinsip-prinsip rekayasa yang tangguh / teruji dalam upaya memperoleh piranti lunak secara ekonomis, handal dan bekerja di mesin nyata. Piranti lunak merupakan program - program komputer, prosedur dan dokumentasi yang ada pada sistem komputer. Beberapa macam diantaranya meliputi : ‐ Application software, seperti, pengolah kata, yang melibatkan interaksi aktif dari user. ‐ Firmware, piranti lunak yang dibuat ke dalam alat-alat elektronik, sehingga berintegrasi langsung dengan alat tersebut. ‐ Middleware, piranti yang mengontrol distributed system (perangkat komputer yang berinteraksi melalui jaringan). ‐ System software, seperti sistem operasi yang berintegrasi dengan piranti keras (hardware) sehingga dapat berinteraksi dengan piranti lunak. ‐ Software testing, berisi metode khusus yang untuk menguji kelayakan dari sebuah piranti lunak. Piranti lunak merupakan jembatan antara piranti keras dengan user, juga disebut sebagai ‘penerjemah’ perintah yang di - input oleh user atau piranti keras dan sebaliknya. 31 Beberapa tipe piranti lunak antara lain : ‐ System software, menyediakan infrastruktur dimana program bisa beroperasi. Contohnya mengatur dan mengontrol piranti keras sehingga piranti lunak bisa beroperasi. Contoh system software adalah sistem operasi (operating system). System software berisi device drivers, operating systems, server, utilities, windows systems. ‐ Programming software, menyediakan tools bagi programmer untuk membuat piranti lunak. Programming software berisi compilers, debuggers, interpreter, linkers, text editor. ‐ Application software, menyediakan piranti lunak bagi user. Menurut Pressman (2001, p6-9), elemen piranti lunak bersifat logis bukan bersifat fisik. Beberapa karakteristik piranti lunak antara lain: a. Piranti lunak sebenarnya direkayasa dan dikembangkan, bukan dirakit atau dibuat seperti layaknya piranti keras. Aktifitas pengembangan piranti lunak berbeda dengan pembuatan piranti keras. b. Piranti lunak tidak mudah rusak, tidak seperti piranti keras. Perbedaannya, jika rusak, piranti keras harus diperbaiki, namun pada piranti lunak, perbaikannya berupa software maintenance, misalnya debugger. 32 c. Piranti lunak saat ini dikembangkan dengan metode berorientasi objek (object oriented), sehingga lebih mudah diperbaiki dan di - maintenance. Elemen untuk pengontrolan proses pada rekayasa piranti lunak, yaitu : a. Metode Metode berupa cara-cara teknis membangun piranti lunak yang terdiri dari perancangan proyek beserta estimasinya, analisis kebutuhan sistem dan piranti lunak, perancangan struktur data, arsitektur program, prosedur algoritma, coding, pengujian dan pemrograman. b. Alat bantu Alat bantu merupakan dukungan baik secara otomatis atau semi otomatis untuk metode-metode seperti CASE (Computer Aided Software Engineering) yang mengkombinasikan piranti lunak dan piranti keras dan software engineering database untuk pengembangan piranti lunak yang sejalan dengan CADE (Computer Aided Design Engineering) untuk piranti keras. c. Prosedur Prosedur digunakan sebagai penghubung alat bantu dengan metode. Tujuan dari prosedur yaitu untuk mendapatkan piranti lunak yang efisien, berguna dan ekonomis. 33 2.9 Waterfall Model Salah satu dari lima paradigma rekayasa piranti lunak dalam pengembangan piranti lunak yang baik dan berkualitas adalah Waterfall Model. Model ini disebut juga linear sequential model. Model rekayasa ini memberikan pendekatan – pendekatan yang sistematik dan sekuensial dalam pengembangan perangkat lunak. Menurut Pressman (2001, p28-29), tahapan – tahapan dalam Waterfall Model adalah sebagai berikut : 1. Analisa Kebutuhan Piranti Lunak (Software Requirement Analysis) Hasil dari pengumpulan kebutuhan – kebutuhan piranti lunak yang telah dilakukan akan difokuskan secara khusus pada piranti lunak. Untuk membangun suatu piranti lunak yang sesuai dengan permintaan pengguna, perancang aplikasi (software engineer) harus mengetahui fungsi – fungsi yang dibutuhkan antarmuka pengguna (user interface) dan kebutuhan piranti lunak untuk didokumentasikan dan dibahas bersama dengan konsumen (customer). 2. Perancangan (Design) Perancangan piranti lunak meliputi beberapa proses yang difokuskan pada empat atribut program, yaitu perancangan struktur data, perancangan arsitektur piranti lunak, perancangan perincian prosedur, dan perancangan karakteristik dari antarmuka. 34 3. Pengkodean (Coding) Setelah dilakukan perancangan, maka selanjutnya dilakukan tahap pengkodean. Pengkodean dilakukan untuk menerjemahkan perancangan yang telah dibuat ke dalam bentuk yang dapat dibaca oleh mesin, yaitu dengan membuat program. 4. Pengujian (Testing) Setelah program selesai dibuat, maka akan dilakukan pengujian. Tahap pengujian perlu dilakukan agar keluaran yang dihasilkan oleh program sesuai dengan yang diharapkan. Pengujian difokuskan pada : a. Logical internal of the software Pengetesan terhadap statement – statement. b. Functional external Pengetesan dilakukan untuk menemukan error pada program. Pada pengetesan ini, masukan (input) yang diberikan harus mendapatkan keluaran (output) yang sesuai dengan yang diharapkan. Pengujian dilakukan secara menyeluruh sampai semua perintah dan fungsi telah diuji. 35 5. Pemeliharaan (Maintenance) Karena kebutuhan pengguna selalu meningkat, maka piranti lunak yang telah selesai dibuat perlu dipelihara agar dapat mengantisipasi kebutuhan pemakai terhadap fungsi – fungsi baru yang berasal dari luar atau perubahan –perubahan pada sistem yang dapat timbul karena munculnya sistem operasi baru, piranti keras baru, dan sebagainya. Pemeliharaan piranti lunak menawarkan setiap langkah daur hidup yang terdahulu, sehingga untuk melakukan perbaikan tidak perlu merancang piranti lunak yang baru. Gambar model waterfall dapat dilihat pada gambar 2.13. Analysis Design Coding Testing Maintenance Gambar 2.13 Waterfall Model 36 2.10 Object Oriented Design Menurut Allen dan Terry (2005), Object Oriented Design merupakan metodologi campuran yang mengubah sistem menjadi objek, menggabungkan karakteristik data dalam bentuk atribut dan karakteristik proses dalam bentuk metode. Object Oriented Design menggabungkan elemen – elemen teknik perancangan orientasi data dan orientasi fungsi, dan sistem model sebagai kumpulan objek – objek yang bekerja bersama – sama. Rancangan sistem objek, termasuk di dalamnya fungsi dan kebutuhan data, kemudian dilanjutkan dengan perancangan piranti lunak. Kelebihan dari Object Oriented Design antara lain, membangun objek model dengan tepat, penggunaan kembali dan pertukaran objek menjadi lebih mudah. 2.11 UML (Unified Modeling Language) Model data yang akan digunakan untuk pembuatan tools adalah model data UML. Menurut Ponniah (2007, p61), United Modeling Language adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. Unified Modeling Languange tidak berdasarkan pada bahasa pemrograman tertentu. Standar spesifikasi Unified Modeling Languange dijadikan standar defacto oleh OMG (Object Management Group) pada tahun 1997. Unified Modeling Languange yang berorientasikan object mempunyai beberapa notasi standar. 37 Unified Modeling Languange menggabungkan teknik terbaik dari pemodelan data (entity relationship diagram / ERD), pemodelan bisnis (work flows), pemodelan objek, dan pemodelan komponen. Unified Modeling Languange bertujuan untuk menjadi standar bahasa pemodelan (Modeling) yang dapat membentuk sistem yang sama dan yang terbagi – bagi (shared). Spesifikasi ini menjadi populer dan standar karena sebelum adanya Unified Modeling Languange, telah ada berbagai macam spesifikasi yang berbeda. Hal ini menyulitkan komunikasi antar pengembang piranti lunak. Untuk itu beberapa pengembang spesifikasi yang sangat berpengaruh berkumpul untuk membuat standar baru. Dengan menggunakan Unified Modeling Language, model dapat dibuat untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Karena Unified Modeling Languange menggunakan class dan operation dalam konsep dasarnya, maka Unified Modeling Languange lebih cocok untuk penulisan piranti lunak dalam bahasa – bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, Unified Modeling Languange tetap dapat digunakan untuk pemodelan aplikasi procedural dalam VB atau C. 38 Simbol – simbol Unified Modeling Language yang digunakan : 1. B 2. A Sebuah class bernama B B Garis menghubungkan class A dan B secara asosiatif 3. Interval nomor yang diperkenankan untuk objek – 1 4. 0..* A objek asosiasi. (1 = tepat satu; 0..* = nol atau lebih) B Aggregation : Class B merupakan bagian dari A C Inheritance : Class C merupakan class turunan dari B Berikut beberapa diagram dalam Unified Modeling Languange dan penjelasannya: ‐ Use case diagram : use case diagram digunakan untuk mengidentifikasi elemen primer dan proses yang membentuk sistem. ‐ Class diagram : class diagram digunakan untuk menyempurnakan use case diagram dan menjelaskan rancangan sistem secara detail. ‐ Object diagram : object diagram merupakan spesialisasi dari class diagram. Sebuah objek adalah instance dari sebuah class. 39 ‐ State diagram : state diagram menggambarkan state dari objek dalam sistem. Objek dalam sistem mengubah state sebagai respon dari event. Sebagai tambahan, sebuah state diagram juga menggambarkan transisi dari state object mulai dari awal sampai akhir sebagai respon terhadap event yang berdampak pada sistem. ‐ Activity diagram : activity diagram menggambarkan aliran proses dalam sistem. ‐ Sequence diagram : sequence diagram menggambarkan interaksi antar objek dalam sistem berdasarkan waktu. ‐ Collaboration diagram : collaboration diagram mengelompokkan interaksi antar objek berbeda. ‐ Component diagram : component diagram menggambarkan gabungan high – level yang membangun sistem. ‐ Deployment diagram : deployment diagram menggambarkan konfigurasi elemen runtime dari aplikasi. 2.11.1 Use Case Diagram Menurut Allen dan Terry (2005), Use Case Diagram adalah diagram yang menggambarkan fungsionalitas yang disediakan sistem yang disebut dengan aktor (actor), fungsi (digambarkan sebagai use case), dan ketergantungan antara use case tersebut. 40 Use case diagram menunjukkan posisi atau konteks dari suatu use case diantara use case lainnya. Use case memperlihatkan diagram dari sudut pandang perilaku sistem. Relasi dalam use case diagram harus antara aktor dengan sistem, namun ada relasi yang diperbolehkan antara aktor dengan aktor yang digambarkan dengan notasi garis lurus dengan ujung segitiga kosong dari aktor khusus menuju aktor umum. Contoh use case diagram dapat dilihat pada gambar 2.14. Gambar 2.14 Contoh Use Case diagram Terdapat tiga relasi dalam use case diagram yang didukung oleh standar Unified Modeling Language, yaitu : ‐ Include Relasi ini berguna untuk memadukan perilaku dari use case lain yang disebutkan ke dalam use case. Notasinya dilambangkan dengan tanda panah dari including menuju included use case disertai label “<<include>>”. 41 Notasi ini mirip seperti sebuah perluasan makro dimana included use case ditempatkan didalam use case behavior dasar. ‐ Extend Relasi ini mengindikasikan bahwa behavior dari extension use case boleh dimasukkan dalam extended use case dengan syarat tertentu. Notasinya dilambangkan tanda panah dari extension use case menuju extended use case, dengan label “<<extend>>” ‐ Generalization Dalam relasi antara use case, terdapat relasi generalisasi / spesialisasi. Notasinya dilambangkan dengan sebuah garis lurus berujung segitiga kosong dari spesialisasi ke generalisasi use case. 2.11.2 Class diagram Menurut Whitten et al. (2004, p441), Dalam Unified Modeling Language, class diagram adalah tipe dari static structure diagram yang menggambarkan struktur dari sebuah sistem dengan menunjukkan kelas – kelas sistem, atributnya, dan relasi antar kelas. Class diagram bisa berisi tampilan dari suatu package dan bisa berisi simbol untuk nested package. Class diagram berisi elemen tingkah laku tertentu, seperti operasi, tetapi dinamikanya digambarkan pada diagram lain, 42 seperti statechart diagram dan collaboration diagram. Contoh class diagram dapat dilihat pada gambar 2.15. Gambar 2.15 Class diagram Terdapat beberapa relasi dalam class diagram : ‐ Link Menurut Allen dan Terry (2005), Link adalah relasi dasar antara objek. Digambarkan dengan sebuah garis yang terhubung antara dua objek atau lebih. Dapat digunakan pada class diagram atau object diagram. Link adalah instance dari asosiasi (association). 43 ‐ Association Association mewakili kumpulan link. Binary association (dengan dua ujung) umumnya digambarkan sebagai sebuah garis, dengan masing – masing ujung terhubung pada class box. Association tingkat tinggi dapat digambarkan lebih dari dua ujung. Pada beberapa kasus, ujung – ujungnya terhubung dengan permata pusat. Contoh association dapat dilihat pada gambar 2.16. Gambar 2.16 Contoh Association ‐ Aggregation Menurut Allen dan Terry (2005), Aggregation adalah varian dari “mempunyai” asosiasi, aggregation lebih spesifik dibandingkan asosiasi. Aggregation adalah asosiasi yang mewakili relasi bagian – keseluruhan. Sebagai bagian dari asosiasi, aggregation dapat dinamai dan mempunyai bentuk yang sama dengan asosiasi. Walaupun begitu, aggregation tidak boleh melibatkan lebih dari dua kelas. Contoh aggregation dapat dilihat pada gambar 2.17. 44 Gambar 2.17 Contoh Aggregation ‐ Composition Menurut Allen dan Terry (2005), Composition adalah varian yang lebih kuat dari “mempunyai” asosiasi; composition lebih spesifik dibandingkan aggregation. Composition biasanya mempunyai ketergantungan daur hidup (life cycle) yang kuat antara instance dari container class dan instance dari contained class : jika container dihancurkan, normalnya setiap instance yang dimilikinya dihancurkan pula. Perhatikan bahwa sebuah bagian dapat (jika diperbolehkan) dibuang dari composite sebelum composite dihapus, dan kemudian tidak dihapus sebagai bagian dari composite. Contoh composite dapat dilihat pada gambar 2.18. Gambar 2.18 Contoh Composition 45 ‐ Generalization Relasi generalization mengindikasikan bahwa satu dari dua class yang saling berhubungan (subtype) adalah bentuk spesialisasi dari class lainnya (supertype) dan supertype adalah generalization dari subtype juga. Generalization pada class diagram mirip dengan pada use case diagram, begitu pula dengan notasinya. 2.11.3 Activity diagram Menurut Whitten et al (2004, p442), Activity diagram adalah sebuah diagram yang berisi aktifitas dan aksi untuk menggambarkan alur kerja. Berikut beberapa simbol yang digunakan dalam activity diagram dan fungsinya. ‐ Initial state, menggambarkan awal dari sebuah proses. ‐ State, segi empat bersudut tumpul menggambarkan tugas yang perlu dilakukan. ‐ Transition, panah menggambarkan sasaran yang mengawali aktivitas. ‐ Transition (fork), merupakan bar sinkronisasi dimana kegiatan dapat dilakukan secara paralel. 46 ‐ Transition (join), merupakan bar sinkronisasi dimana dua aktivitas mempunyai tujuan yang sama dan tujuan dari keduanya digabungkan menjadi satu. ‐ Decision, menggambarkan sebuah kegiatan keputusan. ‐ Final state, menggambarkan akhir dari sebuah proses. Sebuah activity diagram bisa menunjukkan aliran nilai objek, seperti halnya dengan aliran kontrol. Aliran state object (object flow state) menggambarkan objek yang merupakan input dan output dari suatu activity. Untuk nilai output, anak panah putus – putus digambarkan dari activity ke object flow state. Untuk nilai input, garis putus – putus digambarkan dari object flow state ke activity. Jika activity punya lebih dari satu nilai output atau penerus dari control flow, maka anak panah digambarkan dari simbol fork. Sama halnya dengan multiple input yang digambarkan menuju simbol join. Contoh activity diagram dapat dilihat pada gambar 2.19. Gambar 2.19 Activity diagram 47 2.11.4 Sequence Diagram Menurut Allen dan Terry (2005), Sequence Diagram adalah salah satu diagram interaksi dalam Unified Modeling Language, yang menunjukkan bagaimana proses beroperasi satu sama lain dan bagaimana urutannya. Sequence diagram digambarkan sebagai interaksi dari dua grafik dimensional. Dimensi vertikal merupakan sumbu waktu, yang berjalan makin ke bawah. Dimensi horisontal menggambarkan peranan classifier yang menampilkan objek individual di dalam kolaborasi. Tiap peranan classifier digambarkan dengan kolom vertikal sebagai lifeline. Selama objek ada, peranan dari objek tersebut digambarkan dengan garis putus – putus. Selama aktivasi prosedur pada sebuah objek masih aktif, lifeline digambarkan dengan garis ganda (double line). Contoh sequence diagram dapat dilihat pada gambar 2.20. 48 Gambar 2.20 Sequence diagram Di bawah ini beberapa simbol yang sering digunakan saat membuat sequence diagram : ‐ Object lifeline Object lifeline menggambarkan waktu life cycle suatu objek selama skenario sedang dibuat. 49 ‐ Activation Dimana proses sedang dilakukan oleh objek / class untuk memenuhi pesan / perintah. ‐ Message Message merupakan sebuah anak panah yang mengindikasikan pesan diantara objek. Dan objek dapat mengirimkan pesan ke dirinya sendiri. 2.11.5 State diagram State diagram menggambarkan transisi dan perubahan keadaan dari satu state ke state yang lain. State diagram juga dapat menggambarkan kondisi tampilan sebagai suatu state. Kondisi tampilan akan berubah sesuai aksi yang diberikan. Contoh state diagram dapat dilihat pada gambar 2.21. 50 Gambar 2.21 State diagram