Rabu, 23 November 2022

Materi Pertemuan 10 Rekayasa Perangkat Lunak

1. PENDAHULUAN

  • Perancangan arsitektur merupakan tahap pertama dalam proses perancangan PL, yang dimulai dengan perancangan data kemudian berlanjut pada penurunan satu atau lebih struktur arsitektural sistem. 
  • Arsitektur sistem/PL adalah struktur sistem/PL yang menggabungkan komponen PL, menggabungkan properti yang tampak dari komponen tersebut, dan mendeskripsikan hubungan antar komponen. 
  • Output dari perancangan arsitektur berupa model arsitektur yang menggambarkan bagaimana sistem diatur sebagai satu set komponen yang saling berkomunikasi

2. ARSITEKTUR PL

Arsitektur mencakup : 

  • Komponen bangunan yang berbeda dapat diintegrasikan menjadi suatu bentuk keseluruhan yang bersifat kohesif 
  • Bangunan yang dibuat sesuai dengan lingkungannya 
  • Bangunan yang dibangun sesuai dengan kegunaannya 
  • Tekstur, warna dan material pembentuknya dikombinasikan untuk membuat tampilan yang bagus 
  • Perancangan pencahayaan, template, dan garis batas 
  • Merupakan suatu bentuk seni

Arsitektur PL merupakan representasi yang memungkinkan untuk :

  1. Melakukan analisis terhadap efektivitas perancangan dan disesuaikan dengan kebutuhan yang dinyatakan sebelumnya 
  2. Melakukan pertimbangan alternatif arsitektural pada tahap dimana perubahan rancangan dapat dilakukan dengan cara yang relatif mudah 
  3. Mengurangi risiko yang berhubungan dengan konstruksi PL . 

Alasan arsitektur PL : 

  • Representasi arsitektur PL adalah sesuatu yang memungkinkan terjadinya komunikasi di antara semua pihak yang tertarik pada pengembangan sistem berbasis komputer 
  • Arsitektur yang dibuat di awal perancangan akan memiliki efek yang menentukan pada semua pekerjaan RPL selanjutnya 
  • Arsitektur menggambarkan model yang relatif kecil dan mudah dipahami, dan menggambarkan bagaimana sistem distrukturkan dan bagaimana komponen di dalamnya saling bekerja sama. 

A. Deskripsi Arsitektural

Sasaran dari deskripsi arsitektural :
  • Untuk menetapkan kerangka kerja konseptual dan kosa kata yang digunakan selama perancangan arsitektur PL 
  • Untuk menyediakan panduan yang rinci pada waktu merepresentasikan deskripsi arsitektural 
  • Untuk memandu praktek perancangan yang baik 

B. Keputusan Arsitektural

Pola Deskripsi Keputusan Arsitektur
  • Permasalahan Perancangan : Deskripsikan permasalahan perancangan arsitektural yang akan diselesaikan. 
  • Penyelesaian : Menentukan pendekatan yang dipilih untuk menyelesaikan permasalahan yang bekaitan dengan perancangan 
  • Kategori : Spesifikasi kategori perancangan yang akan diselesaikan permasalahannya, seperti perancangan data, struktur isi dan komponen, integrasi, presentasi 
  • Asumsi-asumsi : Indikasikan asumsi saat menentukan keputusan. Misalnya standar teknologi, pola yang tersedia, permasalahan yang berkaitan dengan sistem/PL 
  • Alternatif-alternatif : Secara singkat deskripsikan alternatif yang akan dipertimbangkan dan mengapa ditolak 
  • Argumen : Jelaskan mengapa memilih penyelesaian di atas dan alternatif-alternatif lainnya
  • Keputusan yang berhubungan : Keputusan terdokumentasi yang berhubungan dengan keputusan yang diambil 
  • Implikasi : Indikasikan konsekuensi perancangan akibat penentuan keputusan. Apakah penyelesaian akan berakibat pada perancangan lainnya? 
  • Perhatian yang berhubungan : Adakah kebutuhan lain yang berhubungan dengan keputusan yang diambil? 
  • Produk kerja : Indikasikan dimana keputusan yang diambil akan tercermin dalam deskripsi arsitektur 
  • Catatan : Rujukan catatan tim lainnya yang sebelumnya telah digunakan untuk membuat keputusan  

Beberapa pertimbangan dalam keputusan Arsitektur :

  1. Adakah arsitektur aplikasi generik yang dapat bertindak sebagai template untuk sistem yang sedang dirancang ? 
  2. Bagaimana sistem akan didistribusikan ke sejumlah perangkat keras ? 
  3. Pola atau gaya arsitektur apa yang digunakan ? 
  4. Pendekatan fundamental apa yang digunakan untuk menyusun sistem ? 
  5. Bagaimana komponen struktural dalam sistem akan terdekomposisi menjadi sub-komponen ? 
  6. Strategi yang akan digunakan untuk mengontrol pengoperasian komponen dalam sistem 
  7. Organisasi arsitektur apa yang terbaik untuk memberikan persyaratan sistem non-fungsional ? 
  8. Bagaimana desain arsitektur akan dievaluasi ? 
  9. Bagaimana arsitektur sistem didokumentasikan ? 

3. TAMPILAN ARSITEKTURAL

  1. Tampilan Logis : Abstraksi dalam sistem sebagai objek atau kelas objek. 
  2. Tampilan Proses : Menunjukkan bagaimana (pada saat run-time) sistem terdiri dari proses yang saling berinteraksi. 
  3. Tampilan Pengembangan : PL diuraikan untuk pengembangan, yaitu menunjukkan detail dalam komponen yang akan diimplementasikan oleh pengembang tunggal atau tim pengembang.
  4. Tampilan Fisik : Menunjukkan perangkat keras sistem dan bagaimana komponen PL didistribusikan di seluruh sistem. 

4. GAYA ARSITEKTUR 

Gaya arsitektur mendeskripsikan kategori sistem yang mencakup : 
  • Kumpulan komponen, seperti sistem basis data dan modul-modul yang melaksanakan fungsi tertentu yang diperlukan oleh sistem 
  • Penghubung (konektor) yang memungkinkan komunikasi, koordinasi, dan kerja antar komponen 
  • Batasan yang mendefinisikan bagaiman komponen dapat iintegrasikan untuk membentuk suatu sistem/PL 
  • Model semantik yang memungkinkan perancang sistem memahami properti keseluruhan sistem 

Gaya dan Struktur Arsitektur (Persyaratan Non-Fungsional) 
  1. Kinerja (Performance) : Arsitektur harus dirancang agar semua komponen dapat digunakan pada berbagai komputer/prosesor, dan mendistribusikan di seluruh jaringan. 
  2. Keamanan (Security) : Menggunakan struktur berlapis untuk melindungi aset yang paling penting di lapisan terdalam, dengan tingkat validasi keamanan yang tinggi. 
  3. Keamanan (Safety) : Operasi yang terkait dengan keselamatan terletak di salah satu komponen tunggal atau komponen kecil. 
  4. Ketersediaan (Availability) : Arsitektur harus dirancang untuk menyertakan komponen redundan sehingga dimungkinkan saat mengganti dan memperbarui komponen tanpa menghentikan sistem. 
  5. Pemeliharaan (Maintainability) : Arsitektur sistem harus dirancang menggunakan komponen mandiri yang dapat diubah dengan mudah. Struktur data bersama harus dihindari. 
Struktur Dasar Arsitektur :
  • Arsitektur PL merepresentasikan suatu struktur dimana beberapa kumpulan entitas (komponen) dihubungkan dengan sejumlah relasi (konektor). 
  • Komponen dan konektor dihubungkan dengan properti yang dapat membedakan jenis komponen dan konektor yang digunakan. Struktur Fungsional 
a. Struktur Fungsional :
  • Komponen merepresentasikan fungsi atau entitas. 
  • Konektor merepresentasikan antarmuka untuk melewatkan data ke suatu komponen.
  • Properti mendefinisikan sifat dari komponen dan mengorganisasikan antarmuka. 
b. Struktur Implementasi :
  • Komponen berbentuk paket, kelas, objek, prosedur, fungsi, metode, dll, yang merupakan sarana untuk mengemas fungsionalitas komponen pada berbagai peringkat abstraksi. 
  • Konektor meliputi kemampuan untuk melewatkan data dan kendali, berbagi data, menggunakan, dan menginstansiasi. 
  • Properti pada komponen fokus pada karakteristik kualitas, seperti kemampuan untuk maintenance dan reuse yang dihasilkan saat struktur diimplementasikan. 
c. Struktur Konkurensi : 
  • Komponen merepresentasikan unit-unit konkurensi yang terorganisasi sebagai pekerjaan paralel (thread). 
  • Konektor mencakup sinkronisasi, prioritas, mengirim data, dan menjalankan proses/fungsi. 
  • Properti mencakup prioritas, kemampuan untuk meramalkan, dan waktu eksekusi. 
d. Struktur Fisik :
  • Komponen merupakan perangkat keras fisik. 
  • Konektor merupakan antarmuka antar komponen perangkat keras. 
  • Properti berkaitan dengan kapasitas, bandwidth, kinerja, dan atribut lainnya. 
 e. Struktur Pengembangan :
  • Mendefinisikan komponen, produk kerja, dan sumber informasi lainnya. 
  • Konektor merepresentasikan relasi antar produk kerja. 
  • Properti mengidentifikasi karakteristik tiap-tiap item. 



5. POLA ARSITEKTUR (Architectural Patterns)



A. Lapisan Arsitektur (Layered Architecture)

  • Pemahaman tentang pemisahan dan independensi sangat penting untuk desain arsitektur karena memungkinkan perubahan secara lokal. 
  • Menambahkan tampilan baru atau mengubah tampilan yang ada dapat dilakukan tanpa perubahan apa pun pada data dalam model. 
Gambar Generik Arsitektur Lapisan :

Pola Arsitektur Berlapis :


Contoh arsitektur lapisan, dengan lapisan bawah menjadi basis data individual di setiap pustaka pada Sistem Perpustakaan :


B. Arsitektur Repositori (Repository Architecture) 

  • Bagaimana satu set komponen yang saling berinteraksi dapat berbagi data.
  • Model ini cocok untuk aplikasi di mana data dihasilkan oleh satu komponen dan digunakan oleh yang lain 
  • Tidak perlu mentransmisikan data secara eksplisit dari satu komponen ke komponen lainnya. Tetapi komponen harus beroperasi di sekitar model data repositori yang disepakati. 
  • Pola repositori berkaitan dengan struktur statis dari suatu sistem dan tidak menunjukkan organisasi run-time. 
Repositori Arsitektur :



Contoh repositori arsitektur untuk sebuah IDE :



Menunjukkan IDE yang mencakup alat yang berbeda untuk mendukung pengembangan berbasis model. Repositori dalam kasus ini adalah lingkungan yang dikendalikan oleh versi yang melacak perubahan pada PL dan memungkinkan rollback ke versi sebelumnya. 

C. Client–Server Architecture

  • Sebuah sistem yang mengikuti pola client-server diatur sebagai satu set layanan server, dan client yang mengakses dan menggunakan layanan. 
  • Komponen utama dari model ini adalah :
  1. Server memberikan layanan ke komponen lain. Contoh: server menawarkan layanan pencetakan, server file yang menawarkan layanan manajemen file, dan server kompilasi yang menawarkan layanan kompilasi bahasa pemrograman. 
  2. Client yang menggunakan layanan yang ditawarkan oleh server. 
  3. Jaringan yang memungkinkan client untuk mengakses layanan. 
  • Arsitektur client-server dianggap sebagai arsitektur sistem terdistribusi, tetapi model logis dari layanan independen yang berjalan pada server terpisah dapat diimplementasikan pada satu komputer.
  • Penggunaan yang efektif dapat dilakukan dari sistem jaringan dengan banyak prosesor terdistribusi.
  • Sangat mudah untuk menambahkan server baru dan mengintegrasikannya dengan seluruh sistem atau meng-upgrade server secara transparan tanpa mempengaruhi bagian lain dari sistem. 

Arsitektur Client-Server :


Contoh sistem perpustakaan film/video :


  • Dalam sistem ini, beberapa server mengelola dan menampilkan berbagai jenis media. 
  • Server video dapat menangani kompresi dan dekompresi video dalam berbagai format.
  • Katalog harus dapat menangani pertanyaan dan menyediakan tautan ke dalam sistem informasi web yang mencakup data tentang film dan klip video, dan e-commerce mendukung penjualan foto, film, klip video. 

D. Pipe and Filter Architecture 

  • Model dari sistem run-time di mana transformasi secara fungsional memproses input dan menghasilkan output. 
  • Aliran data bergerak secara berurutan (seperti dalam pipa). 
  • Setiap langkah pemrosesan diimplementasikan sebagai transformasi. 
  • Transformasi dapat dilakukan secara berurutan/paralel. 
  • Data diproses oleh transformasi per-item-nya atau dalam satu batch.
  • Pipe digunakan untuk melewati aliran teks dari satu proses ke proses lainnya.
  • Filter digunakan pada transformasi untuk menyaring data
Pipe and Filter Architecture :


Contoh pada sistem untuk memproses faktur :


Suatu organisasi telah menerbitkan faktur kepada pelanggan. Seminggu sekali, pembayaran yang telah dilakukan direkonsiliasi dengan faktur. Untuk faktur yang telah dibayarkan, diberikan tanda terima. Untuk faktur yang belum dibayar dalam waktu pembayaran yang ditentukan, diberikan pesan untuk mengingatkan .


6. ARSITEKTUR APLIKASI

  • Sistem aplikasi dimaksudkan untuk memenuhi kebutuhan bisnis yang memiliki banyak kesamaan dan menggunakan aplikasi tertentu. 
  • Arsitektur aplikasi dapat diimplementasikan kembali ketika mengembangkan sistem baru, tetapi untuk banyak sistem bisnis, penggunaan kembali aplikasi dimungkinkan tanpa implementasi ulang 

A. Sistem Pemrosesan Transaksi (Transaction Processing Systems)

  • Aplikasi pemrosesan transaksi adalah aplikasi yang berpusat pada database yang memproses permintaan pengguna untuk informasi dan memperbarui informasi dalam basis data. 
  • Merupakan jenis sistem bisnis interaktif yang paling umum, di mana pengguna membuat permintaan asynchronous untuk layanan 
  • Transaksi basis data adalah urutan operasi yang diperlakukan sebagai unit tunggal, dan semua operasi dalam transaksi harus diselesaikan sebelum perubahan basis data dibuat permanen.  
  • Dari perspektif pengguna, transaksi adalah setiap urutan operasi yang koheren yang memenuhi tujuan, seperti menemukan jadwal perkuliahan. 
  • Sistem pemrosesan transaksi dapat diatur sebagai arsitektur 'pipe and filter' dengan komponen sistem sebagai input, pemrosesan, dan output. 
  • Misal: pelanggan menarik uang tunai dari ATM. Sistem ini terdiri dari dua komponen PL ATM dan PL pemrosesan akun di server basis data bank. Komponen I/O diimplementasikan sebagai PL di ATM dan komponen pemrosesan adalah bagian dari server database bank. 
Contoh Aplikasi Pemrosesan Transaksi :


Penjelasan :
  • Pengguna membuat permintaan ke sistem melalui komponen pemrosesan I / O. 
  • Permintaan diproses oleh beberapa aplikasi logika.
  • Transaksi dibuat dan diteruskan ke manajer transaksi, yang biasanya tertanam dalam sistem manajemen basis data.
  • Setelah manajer transaksi memastikan bahwa transaksi sudah diselesaikan dengan benar, kemudian memberi sinyal ke aplikasi bahwa proses telah selesai 

B. Sistem Informasi 

  • Semua sistem yang melibatkan interaksi dengan basis data dapat dianggap sebagai sistem informasi berbasis transaksi. 
  • Sistem informasi memungkinkan akses yang terkontrol ke basis informasi yang besar. Seperti katalog perpustakaan, jadwal penerbangan, atau catatan pasien di rumah sakit. 
  • Sebagai contoh dari instantiation model berlapis 
Contoh Sistem Informasi :

  • Sistem dimodelkan menggunakan pendekatan berlapis di mana lapisan atas mendukung antarmuka pengguna dan lapisan bawah adalah database sistem. 
  • Lapisan komunikasi pengguna menangani semua I/O dari antarmuka pengguna, dan lapisan pencarian informasi untuk mengakses dan memperbarui database 

C. Sistem Pemrosesan Bahasa (Language Processing Systems)

  •  Adalah sistem di mana maksud pengguna dinyatakan dalam bahasa formal (seperti Java). 
  • Memproses ke dalam bahasa formal, kemudian menafsirkan representasi secara internal. 
  • Sistem pemrosesan bahasa dengan compiler, yang menerjemahkan bahasa program tingkat tinggi ke dalam kode mesin. 
  • Sistem pemrosesan bahasa juga menerjemahkan bahasa alami atau buatan ke dalam representasi bahasa lain, dan bahasa pemrograman dapat mengeksekusi kode yang dihasilkan.
Contoh Sistem Pemrosesan Bahasa :





Rabu, 16 November 2022

Materi Pertemuan 9 Rekayasa Perangkat Lunak

1. PENDAHULUAN

  • Sistem berorientasi objek terdiri dari objek yang berinteraksi yang mempertahankan keadaan (state) lokal dan menyediakan operasi pada state tersebut.
  • Representasi state bersifat pribadi dan tidak dapat diakses langsung dari luar objek. 
  • Proses desain berorientasi objek melibatkan perancangan kelas objek dan hubungan antara kelas-kelas tersebut. 
  • Mengubah implementasi suatu objek atau menambahkan metode atau operasi tidak mempengaruhi objek lain dalam sistem.
  • Hal-hal yang diperhatikan dalam desain berorientasi objek :
  1. Memahami dan mendefinisikan konteks dan interaksi eksternal dengan sistem. 
  2. Desain arsitektur sistem. 
  3. Identifikasi objek utama dalam sistem. 
  4. Kembangkan model desain. 
  5. Tentukan antarmuka.
  • Desain berorientasi objek biasanya diimplementasikan dengan bahasa pemrograman berorientasi objek.
  • Keuntungan utama dari desain OO adalah :
  1. Sistem Analis dapat menghemat waktu dan menghindari kesalahan dengan menggunakan objek secara modular.
  2. Programer dapat menerjemahkan desain ke dalam kode. Objek yang baru dapat dibuat tanpa mengubah kode yang sudah ada. 
  3. Bekerja dengan modul program yang dapat digunakan kembali (reuse) yang telah diuji dan diverifikasi. 

A. Identifikasi Kelas Objek

Tujuan mengidentifikasi kelas objek dalam sistem berorientasi objek : 
  1. Gunakan analisis gramatikal dari deskripsi bahasa alami. Objek dan atribut adalah kata benda; operasi atau layanan adalah kata kerja. 
  2. Gunakan entitas nyata (benda) dalam domain aplikasi seperti mobil, peran seperti manajer atau dokter, acara seperti permintaan, interaksi seperti pertemuan, lokasi seperti kantor, unit organisasi seperti perusahaan. 
  3. Gunakan analisis berbasis skenario dimana berbagai skenario penggunaan sistem diidentifikasi dan dianalisis secara bergantian.

B. Istilah dalam Objek Oriented 

1. OBJEK (Object) 
  • Objek adalah konsep atau abstraksi tentang sesuatu yang memiliki arti untuk aplikasi yang akan dikembangkan.
  • Objek diwakili dengan kata benda.
  • Objek dapat berupa : 
            - Objek orang/manusia: Karyawan, Mahasiswa 
            - Objek tempat: Kantor, Gedung, Toko 
            - Objek abstrak: Transaksi, Jadwal, Peminjaman 
            - Objek organisasi: Divisi-IT, HRD 
            - Objek peralatan/benda: Mobil, Buku, Baju 

2. ATRIBUT (Attribute) 

  • Suatu objek memiliki atribut tertentu yang merupakan karakteristik yang menggambarkan objek. 
  • Suatu atribut dapat mengambil sebuah nilai yang ditentukan berdasarkan domain yang dihitung. 
  • Domain merupakan satu himpunan nilai-nilai spesifik. 
  • Contoh: kelas MOBIL memiliki sebuah atribut WARNA. Domain nilai untuk warna adalah {putih, hitam, perak, abu-abu, biru, merah, kuning, hijau}. 
  • Objek dapat memiliki atribut khusus yang disebut state. Keadaan suatu objek adalah kata sifat yang menggambarkan status objek saat ini.
  • Misalnya rekening bank dapat aktif, tidak aktif, tertutup, atau dibekukan.

3. METODE (Method) 

  • Suatu metode mendefinisikan tugas-tugas spesifik yang dapat dilakukan oleh suatu objek 
  • Metode dituliskan dengan kata kerja yang menggambarkan apa dan bagaimana suatu objek melakukan sesuatu. 
  • Misalnya: objek PELANGGAN dapat melakukan tugas-tugas tertentu seperti melakukan pemesanan, membayar tagihan, dan mengubah alamatnya. 

4. PESAN (Message) 

  • Pesan (Message) adalah perintah yang memberi tahu suatu objek untuk melakukan metode tertentu.
  • Misalnya: pesan TAMBAHKAN SISWA mengarahkan kelas SISWA untuk menambahkan nomor siswa, nama, dan data lain tentang siswa itu. Demikian pula, pesan bernama HAPUS SISWA memberi tahu kelas SISWA untuk menghapus instance Siswa.
  • Pesan yang sama untuk dua objek berbeda dapat menghasilkan hasil yang berbeda. 
Contoh pesan :

Objek INSTRUCTOR mengirim pesan ENTER GRADE ke instance kelas STUDENT RECORD. Objek INSTRUCTOR dan kelas STUDENT RECORD dapat digunakan kembali dengan sedikit modifikasi, di sistem informasi sekolah lain dimana banyak atribut dan metode akan serupa.

Contoh Pesan :

5. Kelas (Class)

  • Kelas adalah deskripsi umum yang menggambarkan sebuah kumpulan berisi objek-objek yang sama.
  • Semua objek dalam kelas berbagi atribut dan metode yang sama, sehingga kelas seperti blue print, atau template untuk semua objek di dalam kelas. 
  • Superclass adalah generalisasi dari satu himpunan kelas-kelas yang berhubungan.
  • Subclass adalah spesialisasi dari superclass. 
  • Contoh: superclass kendaraanBermotor adalah generalisasi dari kelas Truk, SUV, Minibus dan Car. Subclass Minibus mewarisi semua atribut kendaraanBermotor, tetapi juga menggabungkan atribut tambahan yang spesifik hanya untuk Minibus.
Contoh kelas dan subkelas :
 

C. Hubungan Antara Objek dan Kelas 

  • Hubungan (relationship) memungkinkan objek untuk berkomunikasi dan berinteraksi ketika mereka melakukan fungsi bisnis dan transaksi yang diperlukan oleh sistem.
  • Hubungan menggambarkan apa yang perlu diketahui objek satu sama lain, bagaimana objek merespon perubahan pada objek lain, dan efek keanggotaan dalam kelas, superclass, dan subclass. 
  • Beberapa hubungan lebih kuat daripada yang lain (seperti hubungan antara anggota keluarga lebih kuat dari satu hubungan antara kenalan biasa). Hubungan terkuat disebut warisan.

2. KARAKTERISTIK OBJEK


A. Enkapsulasi (Encapsulation)

  • Data dan prosedur/fungsi dikemas bersama-sama dalam suatu objek, sehingga prosedur/fungsi lain dari luar tidak dapat mengaksesnya.
  • Data terlindung dari prosedur atau objek lain kecuali prosedur yang berada dalam objek tersebut. 
  • Merupakan pembatasan ruang lingkup program terhadap data. 
  • Enkapsulasi memungkinkan objek untuk digunakan sebagai komponen modular di mana saja dalam sistem, karena objek mengirim dan menerima pesan tetapi tidak mengubah metode internal objek lain
 Contoh Enkapsulasi :


B. Pewarisan (Inheritance)

  • Pewarisan adalah salah satu pembeda utama antara
  • sistem konvensional dan sistem berbasis objek.
  • Subkelas Y mewarisi semua atribut dan operasi-operasi yang terkait dengan superkelas X. Ini berarti semua struktur dan algoritma data yang secara orisinal dirancang dan diimplementasikan untuk X segera tersedia untuk Y .
  • Perubahan apa pun pada atribut-atribut atau operasi-operasi yang dimuat ke dalam sebuah superkelas, akan diwarisi oleh semua subkelas. 
Contoh pewarisan : 

C. Polimorfis (Polymorphism) 

  • Merupakan konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku berbeda. 
  • Polimorfis juga mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda. 
  • Polimorfis sangat mengurangi usaha yang diperlukan untuk memperluas perancangan sistem berorientasi objek .
Contoh Polimorfis :

3. KELAS-KELAS PERANCANGAN


  • Model kebutuhan menentukan serangkaian kelas-kelas analisis yang masing-masing kelas menggambarkan beberapa elemen masalah yang fokus pada masalah yang dilihat oleh pengguna.
  • Himpunan kelas-kelas perancangan adalah :
  1. memperhalus kelas-kelas analisis dengan menyediakan detail perancangan yang memungkinkan kelas-kelas bisa diimplementasikan.
  2. menciptakan suatu himpunan kelas-kelas perancangan yang baru, yang mengimplementasikan suatu infrastruktur PL yang mendukung solusi bisnis. 
  • Kelas perancangan yang merepresentasikan lapisan berbeda dari perancangan arsitektur :
  1. Kelas-kelas antarmuka. Pengguna menentukan semua abstraksi yang diperlukan untuk interaksi manusia dengan komputer
  2. Kelas-kelas bisnis. Kelas-kelas mengidentifikasi atribut dan operasi/metode yang dibutuhkan untuk mengimplementasikan beberapa elemen ranah bisnis. 
  3. Kelas-kelas proses. Mengimplementasikan abstraksi bisnis yang levelnya lebih rendah untuk sepenuhnya mengelola kelas-kelas ranah bisnis. 
  4. Kelas-kelas persisten. Merepresentasikan data store yang akan terus ada setelah eksekusi PL.
  5. Kelas-kelas sistem. Mengimplementasikan manajemen PL dan mengendalikan fungsi-fungsi agar mampu mengoperasikan sistem dan berkomunikasi dengan dunia luar  

A. Karakteristik Kelas Perancangan

  • Lengkap dan cukup :
  1. Suatu kelas perancangan seharusnya menjadi enkapsulasi lengkap dari semua atribut dan metode yang dapat layak diharapkan. 
  2. Cukup berarti memastikan bahwa kelas perancangan berisi hanya metode-metode yang cukup untuk mencapai tujuan kelas. 
  3. Contoh: kelas Scene adalah lengkap hanya jika kelas ini berisi semua atribut dan metode yang dapat layak diasosiasikan dengan pembuatan suatu scene video. 
  •  Sederhana :
  1. Metode-metode yang dihubungkan dengan sebuah kelas perancangan harus fokus ke pencapaian satu fungsi spesifik pada kelas. 
  2. Contoh: kelas VideoClip memiliki atribut StartPoint dan EndPoint untuk mengindikasikan titik awal dan titik akhir.
  • Kohesi tinggi  :
  1. Kelas perancangan kohesif adalah single minded. Artinya kelas ini memiliki satu kumpulan kecil tanggung jawab yang fokus dan menerapkan atribut dan metode untuk menjalankan tanggung jawab tersebut. 
  2. Contoh: kelas VideoClip dapat berisi satu kumpulan metode-metode untuk mengedit klip video. Kohesi dijaga asalkan setiap metode fokus semata-mata pada atribut-atribut yang diasosiasikan dengan klip video.
  • Keterhubungan rendah :
  1. Jika sebuah model perancangan memiliki keterhubungan tinggi (semua kelas perancangan berkolaborasi dengan semua kelas perancangan lainnya), sistem menjadi sulit diimplementasikan, diuji, dan dipelihara. 
  2. Kelas perancangan pada subsistem memiliki hanya pengetahuan terbatas tentang kelas-kelas lain. 
  3. Pembatasan ini dinamakan Law of Demeter yang menyatakan bahwa suatu metode seharusnya hanya mengirim pesan ke metode-metode pada kelas-kelas yang berdekatan.

4. PENDEKATAN PEMROGRAMAN TERSTRUKTUR 



Karakteristik Pendekatan Berorientasi Prosedur/Fungsi : 
  1. Penekanan pada sesuatu yang harus dikerjakan (algoritma pemecahan masalah) 
  2. Program berukuran besar dipecah menjadi program-program yang lebih kecil 
  3. Kebanyakan fungsi/prosedur berbagi data global
  4. Data bergerak secara bebas dalam sistem dari satu fungsi ke fungsi yang lain yang terkait 
  5. Fungsi-fungsi mentransformasi data dari satu bentuk ke bentuk yang lain 
  6. Menggunakan pendekatan top-down 

Struktur Umum Pemrograman Terstruktur  :



Hubungan Data dan Fungsi pada Pemrograman Terstruktur  :



5. PENDEKATAN BERORIENTASI OBJEK



Karakteristik Pada Pendekatan Berorientasi Objek : 
  • Pendekatan lebih kepada data (bukan fungsi/prosedur) 
  • Program besar dibagi menjadi beberapa objek 
  • Struktur data dirancang dan menjadi karakteristik dari objek-objek 
  • Fungsi-fungsi yang mengoperasikan data tergabung dalam suatu objek yang sama 
  • Data tersembunyi dan terlindung dari fungs/prosedur yang ada di luar 
  • Objek-objek dapat saling berkomunikasi dengan saling mengirim message satu sama lain
  • Menggunakan pendekatan bottom-up 
Pengorganisasian Data dan Metode (Fungsi) pada Pendekatan Berorientasi Objek :



6. Perbedaan Pemrograman Terstruktur dengan Pendekatan Berorientasi Objek


A. PEMROGRAMAN TERSTRUKTUR

  • Permasalahan dilihat sebagai urutan sesuatu yang harus dikerjakan, seperti input – proses – output. 
  • Fokus utamanya pada fungsi atau prosedur 
  • Data global pada program yang sangat besar, sangat sulit untuk dilacak. Jika merevisi data global maka merevisi setiap fungsi yang menggunakan data global. 
  • Tidak menggambarkan kasus nyata dengan baik, karena fungsi-fungsi berorientasi pada aksi dan tidak berhubungan langsung dengan permasalahan. 
  • Kurang sempurna dalam menangkap kebutuhan reusable components, karena tidak ada standarisasi modul 

B. PENDEKATAN BERORIENTASI OBJEK 

  • Penekanan pada “apa” yang dapat dilakukan oleh objek 
  • Pendekatan lebih kepada data 
  • Perubahan pada struktur data internal tidak mempengaruhi struktur data objek yang lain
  • Penggunaan bersama untuk beberapa tingkat yang berbeda, seperti penggunaan bersama untuk disain dan kode 
  • Menggunakan pendekatan bottom-up 
  • Fungsi/prosedur berbagi data global


Tugas Pertemuan 15 Makalah EPTIK Intellectual Property/Infringements of Privacy

  TABEL PEMBAGIAN TUGAS Link File Makalah : https://drive.google.com/file/d/1Ar4m8Hqxsu2AfFKwqMjTbn10y8wAthrk/view?usp=drive_link ----------...