8
BAB II LANDASAN TEORI
2.1.
Teori Pendukung Program terkadang sulit dipisahkan dari kata software. Bahkan software
merupakan kata lain dari program. Program bukanlah sesuatu yang dipergunakan atau disentuh sebagaimana layaknya hardware, tetapi pada kenyataannya program adalah suatu pikiran. Komputer merupakan salah satu alat bantu dalam menyelesaikan persoalan. Komputer tidak begitu saja langsung dapat menyelesaikan masalah yang diberikan, akan tetapi harus merumuskan langkah – langkah penyelesaian masalah itu dalam suatu kumpulan instruksi. Komputer yang nantinya akan mengerjakan kumpulan instruksi tersebut. Sekumpulan instruksi yang merupakan penyelesaian masalah tersebut itu dinamakan program. Dan kegiatan dalam penyusunan instruksi itu dinamakan programming. Program dimasukkan kedalam komputer, komputer mengerjakan instruksi – instruksi didalam program tersebut, lalu memberikan hasil atau output yang diinginkan. Agar program dapat dilaksanakan dengan komputer, program tersebut harus ditulis dalam suatu bahasa yang dimengerti oleh komputer. Karena komputer adalah mesin maka program harus ditulis dalam bahasa khusus yang dibuat untuk berkomunikasi dengan komputer. Bahasa komputer yang digunakan dalam menulis program dinamakan bahasa pemrograman.
9
A.
Konsep Dasar Program Program adalah sederetan intruksi atau statement yang tentunya dalam bahasa
yang dimengerti oleh komputer yang bersangkutan. Bahasa pemrograman komputer berdasarkan perkembangan yaitu bahasa mesin, bahasa tingkat rendah, bahasa tingkat menengah, bahasa tingkat tinggi, dan bahasa berorientasi objek. Bahasa
pemrograman
komputer
merupakan
sarana
komunikasi
yang
menjembatani antara manusia dengan komputer. Bahasa pemrograman komputer dikelompokkan menjadi dua kelompok besar, yaitu bahasa pemrograman tingkat rendah (Low Level Language) dan bahasa pemrograman tingkat tinggi (High Level Language). Dengan bahasa pemrograman komputer, manusia dapat membuat sebuah program yang dimanfaatkan untuk membantu menyelesaikan permasalahannya. Program menurut Adi Kurniadi [1999, hal. 346] : “Program adalah sekelompok instruksi yang dijalankan oleh komputer untuk melakukan tugas-tugas tertentu”. Sebelum muncul lingkungan yang berorientasi Windows, bahasa pemrograman rata-rata berbasis teks, misalnya BASIC, Pascal, COBOL, C, Dbase dan sebagainya. Biasanya cara penulisan program semuanya diketik dari atas ke bawah. Dan sejalan dengan penulisan program, cara eksekusi programnya pun dilakukan dari atas ke bawah secara segaris. Sehingga konsep pemrograman semacam ini disebut juga dengan Linear Programming. Setelah munculnya sistem operasi dan lingkungan Windows, bahasa pemrograman
lebih
ditekankan
dalam
hal
tampilannya
(visual).
Sarana
pengembangannya pun bersifat grafis, sehingga pemakai hanya perlu menggeser
10
gambar-gambar saja dengan mouse. Oleh sebab itu, banyak bahasa pemrograman dinamai dengan “visual” di depannya. Misalnya Visual FoxPro, Visual C++, Visual Basic, dan lain sebagainnya. Selain itu, setiap bahasa pemrograman yang berbasis visual kini tidak lagi menggunakan orientasi linear (segaris) di dalam pembuatan programnya, melainkan dengan berorientasi pada objek-objek yang terpisah. Pemrograman tersebut dikenal dengan nama Object Oriented Programming (OOP). OOP memiliki konsep Modulator Programming, dimana kode-kode program letaknya tersebar di dalam modul-modul atau objek-objek yang terpisah. Visual Basic .NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak di atas sistem .NET Framework, dengan menggunakan bahasa BASIC. Dengan menggunakan alat ini, para programmer dapat membangun aplikasi Windows Forms, Aplikasi web berbasis ASP.NET, dan juga aplikasi command-line. Alat ini dapat diperoleh secara terpisah dari beberapa produk lainnya (seperti Microsoft Visual C++, Visual C#, atau Visual J#), atau juga dapat diperoleh secara terpadu dalam Microsoft Visual Studio .NET. Bahasa Visual Basic .NET sendiri menganut paradigma bahasa pemrograman berorientasi objek yang dapat dilihat sebagai evolusi dari Microsoft Visual Basic versi sebelumnya yang diimplementasikan
di
atas
.NET
Framework.
Peluncurannya
mengundang
kontroversi, mengingat banyak sekali perubahan yang dilakukan oleh Microsoft, dan versi baru ini tidak kompatibel dengan versi terdahulu. Pembuatan program tentunya tidak terlepas dari tahapan-tahapan yang harus dikerjakan secara terstruktur utnuk membantu program dalam menyelesaikan
11
programnya dengan baik. Untuk lebih jelasnya tahapan-tahapan perancangan program secara umum adalah sebagai berikut : a.
Mendefinisikan Masalah Tahapan paling awal pembuatan program adalah bagaimana menjabarkan, mengerti dan memahami masalah yang akan dicari pemecahannya. Kegiatan tersebut dinamakan mendefinisikan masalah.
b.
Membuat Diagram Alur (Flowchart) Flowchart adalah sarana atau peralatan pendukung (Tools System) yang peranannya sangat penting dalam pemograman, karena dengan flowchart dapat diketahui alur dari suatu program.
c.
Membuat Database Pada tahapan ini disesuaikan dengan kebutuhan aplikasi yang akan dibuat, tahap ini sifatnya optimal, artinya tidak semua perancangan program melewati langkah ini, langkah ini dikerjakan bila aplikasi yang dibuat memerlukan hubungan dengan database.
d.
Membuat Program Tahap ini merupakan tahap dimana pemrograman menulis program dengan salah satu bahasa pemrograman yang telah diplih. Pada perancangan program kali ini, penulis mengggunakan bahasa pemograman VB.NET Secara umum pemrograman dimulai dari memasukkan objek-objek pada form yang tersedia. Kemudian menentukan properti dan event dari objek yang dimasukkan. Selanjutnya yang dilakukan adalah membentuk metode yaitu dengan menuliskan kode-kode program pada jendela kode (Code Windows).
12
e.
Melakukan Tes Program Selelah form terbentuk maka yang harus dilakukan adalah memeriksa program aplikasi untuk mendeteksi adanya error. Jika tidak error, maka program aplikasi dapat dijalankan.
f.
Membuat Dokumentasi Program Setelah program aplikasi dapat dijalankan maka yang harus dilakukan selanjutnya adalah mengkompilasi aplikasi untuk menghasilkan file executable, yakni file yang dapat langsung dijalankan sendiri. Sementara rancangan program “mentah”- nya disimpan untuk keperluan modifikasi ataupun pengembangan di masa datang. Beberapa hal penunjang lainnya yang terdapat dalam struktur dasar
pemrograman yaitu penulisan program yang interaktif, dikatakan interaktif
jika
program tersebut dapat dipergunakan oleh pemakai secara mudah serta pemakai dapat mengerti tentang proses yang sedang dilakukan oleh program, dan juga harus disebut sebagai suatu efisiensi program. B.
Peralatan Pendukung (Tools System) Perancangan sebuah program tidak terlepas dari penggunaan peralatan
pendukung (Tools System), penggunaan peralatan pendukung dalam perancangan program bisa menambah kemudahan dalam merencanakan prosedur-prosedur yang akan dipakai pada program tersebut. Pada perancangan program kali ini penulis menggunakan beberapa peralatan pendukung, diantaranya adalah sebagai berikut :
13
1.
Model Use Case Model use case (use case model) digunakan untuk menggambarkan
requirement suatu system dengan mengidentifikasi fungsionalitas dari system yang akan dibuat.Elemen yang digunakan dalam model use case : 1. Actor Actor menggambarkan pengguna system (user), yang memberikan gambaran jelas tentang apa saja yang harus dikerjakan system. Sebuah actor bisa berupa seorang manusia, sebuah device hardware atau system informasi lainnya. Actor dinotasikan seperti gambar 2.1.
Gambar 2.1 Actor 2. Use Case Use case menggambarkan perilaku system, termasuk didalammnya interaksi antara actor dengan system tersebut. Secara grafis, use case di notasikan seperti terlihat pada gambar 2.2.
14
Gambar 2.2 Use Case Contoh kasus terdapat pada kasus Sistem Surat Pengajuan Tenaga Kerja (SPTK) pada Departemen Tenaga Kerja. Pada dasarnya use case terbagi menjadi dua jenis, yaitu : 1. Use Case konkret : use case yang dibuat berdasarkan kebutuhan actor. Pada contoh gambar 2.3 diilustrasikan contoh use case konkret, yaitu use case pengajuan karyawan yang dibuat berdasarkan kebutuhan Departemen terkait.
Gambar 2.3 Use Case Konkret 2. Use Case Abstrak : Use case yang memiliki ketergantungan dengan use case lainnya. Ketergantungan itu bisa berupa didalam (include) atau diperluas dari (extend). Suatu use case dikatakan include terhadap use case lainnya, apabila use case tersebut seluruhnya meliputi fungsionalitas dari use case lainnya, dan dikatakan extend apabila suatu use case merupakan tambahan
15
fungsionalitas dari use case yang lain. Hubungan include terlihat pada gambar 2.4, dimana use case melihat informasi Pengajuan Karyawan seluruhnya meliputi fungsionalitas dari use case laporan Karyawan setiap Departement. Sedangkan hubungan extend, terlihat pada gambar 2.5 dimana use case mencetak Surat Pengajuan Tenaga Kerja (SPTK) merupakan perluasan dari use case yang menentukan permohonan SPTK telah disetujui
Gambar 2.4 Hubungan Include
Gambar 2.5 Hubungan Extend
2.
Model Analisis Model analisis (analysis model) digunakan untuk menggambarkan realisasi
dan requirements yang dibuat dan merupakan abstraksi dari model desain. Dalam
16
model analisis elemen-elemen pemodelan yang disebut dengan kelas analisis merupakan pemetaan awal dari perilaku suatu system yang secara langsung berkembang menjadi model-model desain. Kelas-kelas analisis itu adalah : 1. Boundary Interaksi antara satu atau lebih actor dengan system dimodelkan dengan kelas boundary . Kelas boundary bias berupa user interface sebagai sarana komunikasi, antara system dengan user misalnya windows dalam GUI, antara system dengan system informasi lainnya, atau antara system dengan device. Kelas boundary dinotasikan dalam UML, seperti terlihat pada gambar 2.6
Gambar 2.6 Boundary 2. Control Control
object
digunakan
untuk
mengatur
perilaku
system
dan
menggambarkan dinamika serta mengontrol alur kerja dari suatu system. Kelas control dinotasikan dalam UML dengan notasi yang terlihat pada gambar 2.7
17
Gambar 2.7 Control 3. Entity Kelas entity (entitas) memodelkan informasi yang harus disimpan oleh sistem dan membantu menjelaskan apa yang kira-kira akan ditawarkan oleh sistem kepada user. Kelas entity dinotasikan dalam UML dengan notasi yang terlihat pada gambar 2.8.
Gambar 2.8 Entity 3.
Model Design Model desain (design model)
merupakan abstraksi dari penerapan
(implementasi) suatu system. Didalam model desain terdapat kelas desain yang merupakan suatu gambaran mengenai himpunan objek yang memiliki tanggung jawab, relationship, operasi, atribut dan semantik yang sama. 4.
Hubungan Relasi (Relationship) Relationship digunakan sebagai penghubung antar model elemen. Berikut
adalah relationship yang terdapat dalam UML 1. Dependency Dependency adalah hubungan yang menggambarkan ketergantungan antar kelas, dimana perubahan yang terjadi pada satu kelas berpengaruh pada kelas
18
lainnya. Dependency ditandai dengan garis terputus-putus. Dengan ujung panah terbuka seperti yang terlihat pada gambar 2.9
Gambar 2.9 Dependency
2. Association Association relationship memodelkan hubungan antar objek dari kelas yang berbeda. Association dapat digunakan untuk menunjukan bahwa suatu objek berkomunikasi dengan objek lainnya. Association relationship digambarkan sebagai garis lurus dengan mata panah pada satu ujungnya seperti terlihat pada gambar 2.10
Gambar 2.10 Assosiation
3. Generalization Generalization adalah hubungan antara superclass atau parent dengan subclass atau child. Dalam hal ini, child mewarisi struktur dan behavior yang terdapat dalam parent. Secara grafis generalization digambarkan berupa garis panah dengan ujung tertutup dan menunjuk pada parent seperti gambar 2.11
Gambar 2.11 Generalization
19
5.
Diagram dalam UML Diagram (Hermawan, Julius : 2004) merupakan penjelasan secara grafis
mengenai elemen-elemen dalam system. Tipe diagram yang berbeda-beda didalam UML membantu melihat system dari sudut pandang yang berbeda-beda. Berikut diagram yang digunakan dalam penulisan tugas akhir ini: 1. Use case Diagram Use case diagram menjelaskan manfaat system jika dilihat menurut pandangan orang yang berada diluar system (actor) dan menunjukan fungsionalitas suatu system atau kelas dan bagaimana system berinteraksi dengan dunia luar. Dalam tahap analisa, use case diagram digunakan untuk menggambarkan requirement suatu system dan menetapkan perilaku (behavior) system diimplementasikan ketika akan merancang suatu system 2. Activity Diagram Activity diagram memodelkan alur kerja (workflow) sebuah proses bisnis dan urutan aktivitas dalam suatu proses. Diagram ini dapat digunakan untuk menjelaskan bagaiman perilaku dalam berbagai use case berinteraksi.
20
Tabel 2.1 Elemen activity diagram Simbol
Keterangan Start Point End Point Activities
Fork (Percabangan)
Join (Penggabungan)
Decision
Swimlane
Sebuah cara untuk mengelompokkan activity berdasarkan Actor (mengelompokkan activity dalam sebuah urutan yang sama)
3. 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 diantaranya : 1. Atribut/properti suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). 2. 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 : 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
21
• Public, dapat dipanggil oleh siapa saja 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. 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 yang akan dijelaskan kemudian. Contoh class diagram :
22
Gambar 2.12 Contoh Class Diagram
4. Sequence Diagram Sequence diagram menjelaskan interaksi objek yang disusun dalam suatu urutan waktu. Diagram ini secara khusus berhubungan dengan use case case, dengan memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuatu didalam use case. 6.
Database Database adalah komponen yang paling penting dalam sistem informasi.
Karena merupakan dasar dalam penyediaan informasi bagi para pemakai. Penerapan databse dalam sistem informasi disebut dengan sistem basis data (database system). Sistem basis data adalah suatu sistem informasi yang mengitegerasikan kumpulan dari data yang saling berhubungan satu dengan yang lainnya dan membuatnya tersedia untuk beberapa aplikasi yang bermacam-macam di dalam suatu organisasi.
23
Dengan sistem berbasis data ini tiap-tiap orang atau bagian akan memandang database dari beberapa sudut pandang yang berbeda. Di dalam manajemen database di kenal adanya pendekatan database yaitu suatu pendekatan yang dikembangkan untuk memperbaiki kelemahan-kelemahan yang terjadi dipendekatan tradisional. Kelemahan pada pendekatan tradisional adalah adanya duplikasi serta karena tiap-tiap aplikasi membentuk file tersendiri sehingga hubungan data dimana tiap-tiap aplikasi menyelenggarakan file tersendiri sehingga hubungan data ke file di aplikasi lain tidak ada. Di dalam pendekatan database dilakukan pengurangan terhadap duplikasi data karena merupakan kumpulan dari semua data secara umum dan dapat ditingkatkan karena data dikumpulkan bersama-sama yang berarti data di file tertentu dapat dihubungkan dengan di file-file lainnya. Syarat database adalah : 1. Minimalisasi Redudansi dan Inkosistensi data. 2. Akses data mudah dan cepat. 3. Standarisasi data. 4. Multiple User 5. Integrity 6. Security 7. Data Independent Pengguna Database : 1. Database Manager adalah elemen paling penting karena menangani permintaan data para pemakai.
24
2. Database Administrator adalah orang yang mempunyai kekuasaan sebagai pusat pengontrolan terhadap seluruh sistem baik data maupun program yang mengakses data tersebut. 3. Database User, ada 4 macam pemakai database yang berbeda keperluan dengan cara aksesnya yaitu : a. Application Programmer Yaitu profesional komputer yang berinteraksi dengan
sistem lewat Data manipulation language yang digunakan
dengan bahasa kelompok rBase atau bahasa C dan lainnya. b. Causal User yaitu pemakai yang telah berpengalaman, berinteraksi dengan sistem tanpa menulis program tetapi memakai bahasa query. c. Naive User yaitu pemakai yang tidak berpengalaman, berintekasi dengan sistem tanpa menulis program, tinggal menjalankan satu menu dan memilih proses yang ada. d. Specialized User yaitu pemakai khusus yang menuliskan aplikasi data base tidak dalam kerangka pemrosesan tradisional.
2.2. Metode Pengujian Ada beberapa metode pengujian, diantaranya Black Box dan White Box. Roger S. Pressman. (2002:551), mendefisinikan metode black Box testing yaitu pengujian untuk menemukan kesalahan dalam lingkup kategori sebagai berikut: 1. Fungsi-fungsi yang salah atau hilang 2. Kesalahan interface 3. Kesalahan dalam struktur data atau akses database eksternal
25
4. Kesalahan performa 5. Kesalahan inisialisasi dan terminasi Pengujian program aplikasi aplikasi persediaan barang ini dilakukan dengan metode Black Box Testing. Metode Black Box Testing ini merupakan pengujian berdasarkan fungsi dari program. Tujuan dari metode Black Box Testing ini adalah untuk menemukan kesalahan fungsi pada program. Beberapa karakteristik dari pengujian white-box: 1. Menjamin semua jalur independen pada suatu modul digunakan paling tidak satu kali. 2. Menggunakan semua keputusan logis pada sisi true dan false. 3. Mengeksekusi semua loop pada batasan mereka dan pada batas operasional mereka. 4. Menggunakan struktur data internal untuk menjamin validitasnya. 2.3
Rekayasa Perangkat lunak Rekayasa perangkat lunak (Roger S Pressman, Ph.D. RPL : 2002) adalah
sutu disiplin yang mengintegrasikan proses, metode dan alat – alat bantu bagi perkembangan proses perangkat lunak komputer. Sejumlah model proses yang berbeda untuk rekayasa perangkat lunak telah diusulkan dan masing – masing mngungkapkan kelemahan dan kekuatan mereka, yang semua y memiliki fase generik secara umum. 2.3.1 Model Air Terjun (waterfall model) Metode waterfall disebut juga dengan classic life cycle. Metode ini membutuhkan pendekatan sistematis dan sekuensial dalam pengembangan perangkat
26
lunak, dimulai dari tingkat sistem dan kemajuan melalui analisis desain (design), pemograman (coding), uji coba (testing) dan pemeliharaan.
Gambar 2.13 Waterfall Model
1. System engineering Pertama, semua kebutuhan sistem disusun dan dialokasikan menjadi beberapa bagian kebutuhan perangkat lunak. Gambaran sistem adalah hal yang utama pada saat perangkat lunak harus dihubungkan dengan elemen lain seperti perangkat keras, manusia,dan basis data. System enginering meliputi kebutuhan sekumpulan manusia pada tingkat sitem dengan jumlah kecil dari desain dan analisis tingkat tinggi. 2. Software requirments( analisis kebutuhan perangkat lunak)
27
Proses pengumpulan kebutuhan difokuskan secara khusus pada perangkat lunak. Seorang analisis harus mengerti informasi domain perangkat lunak sebelum menyusun program. Seperti fungsi, bentuk, dan penghubung 9interface)yang dibutuhkan. Kebutuhan – kebutuhan untuk sistem dan perangkat lunak perlu didokumentasikan dan direview dengan konsumen. 3. Design ( disain) Desain perangkat lunak adalah proses yang berfokus pada tiga atribut yaitu stuktur data, arsitektur perangkat lunak dan detail prosedur. Proses disain menerjemahkan kebutuhan ke sebuah representasi perangkat lunak yang dapat dinilai berkualitas sebelum pengkodean dimulai. Disain adalah dokumentasi dan menjadi bagian konfigurasi perangkat lunak. 4. Coding(pengkodean) Disain harus diterjemahkan ke machine readable from, jika disain dibuat dalam bentuk pengkodean yang detail, maka secara mekanis dan akan menjadi lebih cepat. 5. Testing Satu kode telah dihasilkan, maka pengetesan program dimulai. Uji coba program difokuskan pada internal logic perangkat lunak. Semua statemen dipastikan telah di test baik pada fungsi eksternal. Uji coba dilakukan untuk memestikan input akan menghasilkan hasil yang diinginkan. 6. Maintenance(pemeliharaan) Perangkat lunak pasti mengalami perubahan setelah dikirim ke konsumen. Perubahan akan terjadi karena kesalahan yang di temukan karna harus
28
diadaptasi untuk mengakomodasi perubahan pada lingkungan eksternal atau karna konsumen membutuhkan peningkatan fungsi dan kinerja kerjanya. Pemeliharaan perangkat lunak selalu memakai daur hidup yang terdahulu untuk sebuah program yang ada dibandingkan yang baru.