Sebelumnya kita sudah membahsa mengenai Manajemen Proses Perangkat Lunak, kali ini kita akan membahasa materi lainnya yang masih dalam ruang lingkup pembelajara Rekayasa Perangkat Lunak
Desain perangkat lunak merupakan sebuah proses yang terjadi dalam beberapa tahap. Tahap – tahap tersebut difokuskan pada empat atribut yaitu struktur data (data structure), arsitektur perangkat lunak (software architecture), antarmuka pengguna (user interface), dan algortima (algorithm).
Secara spesifik pada tulisan ini saya hanya akan dijelaskan mengenai struktur data dan antarmuka pengguna saja. Sisanya akan saya bahas di tulisan lainnya.
Desain Struktur Data
Desain struktur data adalah aktifitas pertama yang dilakukan dalam rekayasa perangkat lunak. Proses pemilihan struktur data dapat menentukan desain yang paling efisien sesuai dengan kebutuhan.
Desain struktur data dilakukan untuk mendapatkan struktur data yang baik sehingga diperoleh program yang lebih modular (memenuhi standar) dan mengurangi kompleksitas perangkat lunak.
Desain struktur data menggunakan beberapa prinsip sebagai berikut:
- Prinsip analisis sistematika yang diaplikasikan pada fungsi dan prilaku harusnya juga diaplikasikan pada data
- Semua struktur data dan operasi yang akan dilakukan pada masing – masing struktur data harus didefinisikan
- Kamus data harus dibangun dan digunakan untuk menentukan baik data maupun desain program
- Keputusan desain data tingkat rendah harus ditunda sampai akhir proses desain
- Representasi struktur data hanya boleh diketahui oleh modul – modul yang menggunakan secara langsung data yang diisikan didalam struktur tersebut
- Pustaka struktur data dan operasi yang berguna yang dapat diaplikasikan pada struktur data tersebut harus dikembangkan
- Desain perangkat lunak dan bahasa pemrograman harus mendukung spesifikasi dan realisasi dari tipe – tipe abstrak.
Perancangan desain struktur data memerlukan tahapan atau langkah yang harus dilalui, sehingga struktur data yang dibuat tidak mengalami kekeliruan yang bisa membuat terjadinya gangguan pada hasil akhir dari sistem.
Proses pembuatan rancangan desain struktur data dailakukan setelah kasus atau sistem yang akan dibaut ditetapkan.
Dalam perancangan desain struktur data akan dilakukan pembuatan ERD atau Entity Relationship Diagram, Normalisasi, dan pembuatan PDM atau Physical Data Model yang merupakan perumpamaan dari database yang sudah siap diimplementasikan.
1. ERD (Entity Relationship Diagram)
Entity Relationship Diagram (ERD) merupakan teknik yang digunakan untuk memodelkan kebutuhan data dari suatu organisasi, biasanya dilakukan oleh System Analys dalam tahap analisis persyaratan proyek pengembangan system.
Sementara seolah-olah teknik diagram atau alat peraga memberikan dasar untuk desain database relasional yang mendasari sistem informasi yang dikembangkan.
Pengertian sempitnya adalah sebuah konsep yang mendeskripsikan hubungan antara penyimpanan (database) dan didasarkan pada persepsi dari sebuah dunia nyata yang terdiri dari sekumpulan objek yaitu disebut sebagai entity dan hubungan atau relasi antar objek- objek tersebut.
1.1. Komponen dalam ERD
ERD (Entity Relationship Diagram) mempunyai komponen-komponen yang harus digunakan di dalam membagun diagram tersebut. Komponen-komponen tersebut adalah sebagai berikut.
a) Entitas
Entitas merupakan mengenai basis data yaitu suatu obyek yang dapat dibedakan dari lainnya yang dapat diwujudkan dalam basis data.
Entitas memiliki dua macam jenis yaitu entitas kuat dan entitas lemah. Entitas kuat merupakan entitas yang tidak memiliki ketergantungan dengan entitas lainnya, sedangkan entitas lemah merupakan entitas yang kemunculannya tergantung pada keberadaaan entitas lain dalam suatu relasi.
Entitas |
Entitas ditandai dengan simbol persegi atau persegi panjang, sesuai Gambar Gambar 1.1 penumpang dan reservasi merupakan entitas. Entitas penumpang merupakan entitas kuat karena tidak memiliki ketergantungan dengan entitas lain, sedangkan entitas reservasi merupakan entitas kuat karena memiliki ketergantungan pada entitas lain yaitu entitas penumpang.
b) Atribut
Atribut memberikan informasi lebih rinci tentang jenis entitas. Atribut memiliki struktur internal berupa tipe data
Atribut |
Atribut ditandai dengan simbol elips, sesuai pada Gambar Atribut dalam entitas penumpang terdapat atribut nama_penumpang dan alamat_penumpang. Entitas reservasi juga terdapat atribut id_reservasi serta wkt_reservasi. Atribut juga memiliki beberapa jenis yaitu sebagai berikut.
Relasi adalah hubungan antara dua jenis entitas dan direpresentasikan sebagai garis lurus yang menghubungkan dua entitas. Relasi mempunyai beberapa jenis yaitu sebagai berikut.
1) Relasi satu ke satu (one to one)
Setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas begitu juga sebaliknya setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A.
Relasi One to One |
Gambar Relasi One to One merupakan contoh dari relasi satu ke satu (One to One), dimana setiap satu pasien yang akan menempati satu ruangan yang ada. Relasi ini biasanya terdapat dalam sistem informasi rumah sakit.
2) Relasi satu ke banyak (one to many)
Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas B berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas A.
Relasi One to Many |
Gambar Relasi One to Many merupakan contoh dari relasi satu ke banyak (One to Many), dimana setiap satu pegawai dapat bekerja dalam banyak project atau pekerjaan yang diberikan. Relasi ini biasanya terdapat dalam sistem informasi perusahaan.
3) Relasi banyak ke satu (many to one)
Setiap entitas pada himpunan entitas A berhubungan dengan paling banyak dengan satu entitas pada himpunan entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas A berhubungan dengan paling banyak satu entitas pada himpunan entitas B.
Relasi Many to One |
Gambar Relasi Many to One merupakan contoh dari relasi banyak ke satu (Many to One), dimana banyak mahasiswa hanya dapat diajarkan oleh satu orang dosen saja. Relasi ini biasanya terdapat dalam sistem informasi universitas.
4) Relasi banyak ke banyak (many to many)
Setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, demikian juga sebaliknya, di mana setiap entitas pada himpunan entitas B dapat berhubungan dengan banyak entitas pada himpunan entitas A.
Relasi Many to Many |
Gambar Relasi Many to Many merupakan contoh dari relasi banyak ke banyak (Many to Many), dimana banyak pegawai dapat bekerja pada banyak project atau pekerjaan yang ada. Relasi ini biasanya terdapat dalam sistem informasi perusahaan.
2. Normalisasi
Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible. Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert,update,delete dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut. Untuk membuat hasil normalisasi yang baik tentu diperlukan pembuatan beberapa bentuk normalisasi, berikut adalah bentuk dari normalisasi tersebut.
2.1. Unnormalized Form (Bentuk Tidak Normal)
Relasi-relasi yang dirancang tanpa mengindahkan batasan dalam definisi basis data dan karakteristik Model Data Relasional (Relational Database Model/RDBM) menghasilkan relasi UNF.Bentuk ini harus dihindari dalam perancangan relasi dalam basis data.
Contoh pertama menggunakan relasi sumber KRS, yang digunakan untuk mencatat data Mahasiswa dan pengambilan mata kuliah di setiap semester. Contoh bentuk UNF dapat dilihat pada tabel 1.1.
Relasi KRS dalam bentuk UNF |
2.2. Relasi Bentuk Normal Pertama (First Norm Form/1NF)
Sebuah model data dikatakan memenuhi bentuk normal pertamaapabila setiap atribut yang dimilikinya hanya memiliki satu nilai.Apabila ada atribut yang memiliki nilai lebih dari satu, atribut tersebut adalah kandidat untuk menjadi entitas tersendiri.
Relasi KRS_1 dalam bentuk 1NF |
2.2. Bentuk Normal Kedua (Second Norm Form/2NF)
Bentuk normal kedua didasari atas konsep full functional dependency (ketergantungan fungsional sepenuhnya) yang dapat didefinisikan sebagai berikut.
Jika A adalah atribut-atribut dari suatu relasi, B dikatakan full functional dependency (memiliki ketergantungan fungsional terhadap A, tetapi tidak secara tepat memiliki ketergantungan fungsional dari subset [himpunan bagian]) dari A.Relasi disebut 2NF jika memenuhi kriteria sebagai berikut:
- Jika memenuhi kriteria 1NF
- Atribut bukan kunci (non-key) haruslah memiliki ketergantungan fungsional sepenuhnya (fully functional dependency) pada kunci utama / primary key.
Contoh dari tabel yang sudah memenuhi bentuk normal kedua adalah sebagai berikut:
Relasi KRS_2 dalam bentuk 2NF |
Relasi KRS_2 pada Tabel 1.2 masih mengalami ketergantungan transitif, yaitu NIM, Kd_MK dan SKS, sehingga perlu dipecah kembali.
Relasi Mahasiswa |
Tabel 1.4 merupakan relasi Mahasiswa yang telah dipecah dari Relasi KRS_1 yang terdapat pada Tabel 1.1
2.4. Bentuk Normal Ketiga (Third Norm Form/3NF)
Sebuah model data dikatakan memenuhi bentuk normal ketiga (3NF) apabila ia memenuhi bentuk normal kedua dan tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya.
Apabila ada, pisahkan salah satu atribut tersebut menjadi entitas baru, dan atribut yang bergantung padanya menjadi atribut entitas baru tersebut.
Permasalahan dalam 3NF adalah keberadaan penentu yang tidak merupakan bagian dari Primary Key menghasilkan duplikasi rinci data pada atribut yang berfungsi sebagai Foreign Key (duplikasi berbeda dengan kerangkapan data). Berikut adalah contoh tabel yang memenuhi kriteria nomal ketiga
Relasi KRS_3 dalam bentuk 3NF |
Relasi KRS_3 pada Tabel 1.5 dan Relasi Mata_Kuliah merupakan hasil pemecahan relasi KRS_2 yang masih mengalami ketergantungan transitif pada atribut-atribut NIM, Kd_MK, dan SKS.
Relasi Mata_Kuliah |
Tabel 1.6 merupakan perpecahan antara relasi KRS_2 yang masih terdapat ketergantungan transitif, sehingga dipecah menjadi 2 tabel yaitu tabel 1.5 yang terdapat NIM, Kd_MKdan Tahun_SMT dan tabel 1.6 yang terdapat Kd_MK dan SKS.
Hasil akhir dari proses normalisasi ketiga dalam contoh ini adalah tiga buah relasi baru, yaitu Relasi KRS_3, Relasi Mahasiswa, dan Relasi Mata_Kuliah.
3. PDM (Physical Data Model)
PDM (Physical Data Model)adalah presentasi suatu implementasi database secara spesifik dari suatu Logical Data Model (LDM) yang merupakan konsumsi komputer yang mencakup detail penyimpanan data di komputer yang direpresentasikan dalam bentuk record format, record ordering dan access path dan menjelaskan bagaimana data itu disimpan di dalam media penyimpanan yang digunakan secara fisik.
Sasarannya adalah menciptakan perancangan untuk penyimpanan data yang menyediakan kinerja yang baik dan memastikan integritas, keamanan, serta kemampuan untuk dipulihkan.
PDM adalah model yang menjelaskan cara komputer memandang data, bahwa data tersimpan pada lokasi fisik sebagai file-file yang terpisah. PDM mempunyai komponen-kompen penyusun yang diperlukan untuk membangun sebuah PDM yaitu sebagai berikut.
1) Tabel
Tabel adalah kumpulan data yang disusun berdasarkan baris dan kolom. Baris dan kolom ini berfungsi untuk menunjukkan data terkait keduanya. Tabel dalam PDM diisi dengan entitas dan atribut yang nantinya akan dihubungkan dengan garis penghubung sesuai dengan relasinya antara tabel satu dan tabel yg lainnya.
2) Kolom
Kolom adalah bagian dari tabel yang strukturnya vertikal di dalam tabel, kolom nanti akan diisi dengan atribut-atribut sesuai dengan entitas yang dimilikinya.
3) Primary Key
Primary Key sangat penting dalam pembuatan PDM, Primary Key bersifat unik yang digunakan untuk membedakan satu tabel dengan tabel yang lainnya, sehingga disetiap tabel mempunyai Primary Key yang berbeda-beda.
4) Foreign Key
Foreign Key atau sering pula disebut sebagai kunci tamu atau kunci asing adalah salah satu atau gabungan sembarang atribut yang menjadi primary key dalam relasi lain yang mempunyai hubungan secara logic. Foreign Key tidak harus dimiliki dalam sebuah relasi. Jika foreign key muncul dalam sebuah relasi maka foreign key tersebut akan menunjukkan adanya kerelasian antar relasi antar tabel dalam PDM.
Desain Antarmuka Pengguna
Antarmuka pengguna merupakan perantara atau penghubung yang ditunjukan untuk pengguna, sehingga pengguna dapat mendapatkan timbal balik dengan lebih mudah.
Antarmuka pengguna berfungsi untuk menghubungkan atau penterjemah informasi antara pengguna dengan system operasi, sehingga komputer dapat digunakan, artinya antarmuka pengguna bisa diartikan sebagai mekanisme inter-relasi atau integrasi total dari perangkat keras dan lunak yang membentuk pengalaman bekomputer.
Antarmuka pengguna bisa berbentuk Graphical User Interface (GUI) atau Command Line Interfae (CLI). Tujuan lain dari desain antarmuka pengguna adalah untuk mendapatkan antarmuka yang efektif dan sesuai dengan perangkat lunak yang dibuat.
1. Prinsip – Prinsip Desain Antarmuka
Prinsip – Prinsip Desain Antarmuka yang digunakan dalam membuat sebuah desain antarmuka adalah sebagai berikut
- Kebiasaan Pengguna, yaitu desain menggunakan instilah, konsep dan kebiasaan yang sudah dikenali oleh pengguna.
- Konsisten, yaitu perancangan desain dalam melakukan perubahanya tidak melakukan perubahan yang seignifikan dalam waktu yang singkat
- Minimal Surprise, yaitu pengguna dapat menernak apa yang akan terjadi jika suatu proses dilakukan dalam sebuah perangkat lunak.
- Pemulihan, yaitu pada suatu saat pengguna pasti akan melakukan kesalahan dalam menggunakan perangkat lunak, maka dari itu antarmuka harus menyediakan fasilitas yang memungkinkan pengguna untuk memperbaiki kesalahan yang dibuat.
- Bantuan, yaitu perangkat lunak yang dibuat harus memiliki panduan mengenai bagaimana cara menggunakan perangkat lunak tersebut.
- Keberagaman, yaitu pengguan memiliki karakter yang berbeda – beda, karenanya perangkat lunak yang dibuat harus bisa fleksibel dengan pengguna yang ada.
2. Proses Desain Antarmuka Pengguna
Pembuatan desain antarmuka pengguna memerlukan beberapa proses yang disebut di gambar dibawah ini.
Proses Desain Antarmuka Pengguna |
Gambar Proses Desain Antarmuka Pengguna merupakan proses yang dilakukan ketika akan membuat desain antarmuka pengguna. Penjelasannya adalah sebagai berikut
- Analisis dan memahami prilaku pengguna, yaitu suatu proses dimana kita mencoba mencari tahu apa saja kebiasaan yang dilakukan pengguna yang berhubungan dengan perangkat lunak yang kita buat.
- Membuat prototype desain diatas kertas, yaitu membuat desain awal dari prototype yang masih dalam bentuk gambar.
- Evaluasi desain dengan pengguna. Melakukan evaluasi desain yang telah dibuat apakah sudah selesai atau belum.
- Merancang prototype. Membuat rancangan dari prototype secara nyata dan rancangan ini juga akan dilakukan evaluasi.
- Membuat prototype desain dinamis. Yaitu kita membuat program dengan fitur yang telah dirancanakan akan tetapi belum dapat dieksekusi.
- Evaluasi desain dengan pengguna. Melakukan evaluasi desain terhadap desain dinamis yang sudah dibuat.
- Mengeksekusi Prototipe. setelah di evaluasi dan sesuai dengan yang diinginkan, selanjutnya prototype yang sudah dibuat diberi coding agar dapat dieksekusi, dan
- Implementasi antarmuka yang sudah atau terakhir.
3. Interaksi Pengguna
Interaksi pengguna memiliki lima tipe yaitu direct manipulation, menu selection, form fill-in, command language dan natural language.
3.1. Direct Manipulation (Pengoperasian Secara langsung)
Interaksi langsung objek pada layar, misalnya menghapus file dengan memasukannya kedalam trash. Kelebihan dari interaksi ini adalah waktu yang diperlukan untuk mempelajari interaksi singkat, dan timbal balik diberikan pada setiap aksi sehingga kesalahan yang terjadi dapat diketahui dan diperbaiki dengan mudah, sedangkan kekurangannya adalah antarmuka tipe ini rumit dan memerlukan banyak fasilitas pada sistem komputer.
3.2. Menu Selection
Memilih perintah dari daftar yang sudah disediakan, menu yang tersedia di aplikasi word processor. Kelebihan dari interaksi ini adalah pengguna tidak perlu mengingat nama perintah yang ada, sedangkan kekurangan dari interksi ini adalah perlu banyak struktur menu jika ada banyak pilihan.
3.3. Form Fill-in
Mengisi data pada sebuah area pada form, kelebihan dari interaksi ini adalah masukan data yang sederhana, sedangkan kekurangan dari interaksi ini adalah memerlukan banyak tempat dilayar.
3.4. Comand Language
Mengetikan perintah yang sudah disediakan pada program. Kelebihan dari interaksi tipe ini adalah perintah diketikan langsung pada sistem sehingga akan mempersingkat waktu atau kerja sismtem, sedangkan kekurangnnya adalah pengguna harus memperlajari dan mengingat banyak perintah, dan tidak adanya perbaikan atas kesalahan yang dilakukan.
3.5. Natural Language
Perintah yang menggunakan bahasa sehari – hari yang digunakan oleh pengguna, kelebiahan dari interaksi tipe ini adalah pengguna sudah mengerti dengan apa yang mereka kerjakan sehingga tidak perlu mempelajarinya dengan lebih keras, sedangkan kekurangnnya adalah
4. Jenis – Jenis Antarmuka Pengguna
Antar muka pengguna yang banyak digunakan saat ini adalah jenis Graphical User Interface (GUI), selain itu juga ada jenis Command Line Interface (CLI).
4.1. Graphical User Interface (GUI)
GUI merupakan antarmuka pengguna yang sering digunakan saat ini. Antarmuka GUI ini menggunakan interaksi memalui gambar- gambar, grafik, ikon, dan yang lainnya.
Tampilan GUI |
Gambar Tampilan GUI merupakan contoh dari tampilan gambar GUI dari salah satu sistem oprasi yang popular saat ini, tampilan GUI sudah sangat user friendly karena sudah sangat nyaman digunakan oleh pengguna awam sekalipun.
4.2. Comand Line Interface (CLI)
CLI adalah tipe antarmuka yang dimana pengguna bisa berinteraksi dengan sistem informasi melalui terminal atau command. Bentuk antarmuka ini menggunakan perintah – perintah dalam bentuk teks yang sudah ditentukan.
Tampilan CLI |
Gambar Tampilan CLI merupakan contoh dari tampilan CLI, dimana tampilan masih berupa command secara langsung, sehingga bagi pengguna awam akan terasa sulit untuk menggunakan tampilan ini karena harus menghafal command yang ada