Jawaban Tugas Akhir Matrikulasi Semester Ganjil 2009/2010 Nama Mahasiswa e-Mail Mata Kuliah
: : :
Dosen e-Mail
: :
Susanto
[email protected] Intro to Information Object Oriented SE (Pengantar SE Berorientasi Objek) Didik Setiyadi, M.Kom.
[email protected] tembusan :
[email protected]
------------------------------------------------------------------------------------------------------------------------
1. Berikan penjelasan tentang konsep Object Oriented dalam pengembangan software, mengapa pada saat ini metode yang digunakan menggunakan konsep object oriented, kenapa tidak menggunakan konsep terstruktur ?. Jawab : Paradigma pemrograman adalah pandangan mendasar terkait tentang formulasi sebuah solusi dalam bahasa pemrograman. Paradigma pemrograman menjelaskan tentang perspektif / pandangan pemrogram tentang program yang akan dibuatnya. Saat ini terdapat dua jenis paradigma pemrograman yaitu pemrogram berbasis object (OOP) dan pemrograman terstruktur. Dari kedua jenis paradigm ini yang sering digunakan saat ini adalah pemrograman berbasis object. Model data berorientasi objek dapat dikatakan memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat. Pemrograman terstruktur adalah suatu proses untuk mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dalam bentuk program. Paradigma ini pertama kali diungkapkan oleh Professor Edsger Djikstra dari Universitas Eindhoven sekitar tahun 1965. Prinsip dari pemrograman terstruktur adalah bahwa Apabila kita sudah sampai pada langkah tertentu, kita tidak boleh mengeksekusi langkah sebelumnya. Hal ini dikecualikan pada langkah-langkah untuk proses berulang. Sedangkan pemrograman berbasis obyek (OOP) mendasarkan pada konsep object dan interaksinya. Pada jenis paradigm ini, program bukan urut-urutan instruksi tapi diselesaikan oleh obyek-obyek yang bekerjasama untuk menyelesaikan masalah. Object Oriented sebagai tool untuk memodelkan sistem di dunia nyata (tujuan bahasa Simula-67) setiap sistem selalu dapat digambarkan melalui object-object penyusunnya dan bagaimana object-object tersebut saling berinteraksi. Tujuan Pemrograman Terstruktur Tujuan dari pemrograman terstruktur dapat diuraikan sebagai berikut : a. Untuk meningkatkan kualitas dan kehandalan program b. Untuk memudahkan pemahaman terhadap isi program c. Untuk menyederhanakan program d. Untuk maintenance (pemeliharaan) program e. Untuk meningkatkan produktifitas program Sifat-sifat Pemrograman Terstruktur Sifat-sifat dari pemrograman terstruktur dapat diuraikan sebagai berikut : a. Memuat teknik pemecahan masalah yang logis dan sistematis b. Memuat algoritma yang efisien, efektif dan sederhana c. Program disusun dengan logika yang mudah dipahami
1
d. e. f. g.
Tidak menggunakan perintah GOTO Biaya pengujian program relatif rendah Memiliki dokumentasi yang baik Biaya perawatan dan dokumentasi yang dbuthkan relatif rendah
Terdapat beberapa langkah pemrograman terstruktur yaitu : identifikasi masalah, analisis kebutuhan pengguna, penyusunan dan disain algoritma, coding, penyusunan program, evaluasi error, dokumentasi, dan pemeliharaan program. Identifikasi masalah dilakukan untuk memperoleh pemahaman mengenai permasalahan yang ada. Melalui pemahaman ini diharapkan dapat ditemukan solusi optimal dalam memecahkan permasalahan tersebut. Analisis kebutuhan dalam hal ini adalah menentukan spesifikasi fungsi dan fasilitas yang akan diimplementasikan pada program. Analisis kebutuhan pengguna sangat penting dilakukan karena program sepenuhnya disusun untuk memberikan solusi permasalahan pengguna. Analisis kebutuhan dilakukan untuk mengetahui siapa yang akan menggunakan program, apa saja yang akan ditampilkan dan lain-lain. Coding adalah penerjemahan algoritma kedalam kode program. Bahasa pemrograman merupakan jembatan yang menghubungkan manusia dengan komputer. Testing merupakan tahap yang paling penting dalam penyusunan program. Pada tahap ini diharapkan tidak terdapat error sehingga program tidak dapat digunakan, dan permasalahan tidak terpecahkan. Dokumentasi merupakan informasi tambahan untuk lenih memahami kode-kode yang disusun. Berbeda dengan OOP. Suatu program disebut dengan pemrograman berbasis obyek (OOP) karena terdapat : – Encapsulation (pembungkusan); Encapsulation adalah mekanisme pemrograman yang membungkus kode dan data yang dimanipulasi dan menjaganya supaya terhindar dari interferensi dan penggunaan yang tidak perlu. Salah satu caranya dengan membentuk objek. – Inheritance (pewarisan); Inheritance memungkinkan programer meletakkan member yang sama dalam satu class dan class-class lain dapat mewarisi member tersebut. Class yang mengandung member yang sama dari beberapa class lain dinamakan superclass atau parent class. Class yang mewarisi dinamakan subclass atau child class. Inheritance menghasilkan class hierarchy. – Polymorphism (polimorfisme-perbedaan bentuk); Polymorphisme artinya mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic, bila objek-objek itu mempunyai antar muka yang identik namun mempunyai perilaku-perilaku yang berbeda Kelebihan Object Oriented Sebagai Model Representasi • Natural: mengikuti cara berpikir manusia (manusia memandang dunianya sebagai kumpulan object yang berinteraksi) • Abstraksi: menjelaskan makna sebuah entitas secara cepat dan mudah • Enkapsulasi: dapat menyembunyikan detil yang tidak perlu • Modular: object adalah entitas yang independen Beda nyata antara prosedural dan OOP • Prosedural Fokus pada bagaimana cara komputer menangani masalah • OOP Fokus pada masalah yang ditangani dengan menggunakan computer Tetapi, tidak ada jawaban yang benar-benar tepat jika kita diberi pertanyaan: apakah sebaiknya menggunakan OOP atau Procedural Programming? Karena jawabannya sangat relatif, terutama tergantung pada aplikasi yang ingin dibuat. Jika mempertimbangkan pemeliharaan dan pengembangan aplikasi yang efisien di masa yang akan datang, mungkin dapat memilih pendekatan OOP. Tetapi, jika aplikasi tersebut merupakan program sederhana yang dapat dibuat dengan mudah dan cepat dengan function/procedure, maka digunakan pendekatan
2
Procedural Programming. Pada pemrograman terstruktur, jika ingin membuat perubahan maka harus diubah dari awal karena ada yang namanya variable global dan variable local. Hal itu juga dapat menimbulkan kesulitan dalam mencari error. Semua itu juga tergantung pada kita sebagai programer, untuk memilih pendekatan yang cocok dan lebih baik bagi kita dalam mengerjakan sebuah aplikasi. Sehingga perbandingan antara OOP dengan Procedural Programming, keduanya memiliki struktur yang baik untuk membuat sebuah aplikasi, di mana OOP menekankan pada penggunaan object sementara Procedural Programming menekankan pada penggunaan function/procedure. Kita dapat melihat persamaannya, yaitu diperlukan kemampuan untuk menuliskan kode program secara terstruktur dan rapi, yang sangat penting untuk pembuatan aplikasi yang membutuhkan team work yang baik, ataupun untuk pengembangan aplikasi di masa yang akan datang.
2. Berikan penjelasan tentang salah satu Model Siklus Hidup dalam pengembangan Software dari beberapa siklus hidup pengembangan yang Saudara ketahui ?. Jawab : Software Engineering (SE) terdiri dari 3 elemen kunci, yaitu : 1. Metode Metode ini terdiri dari serangkaian tugas : • Perencanaan & estimasi proyek • Analisis kebutuhan sistem dan software • Desain struktur data • Arsitektur program dan prosedur algoritma • Coding, Testing dan pemeliharaan 2. Peralatan (Tools) Peralatan software engineering memberikan dukungan atau semiautomasi untuk metode. Contohnya : • CASE yaitu suatu software yang menggabungkan software, hardware, dan database software engineering untuk menghasilkan suatu lingkungan software engineering. • Database Software Engineering, adalah sebuah struktur data yang berisi informasi penting tentang analisis, desain, kode dan testing. • Analogi dengan CASE pada hardware adalah : CAD, CAM, CAE 3. Prosedur, terdiri dari : • urut-urutan di mana metode tersebut diterapkan • dokumen, laporan-laporan, formulir-formulir yang diperlukan • mengontrol kualitas software • mengkoordinasi perubahan yang terjadi pada software Salah satu Model Siklus Hidup dalam pengembangan Software (Perangkat Lunak) : 1. Model Waterfall - Classic Life Cycle Paradigm
3
Keterangan : a. System Engineering Karena software merupakan bagian terbesar dari sistem, maka pekerjaan dimulai dengan cara menerapkan kebutuhan semua elemen sistem dan mengalokasikan sebagian kebutuhan tersebut ke software. Pandangan terhadap sistem adalah penting, terutama pada saat software harus berhubungan dengan elemen lain, seperti Hardware, Software, dan Database. b. Analisis kebutuhan software Suatu proses pengumpulan kebutuhan software untuk mengerti sifat-sifat program yang dibentuk software engineering, atau analis harus mengerti fungsi software yang diinginkan, performance dan interface terhadap elemen lainnya. Hasil dari analisis ini didokumentasikan dan direview / dibahas / ditinjau bersama-sama customer. c. Design Proses desain menterjemahkan kebutuhan ke dalam representasi software yang dapat diukur kualitasnya sebelum mulai coding. Hasil dari desain ini didokumentasikan dan menjadi bagian dari konfigurasi software. d. Coding Bentuk rancangan diubah menjadi suatu bahasa pemrograman yang dapat dimengerti oleh mesin komputer. e. Testing Segera sesudah objek program dihasilkan, pengetesan program dimulai. Proses testing difokuskan pada logika internal software. Jaminan bahwa semua pernyataan atau statements sudah dites dan lingkungan external menjamin bahwa definisi input akan menghasilkan output yang diinginkan. f.
Maintenance Software yang sudah dikirim ke customer data berubah karena • Software mengalami error • Software harus diadaptasi untuk menyesuaikan dengan lingkungan external, misalnya adanya sistem operasi baru atau peripheral baru. • Software yang lebih disempurnakan karena adanya permintaan dari customer.
Masalah yang dihadapi dari model siklus hidup klasik adalah : • Proyek yang sebenarnya jarang mengikuti aliran sequential yang ditawarkan model ini. Iterasi (Pengulangan) selalu terjadi dan menimbulkan masalah pada aplikasi yang dibentuk oleh model ini. • Seringkali pada awalnya customer sulit menentukan semua kebutuhan secara explisit (jelas). • Customer harus sabar karena versi program yang jalan tidak akan tersedia sampai proyek software selesai dalam waktu yang lama.
4
3. Berikan penjelasan tentang konsep UML (Unified Modeling Language), jelaskan 9 (sembilan) Diagram yang ada pada UML ?. Jawab : Konsep UML (Unified Modeling Language) adalah pertama, scalability dimana objek lebih mudah dipakai untuk menggambarkan sistem yang besar dan komplek. Kedua, dynamic modeling, dapat dipakai untuk pemodelan sistem dinamis dan real time. UML (Unified Modeling Language) adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (Object-Oriented). UML sendiri juga memberikan standar penulisan sebuah system blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponen-komponen yang diperlukan dalam sistem software (http://www.omg.org). Pendekatan analisa & rancangan dengan menggunakan model OO mulai diperkenalkan sekitar pertengahan 1970 hingga akhir 1980 dikarenakan pada saat itu aplikasi software sudah meningkat dan mulai komplek. Jumlah yang menggunakaan metoda OO mulai diuji cobakandan diaplikasikan antara 1989 hingga 1994, seperti halnya oleh Grady Booch dari Rational Software Co., dikenal dengan OOSE (Object-Oriented Software Engineering), serta James Rumbaugh dari General Electric, dikenal dengan OMT (Object Modelling Technique). Kelemahan saat itu disadari oleh Booch maupun Rumbaugh adalah tidak adanya standar penggunaan model yang berbasis OO, ketika mereka bertemu ditemani rekan lainnya Ivar Jacobson dari Objectory mulai mendiskusikan untuk mengadopsi masing-masing pendekatan metoda OO untuk membuat suatu model bahasa yang uniform / seragam yang disebut UML (Unified Modeling Language) dan dapat digunakan oleh seluruh dunia. UML (Unified Modeling Language) sebagai sebuah bahasa yang memberikan vocabulary dan tatanan penulisan kata-kata dalam ‘MS Word’ untuk kegunaan komunikasi. Sebuah bahasa model adalah sebuah bahasa yang mempunyai vocabulary dan konsep tatanan / aturan penulisan serta secara fisik mempresentasikan dari sebuah sistem. Seperti halnya UML adalah sebuah bahasa standard untuk pengembangan sebuah software yang dapat menyampaikan bagaimana membuat dan membentuk model-model, tetapi tidak menyampaikan apa dan kapan model yang seharusnya dibuat yang merupakan salah satu proses implementasi pengembangan software. UML tidak hanya merupakan sebuah bahasa pemograman visual saja, namun juga dapat secara langsung dihubungkan ke berbagai bahasa pemograman, seperti JAVA, C++, Visual Basic, atau bahkan dihubungkan secara langsung ke dalam sebuah object-oriented database. Begitu juga mengenai pendokumentasian dapat dilakukan seperti; requirements, arsitektur, design, source code, project plan, tests, dan prototypes. 9 (sembilan) diagram yang ada pada UML : • use-case, • class • object • state • sequence • collaboration • activity • component • deployment diagram
5
4. Dari rancangan database yang terbentuk dari ujian Intro Database yang sesuai dengan ruang lingkup system yang dikembangkan. Sebagai seorang analis sistem, Anda diminta untuk: a. Membuat diagram use-case dari sistem yang dikembangkan tersebut. Anda diminta melakukan beberapa asumsi, termasuk aktor atau peran yang terlibat dalam use-case. b. Buatlah diagram sequence untuk paling sedikit 2 (dua) proses yang terlibat dalam sistem tersebut. Jawab : Toko Bandung Collection Mataram adalah toko yang begerak di bidang fashion masa kini.barang-barang yang dijual di toko ini berupa baju, celana dan yang berhubungan dengan style zaman sekarang. Kegiatan yang dilakukan dalam system penjualan si toko fashion Bandung Collection Mataram ini antara lain : 1. pelanggan datang langsung ke toko untuk membeli barang secara cash dan dapat membawa pulang langsung barangnya. 2. kemudian pelanggan mendapat nota dari penjual. Barang yang sudah dicatat pada nota mempunyai asumsi barang ada di stock. Use case diagram :
Activity diagram :
6
Swimlane diagram :
Class diagram analisa :
-- ooOoo --
7