7
BAB II LANDASAN TEORI
Dalam melakukan analisis terhadap permasalahan dan perancangan aplikasi DSS, penulis menggunakan kajian teori yang digunakan sebagai dasar pemikiran dan alat bantu dalam penyelesaian masalah yang ada, oleh karena itu pada bab ini akan dijelaskan teori-teori yang mendukung penulisan tugas ini. 2.1
Perangkat Lunak
2.1.1 Definisi Perangkat lunak Perangkat lunak adalah objek tertentu yang dapat di jalankan seperti sumber, kode objek, atau sebuah program yang lengkap. Perangkat lunak memiliki banyak bagian yang meliputi manual, referensi, tutorial, intruksi instalasi, data sampel, pelayanan pendidikan, pelayanan pendukung teknis dan sebagainya. Semua yang di hasilkan oleh projek perangkat lunak adalah produk kerja yang di sebut dengan work product [Ali Bahrami, 2006 : 5]. 2.1.2 Rekayasa Perangkat Lunak Pendefinisian “Rekayasa Perangkat Lunak” telah dilakukan oleh banyak pihak, antara lain: a.
Menurut Ian Sommarville:
8
Rekayasa perangkat lunak berkaitan dengan teori, metode, dan kakas yang diperlukan dalam mengembangkan perangkat lunak untuk komputer. b.
Menurut Fritz Bauer: Rekayasa perangkat lunak adalah penetapan dan penggunaan prinsip-prinsip
rekayasa yang tangguh / teruji dalam upaya memperoleh perangkat lunak secara ekonomis, handal dan bekerja efisien di mesin nyata. [Bambang Hariyanto, 2004 : 8]. 2.1.3 Pengenalan Perangkat Lunak Saat ini perangkat lunak memiliki dua peran. Di satu sisi berfungsi sebagai sebuah produk, dan di sisi lain sebagai kendaraan yang mengantarkan sebuah produk. Sebagai produk, perangkat lunak mengantarkan potensi perhitungan yang dibangun oleh perangkat lunak komputer. Sebagai kendaraan yang dipakai untuk mengantarkan produk, perangkat lunak berlaku sebagai dasar untuk kontrol komputer, komunikasi informasi, dan penciptaan serta kontrol dari program-program lain. Perangkat lunak mengantarkan informasi yang dipercaya sebagai produk yang paling penting. Perangkat lunak mengubah data personal sehingga data dapat menjadi lebih berguna dalam konteks lokal (Pressman, 2002:2). 2.1.4 Karakteristik Perangkat Lunak Perangkat lunak lebih merupakan elemen logika dan bukan merupakan elemen sistem fisik (Pressman, 2002:10). Dengan demikian, perangkat lunak memiliki ciri yang berbeda dari perangkat keras:
9
a. Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik. b. Perangkat lunak tidak pernah usang. c. Sebagian besar perangkat lunak dibuat secara custom built, serta tidak dapat dirakit dari komponen yang sudah ada. 2.1.5 Aplikasi Perangkat Lunak Perangkat lunak dapat diaplikasikan ke berbagai situasi di mana serangkaian langkah prosedural telah didefinisikan. Cukup sulit untuk menentukan kategori umum untuk aplikasi perangkat lunak. Ketika kompleksitas perangkat lunak mulai muncul, maka penggolongan yang rapi menjadi hilang (Pressman, 2002:16). Area perangkat lunak berikut menunjukkan luasnya aplikasi potensial: a. Perangkat lunak sistem, merupakan sekumpulan program yang ditulis untuk melayani program-program yang lain. b. Perangkat
lunak
real-time,
merupakan
program-program
yang
memonitor/menganalisis/mengontrol kejadian dunia nyata pada saat terjadinya. c. Perangkat lunak bisnis, pemrosesan informasi bisnis dengan menyusun kembali struktur data yang ada dengan suatu cara tertentu untuk memperlancar operasi bisnis atau pengambilan keputusan manajemen. d. Perangkat lunak teknik dan ilmu pengetahuan, ditandai dengan algoritma number crunching dan sudah mulai memakai cici-ciri perangkat lunak sistem genap dan real-time.
10
e. Embedded software, ada dalam read-only memory dan dipakai untuk mengontrol hasil serta sistem untuk keperluan konsumen dan pasar industri. f. Perangkat lunak komputer personal, telah berkembang selama dekade terakhir seperti pengolah kata, grafik komputer, multimedia, dan hiburan. g. Perangkat lunak kecerdasan buatan, menggunakan algoritma non-numeris untuk memecahkan masalah kompleks yang tidak sesuai untuk perhitungan atau analisis secara langsung. 2.1.6 Proses Perangkat Lunak Proses pernagkat lunak dapat dicirikan seperti diperlihatkan pada gambar 2.1. Sebuah kerangka kerja proses umum dibangun dengan mendefinisikan sejumlah kecil aktivitas kerangka kerja yang bisa diaplikasikan ke semua proyek perangkat lunak, tanpa melihat ukuran dan kompleksitasnya. Sejumlah task-set setiap koleksi rekayasan perangkat lunak mengerjakan tugas-tugas, tonggak proyek, hasil usaha perangkat lunak, dan bisa dipesan, serta titik jaminan kualitas memungkinkan aktivitas kerangka kerja disesuaikan dengan karakteristik proyek perangkat lunak dan kebutuhan tim proyek. Akhirnya, aktivitas pendukung seperti jaminan kualitas perangkat lunak, manajemen konfigurasi perangkat lunak lampiran model proses. Aktivitas pendukung tidak tergantung pada satupun aktivitas kerangka kerja dan terjadi pada seluruh proses (Pressman, 2002:32).
11
Gambar 2.1 Proses perangkat lunak (Pressman, 2002:32) 2.2
Objek Objek adalah sesuatu yang berarti dalam konteks suatu sistem. James Martin
dan James Odell mengemukakan objek adalah sesuatu yang dapat dikonsepkan yang diperlukan dalam penyelesaian masalah. Objek dapat berupa konsep, abstraksi atau sesuatu dengan batas-batas tegas dan mempunyai arti untuk persoalan yang ditangani. Objek mempunyai identitas dan dapat dibedakan. Identitas berarti objek terbedakan oleh keberadaannya secara inheren dan bukan oleh properti-properti deskriftif yang dipunyainya. Beberapa objek yang diciptakan pada perangkat lunak juga dapat mempunyai korespondensi langsung dengan objek-objek dunia nyata [Bambang Hariyanto, 2004 : 195]. 2.2.1 Konsep Dasar Pendekatan Objek Adapun konsep dasar Pendekatan Objek yaitu :
12
a.
Suatu teknik atau cara pendekatan baru dalam melihat permasalahan dari sistem (sistem perangkat lunak, sistem informasi, atau sistem lainnya).
b.
Pendekatan
berorientasi
objek
akan
memandang
sistem
yang
akan
dikembangkan sebagai suatu kumpulan objek yang berkorespondensi dengan objek-objek dunia nyata. c.
Ada banyak cara untuk mengabstraksikan dan memodelkan objek-objek tersebut, mulai dari abstraksi objek, kelas, hubungan antar kelas sampai abstraksi sistem.
d.
Saat mengabstraksikan dan memodelkan objek ini, data dan proses-proses yang dipunyai oleh objek akan dienkapsulasi (dibungkus) menjadi satu kesatuan.
e.
Dalam rekayasa perangkat lunak, konsep pendekatan berorientasi objek dapat diterapkan pada tahap analisis, perancangan, pemrograman, dan pengujian perangkat lunak. Ada berbagai teknik yang dapat digunakan pada masing-masing tahap tersebut,
dengan aturan dan alat bantu pemodelan tertentu. [Bambang Hariyanto, 2004]. 2.2.2 Karakteristik Objek Oriented Konsep objek oriented memiliki karakteristik: a.
Abstraction (abstraksi) Abstraksi adalah teknik untuk menentukan ciri, sifat, atau informasi penting
dari suatu objek, mana yang akan ditampilkan dan mana yang akan disembunyikan. Dalam melakukan perancangan sebuah perangkat lunak, abstraksi sangat bergantung pada persfektif yang diambil oleh perancang program.
13
b.
Object (objek) Objek adalah elemen dasar dari konsep pemrogaman berorientasi objek. Objek
merupakan abstraksi sesuatu didalam dunia nyata. Sesuatu ini bias berarti apa saja: sebuah benda, aktivitas manusia, business sistem, atau workflow. Sebuah objek memiliki attribute dan method. Attribute adalah data yang terkandung dalam objek, sedangkan method adalah operasi-operasi yang yang disediakan oleh objek untuk mengakses atau memodifikasi attribute yang dimilikinya [Farid Azis, 2005 : 4]. c.
Encapsulation (Enkapsulasi) Selain dengan menggunakan metoda abstraksi dalam menyembunyikan method
pada super class, maka juga dapat dilakukan dengan proses pembungkusan suatu fungsi. Dengan kata lain, sebenarnya proses pembungkusan itu sendiri merupakan salah satu metoda atau mekanisme untuk melakukan abstraksi. Dalam pemrograman tradisional, proses semacam ini sering juga disebut dengan penyembunyian informasi (information hiding). Dalam melakukan pembungkusan kode dan data dalam java terdapat tiga tingkatan akses data yang perlu diketahui yaitu:
Enkapsulasi
berhubungan class control yang diberlakukan terhadap class member yang ada di dalamnya d.
Inheritance (Pewarisan)
14
Pewarisan merupakan sarana untuk mengilangkan penulisan ulang terhadap kode yang dapat digunakan berulang kali. Penulisan berulang menyiakan banyak waktu, menimbulkan ketidak konsistenan dan meninggkatkan resiko menimbulkan kesalahan. e.
Polymorphism Polymorphism adalah kemampuan dapat memperoleh beberapa bentuk. Pada
pengembangan berorientasi objek yang dimaksud dapat memperoleh beberapa bentuk adalah suatu variable mempunyai kemampuan pada saat jalan dicantolkan ke objekobjek yang bertipe berbeda. Semuanya itu dikendalikan dengan deklarasi statik dimana variable di deklarasikan bertipe kelas moyang. 2.3
Unified Modeling Language (UML) Unified Modeling Language adalah keluarga notasi grafis yang didukung oleh
meta-model tunggal, yang membantu pendeskripsian dan desain sistem perangkat lunak, khususnya sistem yang dibangun menggunakan pemrograman berorientasi objek (OO). Bahasa pemodelan ini telah ada di industri perangkat lunak sejak lama. Pemicu dibalik semuanya adalah bahwa bahasa pemrograman berada pada tingkat abstraksi yang tidak terlalu tinggi untuk memfasilitasi diskusi tentang desain. UML merupakan standar yang relatif terbuka yang dikontrol oleh Object Managemen Group (OMG), sebuah konsorsium terbuka yang terdiri dari banyak perusahaan. OMG dibentuk untuk membuat standar-standar yang mendukung interoperabilitas, khususunya interoperabilitas sistem berorientasi objek. OMG
15
mungkin lebih dikenal dengan standar-standar CORBA (Common Object Broker Archiitecture). [Martin Fowler, 2005 : 1]. 2.3.1 View dan Diagram Dalam UML View adalah jendela (window) yang merupakan aspek pandang UML terhadap sistem. Sebuah sistem harus dijelaskan dengan sejumlah aspek/pandangan yang berbeda, misalnya aspek fungsional (struktur statik dan interaksi dinamik), aspek non-fungsional
(timing
requirement,
reliability,
deployment),
dan
aspek
organisasional (pengorganisasian pekerjaan, mapping ke kode, dan modul). Sistem dijelaskan oleh sejumlah view, dimana masing-masing view merupakan proyeksi dari sistem secara komplit yang memperlihatkan aspek tertentu dari sistem. UML memperkenalkan lima buah view untuk memandang sistem yaitu: Use-Case View, Logical View, Component view, Deployment View dan Concurrency View [Eriksson dan Penker, 1998]. [Booch , 1998] menyebut view ini sebagai “Arsitektur 4+1” dan menyebut Concurrency View sebagai Process View. a.
Use case view Untuk menampilkan fungsi-fungsi dari sistem berkaitan dengan actor eksternal.
Aktor yang ber-interaksi dengan sistem dapat berupa seorang user atau sistem lainnya. Use case view ditujukan untuk para customer, designer, developer, dan tester. Use case view merupakan bagian sentral dari view karena isinya menjadi pengendali view yang lain. Tujuan akhir dari sebuah sistem adalah untuk menyediakan fungsi-fungsi yang dijelaskan dalam use case view, karena itu use case
16
view mempengaruhi seluruh view lainnya. Use case View juga digunakan untuk validasi dan verifikasi sistem. b.
Logical View Untuk menampilkan bagaimana fungsi-fungsi didisain didalam sistem , dalam
kaitannya dengan struktur statik dan perilaku dinamik sistem. Logical view menjelaskan bagaimana fungsi-fungsi sistem di sediakan, terutama berguna bagi para designer dan developer. Berbeda dengan use case view, logical view melihat bagian dalam dari sistem. Sistem dijelaskan dengan struktur statik (kelas, objek, dan relasi) dan kolaborasi dinamik yang terjadi ketika objek-objek mengirim pesan satu sama lain. Struktur statik di visualisasikan dalam diagram kelas dan objek, sedang model dinamiknya divisualisasi dalam diagram state, diagram sequence, diagram kolaborasi dan diagram aktivity. c.
Component View
Untuk menampilkan pengorganisasian program (code) dari komponen code, menjelaskan implementasi dari modul-modul yang tersedia dan dependensinya. Component View terutama untuk para pengembang, view berisi diagram komponen. d.
Concurrency/Process View Untuk menampilkan concurrency di dalam sistem, khususnya pada persoalan
yang berhubungan dengan komunikasi dan sinkronisasi yang muncul dalam sistem concurrent. Concurrency/Prosess view ditujukan bagi para pengembang dan integrator sistem, berisi diagram dinamik (state, sequence, kolaborasi, dan aktivity) dan diagram implementasi (diagram komponen dan deployment).
17
e.
Deployment View Memperlihatkan deployment sistem pada arsitektur fisik dengan komputer dan
piranti pendukung yang diperkenalkan sebagai nodes. Deploymen view ditujukan bagi pengembang, integrator, dan tester, isi view berupa diagram deployment. View ini juga mencakup mapping yang memperlihatkan bagaimana komponen-komponen dideployment pada arsitektur fisik; misalnya program atau objek yang mana di eksekusi pada komputer tertentu. Diagram – diagram yang terdapal dalam UML (Unified Modelling Language) antara lain : a.
Class Diagram Class diagram mendeskripsikan jenis-jenis objek dalam sistem dan berbagai
macam hubungan statis yang terdapat diantara mereka. Class diagram juga menunjukkan properti dan operasi sebuah class dan batasan-batasan yang terdapat dalam hubungan-hubungan objek tersebut. UML menggunakan istilah fitur sebagai istilah umum yang meliputi properti dan operasi sebuah class [Martin Fowler, 2005: 58]. 1.
Property property mewakili fitur-fitur struktural dari sebuah class sebagai bayangan
awal, anda dapat menganggap properti berhubungan dengan bidang-bidang dalam sebuah class.
18
Properti merupakan sebuah konsep tunggal, tetapi tampak seperti dua notasi yang berbeda attribute dan asosiasi meskipun mereka tampak berbeda dalam sebuah diagram mereka sebenarnya dalah hal yang sama. [Martin Fowler: 2005]. 2.
Atribut Notasi atribut mendeskripsikan properti dengan berbasis teks didalam kotak
class diagram tersebut. [Martin Fowler: 2005].
3.
Hubungan Antar Class Hubungan Antar Class terdiri dari :
a)
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.
b)
Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
c)
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. d)
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.
b.
Sequence Diagram
19
Interaction diagram menunjukan bgaimana kelompok-kelompok objek saling berkolaborasi dalam beberapa behaviour. UML memiliki beberapa bentuk intreraction diagram dan yang paling umum digunakan adalah sequence diagram. Sebuah sequence diagram, secara khusus, menjabarkan behavior sebuah skenario tunggal. Diagram tersebut menunjukan sebuah objek contoh dan pesan-pesan yang melewati objek-objek ini di dalam use case. Diagram ini menjelaskan bagaimana objek berinteraksi dengan lainnya dengan cara mengirim dan menerima pesan. Sequence diagram memiliki dua sumbu: sumbu vertikal dan sumbu horizontal. Sumbu vertikal putus-putus merepresentasikan “lifetime” objek dan sumbu horizontal menunjukan sekumpulan objek. Diagram ini juga menyatakan interaksi khusus diantara objek yang terjadi pada beberapa tempat selama fungsi tertentu dijalankan. Komunikasi diantara objek direpresentasikan dengan garis horizontal disertai dengan nama operasinya. [Martin Fowler: 2005]. c.
Activity Diagram Activity diagram adalah teknik untuk menggambarkan logika prosedural, proses
bisnis, dan jalur kerja. Dalam beberpa hal, diagram ini memainkan peran mirip sebuah diagram alir, tetapi perbedaan prinsip antara diagram ini mendukung behaviour pararel. Activity diagram memungkinkan siapapun yang melakukan proses untuk memilih urutan dalam melakukannya. Dengan kata lain diagram hanya menyebutkan aturan-aturan rangkaian dasar yang harus kita ikuti. Hal yang ini penting untuk
20
pemodelan bisnis karena proses-proses sering muncul secara pararel, ini juga berguna pada algoritma yang bersamaan, dimana urutan-urutan independent dapat melakukan hal-hal secara pararel. Jika anda memiliki paralelismi, maka anda membutuhkan sinkronisasi. Misalkan, kita tidak bisa menutup pesanan sebelum diantar dan dibayar. Kita menampilkannya dengan join sebelum aksi menutup pesanan. Dengan sebuah join, aliran keluar dilakukan hanya jika seluruh aliran tersebut telah mencapai join. Jadi anda hanya dapat menutup pesanan tersebut hanya jika anda telah menerima pembayaran dan mengantarkan barang [Martin Fowler: 2005]. d.
Use case Diagram Use case adalah teknik untuk merekam persyaratan fungsional sebuah sistem.
Use case mendeskripsiskan interaksi antara para pengguna sistem dengan sistem itu sendiri, dengan memberi sebuah narasi tentang bagaimana sebuah sistem tersebut digunakan. Dalam bahasa use case, para pengguna disebut sebagai aktor. Aktor merupakan sebuah peran yang dimainkan seorang pengguna dalam kaitannya dengan sistem. Aktor dapat meliputi pelanggan, petugas layanan konsumen, manajer penjualan,dan analisis produk. Seorang aktor dapat menggunakan banyak use case, sebaliknya use case juga dapat digunakan banyak aktor. Setiap langkah dalam use case adalah sebuah elemen dalam interakasi antara aktor dan sistem. Setiap langkah harus berupa pernyataan sederhana dan dengan jelas menunjukan siapa yang menjalankan langkah tersebut. Langkah tersebut harus menunjukan tujuan aktor. Bukan mekanisme yang harus dilakukan aktor.
21
Konsekuensinya, anda tidak menjabarkan antarmuka pengguna dalam use case [Martin Fowler: 2005]. Hubungan yang terdapat dalam use case yaitu : 1.
Bentuk <
> adalah stereotype ketergantungan. Hal ini menunjukkan bahwa jalur sebuah use case dimasukkan ke dalam use case lain. Khususnya, bentuk ini muncul saat beberapa use case berbagai langkah-langkah yang sama. Use case yang dimasukkan dapat memfaktorkan behavior umum. Ini menggantikan penggunaan <<uses>>.
2.
Generalisasi use case menunjukkan bahwa satu use case merupakan variasi terhadap lainnya.
3.
Bentuk <<extend>> adalah stereotype sebuah ketergantungan. Hal ini member bentuk perluasan yang lebih terkontrol dari pada hubungan generalisasi. Disini,use case dasar menyatakan sejumlah titik perluasan. Use case yang diperluas dapat mempengaruhi behavior hanya pada titik-titik perluasa tersebut. Jadi, jika anda member produk secara online, anda mungkin memilik use case untuk membeli sebuah produk dengan titik perluasan untuk merekam informasi pengiriman barang dan merekam informasi pembayaran. Use case tersebut kemudian dapat diperluas bagi konsumen sehingga informasi ini didapat dengan cara lain [Martin Fowler, 2005].
e.
Deployment Diagram
22
Deployment/physical diagram menggambarkan detail bagaimana komponen dideploy dalam infrastruktur sistem, di mana komponen akan terletak (pada mesin, server atau piranti keras apa), bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisikal. Sebuah node adalah server, workstation, atau piranti keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini. [Martin Fowler, 2005]. 2.4
Bahasa Pemrograman Java Sejarah Java berawal pada tahun 1991 ketika perusahaan Sun Micro System
memulai Green Project, yakni proyek penelitian untuk membuat bahasa yang akan digunakan pada chip-chip embedded untuk device intelligent consumer electronic. Bahasa tersebut harus bersifat multiplatform, tidak tergantung pada vendor yang menciptakan chip tersebut. Dalam penelitiannya, projek green berhasil membuat prototype semacam PDA (Personal Data Assistance) yang dapat berkomunikasi antara satu dengan yang lain dan diberi nama Star 7, ide berawal untuk membuat sistem operasi bagi Star 7 berbasis C dan C++. Setelah berjalan beberapa lama, James Gosling, salah seorang anggota team merasa kurang puas dengan beberapa karakteristik dari kedua bahasa tersebut dan berusaha mengembangkan bahasa lain. Bahasa tersebut kemudian dinamakan Oak, diinspirasi ketika dia melihat pohon di seberang kaca ruang kantornya. Belakangan Oak beralih menjadi Java.
23
Karena pada awalnya ditujukan untuk pemrograman device kecil, Java memiliki karakteristik berukuran kecil, efisien dan portable untuk berbagai hardware. Projek Green sempat terancam terhenti karena dalam perkembangannya device ini belum memiliki pasar yang diramalkan semula, fitur-fitur yang dimiliki Java sangat sesuai bagi pengembangan internet sehingga dalam beberapa tahun belakangan ini Java telah menjadi primadona untuk pemrograman berbasis internet. (Benny Hermawan).
2.4.1 Keunggulan Java Java
memiliki
beberapa
keunggulan
dibandingkan
dengan
bahasa
pemrograman lainnya yaitu antara lain: 2.4.1.1 Berbasis Gui Bagi sebagian besar pengguna bekerja dengan I/O yang berbasis text atau console adalah membosankan, sebagian besar pengguna lebih menyukai aplikasi yang berbasis GUI (Graphical User Interface) karena memiliki tampilan yang lebih interaktif. Java menyediakan dua kelas untuk bekerja dengan GUI, yaitu AWT (Abstract Windowing Toolkit) dan Swing. 2.4.1.2 Berorientasi Objek Java adalah bahasa pemrograman yan berorientasi objek (OOP), bukan seperti pascal, Basic, atau C yang berbasis prosedural. Dalam memecahkan masalah, Java menjadi objek-objek, kemudian memodelkan sifat dan tingkah laku masing-masing.
24
Selanjutnya, Java menentukan dan mengatur interaksi antara objek yang satu dengan yang lainnya. 2.4.1.3 Multiplatform Dewasa ini kita mengenal banyak platform operating system, mulai dari Windows, Apple, beberapa varian UNIX , Linux dan sebagainya. Pada umumnya, Output
yang dibuat dan di compile di suatu platform hanya bisa dijalankan di
platform tersebut. Java bersifat multiplatform yakni dapat diterjemahkan oleh Java interpreter pada berbagai sistem operasi.
2.4.1.4 Keamanan Salah satu alasan mengapa Java tepat digunakan untuk menangani kebutuhan aplikasi enterprise adalah keampuhannya dalam soal keamanan. Fitur keamanan Java ada dua paket, yaitu pada JDK dan pada Java Cryptography Extention (JCE). Fitur keamanan yang tersedia pada kedua paket itu meliputi signature (untuk menandatangani dokumen), message digest, pembangkit kunci, autentifikasi, enkripsi dan bilangan besar (big number). 2.4.1.5 Bisa Digunakan Pada Aplikasi Jaringan Terdistribusi Aplikasi yang berjalan pada jaringan terdistribusi melibatkan sejumlah komputer yang berkomunikasi secara transparan, yaitu seolah-olah beberapa komputer
bersatu menjadi satu komputer
untuk menjalankan sebuah perintah.
Dengan fitur ini Output er bisa membuat Output untuk menyelesaikan kasus tertentu
25
dengan melibatkan beberapa komputer. Ini akan membuat penyelesaian masalah menjadi lebih cepat. 2.4.1.6 Mendukung Output Mission-Critical Java bisa digunakan untuk pengembangan Output dimana tingkat error yang terjadi sangat diperhatikan. Dimana sebuah error pada eksekusi Output
bisa
mengakibatkan kerusakan fatal pada sistem secara keseluruhan. 2.4.1.7 Open Source Output Open source Output
adalah istilah yang digunakan untuk Output
yang
membuka/membebaskan kode Output nya untuk dilihat oleh orang lain dan membiarkan orang lain mengetahui cara kerja Output
tersebut dan sekaligus
memperbaiki kelemahan-kelemahan yang ada pada Output tersebut. Yang menarik dan salah satu keunggulannya adalah bahwa Open source Output dapat diperoleh dan digunakan secara gratis tanpa perlu membayar lisensi. Dengan pola open source orang dapat membuat dan mengembangkan apa yang disebut dengan free Output . Output ini dapat digunakan tanpa perlu membayar lisensi atau hak cipta karena memang dikembangkan dengan pola open source. Jadi, dengan
pola
open
source
orang
dapat
mengembangkan
Output
dan
mempublikasikannya (Benny Hermawan). 2.4.1.8 NetBean IDE 6.5 Netbean merupakan salah IDE yang paling tangguh saat ini dalam melakukan pemrograman java. Selain itu, netbeans menyediakan paket yang lengkap dari
26
pemrograman standar (aplikasi destop), pemrograman enterprise, dan pemrograman perangkat mobile. Sekarang Netbeans telah mencapai versi 6.5 (Benny Hermawan). 2.4.1.9 J2SDK J2SDK adalah seperangkat tool (kit) yang berisi compiler dan interpreter java yang di release oleh sun yang bersifat free. Istilah J2SDK merupakan akronim dari java 2 Sofware Development kit (Benny Hermawan). 2.5
Basis Data Basis data yang digunakan dalam pembuatan aplikasi yaitu basis data MySQL.
MySQL (diucapkan: My-Ess-Que-Ell) adalah sistem manajemen basis data relasional (RDBMS) yang sangat cepat dan kuat. Sebuah basis data memungkinkan anda untuk efisiensi menyimpan, mengurutkan, pencarian, dan mengambil data. Server MySQL mengontrol akses ke data untuk memastikan bahwa beberapa pengguna dapat bekerja mengakses data secara bersamaan, untuk menyediakan akses cepat ke sana, dan memastikan bahwa hanya pengguna yang berwenang yang dapat memperoleh akses. Oleh karena itu, MySQL disebut sebagai
multi-user, multi-
threaded server. Structured Query Language (SQL) merupakan standar bahasa basis data di dunia (Welling dan Thomson, 2001:3). 2.5.1 Database Management System (DBMS) Pengelolaan basis data (Fathansyah, 2001 : 2) secara fisik tidak dilakukan oleh pemakai secara langsung tetapi ditangani oleh sebuah perangkat lunak atau sistem
27
yang khusus atau spesifik. Sistem ini yang menentukan bagaimana data diorganisasi, disimpan, diubah dan diambil kembali. Disamping itu sistem ini juga menerapkan mekanisme pengaman data, pemakaian data secara bersama, pemaksaan keakuratan atau konsistensi data tersebut. Perangkat lunak yang termasuk DBMS misalnya dBase II +, dBase IV, FoxBase, Rbase, MS-Access dan Borland Paradox atau Borland-Interbase, MS-SQL Server, CA-Open, Oracle, Informix dan Sybase. Sumber dari informasi adalah data. Data merupakan fakta-fakta atau pesanpesan yang belum dievaluasi atau bahan mentah dari informasi yang melalui pengolahan tertentu dibentuk menjadi suatu informasi. Data terbentuk dari karakter – karakter yang dapat berupa alfabet, angka maupun simbol khusus. Data disusun untuk diolah dalam bentuk struktur data, struktur file dan database. Database Management Sistem (DBMS) merupakan perantara bagi pemakai dengan basis data dalam disk. Cara berinteraksi atau berkomunikasi antara pemakai dengan basis data tersebut diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu dapat kita sebut sebagai bahasa basis data yang terdiri atas sejumlah perintah (statement) yang diformulasikan dan dapat diberikan user dan dikenali atau diproses oleh DBMS untuk melakukan suatu aksi atau pekerjaan tertentu. Contoh-contoh bahasa basis data adalah SQL, dBase, QUEL dan sebagainya. Sebuah bahasa basis data biasanya dapat dikelompokkan ke dalam dua bentuk, yaitu :
28
a.
Data Definition Language (DDL) dan
b.
Data Manipulation Language (DML)
2.5.2 Perancangan Basis Data Proses perancangan basis data, terlepas dari masalah yang ditangani, dibagi menjadi tiga tahapan : a.
Perancangan basis data secara konseptual.
b.
Perancangan basis data secara logis.
c.
Perancangan basis data secara fisis. Perancangan basis data secara logis merupakan tahapan untuk memetakan
model konseptual ke model basis data yang akan dipakai (model rasional, hirarkis atau jaringan). Namun berbagai halnya perancangan basis data secara konseptual, perancangan ini tidak tergantung pada DBMS yang akan dipakai. Itulah sebabnya perancangan basis data secara logis terkadang disebut pemetaan model data. Perancangan basis data secara fisis merupakan tahapan untuk menuangkan perancangan basis data yang bersifat logis menjadi basis data fisis yang tersimpan pada media penyimpanan eksternal (yang spesifik terhadap DBMS yang dipakai). Untuk memahami ketiga perancangan basis data tersebut, perlu kiranya mengenal daur hidup pengembangan sistem (biasa disebut SDLC / Sistem Development Life Cycle) secara utuh. Hal ini disebabkan perancangan basis data hanya merupakan bagian dari tahapan perancangan sistem itu sendiri merupakan salah satu dari sejumlah tahapan pada daur hidup pengembangan sistem, (Abdul Kadir, 2003). 2.5.3 MySQL
29
Database MySQL merupakan sistem manajemen basis data SQL yang sangat terkenal dan bersifat open source. MySQL dibangun, didistribusikan, dan didukung oleh MySQL AB. MySQL AB merupakan perusahaan komersial yang dibiayai oleh pengembang MYSQL. MySQL mempunyai dua lisensi. Lisensi pertama bersifat open source dngan menggunakan GNU General Public Licence dan lisensi kedua berupa Standard Commercial license yang dibeli dari MySQL. 1.
MySQL merupakan sistem manajemen database. Database merupakan struktur dari penyimpanan data. Untuk menambah, mengakses, dan memproses data yang disimpan dalam sebuah database komputer maka diperlukan sistem manejemen seperti MySQL Server.
2.
MySQL merupakan sistem manajemen database terhubung (relational database manajemen system). Database terhubung menyimpan data pada tabel-tabel terpisah. Hal tersebut akan menambah kecepatan dan fleksibelitasnya. Kata SQL pada MySQL merupakan singkatan dari Stuctured Query Language. SQL merupakan bahasa standar yang digunakan untuk mengakses database dan ditetapkan oleh ANSI/ISO SQL Standard.
3.
MySQL merupakan software open source. Open source berarti semua orang diijinkan untuk menggunakan dan memodifikasinya. Semua orang dapat mendownload software MySQL dari internet dan menggunakannya tanpa harus
30
membayar. Selain itu source code dapat dipelajari dan digunakan sesuai kebutuhan. 4.
MySQL database server yang mempunyai kecepatan akses yang tinggi, mudah digunakan, serta handal. MySQL dikembangkan untuk menangani database yang besar secara cepat dan telah sukses digunakan selama bertahun-tahun. Karena konektivitas, kecepatan dan kemampuan MySQL server cocok untuk mengakses database di internet.
5.
MySQL Server
bekerja di Client/Server atau sistem embedded. Software
database MySQL merupakan sistem client/server yang terdiri multithread SQL server
yang mendukung software klien dan
library
yang berbeda,
administrative tools, dan sejumlah Application Programming Interfaces (APIs). 6.
MySQL tersedia dalam beberapa macam bahasa. Fitur utama dari MySQL adalah :
a.
Ditulis dalam C dan C+
b.
Bekerja dalam berbagai flatform , misalnya Mac Os X, Solaris, Sun OS, Unix, Novel Netware, Windows, dan lain-lain.
c.
Menyediakan mesin penyimpan (engine storage) transaksi dan non transaksi.
d.
Server tersedia sebagai program yang terpisah untuk digunakan pada lingkungan jaringan client/server. MySQL mempunyai library yang dapat ditempelkan pada aplikasi yang berdiri sendiri
(standalone application)
31
sehingga aplikasi tersebut dapat digunakan pada komputer yang tidak berada dalam jaringan. e.
Mempunyai sistem password yang fleksibel dan aman.
f.
Dalam menangani basis data dalam skala besar. Basis data dalam MySQL server dapat berisi 50 juta record.
g.
Klient dapat terkoneksi ke MySQL Server menggunakan socket TCP/IP pada platform manapun.
h.
Server dapat mengirim pesan error ke client dalam berbagai bahasa. MySQL termasuk jenis RDBMS (Relational Database Management System). Pada MySQL, sebuah database terdiri dari tabel-tabel. Sebuah tabel terdiri dari baris dan kolom. Dalam konteks bahasa SQL, informasi disimpan dalam tabel-tabel yang secara
logis merupakan struktur dua dimensi yang tersimapn atas baris-baris data (coloumn). Baris pada tabel disebut sebagai instance dari data sedangkan kolom sering disebut sebagai attributes atau field. (Abdul Kadir, 2008 : 2-3). 2.6
Decision Support System (DSS)
2.6.1 Pengertian Definisi awalnya adalah suatu sistem ditujukan untuk mendukung manajemen pengambilan keputusan.
32
Sistem berbasis model yang terdiri dari prosedur-prosedur dalam pemprosesan data dan pertimbangannya untuk membantu user dalam pengambilan keputusan. Agar berhasil mencapai tujuannya maka sistem tersebut harus: 1.
Sederhana.
2.
Robust.
3.
Mudah untuk dikontrol.
4.
Mudah beradaptasi.
5.
Lengkap pada hal-hal penting.
6.
Mudah berkomunikasi denganya. Define terakhir adalah istilah DSS mengcu pada situasi dimana system final
dapat dikembangkan hanya melalui adaptive proses pembelajaran dan evolusi. DSS didefinisikan sebagai hasil dari pengembangan proses dimana user DSS, DSS builder, dan DSS itu sendiri, semuanya bisa saling mempengaruhi yang tercermin pada evolusi sistem itu dan pola-pola yang digunakan (Kusrini, M.Kom 2007). 2.6.2 Pembuatan Keputusan Dalam pembuatan keputusan ada dua orang yang mengertikan artian pembuatan keputusan keputusan yaitu Simon dan Mintzberg.
1.
Keputusan Menurut Simon Dalam bukunya terbitan Tahun 1977, simon menguraikan istilah keputusan
menjadi keputusan terprogram dan keputusan tak terprogram. Keputusan terprogram
33
yaitu bersifat berulang-ulang dan rutin. Pada suatu tingkat tertentu dan prosedur telah ditetapkan untuk menanganinya sehingga ia dianggap suatu denovo (yang baru) setiap sekali terjadi. Keputusan tak terprogram yaitu bersifat baru, tidak terstruktur, dan biasanya tidak urut. Ia juga menjelaskan bahwa dua jenis keputusan tersebut hanyalah kesatuan ujung yang terangkai secara hitam putih, sifatnya begitu tak jelas, namun demikian konsep keputusan terprogram dan tak terprogram sangatlah penting, karena masingmasing memerlukan teknik yang berbeda. 2.
Keputusan Menurut Mintzberg Mintzberg terkenal dengan teorinya mengenai peranan manajerial, teori ini
mengemukakan sepuluh peranan manajerial yang terbagi dalam tiga kategori, yaitu: interpersonal, informasional, desisional. Peranan informasional mengemukakan bahwa manajer mengumpulkan dan menyebarkan informasi dan peranan desisional mengemukakan bahwa manajer menggunakan informasi dalam pembuatan berbagai jenis keputusan.
2.6.3 Komponen DSS 1.
Data Management
34
Termasuk database, yang mengandung data yang relevan untuk berbagai situasi dan diatur oleh software yang disebut Database Management System (DBMS). 2.
Model Management Melibatkan model financial, statistikal, management science, atau berbagai model kuantitatif lainya, sehingga dapat memberikan ke sistem suatu kemampuan analitis, dan manajemen software yang diperlukan.
3.
Communication User dapat berkomunikasi dan memberikan perintah pada DSS melalui subsitem ini. Ini berarti menyediakan antarmuka.
4.
Knowledge Management Subsistem optional ini dapat mendukung subsistem lain atau bertindak sebagai komponen yang berdiri sendiri.
Gambar 2.2 Gambar Arsitektur SPK (Turban, E., dkk, 2005).
2.6.4 TUJUAN DSS
35
Dalam DDS terdapat tiga tujuan yang harus di capai yaitu : 1.
Membantu manajer dalam pembuatan keputusan untuk memecahkan masalah semi terstruktur.
2.
Mendukung keputusan manajer, dan bukannya mengubah atau mengganti keputusan tersebut.
3.
Meningkatkan efektivitas menajer dalam pembuatan keputusan, dan bukannya peningkatan efisiensi. Tujuan ini berkaitan dengan tiga prinsip dasar dari konsep DSS, yaitu struktur
masalah, dukungan keputusan, dan efektivitas keputusan. 2.7
Beasiswa Pada dasarnya, beasiswa adalah peng hasilan bagi yang menerimanya. Hal ini
sesuai dengan ketentuan pasal 4 ayat (1) UU PPh/2000. Disebutkan pengertian penghasilan adalah tambahan kemampuan ekonomis dengan nama dan dalam bentuk apapun yang diterimaatau diperoleh dari sumber Indonesia yang dapat digunakan untuk konsumsi atau menambah kekayaan wajib pajak (WP). Karena beasiswa bisa diartikan menambah kemampuan ekonomis bagi penerimanya, berarti beasiswa merupakan penghasilan (Jawa Pos, 2009). Adapun pengertian beasiswa seperti yang dikutip dari www.wikipedia.org adalah pemberian berupa bantuan keuangan yang diberikan kepada perorangan yang bertujuan untuk digunakan demi keberlangsungan pendidikan yang ditempuh. Beasiswa dapat diberikan oleh lembaga pemerintah, perusahaan ataupun yayasan. Pemberian beasiswa dapat dikatagorikan pada pemberian Cuma-Cuma ataupun pemberian dengan ikatan kerja (biasa disebut ikatan
36
dinas) setelah selesainya pendidikan. Lama ikatan dinas ini berbeda-beda, tergantung pada lembaga yang memberikan beasiswa tersebut. 2.8
Profile Maching Maksud dari profile matching adalah sebuah mekanisme pengambilan
keputusan dengan mengasumsikan bahwa terdapat tingkat variable prediktor yang ideal, yang harus memiliki pelamar, bukanya tingkat minimal yang harus dipenuhi atau dilewati. Dalam pencocokan profil, dilakukan identifikasi terhadap semua mahasiswa yang baik maupun buruk. Para mahasiswa tersebut diukur menggunakan beberapa kriteria penilaian. Jika pelaksanaan yang baik memperoleh nilaia yang berbeda dari pelaksanaan yang buruk atau sebuah karakteristik, maka fariabel tersebut berfaedah untuk memilih pelaksanaan yang baik. Suatu proses yang sangat penting dalam manajemen SDM dimana terlebih dahulu ditentukan kompetensi (kemampuan) yang diperlukan oleh suatu mahasiswa. Kompetensi/kemampuan tersebut haruslah dapat dipenuhi. Dalam proses profile matching secara garis besar merupakan prosespembandingan antara kompetensi individu mahasiswa, sehingga dapat diketahui perbedaan kompetensinya (disebut juga gap), semakin kecil gap yang dihasilkan maka bobot nilainya semakin besar yang berarti memiliki peluang lebih besar untuk mendapatkan beasiswa tersebut. (Kusrini, M.Kom 2007).