Bab II Landasan Teori BAB II LANDASAN TEORI 2.1 Konsep Dasar Sistem Sistem adalah sekumpulan komponen yang mengimplementasikan model dan fungsionalitas yang dibutuhkan. Komponen-komponen tersebut saling berinteraksi di dalam sistem guna mentrans-formasi input yang diberikan kepada system tersebut menjadi output yang berguna dan bernilai bagi aktor-nya [3]. Secara umum sistem dapat digambarkan sebagai berikut : Input Output Sistem d ar db Control rw Fo Fe e d ac k e Fe Sistem boundary Sistem Control Sistem Environment Sumber: Perancangan Object Oriented Software dengan UML : [7] Gambar 2.1 Gambar Sistem Secara Umum Ada beberapa pendapat yang menjelaskan definisi sistem, yaitu : 1. 2. Sistem yaitu gabungan dari sekelompok komponen baik itu gabungan dan / atau bukan manusia (non-human) yang saling mendukung satu sama lain serta diatur menjadi sebuah kesatuan yang utuh untuk mencapai suatu tujuan, sasaran bersama atau akhir [5]. Suatu sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran yang tertentu [5]. II-1 Bab II Landasan Teori 3. Sistem mengandung dua pengertian utama yaitu : (a) Pengertian sistem yang menekankan pada komponen atau subsistem-subsistem yang saling berinteraksi satu sama lain, dimana masing-masing bagian tersebut dapat bekerja secara sendiri-sendiri (indenpendent) atau bersama-sama serta saling berhubungan membentuk satu kesatuan sehingga tujuan atau sasaran sistem tersebut dapat tercapai secara keseluruhan (b) Definisi yang menekankan pada prosedurnya yaitu merupakan suatu jaringan kerja dari prosedurprosedur yang saling berhubungan, berkumpul bersama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu [5]. Berdasarkan beberapa pendapat yang dikemukakan di atas dapat ditarik kesimpulan bahwa “Sistem adalah kumpulan bagian-bagian atau subsistemsubsistem yang disatukan dan dirancang untuk mencapai suatu tujuan”. 2.2 Konsep Dasar Informasi 2.2.1 Definisi Data Sumber informasi adalah data. Data merupakan bentuk jamak dari bentuk tunggal data item. Berikut definisi data yang dikemukakan oleh beberapa ahli : Menurut Abdul Kadir : “Data merupakan deskrpsi dari suatu kejadian yang kita hadapi serta menggambarkan kesatuan nyata yang terjadi pada saat tertentu”.[8] Menurut Witarto : “Data merupakan kumpulan objek-objek beserta atributnya yang menunjukkan karakteristik dari objek tersebut. Informasi tanpa adanya data maka informasi tersebut tidak akan terbentuk. Begitu pentingnya peranan data dalam terjadinya suatu informasi yang berkualitas. Keakuratan data sangat mempengaruhi terhadap keluaran informasi yang akan terbentuk”.[9] 2.2.2 Definisi Informasi Menurut Raymond Mcleod: “Informasi adalah data yang telah diolah menjadi bentuk yang memiliki arti bagi si penerima dan bermanfaat bagi pengambilan keputusan saat ini atau mendatang ”. Secara umum informasi dapat didefinisikan sebagai hasil dari pengolahan data dalam suatu bentuk yang lebih berguna dan lebih berarti bagi penerimanya yang menggambarkan suatu kejadian-kejadian yang nyata yang digunakan untuk pengambilan keputusan. Sumber dari informasi adalah data. Data adalah kenyataan yang menggambarkan suatu kejadian-kejadian dan kesatuan nyata. Kejadiankejadian II-2 Bab II Landasan Teori adalah sesuatu yang terjadi pada saat tertentu. Di dalam dunia bisnis, kejadiankejadian yang sering terjadi adalah transaksi perubahan dari suatu nilai yang disebut transaksi. Kesatuan nyata adalah berupa suatu obyek nyata seperti tempat, benda dan orang yang betul-betul ada dan terjadi. Data merupakan bentuk yang masih mentah, belum dapat bercerita banyak sehingga perlu diolah lebih lanjut. Data diolah melalui suatu metode untuk menghasilkan informasi. Data dapat berbentuk simbolsimbol semacam huruf, angka, bentuk suara, sinyak, gambar, dsb. Data yang diolah melalui suatu model menjadi informasi, penerima kemudian menerima informasi tersebut, membuat suatu keputusan dan melakukan tindakan, yang berarti menghasilkan suatu tindakan yang lain yang akan membuat sejumlah data kembali. Data tersebut akan ditangkap sabagai input, diproses kembali lewat suatu model dan seterusnya membentuk suatu siklus. 2.3 Konsep Dasar Sistem Informasi Informasi dapat diperoleh dari sistem informasi (information systems) atau disebut juga dengan processing systems. Sistem informasi didefinisikan oleh Robert A. Leitch dan K. Roscoe Davis sebagai berikut: “Sistem Informasi adalah suatu sistem didalam organisasi yang mempertemukan kebutuhan pengolahan transaksi harian, mendukung operasi, bersifat manajerial dan kegiatan startegi dari suatu organisasi dan menyediakan pihak luar tertentu dengan laporan-laporan”.[10] Sistem informasi manajemen sering dikenal dengan singkatan SIM, merupakan penerapan sistem informasi didalam organisasi untuk mendukung informasi-informasi yang dibutuhkan oleh semua tingkatan manajemen. SIM didefinisikan oleh George M. scott sebagai berikut : “Suatu SIM adalah kumpulan dari interaksi-interaksi sistem-sistem informasi yang menyediakan informasi baik untuk kebutuhan manajerial maupun kebutuhan operasiona”.[11] Menurut Barry E. Cushing : “Suatu Sistem Informasi Management adalah kumpulan dari manusia dan sumber-sumber daya modal didalam suatu organisasi yang bertanggungjawab mengumpulkan dan mengolah data untuk menghasilkan informasi yang berguna untuk semua tingkatan manajemen di dalam kegiatan perencanaan dan pengendalian”.[12] II-3 Bab II Landasan Teori Sistem informasi adalah kumpulan dari sub-sub sistem baik fisik maupun non fisik yang saling berhubungan satu sama lain dan bekerja sama secara harmonis untuk mencapai suatu tujuan yaitu mengolah data menjadi informasi yang berguna. Komponen dasar sistem informasi meliputi: 1. Blok masukan (input blok). Input mewakili data yang masuk ke dalam sistem informasi. Input disini termasuk metode-metode dan media untuk menangkap data yang akan di masukkan, dapat berupa dokumen-dokumen dasar. 2. Blok model (model block). Blok ini terdiri dari kombinasi prosedur, logika dan model matematik yang akan memanipulasi data input dan data yang tersimpan di basis data dengan cara tertentu untuk menghasilkan keluaran yang di inginkan. 3. Blok teknologi (technology block). Teknologi digunakan untuk menerima input, menjalankan model, menyimpan dan mengakses data, menghasilkan dan mengirimkan keluaran dan membantu pengendalian sistem secara keseluruhan. 4. Blok keluaran (blok output). Keluaran merupakan informasi yang berkualitas dan dokumentasi yang berguna untuk semua tingkatan manajemen serta semua pemakai sistem. 5. Blok basis data (database block). Merupakan kumpulan data yang saling berhubungan satu sama lain, tersimpan di perangkat keras komputer dan digunakan perangkat lunak untuk memanipulasinya. Data perlu disimpan dalam basis data untuk keperluaan penyediaan informasi lebih lanjut. Data di dalam basis data perlu di organisasikan sedemikian rupa, supaya informasi yang di hasilkan berkualitas. 6. Blok kendali (controls block). Beberapa pengendalian perlu di rancang dan di terapkan untuk meyakinkan bahwa hal-hal yang dapat merusak sistem dapat di cegah ataupun bila terlanjur terjadi kesalahan langsung cepat diatasi. Tujuan dilakukannya tahap ini sebagai berikut: a. Membuat keputusan apabila sistem saat ini mempunyai masalah atau sudah tidak berfungsi secara baik dan hasil analisisnya digunakan sebagai dasar untuk memperbaiki sistem. II-4 Bab II Landasan Teori b. Mengetahui ruang lingkup pekerjaan yang akan ditangani, c. Memahami sistem yang sedang berjalan saat ini, d. mengidentifikasikan dan mencari solusi. 2.3.1 Siklus Sistem Informasi Informasi merupakan suatu proses perubahan dunia menjadi informasi. Data yang diolah untuk menghasilkan informasi menggunakan suatu model proses tertentu. Data yang diolah melalui suatu model menjadi informasi, penerima kemudian menerima informasi tersebut, membuat dan suatu keputusan dan melakukan tindakan yang berarti menghasilkan suatu tindakan yang lain yang akan membuat sejumlah data kembali. Data tersebut akan ditangkap sebagai input, diproses kembali lewat suatu model dan seterusnya membentuk suatu siklus, adapun siklus informasi sebagai berikut : Sumber : http://referensisisteminformasi.blogspot.com/2008/07/siklus-informasi.html [7] Gambar 2.2 Siklus Informasi 2.4 Sistem Informasi Penggajian Sistem informasi penggajian karyawan terdiri dari manusia, peralatan dan prosedur untuk mengevaluasi dan mengumpulkan, mengatur, menganalisa, menghitung, mendistribusikan informasi yang dibutuhkan tepat pada II-5 Bab II Landasan Teori waktunya dan akurat kepada karyawan dan pimpinan. Sistem informasi penggajian karyawan ini adalah sistem yang berbasis komputer untuk mengolah data gaji karyawan serta data lainnya yang berkaitan dengan proses penggajian karyawan, baik dari dalam perusahaan maupun dari luar perusahaan. 2.4.1 Definisi Gaji Adalah suatu bentuk pembayaran secara periodik dari pihak perusahaan atau majikan kepada karyawannya atau pekerjanya sesuai dengan yang dinyatakan dalam kontrak kerja. Dari sudut pandang pelaku bisnis, gaji dapat dianggap sebagai biaya yang dibutuhkan untuk mendapatkan sumber daya manusia untuk menjalankan operasi. 2.4.2 Definisi Penggajian Adalah kegiatan atau proses dari pembayaran gaji dari pihak perusahaan atau majikan kepada karyawannya dengan mengikuti prosedur – prosedur tertentu yang sudah disepakati sebelumnya. 2.5 Sistem Basis Data Menurut Fathansyah Basis data adalah : “Sistem basis data merupakan sistem yang terdiri dari atas sekumpulan tabel yang saling berhubungan (dalam sebuah basis data di sebuah system komputer) dan sekumpulan program (DBMS) yang menungkinkan beberapa pemakai lain untuk mengakses dan memanipulasi table-tabel tersebut”. Sistem Basis data pada dasarnya dibuat untuk tujuan Sebagai berikut: 1. Kecepatan dan kemudahan Dengan sistem basis data diharapkan pengolahan data dapat lebih cepat dan lebih mudah di bandingkan dengan sistem manual. 2. Efisiensi ruang penyimpanan Dengan basis data, efisiensi /optimalisasi penggunaan ruang penyimpan dapat dilakukan, karena kita dapat melakukan penekanan jumlah redudansi data. 3. Keakuratan II-6 Bab II Landasan Teori Pemanfaatan pengkodean atau pembentukan relasi antar data bersama dengan penerapan aturan atau batasan tipe, data,domain data, keunikan data dan sebagainya, yang secara ketat dapat diterapkan dalam sebuah basis data, sangat berguna untuk menekan ketidak akuratan masukan ataupun penyimpanan data. 4. Ketersediaan Dengan pertumbuhan data yang semakin banyak, maka di perlukan tempat penyimpanan yang sangat besar, karena itu kita perlu memilah data dalam bentuk kategori-kategori tertentu sehingga data yang tidak terlalu penting dapat dihapus. 5. Kelengkapan Untuk mengakomodasi kebutuhan kelengkapan data yang semaki berkembang maka kita tidak hanya dapat menambah record-record data tetapi juga melakukan perubahan struktur dalam basis data, baik dalam bentuk penambahan objek baru (tabel) atau dengan penambahan field-field baru pada suatu tabel. 6. Keamanan Dengan sistem basis data kita dapat memproteksi semua objek yang ada dengan berbagai tingkatan keamanan. 7. Kebersamaan Pemakaian Pemakai basis data biasanya terdiri dari banyak pemakai sehingga hendaknya basis data harus bisa di akses oleh banyak pemakai dalam waktu yang bersamaan. Dalam sebuah Basis Data secara lengkap akan terdapat komponen- komponen utama yaitu: 1. Hardware 2. Operating system 3. Database 4. Sistem (aplikasi/perangkat lunak) pengelola basis data(DBMS) 5. User II-7 Bab II Landasan Teori Keuntungan Database adalah : a. Mereduksi redudansi b. Data dapat di share antar aplikasi c. Standarisasi data dapat di lakukan d. Batasan security dapat diterapkan e. Mengelola integritas (keterjaminan akurasi) data f. Menyeimbangkan kebutuhan yang saling konflik g. Independesi data (obyektif DBS) Struktur Sistem Database : a. File manager : mengelola space dan struktur data. b. Database manager : menyediakan antar muka dengan data fisik c. Query processor : menterjemahkan query ke instruksi yang dimengerti database manager. d. DML precompiler :mengkonversi perintah DML menjadi calls normal. e. DDL compiler : menkonversi perintah DDL menjadi meta data. 2.6 Waterfall Process Model Waterfall Process Model atau Linear Sequential Model merupakan model pengembangan perangkat lunak yang muncul pada tahun 1970, sehingga sering dianggap kuno, tetapi merupakan model yang paling banyak dipakai didalam software engineering. Model ini melakukan pendekatan secara sistematis dan urut mulai dari level kebutuhan sistem lalu menuju ke tahap analisis, desain, coding, testing / verification, dan maintenance. Disebut dengan waterfall karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya dan berjalan berurutan. Sebagai contoh tahap desain harus menunggu selesainya tahap sebelumnya yaitu tahap requirement. Fase-fase dalam Waterfall Model : II-8 Bab II Landasan Teori Sumber : Roger S. Presman, Ph.D. 2002 Gambar 2.3 Siklus Hidup Perangkat Lunak Model Waterfall Keterangan : a. Requirements analysis and definition Mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap. b. System and software design Desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap. c. Implementation and unit testing Desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit. d. Integration and system testing Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing). e. Operation and maintenance Mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya. II-9 Bab II Landasan Teori 2.7 Metode Pendekatan Teknologi object-oriented merupakan paradigma baru dalam rekayasa software yang didasarkan pada object dan kelas. Diakui para ahli bahwa objectoriented merupakan metodologi terbaik yang ada saat ini dalam rekayasa perangkat lunak. object-oriented memandang perangkat lunak bagian perbagian, dan menggambarkan satu bagian tersebut dalam suatu objek. Suatu objek dalam sebuah model merupakan suatu fokus selama dalam proses analisis, desain, dan implementasi denagn menekankan pada state, perilaku (behaviour), dan interaksi object-oriented. Dalam konsep Object Oriented Analysis dan Design (OOAD), kita dapat mendefinisikan sebagai berikut : a. b. Object Oriented Analysis adalah metode analisis yang memeriksa requirements (syarat/keperluan yang harus dipenuhi suatu sistem) dari sudut pandang kelas-kelas dan objek-objek yang di temui dalam ruang lingkup permasalahan. Object Oriented Design adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau subsistem. 2.7.1 Analisisi Berorientasi Objek Object Oriented Analysist (OOA) adalah metode analisis yang memeriksa requirement (syarat/keperluan yang harus dipenuhi sebuah sistem) dari sudut pandang kelas-kelas dan objek-objek yang ditemui dalam ruang lingkup perusahaan. Dengan kata lain, dunia (system) adalah model dalam hal objek dan kelas. Aktivitas utama dari OOA adalah : 1. Menganalisis masalah domain 2. Menjelaskan sistem proses 3. Mengidentifikasi objek 4. Menentukan atribut 5. Mendefinisikan operasi 6. Komunikasi antar objek 2.7.2 Object Oriented Design (OOD) Object Oriented Design (OOD) adalah metode untuk mengarahkan arsitektur software yang didasarkan pada manipulasi objek-objek sistem atau II-10 Bab II Landasan Teori subsistem. Object oriented dekomposisi dan notasi untuk menggambarkan model dari sistem yang sedang dikembangkan. Struktur dikembangkan (set objek) dimana berkolaborasi untuk menyediakan perilaku yang memenuhi persyaratan dari masalah. Proses OOD: 1. Mendefiniskan kontek dan mode dari penggunaan sistem. 2. Mendesain arsitektur sistem. 3. Identifikasi objek sistem utama. 4. Mengembangkan model desain. 5. Menentukan interface objek. Object Oriented perkembangannya sangat berbeda dari perkembangan structured, pendekatan structured berfokus pada fungsi utama dalam sebuah sistem dan data yang digunakan oleh fungsi, sedangkan pendekatan object oriented berfokus pada objek dalam suatu sistem dan pada hubungan antara objek tersebut. Terdapat beberapa konsep dasar dalam OOAD, antara lain : 1. Objek (Object) Objek adalah benda secara fisik dan konseptual yang ada di sekitar kita. Beberapa contoh objek, misalnya hardware, software, dokumen, manusia, konsep dan lainnya. Objek adalah suatu abstraksi dari sesuatu dalam suatu domain masalah, menyatakan kemampuan sistem untuk : a. Menyimpan informasi tentang objek tersebut. b. Berinteraksi dengan objek tersebut atau keduanya. Sebuah objek mempunyai suatu keadaan sesaat yang di sebut state. State dari sebuah objek adalah kondisi dari objek itu atau himpunan keadaan yang menggambarkan objek tersebut. State dinyatakan dengan nilai dari atribut objeknya. Atribut adalah nilai internal suatu objek yang mencerminkan antara lain karakteristik objek, kondisi sesaat, koneksi dengan objek lain. Perubahan state dicerminkan oleh perilaku (behaviour) objek tersebut. Behaviour atau perilaku sebuah objek mendefinisikan bagaimana sebuah objek bertindak (beraksi) dan memberi reaksi. Behaviour ditentukan oleh himpunan semua atau beberapa operasi yang dapat dilakukan oleh objek itu sendiri. Behaviour dari sebuah objek dicerminkan oleh interface (pintu untuk II-11 Bab II Landasan Teori mengakses service dari objek), service (fungsi yang dapat dikerjakan oleh sebuah objek), dan method (fungsi yang dapat dikerjakan oleh sebuah objek) dari objek tersebut. 2. Kelas (Class) Kelas definisi umum (pola, template atau blue print) dari himpunan objek yang sejenis. kelas menetapkan spesifikasi perilaku (behaviour) dan atributatribut dari objek tersebut. Kelas adalah abstraksi dari entitas dalam dunia nyata. Sedangkan objek adalah contoh ” instances” dari sebuah kelas. Misalnya atribut dari kelas binatang adalah, berkaki empat dan mempunyai ekor.Perilakunya adalah makan dan tidur. Sedangkan objek (instance) untuk kelas binatang ini adalah kucing , gajah dan kuda. 3. Kotak Hitam ( Black Box) Sebuah objek adalah kotak hitam (black-boxes). Konsep ini menjadi dasar untuk implementasi objek. Dalam operasi Object Oriented hanya para developer (programmer, designer, analyst) yang dapat memahami detail dari proses-proses yang ada di dalam kotak hitam tersebut, sedangkan para pemakai (user) tidak perlu mengetahui apa yang dilakukan, tetapi yang penting mereka dapat menggunakan objek untuk memproses kebutuhan mereka. 4. Enkapsulasi (Encapsulation) Proses menyembunyikan detail implementasi sebuah objek. Satu-satu nya jalan untuk mengakses data objek tersebut melalui interface. Interface melindungi internal state sebuah objek dari campur tangan pihak luar. Oleh karena itu objek digambarkan sebagai sebuah kotak hitam yang menerima dan mengirim pesan-pesan (messages). Dalam OOP black-box tersebut berisi kode (instruksi yang di pahami komputer) dan data (informasi dimana instruksi tersebut beroperasi dengannya). Dalam OOP kode dan data disatukan dalam sebuah benda yang tersembunyi isi nya yaitu objek. Pengguna objek tidak perlu mengetahui isi dalam kotak tersebut, untuk berkomunikasi dengan objek, diperlukan pesan (message). II-12 Bab II Landasan Teori 5. Message adalah permintaan agar objek menerima (receive) untuk membawa metode yang ditunjukkan oleh perilaku dan mengembalikan result dari aksi tersebut kepada objek pengirim (sender). Contohnya, satu objek orang mengirim kepada objek bola lampu sebuah pesan (message) untuk menyalakan melalui saklar. Objek bola lampu memiliki perilaku yang akan mengubah keadaan (state) dari padam menjadi menyala. Objek lampu menyalakan dirinya dan menunjukkan kepada objek tesebut bahwa state barunya menyala. Asosiasi dan Agregasi Asosiasi adalah hubungan yang mempunyai makna antara sejumlah objek. Asosiasi digambarkan dengan sebuah garis penghubung diantara objeknya. Contoh : Asosiasi antara mobil dengan seseorang. Mobil dapat dimiliki oleh satu atau beberapa orang, sedangkan seseorang dapat mempunyai satu atau banyak mobil. Agregasi adalah bentuk khusus sebuah asosiasi yang menggambarkan seluruh bagian pada satu objek merupakan bagian dari objek yang lain. Contoh: Kopling dan piston adalah bagian dari mesin, sedangkan mesin, roda, body adalah merupakan bagian dari sebuah mobil. Cohesion adalah ukuran tentang hubungan antara komponen suatu object class. Setiap operasi menyediakan fungsi untuk mengubah, melihat, atau menggunakan atribut object sebagai layanan dasar, Coupling adalah suatu indikasi kekuatan interkoneksi antara program units. Sistem dengan coupling memiliki interkoneksi yang kuat sehingga setiap program unit sangat ketergantungan satu dengan yang lainnya (misalnya: shared variables, interchange control function). Sistem dengan couple yang lemah tidak memiliki ketergantungan yang kuat antar program units. 2.8 Unified Modeling Language (UML) 2.8.1 Definisi Unfied Modeling Language (UML) Berikut ini definisini Unified Modeling Language (UML) menurut para ahli : Menurut Rosa A.S-M. Shalahuddin : “UML (Unified Modeling Languag) adalah salah satu standar bahasa yang banyak digunakan di dunia industry untuk mendefinisikan requirement, membuat analisis dan desain serta menggambarkan arsitektur dalam pemrograman berorientasi objek”.[13] Menurut Adi Nugroho : “Unified Modeling Language (UML) adalah alat bantu analis serta perancangan perangkat lunak berbasis objek”.[13] II-13 Bab II Landasan Teori Berdasarkan beberapa pendapat yang dikemukakan dapat ditarkkesimpulan bahwa Unified Modeling Language (UML) adalah bahasa grafis untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. UML berorientasi objek menerapkan banyak level abstraksi, tidak bergantung proses pengembangan, tidak bergantung bahasa dan teknologi. Pemaduan beberapa notasi diberagam metodologi usaha bersama dari banyak pihak, di dukung oleh kakas-kakas yang diintegrasikan lewat XML . Standar UML di kelola oleh OMG (Object Management Group). 2.8.2 Fokus Unfied Modeling Language (UML) Menurut Adi Nugroho Dalam kerangka spesifikasi, Unified Modeling Languag (UML) menyediakan model-model yang tepat, tidak mendua arti (ambigu) serta lengkap. Secara khusus Unified Modeling Language (UML) menspesifikasikan langkah-langkah penting dalam pengambilan keputusan analisis, perancangan serta implementasi dalam sistem yang sangat bernuansa perangkat lunak(software intensive system). Dalam hal ini, Unified Modeling Language (UML) bukanlah merupakan bahasa pemrograman tetapi model-model yang tercipta berhubungan langsung dengan berbagai macam bahasa pemrograman, sehingga adalah mungkin melakukan pemetaan (mapping) langsung dari model-model yang dibuat dengan Unified Modeling Language (UML) dengan bahasabahasa pemrograman berorientasi objek, sepert Java, Borland Delphi, Visual Basic, C++, dan lain-lain. Pemetaan (mapping) Unified Modeling Language (UML) bersifat dua arah, yaitu: a. Generasi kode bahasa pemrograman tertentu dari Unified Modeling Language (UML) forward engineering. b. Generasi kode belum sesuai dengan kebutuhandan harapan pengguna, pengembang dapat melakukan langkah balik bersifat iterative dari implementasi ke Unified Modeling Language (UML) hingga didapat system/peranti lunak yang sesuai dengan harapan pengguna dan pengembang. II-14 Bab II Landasan Teori 2.8.3 Bangunan Dasar Metodologi Unified Modeling Language (UML) Menurut Adi Nugroho Bangunan dasar metodologi Unified Modeling Language (UML) menggunakan tiga banguna dasar untuk mendeskripsikan sistem/perangkat lunak yang akan dikembangkan yaitu: 1. Sesuatu (things) Ada 4 (empat) things dalam Unified Modeling Language (UML), yaitu: a. Struktur things Merupakan bagian yang relatif statis dalam model Unified Modeling Language (UML). Bagian yang relatif statis dapat berupa elemen-elemen yang bersifat fisik maupun konseptual. b. Behavioral things Merupakan bagian yang dinamis pada model Unified Modeling Language (UML), biasanya merupakan kata kerja dari model Unified Modeling Language (UML), yang mencerminkan perilaku sepanjang ruang dan waktu. c. Grouping things Merupakan bagian pengorganisasian dalam Unified Modeling Language (UML). Dalam penggambaran model yang rumit kadang diperlukan penggambaran paket yang menyederhanakan model. Paket-paket ini kemudian dapat didekomposisi lebih lanjut. Paket berguna bagi pengelompokan sesuatu, misalnya model-model dan subsistem- subsistem. d. Annotational things Merupakan bagian yang memperjelaskan model Unified Modeling Language (UML) dan dapat berupa komentar-komentar yang menjelaskan fungsi serta cirri-ciri setiap element dalam model Unified Modeling Language (UML). 2. Relasi (Relationship) Ada 4 (empat) macam relationship dalam Unified Modeling Language (UML), yaitu: II-15 Bab II Landasan Teori a. Ketergantungan Merupakan hubungan dimana perubahan yang terjadi pada suatu elemen mandiri (indenpendent) akan mempengaruhi elemen yang bergantung padanya elemen yang tidak mandiri (indenpendent). b. Asosiasi Merupakan apa yang menghubungkan antara objek satu dengan objek yang lainnya, bagaimana hubungan suatu objek dengan objek lainnya. Suatu bentuk asosiasi adalah agregasi yang menampilkan hubungan suatu objek dengan bagian-bagiannya. c. Generalisasi Merupakan hubungan dimana objek anak (descendent) berbagi perilaku dan struktur data dari objek yang ada di atasnya objek induk (ancestor). Arah dari atas kebawah dari objek induk ke objek anak dinamakan spesialisasi, sedangkan arah berlawanan sebaliknya dari arah bawah keatas dinamakan generalisasi. d. Realisasi Merupakan operasi yang benar-benar dilakukan oleh suatu objek. 3. Diagram Berikut adalah macam diagram dalam Unified Modeling Language (UML), yaitu: a. Use Case Diagram Use Case Diagram digunakan untuk menggambarkan sistem dari sudut pandang pengguna sistem tersebut (user), sehingga pembuatan use case diagram lebih dititikberatkan pada fungsionalitas yang ada pada sistem, bukan berdasarkan alur atau urutan kejadian. Sebuah use case diagram merepresentasikan sebuah interaksi antara aktor dengan sistem. II-16 Bab II Landasan Teori Sumber : http://www.agilemodeling.com/style/UseCaseDiagram.htm[14] Gambar 2.4 Use Case Diagram Ada beberapa relasi yang terdapat pada use case diagram: 1) Association, menghubungkan link antar element. 2) Generalization, disebut juga pewarisan (inheritance), sebuah elemen dapat merupakan spesialisasi dari elemen lainnya. 3) Dependency, sebuah element bergantung dalam beberapa cara ke element lainnya. 4) Aggregation, bentuk association dimana sebuah elemen berisi elemen lainnya. Tipe relasi yang mungkin terjadi pada use case diagram: 1) <<include>>, yaitu kelakuan yang harus terpenuhi agar sebuah event dapat terjadi, dimana pada kondisi ini sebuah use case adalah bagian dari use case lainnya. 2) <<extends>>, kelakuan yang hanya berjalan di bawah kondisi tertentu seperti menggerakkan peringatan. 3) <<communicates>>, merupakan pilihan selama asosiasi hanya tipe relationship yang dibolehkan antara aktor dan use case. II-17 Bab II Landasan Teori b. Class Diagram Class Diagram adalah diagram yang digunakan untuk menampilkan beberapa kelas serta paket-paket yang ada dalam sistem perangkat lunak yang akan dikembangkan, Diagram Kelas memberi gambaran statis tentang sistem perangkat lunak dan relasi-relasi yang ada didalamnya. Class Diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti pewarisan, asosiasi, dan lain-lain. Sumber : http://www.agilemodeling.com/style/ClassDiagram.htm[15] Gambar 2.5 Class Diagram Class memiliki tiga area pokok : 1) Nama (Class Name) 2) Atribut 3) Metode (Operations) Pada UML, class digambarkan dengan segi empat yang dibagi beberapa bagian. Bagian atas merupakan nama dari class. Bagian yang tengah merupakan struktur dari class (atribut) dan bagian bawah merupakan sifat dari class (metode/operasi). Atribut dan metode dapat memiliki salah satu sifat berikut : 1) Private, tidak dapat dipanggil dari luar class yang bersangkutan. II-18 Bab II Landasan Teori 2) Protected, hanya dapat dipanggil oleh class yang bersangkutan dan class lain yang mewarisinya. 3) Public, dapat dipanggil oleh class lain. 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. 2) Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas”). 3) Pewarisan, yaitu hubungan hirarki antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metode class asalnya serta bisa menambahkan fungsionalitas baru. Sehingga class tersebut disebut anak dari class yang diwarisinya. 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. c. Sequence Diagram Adalah diagram yang digunakan untuk menggambarkan event yang dilakukan aktor eksternal pada sistem atau inter system event dilihat dalam satu use case. Sumber : http://www.agilemodeling.com/style/sequenceDiagram.htm[16] Gambar 2.6 Sequence Diagram II-19 Bab II Landasan Teori d. Collaboration Diagram Diagram ini menggambarkan interaksi objek yang diatur objek sekelilingnya dan hubungan antara setiap objek dengan objek yang lainnya. Dalam menunjukkan pertukaran pesan, collaboration diagram menggambarkan objek dan hubungannya (mengacu ke konteks). Jika penekannya pada waktu atau urutan gunakan sequence diagram, tapi jika penekanannya pada konteks gunakan collaboration diagram. 1 : message() Object : Actor 2 : message() Object1 Sumber : http://www.agilemodeling.com/style/collaborationDiagram.htm[17] Gambar 2.7 Collaboration Diagram e. Statechart Diagram Menggambarkan semua state (kondisi) yang dimiliki oleh suatu objek dari suatu class dan keadaan yang menyebabkan state berubah. Statechart diagram tidak digambarkan untuk semua class, hanya yang mempunyai sejumlah state yang terdefinisi dengan baik dan kondisi class berubah oleh state yang berbeda. State adalah sebuah kondisi selama kehidupan sebuah objek atau ketika objek memenuhi beberapa kondisi, melakukan beberapa aksi atau menunggu sebuah event. State dari sebuah objek dapat dikarakteristikkan oleh nilai dari satu atau lebih atribut-atribut dari class. State dari sebuah objek ditemukan dengan pengujian/pemeriksaan pada atribut dan hubungan dari objek. Notasi UML untuk state adalah persegipanjang/bujur sangkar dengan ujung yang dibulatkan. II-20 Bab II Landasan Teori Sumber : http://www.agilemodeling.com/style/stateChartDiagram.htm[18] Gambar 2.8 Statechart Diagram f. Activity Diagram Menggambarkan rangkaian aliran dari aktivitas, digunakan untuk mendeskripsikan aktivitas yang dibentuk dalam suatu operasi sehingga dapat juga digunakan untuk aktifitas lainnya. Diagram ini sangat mirip dengan flowchart karena memodelkan workflow dari satu aktivitas ke aktivitas lainnya atau dari aktivitas ke status. Pembuatan activity diagram pada awal pemodelan proses dapat membantu memahami keseluruhan proses. Activity diagram juga digunakan untuk menggambarkan interaksi antara beberapa use case. II-21 Bab II Landasan Teori Sumber : http://www.agilemodeling.com/style/activityDiagram.htm[19] Gambar 2.9 Activity Diagram g. Component Diagram Menggambarkan struktur dan hubungan antar komponen piranti lunak, termasuk ketergantungan (dependency) di antaranya. Komponen piranti lunak adalah modul berisi code, baik berisi source code maupun binary code, baik library maupun executable. Umumnya komponen terbentuk dari beberapa class dan/atau package, tapi dapat juga dari komponenkomponen yang lebih kecil. Komponen dapat juga berupa interface, yaitu kumpulan layanan yang disediakansebuah komponen untuk komponen lain. II-22 Bab II Landasan Teori Gambar 2.9 Component Diagram Sumber : http://www.agilemodeling.com/style/componentDiagram.htm[20] Gambar 2.10 Component Diagram h. Deployment Diagram Menggambarkan arsitektur fisik dari perangkat keras dan perangkat lunak sistem, menunjukkan hubungan komputer dengan perangkat (nodes) satu sama lain dan jenis hubungannya. Di dalam nodes, executeable component dan objek yang dialokasikan untuk memperlihatkan unit perangkat lunak yang dieksekusi oleh node tertentu dan ketergantungan komponen. Sumber : http://www.agilemodeling.com/style/deploymentDiagram.htm(21) Gambar 2.11 Deployment Diagram II-23 Bab II Landasan Teori 2.9 Tools yang Digunakan Tools yang digunakan dalam penmbuatan program ini menggunakan Visual Basic 6. 2.9.1 Visual Basic 6 2.10 Bahasa Pemrograman yang Digunakan Bahasa pemprograman yang digunakan dalam penulisan skripsi ini adalah Pascal dan Microsoft Access. 2.10.1 Pascal Pascal adalah bahasa pemrograman yang pertama kali di buat oleh Profesor Niklaus Wirth, seorang anggota International Federation of Information Processing (IFIP) pada tahun 1971. Dengan mengambil nama dari matematikawan Perancis, Blaise Pascal, yang pertama kali menciptakan mesin penghitung, Profesor Niklaus Wirth membuat bahasa Pascal ini sebagai alat bantu untuk mengajarkan konsep pemrograman komputer kepada mahasiswanya. Selain itu, Profesor Niklaus Wirth membuat Pascal juga untuk melengkapi kekurangankekurangan bahasa pemrograman yang ada pada saat itu. Kelebihan dari bahasa pemrograman Pascal adalah: Tipe Data Standar, tipe-tipe data standar yang telah tersedia pada kebanyakan bahasa pemrograman. Pascal memiliki tipe data standar: boolean, integer, real, char, string, User defined Data Types, programmer dapat membuat tipe data lain yang diturunkan dari tipe data standar. Strongly-typed, programmer harus menentukan tipe data dari suatu variabel, dan variabel tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain dari format yang ditentukan. Terstruktur, memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsi-fungsi kecil (procedure dan function) yang dapat dipergunakan berulang-ulang. Sederhana dan Ekspresif, memiliki struktur yang sederhana dan sangat mendekati bahasa manusia (bahasa Inggris) sehingga mudah dipelajari dan dipahami. II-24 Bab II Landasan Teori Bahasa PASCAL juga merupakan bahasa yang digunakan sebagai standar bahasa pemrograman bagi tim nasional Olimpiade Komputer Indonesia (TOKI). Selain itu, Bahasa PASCAL masih digunakan dalam IOI (International Olympiad in Informatics). Tipe Data Dalam bahasa Pascal terdapat beberapa jenis tipe data yang bisa digunakan untuk sebuah variabel atau konstanta pada program. Tipe Data tersebut antara lain adalah: - Byte angka dari 0 sampai 255 - Integer angka dari -32768 to 32767 - Real semua nilai pecahan dari 1E-38 to 1E+38 - Boolean nilai TRUE atau FALSE - Char semua karakter dari tabel ASCII - String semua huruf, spasi, frasa 2.10.2 Database Microsoft Access Microsoft Access (atau Microsoft Office Access) adalah sebuah program aplikasi basis data komputer relasional yang ditujukan untuk kalangan rumahan dan perusahaan kecil hingga menengah. Aplikasi ini merupakan anggota dari beberapa aplikasi Microsoft Office, selain tentunya Microsoft Word, Microsoft Excel, dan Microsoft PowerPoint. Aplikasi ini menggunakan mesin basis data Microsoft Jet Database Engine, dan juga menggunakan tampilan grafis yang intuitif sehingga memudahkan pengguna. Microsoft Access dapat menggunakan data yang disimpan di dalam format Microsoft Access, Microsoft Jet Database Engine, Microsoft SQL Server, Oracle Database, atau semua kontainer basis data yang mendukung standar ODBC. Para pengguna/programmer yang mahir dapat menggunakannya untuk mengembangkan perangkat lunak aplikasi yang kompleks, sementara para programmer yang kurang mahir dapat menggunakannya untuk mengembangkan perangkat lunak aplikasi yang sederhana. Access juga mendukung teknik-teknik II-25 Bab II Landasan Teori pemrograman berorientasi objek, tetapi tidak dapat digolongkan ke dalam perangkat bantu pemrograman berorientasi objek. 1. Sejarah Microsoft merilis Microsoft Access 1.0 pada bulan November 1992 dan dilanjutkan dengan merilis versi 2.0 pada tahun 1993. Microsoft menentukan spesifikasi minimum untuk menjalankan Microsoft Access 2.0 adalah sebuah komputer dengan sistem operasi Microsoft Windows 3.0, RAM berkapasitas 4 megabyte (6 megabyte lebih disarankan) dan ruangan kosong hard disk yang dibutuhkan 8 megabyte (14 megabyte lebih disarankan). Versi 2.0 dari Microsoft Access ini datang dengan tujuh buah disket floppy 3½ inci berukuran 1.44 megabyte. Perangkat lunak tersebut bekerja dengan sangat baik pada sebuah basis data dengan banyak record tapi terdapat beberapa kasus di mana data mengalami kerusakan. Sebagai contoh, pada ukuran basis data melebihi 700 megabyte sering mengalami masalah seperti ini (pada saat itu, memang hard disk yang beredar masih berada di bawah 700 megabyte). Buku manual yang dibawanya memperingatkan bahwa beberapa kasus tersebut disebabkan oleh driver perangkat yang kuno atau konfigurasi yang tidak benar. Nama kode (codename) yang digunakan oleh Access pertama kali adalah Cirrus yang dikembangkan sebelum Microsoft mengembangkan Microsoft Visual Basic, sementara mesin pembuat form antarmuka yang digunakannya dinamakan dengan Ruby. Bill Gates melihat purwarupa (prototype) tersebut dan memutuskan bahwa komponen bahasa pemrograman BASIC harus dikembangkan secara bersama-sama sebagai sebuah aplikasi terpisah tapi dapat diperluas. Proyek ini dinamakan dengan Thunder. Kedua proyek tersebut dikembangkan secara terpisah, dan mesin pembuat form yang digunakan oleh keduanya tidak saling cocok satu sama lainnya. Hal tersebut berakhir saat Microsoft merilis Visual Basic for Applications (VBA). II-26 Bab II Landasan Teori 2. Penggunaan Microsoft Access digunakan kebanyakan oleh bisnis-bisnis kecil dan menengah, di dalam sebuah organisasi yang kecil bahkan mungkin juga digunakan oleh perusahaan yang cukup besar, dan juga para programmer untuk membuat sebuah sistem buatan sendiri untuk menangani pembuatan dan manipulasi data. Access juga dapat digunakan sebagai sebuah basis data untuk aplikasi Web dasar yang disimpan di dalam server yang menjalankan Microsoft Internet Information Services (IIS) dan menggunakan Microsoft Active Server Pages (ASP). Meskipun demikian, penggunaan Access kurang disarankan, mengingat telah ada Microsoft SQL Server yang memiliki kemampuan yang lebih tinggi. Beberapa pengembang aplikasi profesional menggunakan Microsoft Access untuk mengembangkan aplikasi secara cepat (digunakan sebagai Rapid Application Development/RAD tool), khususnya untuk pembuatan purwarupa untuk sebuah program yang lebih besar dan aplikasi yang berdiri sendiri untuk para salesman. Microsoft Access kurang begitu bagus jika diakses melalui jaringan sehingga aplikasi-aplikasi yang digunakan oleh banyak pengguna cenderung menggunakan solusi sistem manajemen basis data yang bersifat klien/server. Meskipun demikian, tampilan muka Access (form, report, query, dan kode Visual Basic) yang dimilikinya dapat digunakan untuk menangani basis data yang sebenarnya diproses oleh sistem manajemen basis data lainnya, seperti halnya Microsoft Jet Database Engine (yang secara default digunakan oleh Microsoft Access), Microsoft SQL Server, Oracle Database, dan beberapa produk lainnya yang mendukung ODBC. 3. Fitur Salah satu keunggulan Microsoft Access dilihat dari perspektif programmer adalah kompatibilitasnya dengan bahasa pemrograman Structured Query Language (SQL); query dapat dilihat dan disunting sebagai statemenstatemen SQL, dan statemen SQL dapat digunakan secara langsung di dalam Macro dan VBA Module untuk secara langsung memanipulasi tabel data dalam Access. Para pengguna dapat mencampurkan dan menggunakan kedua jenis II-27 Bab II Landasan Teori bahasa tersebut (VBA dan Macro) untuk memprogram form dan logika dan juga untuk mengaplikasikan konsep berorientasi objek. Microsoft SQL Server Desktop Engine (MSDE) 2000, yang merupakan sebuah versi mini dari Microsoft SQL Server 2000, dimasukkan ke dalam Office XP Developer Edition dan dapat digunakan oleh Microsoft Access sebagai alternatif dari Microsoft Jet Database Engine. Tidak seperti sebuah sistem manajemen basis data relasional yang komplit, Microsoft JET Database Engine tidak memiliki fitur trigger dan stored procedure. Dimulai dari Microsoft Access 2000 yang menggunakan Microsoft Jet Database Engine versi 4.0, ada sebuah sintaksis yang mengizinkan pembuatan kueri dengan beberapa parameter, dengan sebuah cara seperi halnya sebuah stored procedure, meskipun prosesur tersebut dibatasi hanya untuk sebuah pernyataan tiap prosedurnya. Access juga mengizinkan form untuk mengandung kode yang dapat dieksekusi ketika terjadi sebuah perubahan terhadap tabel basis data, seperti halnya trigger, selama modifikasi dilakukan hanya dengan menggunakan form tersebut, dan merupakan sesuatu hal yang umum untuk menggunakan kueri yang akan diteruskan (pass-through dan teknik lainnya di dalam Access untuk menjalankan stored procedure di dalam RDBMS yang mendukungnya. Dalam berkas Access Database Project (ADP) yang didukung oleh Microsoft Access 2000 dan yang selanjutnya, fitur-fitur yang berkaitan dengan basis data berbeda dari versi format/struktur data yang digunakan Access (*.MDB), karena jenis berkas ini dapat membuat koneksi ke sebuah basis data MSDE atau Microsoft SQL Server, ketimbang menggunakan Microsoft JET Database Engine. Sehingga, dengan menggunakan ADP, adalah mungkin untuk membuat hampur semua objek di dalam server yang menjalankan mesin basis data tersebut (tabel basis data dengan constraints dan trigger, view, stored procedure, dan UDF). Meskipun demikian, yang disimpan di dalam berkas ADP hanyalah form, report, macro, dan modul, sementara untuk tabel dan objek lainnya disimpan di dalam server basis data yang membelakangi program tersebut. 4. Pengembangan dengan Access Access mengizinkan pengembangan yang relatif cepat karena semua tabel basis data, kueri, form, dan report disimpan di dalam berkas basis data miliknya (*.MDB). Untuk membuat Query, Access menggunakan Query Design Grid, sebuah program berbasis grafis yang mengizinkan para penggunanya untuk II-28 Bab II Landasan Teori membuat query tanpa harus mengetahui bahasa pemrograman SQL. DI dalam Query Design Grid, para pengguna dapat memperlihatkan tabel basis data sumber dari query, dan memilih field-field mana yang hendak dikembalikan oleh proses dengan mengklik dan menyeretnya ke dalam grid. Join juga dapat dibuat dengan cara mengklik dan menyeret field-field dalam tabel ke dalam field dalam tabel lainnya. Access juga mengizinkan pengguna untuk melihat dan memanipulasi kode SQL jika memang diperlukan. Bahasa pemrograman yang tersedia di dalam Access adalah Microsoft Visual Basic for Applications (VBA), seperti halnya dalam beberapa aplikasi Microsoft Office. Dua buah pustaka komponen Component Object Model (COM) untuk mengakses basis data pun disediakan, yakni Data Access Object (DAO), yang hanya terdapat di dalam Access 97, dan ActiveX Data Objects (ADO) yang tersedia dalam versi-versi Access terbaru. II-29