Jumat, 03 Desember 2021

Perancangan Aplikasi Web

 1. Langkah-langkah Web Design

1. Perancangan Isi
Dikembangkan selama tahapan analisis, dilakukan sebagai basis untuk penetapan objek-objek
2. Perancangan Estetika (Perancangan Grafis) Membuat tampilan yang akan dilihat oleh user
3. Perancangan Arsitektural
Fokus pada struktur hypermedia untuk semua objek isi dan untuk semua fungsi pada aplikasi web
4. Perancangan Antarmuka
Menentukan tampilan dan mekanisme interaksi yang mendefinisikan user interface
5. Perancangan Struktur Navigasi
Mendefinisikan bagaimana end user melakukan 
penelusuran untuk melintasi hypermedia
6. Perancangan Komponen
Merepresentasikan rincian struktur elemen-elemen fungsional aplikasi web.

2. Sifat-Sifat Aplikasi Web

a. Kepadatan jaringan
b. Keserempakan
c. Jumlah pengguna yang tidak dapat diprediksi
d. Kinerja
e. Ketersediaan
f. Digerakkan oleh data
g. Peka terhadap isi
h. Evolusi yang berkesinambungan
i. Kesegeraan
j. Keamanan
k. Estetika

3. Kualitas Perancangan Aplikasi Web

1. Keamanan
Kemampuan aplikasi web dan lingkungan server untuk mencegah akses yang tidak sah, dan mencegah serangan-serangan yang berasal dari luar.
2. Ketersediaan
Pengukuran atas persentase waktu yang tersedia bagi aplikasi web untuk dapat digunakan oleh user.
3. Skalabilitas
Aplikasi web mampu mengakomodasi kebutuhan terhadap jumlah end user yang semakin bertambah
4. Waktu untuk masuk ke pasar
Ditinjau dari sudut pandang bisnis

4. Kualitas Aplikasi Web

1. Kemudahan Penggunaan
a. Kemudahan pemahaman situs global
b. Umpan balik dari user dan fitur-fitur bantuan
c. User interface dan fitur-fitur estetika
d. Fitur-fitur khusus
2. Fungsionalitas
a. Kemampuan pencarian dan penerimaan
b. Fitur-fitur navigasi dan perambahan (browsing)
c. Fitur-fitur aplikasi yang berhubungan dengan 
lingkungan
3. Keandalan
a. Pembetulan pemrosesan tautan (link)
b. Pemulihan dari kesalahan
c. Validasi dan pemulihan pada user
4. Efisiensi
a. Kinerja waktu tanggap aplikasi web
b. Kecepatan pembentukan halaman-halaman
c. Kecepatan penggambaran grafik-grafik
5. Kemudahan Pemeliharaan
a. Kemudahan untuk dilakukan koreksi
b. Keamanan aplikasi web untuk beradaptasi
c. Kemudahan aplikasi web untuk dikembangkan

5. Perancangan Antarmuka

• Salah satu tantangan membuat user interface adalah bagaimana caranya user masuk ke aplikasi.
• Sasaran-sasaran user interface adalah untuk:
1. Menetapkan suatu jendela yang konsisten untuk meletakkan isi-isi dan fungsionalitas yang disediakan oleh user interface
2. Memandu user melalui serangkaian interaksi dengan aplikasi web yang dikembangkan
3. Mengorganisasikan pilihan-pilihan navigasi dan isi-isi yang dapat dilihat user yang dapat berupa menu navigasi, icon grafis, dan gambar-gambar grafis

6. Perancangan Estetika

Sering juga disebut Perancangan Grafis, yang merupakan tambahan artistik yang sering digunakan untuk melengkapi aspek-aspek teknis dari perancangan aplikasi web.
Tata letak yang baik pada perancangan interface:
1. Jangan mengisi bagian dari halaman web dengan informasi yang akhirnya sulit untuk mengidentifikasi informasi tersebut
2. Lakukan penekanan pada isi yang merupakan alasan utama bagi user untuk masuk ke aplikasi web
3. Lakukan pengelompokkan fitur navigasi, isi, dan fungsi
4. Jangan perluas bagian aplikasi dengan penggunaan scrollbar, sebaiknya kurangi isi yang jumlahnya banyak
5. Sesuaikan resolusi layar dan ukuran jendela browser

7. Perancangan Isi

• Hubungan objek isi dengan objek isi lainnya adalah sebagai bagian dari suatu model kebutuhan untuk aplikasi web.
• Permasalahan yang terjadi pada perancangan isi jika jumlah objek isi yang digabungkan untuk membentuk halaman web tunggal merupakan fungsi dari kebutuhan user, yang dibatasi oleh kecepatan pengunduhan koneksi ke internet, juga dibatasi oleh besarnya ukuran jendela monitor yang digunakan user.

8. Perancangan Arsitektural

• Perancangan arsitektur web terkait dengan sasaran untuk aplikasi web, terkait dengan isi yang akan ditampilkan, user, dan navigasi.
• Arsitektur isi pada umumnya fokus pada bagaimana objek-objek isi distrukturkan agar layak untuk dipresentasikan kepada user dan menarik untuk ditelusuri.
• Aplikasi web distrukturkan untuk dapat mengelola interaksi user dengan aplikasi web, bagaimana menangani pekerjaan proses internal, bagaimana melakukan pengaturan navigasi, serta bagaimana menampilkan isinya.

9. Implementasi Penting Desain Web

  • Tetap Sederhana : Ketika kita atau tim pengembang memiliki ide yang sederhana maupun ide dengan kompleksitas tinggi, kita harus dapat mempresentasikan kepetusan kita yang paling tepat untuk digunakan dalam aplikasi web yang dibangun. Semua pengguna harus dapat memahami berbagai hal di dalam aplikasi secara efektif.
  • Kemudahan Pemahaman untuk Setiap Elemen Desain dari Antarmuka Pengguna harus mudah untuk dimengerti oleh target pengguna. Kita harus mengupayakan bahwa pengguna tidak perlu bersusah payah dalam mengetahui tentang tombol, bahasa, alur, dll., dalam aplikasi web.
  • Kesamaan : Ketika seseorang mengunjungi aplikasi web kita untuk pertama kali, maka mereka dapat menghubungkan pengalaman mereka dengan penggunaan aplikasi web sebelumnya. Misalkan ikon “ß “ yang menunjukkan langkah untuk kembali ke halaman sebelumnya. Dengan mempertahankan kesamaan atau familier bagi pengguna, kita dapat mengurangi kurva pembelajaran dan dapat meningkatkan retensi pengguna serta keefektifan penggunaan, dll., dalam aplikasi web yang dijalankan.
  • Navigasi yang Sederhana : Semua pengguna yang menjalankan aplikasi web harus dapat dengan mudah menavigasi dari satu bagian ke bagian lain tanpa hambatan. Kita dapat mengintegrasikan menu atas, side-bar, sub-navigasi, dan lain sebagainya dalam memberikan navigasi yang sempurna dan penawaran UX yang efektif kepada pengguna.
  • Responsif Desain Aplikasi web yang dibangun harus dapat beradaptasi dengan ukuran layar berbagai perangkat (smartphone, tablet, desktop, dsb.) serta memberikan kegunaan dan pengalaman yang baik untuk pengguna.
  • Memiliki Konsistensi : Konsistensi desain dapat membantu pengguna dalam mengidentifikasi semua pola di aplikasi web. Dengan konsistensi yang sama pada setiap elemen UI pada halaman aplikasi web, pengguna mendapatkan desain UI yang benar dan dapat menggunakan aplikasi dengan lancar.
  • Estetik : Antarmuka Pengguna yang estetis dapat meninggalkan sebuah kesan dari merek yang telah dibuat pada aplikasi web kita kepada para pengguna atau pelanggan. Selain itu, pengguna atau pelanggan dapat menghabiskan waktu lebih banyak di aplikasi web. Dalam membuat UI yang estetis, komponen UI seperti tobol, ikon, warna, font, dll., harus diperhatikan secara menyeluruh oleh timp pengembang.
  • Efesiensi : Efisiensi memberikan tingkat kinerja pada aplikasi web yang telah dibangun dengan input yang lebih sedikit, tetapi memberikan output yang banyak bagi pengguna. Integrasi pintasan yang lebih baik yang dapat mengalir dari layar ke layar serta transisi yang efektif dapat meningkatkan tingkat keefesiensian aplikasi web. Tidak hanya itu dengan desain aplikasi web yang tepat dapat meningkatkan produktivitas pengguna serta membantu pengguna dalam mencapai berbagai tujuan dengan waktu dan usaha yang sedikit.
  • Kompatibilitas : Desain aplikasi web yang dirancang harus terlihat dan berkinerja pada ukuran layar, sistem operasi, dan websites yang berbeda.
  • Umpan Balik Pengguna : Pengguna cenderung tidak suka tinggal lama di aplikasi web, jika tidak memberikan umpan balik. Umpan balik secara instan dapat diberikan pada pengguna setiap kali mereka melakukan tindakan pada aplikasi web, misal seperti menampilkan sebuah ikon tertentu untuk setiap tindakan yang dilakukan oleh pengguna. Kita harus memaafkan pengguna jika suatu ketika pengguna melakukan beberapa kesalahan. Seperti jika pengguna ingin menghapus file, kita harus menawarkan suatu opsi untuk membatalkan dan mendapatkan kembali file tersebut.

Jumat, 26 November 2021

Desain Arsitektur

1. Konsep Desain Arsitektur

• 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 Perangkat Lunak

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.

3. Tampilan Arsitektur

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.

5. Pola Arsitektur

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.



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.


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.



• 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.


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.

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.

• 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.

Kamis, 18 November 2021

Perancangan Object Oriented


1. 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.

2. 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 :

3. 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.

4. 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 :

5. 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:
a. Kelas-kelas antarmuka. Pengguna menentukan semua 
abstraksi yang diperlukan untuk interaksi manusia dengan 
komputer
b. Kelas-kelas bisnis. Kelas-kelas mengidentifikasi atribut dan 
operasi/metode yang dibutuhkan untuk mengimplementasikan 
beberapa elemen ranah bisnis.
c. Kelas-kelas proses. Mengimplementasikan abstraksi bisnis 
yang levelnya lebih rendah untuk sepenuhnya mengelola 
kelas-kelas ranah bisnis.
d. Kelas-kelas persisten. Merepresentasikan data store yang 
akan terus ada setelah eksekusi PL.
e. Kelas-kelas sistem. Mengimplementasikan manajemen PL 
dan mengendalikan fungsi-fungsi agar mampu 
mengoperasikan sistem dan berkomunikasi dengan dunia luar.

A. Karakteristik Kelas Perancangan
a. Lengkap dan cukup
• Suatu kelas perancangan seharusnya menjadi 
enkapsulasi lengkap dari semua atribut dan metode 
yang dapat layak diharapkan.
• Cukup berarti memastikan bahwa kelas 
perancangan berisi hanya metode-metode yang 
cukup untuk mencapai tujuan kelas.
• Contoh: kelas Scene adalah lengkap hanya jika 
kelas ini berisi semua atribut dan metode yang dapat 
layak diasosiasikan dengan pembuatan suatu scene 
video.

b. Sederhana
• Metode-metode yang dihubungkan dengan sebuah
kelas perancangan harus fokus ke pencapaian satu
fungsi spesifik pada kelas.
• Contoh: kelas VideoClip memiliki atribut StartPoint
dan EndPoint untuk mengindikasikan titik awal dan
titik akhir.

c. Kohesi tinggi
• 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.
• 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.

d. Keterhubungan rendah
• Jika sebuah model perancangan memiliki 
keterhubungan tinggi (semua kelas perancangan 
berkolaborasi dengan semua kelas perancangan 
lainnya), sistem menjadi sulit diimplementasikan, 
diuji, dan dipelihara.
• Kelas perancangan pada subsistem memiliki hanya 
pengetahuan terbatas tentang kelas-kelas lain.
• Pembatasan ini dinamakan Law of Demeter yang 
menyatakan bahwa suatu metode seharusnya 
hanya mengirim pesan ke metode-metode pada 
kelas-kelas yang berdekatan.

6. Pendekatan Pemrograman Terstruktur

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

Struktur Umum Pemrograman Terstruktur :
Hubungan Data dan Fungsi pada Pemrograman Terstruktur :

7. 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 :

Senin, 20 September 2021

REKAYASA PERANGKAT LUNAK

REKAYASA PERANGKAT LUNAK



Perangkat Lunak
Definisi Perangkat Lunak adalah:
  • Instruksi-instruksi program komputer yang ketika di jalankan menyediakan fitur-fitur, fungsi-fungsi dan kinerja yang dikehendaki.
  • Struktur data yang memungkinkan program-program memanipulasi informasi.
  • Informasi deskriptif pada salinan tercetak dan bentuk-bentuk maya yang menggambarkan pengoperasian dan penggunaan program.

Karakteristik Perangkat Lunak
  • Perangkat Lunak dikembangkan atau direkayasa, bukan diproduksi dalam konteks manufaktur.
  • Perangkat Lunak tidak mengalami “kelelahan”.
  • Perangkat Lunak dibuat berdasarkan spesifikasi yang diminta oleh pengguna.

Kategori Perangkat Lunak
  1. Perangkat Lunak Sistem (System Software) ex. Sistem Operasi.
  2. Perangkat Lunak Aplikasi (Application Software) ex. Adobe Photoshop, Ms.Word, Open Office, Libra Office.
  3. Perangkat Lunak Rekayasa/Ilmiah (Engineering/Scientific Software) ex. Aplikasi kebutuhan astronomi, otomotif.
  4. Perangkat Lunak yang tertanam (Embedded Software) ex. Sistem Control lalu lintas.
  5. Perangkat Lunak Lini Produk (Product-Line Software) ex. Produk kendali inventaris.
  6. Perangkat Lunak Aplikasi Web (Web/Mobile Applications).
  7. Perangkat Lunak Kecerdasan Buatan (Artificial Intelligence Software).

Jenis Perangkat Lunak
  1. Stand-Alone Applications
  2. Interactive Transaction-Based Aapplications
  3. Batch Processing Systems
  4. Embedded Control Systems
  5. Entertainment Systems
  6. Systems for Modelling and Simulation
  7. Data Collection Systems
  8. Systems of Systems

Perangkat Lunak warisan
  • Perangkat Lunak warisan harus diadaptasikan sedemikian rupa sehingga memenuhi kebutuhan dari lingkungan atau teknologi komputasi yang baru.
  • Perangkat Lunak warisan harus ditingkatkan kinerjanya supaya dapat menjalankan kebutuhan bisnis baru.
  • Perangkat Lunak warisan harus diperluas sedemikian rupa agar dapat saling mengoperasikan dengan sistem/perangkat lunak/basis data modern lainnya.
  • Perangkat Lunak harus dirancang ulang sehingga dapat hidup dalam lingkungan pengoperasian jaringan komputer.

Kegagalan Perangkat Lunak
  1. Meningkatnya tuntutan
  2. Harapan yang rendah
  3. Data yang membingungkan atau menyesatkan
  4. Pengkodean / implementasi aturan bisnis yang salah
  5. Kinerja perangkat lunak yang tidak memadai

Rekayasa Perangkat lunak
Rekayasa perangkat lunak merupakan aplikasi dari suatu pendekatan yang semantik, disiplin, dan dapat di ukur pada pengembangan, operasi, dan perawatan perangkat lunak. Aspek produksi RPL berkaitan dengan proses teknis dari pengembangan PL, manajemen proyek PL dan pengembangan alat-alat, metode, dan teori untuk mendukung produksi PL.

Proses Perangkat lunak
Suatu proses merupakan sekumpulan aktivitas, aksi, dan tugas yang dijalankan ketika suatu produk kerja harus dibuat. Sebuah proses Perangkat Lunak adalah urutan kegiatan yang mengarah ke produksi produk software. Sebuah proses perangkat lunak adalah urutan kegiatan yang mengarah ke produksi produk software. kegiatan proses perangkat lunak ada empat yaitu: Spesifikasi PL, Pengembangan PL, Software validasi, dan Software evolusi.

Praktek Rekayasa Perangkat lunak
a. Memahami permasalahan
  • Siapa yang terkait dalam pemecahan masalah?
  • Apa saja yang tidak diketahui?
  • Data, fungsi, dan fitur yang dibutuhkan
  • Dapatkah masalah dikategorikan (dipecah menjadi masalah yang lebih kecil)?
  • Dapatkah masalah diwakili dengan grafis?
  • Dapatkah dibuat sebuah model analisis?
b. Merancang solusi
  • Pernahkah ada masalah serupa sebelumnya dan telah didapatkan pemecahan masalahnya
  • Dapatkah sub-masalah didefinisikan?
  • Dapatkah menyusun solusinya?
c. Menjalankan rancangan
  • Apakah solusi cocok dengan masalah?
  • Apakah kode program dapat dilacak secara langsung?
  • Apakah komponen dari solusi sudah tepat?
d. Memeriksa hasil
  • Uji setiap komponen dari solusi dengan menggunakan strategi pengujian
  • Apakah solusi sesuai dengan data, fungsi dan fitur yang dibutuhkan?

Mitos-Mitos Perangkat lunak
Mitos Manajemen
  • Mitos: Kita sudah memiliki buku yang standar dan prosedur untuk membangun Perangkat Lunak.
  • Realita: Apakah buku tersebut mencerminkan praktek RPL modern, lengkap, dan dapat beradaptasi dengan keadaan yang dihadapi saat ini?
Mitos Pelanggan
  • Mitos: Pernyataan tujuan umum sudah cukup untuk mulai menulis program, dan kita dapat membuat rinciannya nanti.
  • Realita: Pembuatan pernyataan kebutuhan yang komprehensif dan stabil tidak selalu di mungkinkan (tidak ambigu), tetapi perlu mengembangkan komunikasi yang efektif antara pengembang dan pelanggan.
Mitos Praktisi
  • Mitos: Ketika kita menulis kode program dan menjalakannya, maka pekerjaan dianggap sudah selesai.
  • Realita: Semakin cepat kita mulai menulis ‘kode program’, semakin lama waktu yang dibutuhkan untuk menyelesaikannya.

Jumat, 16 Oktober 2020

Topologi Jaringan Komputer (Resume)

Topologi Jaringan Komputer


Pengertian topologi jaringan komputer adalah suatu cara atau konsep untuk menghubungkan beberapa atau banyak komputer sekaligus menjadi suatu jaringan yang saling terkoneksi. Dan setiap macam topologi jaringan komputer akan berbeda dari segi kecepatan pengiriman data, biaya pembuatan, serta kemudahan dalam proses maintenance nya. Dan juga setiap jenis topologi jaringan komputer memiliki kelebihan serta kekurangannya masing-masing. ada banyak macam topologi seperti topologi ring, star, bus, mesh, dan tree yang akan dibahas di blog belajar komputer ini.


Macam-Macam Topologi Jaringan Komputer


1. Topologi Ring



Pada topologi ring setiap komputer di hubungkan dengan komputer lain dan seterusnya sampai kembali lagi ke komputer pertama, dan membentuk lingkaran sehingga disebut ring, topologi ini berkomunikasi menggunakan data token untuk mengontrol hak akses komputer untuk menerima data, misalnya komputer 1 akan mengirim file ke komputer 4, maka data akan melewati komputer 2 dan 3 sampai di terima oleh komputer 4, jadi sebuah komputer akan melanjutkan pengiriman data jika yang dituju bukan IP Address dia.


Kelebihan

  • Mudah dalam perancangan dan pembuatan

  • performa sinyal dan aliran data stabil, bahkan lebih baik dari topologi bus, meskipun mengalirkan data yang berat

  • Jika terjadi masalah, mudah untuk dilakukan konfigurasi ulang atau pemasang baru

  • Hemat dalam penggunaan kabel

  • Hemat dalam biaya


Kekurangan:

  • Jika ada satu komputer yang eror, maka keseluruhan jaringan juga akan ikut eror, solusinya adalah dengan penggunaan topologi ring ganda

  • Performa aliran lalu lintas data bergantung pada jumlah komputer pada jaringan tersebut


2. Topologi Bus



Topologi jaringan komputer bus tersusun rapi seperti antrian dan menggunakan cuma satu kabel coaxial dan setiap komputer terhubung ke kabel menggunakan konektor BNC, dan kedua ujung dari kabel coaxial harus diakhiri oleh terminator.


Kelebihan:

  • Lumayan sederhana

  • Apabila ingin menambah server baru lumayan mudah, karena pemasangan tidak memutus keseluruhan jaringan sehingga tidak mengganggu server yang lain

  • Hemat dalam penggunaan kabel dan biaya karena cuma menggunakan satu kabel utama


Kekurangan:

  • Bila kabel utama mengalami gangguan, maka semua jaringan juga mengalami gangguan

  • Jalur lalu lintas lumayan padat karena bolak-balik

  • Apabila jarak jauh diperlukan repeater

  • Susah melacak tempat trouble

  • Jika komputer banyak yang terhubung maka performa sinyal dan lalu lintas akan menurun


3. Topologi Star



Topologi ini membentuk seperti bintang karena semua komputer di hubungkan ke sebuah hub atau switch dengan kabel UTP, sehingga hub/switch lah pusat dari jaringan dan bertugas untuk mengontrol lalu lintas data, jadi jika komputer 1 ingin mengirim data ke komputer 4, data akan dikirim ke switch dan langsung di kirimkan ke komputer tujuan tanpa melewati komputer lain. Topologi jaringan komputer inilah yang paling banyak digunakan sekarang karena kelebihannya lebih banyak.


Kelebihan:

  • Tingkat keamanan tergolong tinggi

  • Mudahnya dalam penambahan komputer baru yang ingin disambungkan

  • Apabila ada yang eror mudah untuk dideteksi

  • Paling fleksibel diantara topologi jaringan yang lainnya

  • Kemudahan dalam mengontrol karena sistemnya yang terpusat


Kekurangan:

  • Apabila Hub/Switch rusak maka keseluruhan jaringan juga rusak

  • Lumayan boros dalam penggunaan kabel

  • Hub sangat sensitif, karena dia sebagai tempat central bagi jaringan

  • Tergantung spesifikasi Hubnya, apabila rendah maka performa sistem jaringan juga rendah

  • Biaya lebih mahal


4. Topologi Mesh



Pada topologi ini setiap komputer akan terhubung dengan komputer lain dalam jaringannya menggunakan kabel tunggal, jadi proses pengiriman data akan langsung mencapai komputer tujuan tanpa melalui komputer lain ataupun switch atau hub.


Kelebihan:

  • Arus lalu lintas data cepat diantara topologi jaringan yang lain karena memiliki jalur masing masing

  • Terjaminnya kapasitas channel komunikasi

  • Jika ada ganggguan pada satu koneksi jaringan, maka tidak mengganggu koneksi yang lain

  • Terjaminnya keamanan dan privasi karena akses langsung dapat dilakukan antara dua komputer tanpa melibatkan komputer yang lain

  • Kemudahan dalam mengidentifikasi titik trouble


Kekurangan:

  • Biaya yang dikeluarkan termasuk tinggi

  • Boros dalam pemakaian kabel karena semua komputer atau Workstation seminimal-minimalnya memiliki dua penghubung

  • Diperlukan ruangan yang lumayan besar dalam membangun jaringan komputer tersebut


5. Topologi Tree



Topologi jaringan komputer Tree merupakan gabungan dari beberapa topologi star yang dihubungan dengan topologi bus, jadi setiap topologi star akan terhubung ke topologi star lainnya menggunakan topologi bus, biasanya dalam topologi ini terdapat beberapa tingkatan jaringan, dan jaringan yang berada pada tingkat yang lebih tinggi dapat mengontrol jaringan yang berada pada tingkat yang lebih rendah.


Kelebihan:

  • Mudah untuk digunakan dalam jaringan yang luas

  • Apabila ada gangguan mudah untuk dideteksi

  • Kemudahan dan keunggulan dalam manajemen data

  • Kemudahan dalam pengelompokan workstation yang sejenis


Kekurangan:

  • Karena banyaknya sambungan maka lalu lintas bisa dibilang lambat

  • Apabila hub eror, maka komputer yang tersambung juga eror

  • Penggunaan biaya tergolong besar

  • Penggunaan kabel termasuk boros

  • Komputer tingkat tinggi eror maka komputer tingkat rendah juga eror

  • Lalu lintas dan sinyal tergolong lambat karena terbagi-bagi


6. Topologi Linier



Topologi linier bisa juga disebut dengan topologi bus yang beruntut. Kabel utama terhubung dengan dengan setiap komputer dengan penyambung T, lalu pada ujungnya dipasang terminator.


Untuk jenis sambungan yang digunakan adalah sambungan BNC (British Naval Connector).


Berikut 4 jenis penyambung yang terdapat pada topologi linier:


  1. BNC, penyambung ini berfungsi untuk mempertemukan kabel komputer ke sambungan T

  2. Sambungan T, berguna untuk mempertemukan kabel komputer dengan kabel utama

  3. Terminator, sebagai pengakhir dari topologi bus

  4. BNC Barrel konektor, Untuk menyambung 2 kabel BNC.


Maksimal komputer yang bisa disambungkan adalah 5-7 buah saja.


Kelebihan:

  • Mudah dalam pengembangannya

  • Hanya sedikit kabel yang digunakan

  • Tidak ada kendali pusat

  • Tata peletakan kabel lumayan sederhana

  • Terminator bisa dikurangi atau ditambah tanpa mengganggu lalu lintas data.


Kekurangan

  • Sangat susah dalam mendeteksi kesalahan yang terjadi

  • Lalu lintas data bisa terbilang padat

  • keamanan dan privasi kurang karena ada pihak ke tiga yang dilalui

  • Kecepatan lalu lintas data sesuai dengan jumlah workstationnya, apabila banyak maka akan menurun kecepatannnya



7. Topologi Hybrid



Topologi hibrid adalah topologi yang luas yang mana topologi tersebut adalah gabungan dari 2 atau lebih jenis topologi yang lainnya. Topologi hybrid tersebut memiliki semua ciri-ciri dan sifat dari jenis topologi yang ada di dalamnya.


Pembuatan topologi hybrid tersebut bertujuan untuk memaksimalkan kelebihan dari tiap-tiap jenis topologi dasar di dalamnya. Ketika jenis topologi dasar terhubung dengan jenis topologi dasar yang beda jenis, maka tidak ada karakter yang ditampilkan dari keduanya.


contoh:


Topologi bintang digabungkan dengan topologi bintang maka masih topologi bintang, sedangkan topologi bintang digabungkan dengan topologi bus maka sudah bisa dikatakan sebagai topologi hibrida.


bintang?bintang=bintang

bintang?bus=hybrida


Kelebihan:

  • Kelemahan dari masing-masing topologi dasar dapat diatasi

  • Bisa diterapkan di lingkungan jaringan yang berbeda, karena fleksibel dalam perancangannya

  • Kecepatan topologi konsisten dan stabil

  • ketika jaringan satu ada kerusajkan maka tidak mengganggu jaringan yang lainnya

  • Cocok dengan jaringan yang berskala besar

  • Bisa mengurangi space jaringan yang terbuang


Kekurangan:

  • Biayanya mahal karena merupakan gabungan dari topologi yang lainnya

  • proses pemasangan dan pengaturan cukup terbilang rumit

  • Manajemen jaringannya sulit

  • Harus tersedia ruangan yang luas karena penggunaan kabel yang banyak

  • Boros dalam penggunaan kabel karena di setiap jaringan terdapat kabel



8. Topologi Peer to Peer



Inilah topologi paling sederhana dan paling dasar dari semua topologi yang ada. Jenis topologi ini hanya terdapat 2 komputer yang saling terhubung dengan satu kabel saja.


Tujuan dari topologi Peer to Peer adalah supaya masing-masing komputer bisa saling terhubung satu sama lain tanpa harus melalui server lain sehingga masing-masing komputer tersebut bisa menjadi server sendiri.


Kelebihan:

  • Sangat hemat dalam penggunaan kabel karena hanya satu kabel saja yang dipakai

  • Setiap komputer bisa menjadi server

  • Proses pemasangan mudah


Kekurangan:

  • Dari segi keamanan sangat rendah, karene tiap komputer tingkat keamanannya berbeda-beda

  • Sangat susah untuk ditambahkan dengan komputer lain

  • karena tiap komputer menjadi server maka apabila salah satu ada yang eror, maka untuk akses data ke komputer yang eror tersebut juga terganggu