Selasa, 18 Januari 2022

DICODING, KELAS GRATIS HINGGA CHALLENGE MENARIK!

Hai semuanya! sebelumnya, kita kenalan dulu yaa. Saya Mala,salah satu mahasiswi IT di salah satu universitas di Indonesia. Saya ingin berbagi pengalaman saya dalam mengikuti kelas maupun challenge di dicoding. Nah,sudah tahu belum apa itu dicoding? kalau belum,yuk kita simak penjelasan berikut ini!


APA SIH DICODING?




Jadi,dicoding merupakan platform pembelajaran yang berfokus pada bidang IT,wadah bagi para siswa,mahasiswa,atau setiap orang yang memiliki minat tinggi pada perkembangan teknologi. Dicoding menyediakan kelas yang terstuktur dan ramah bagi pemula lho,jadi kalian ga akan bingung saat mengikuti pembelajaran disana. Masa sih ga akan bingung? Kalau bingung atau mau tanya sesuatu saat belajar gimana? tenaaaaaang, dicoding menyediakan forum diskusi untuk kalian yang mengalami kendala saat belajar.




Gambar diatas merupakan salah satu contoh forum diskusi yang saya gunakan ketika mengalami kendala. Saya menanyakan masalah pada saat penginstalan Lens Studio yang nantinya akan digunakan. Disana terlihat terdapat mentor yang siap menjawab dan menbantu kesulitan yang kalian alami,jadi kalian ga perlu khawatir ya!

APA SAJA YANG DISEDIAKAN OLEH DICODING?

Hmmmm,jawabannya,banyak! selain menyediakan kelas,terdapat event gratis seperti seminar dengan pembahasan-pembahasan yang menarik yang bisa kalian ikuti. Terdapat pula challenge dengan hadiah-hadiah yang bisa kalian dapatkan,serta masih banyak lagi. Dicoding juga tidak jarang memberikan beasiswa dan token gratis untuk kelas-kelas nya lho. Untuk saat ini,terdapat beasiswa Cloud dan Back-End dari Amazon Web Service GRATIS!. Jadi gimana? sudah mulai penasaran belum nih dengan dicoding
Itu dia penjelasan singkat mengenai dicoding. Sekarang mari kita masuk ke sesi berbagi cerita selama belajar di dicoding ya!


BAGAIMANA PROSES BELAJAR DENGAN DICODING?

Saya akan membahas salah satu kelas gratis yang ditawarkan oleh dicoding yaitu kelas Belajar Membuat Augmented Reality dengan Lens Studio. Augmented Reality? kok bukan yang fokus ke ngoding-ngoding kayak yang kebanyakan dibahas orang-orang? eitsss, perlu diketahui ranah IT itu luas ya teman-teman,dan Augmented Reality(AR) inilah salah satunya. 
Sebelum mendaftar kelas,akan ada penjelasan singkat mengenai topik pembelajaran yang akan dibahas. Target dan sasaran siswa juga diberikan untuk mengetahui secara jelas target kelas tersebut diperuntukan bagi para pemula,menengah,atau mahir. Jadi,kalian tidak akan salah memilih kelas (tentunya dengan kesadaran membaca dahulu yaa, kalau kalian tidak baca target dan sasaran siswa atuh kumaha nanti salah nyebur kelas hehe). Lalu,terdapat juga silabus pembelajaran,jadi kalian akan mengetahui apa saja yang nantinya akan dipelajari. Seperti kelas Augmented Reality,silabus yang diberikan dibagi menjadi beberapa proyek.
Proyek dalam kelas tersebut diantaranya adalah:

  • Pengenalan ke Augmented Reality
  • Proyek Pertama - Menggunakan Post Effect
  • Proyek Kedua - Menggunakan Segmentation
  • Proyek Ketiga - Face Effect
  • Proyek Keempat - Visual Scripting
Selain itu diberikan penjelasan singkat mengenai metode ajar serta peralatan belajar yang diperlukan,kalian harus mengecek terlebih dahulu apakah kalian memiliki peralatan belajar yang memumpuni untuk dipakai nantinya,seperti spesifiksai laptop yang dibutuhkan harus memiliki  prossesor yang sesuai dengan apa yang diminta.

Dalam modul pembelajaran,selain terdapat penjelasan berupa teks,kalian akan disuguhkan video yang berisi tutorial untuk mengerjakan proyek-proyek tersebut.




Terus gimana kak kalau aku tipe anak yang susah liat video dan lebih suka baca tutorial? gausah khawatir, dicoding juga menjabarkan ulang penjelasan divideo tersebut melalui teks yaa, bisa kalian lihat contoh gambar dibawah adalah penjelasan yang diambil dari video yang mereka berikan. Screenshot tutorialnya dikit aja,kalau mau lengkapnya langsung aja ke dicoding hihi.




Setiap kalian selesai dalam sesi tiap proyeknya, kalian diharuskan untuk mengerjakan soal quiz. Hal itu dimaksudkan bahwa kalian benar-benar paham dalam apa yang sudah dipelajari. Soal quiz nya sedikit dan juga gampang kok,serius deh. Kalo ga percaya,langsung aja cobain sendiri di dicoding! Oh iya, kelas pada dicoding semuanya diberikan tenggat selama 1 bulan yaa. Kalian harus selesai mempelajari materi serta mengerjakan tugas di akhir kelas agar bisa lulus. Waahh,tugas apa lagi tuh kak? Hmmmm, jadi giniiii, dicoding selalu memberikan tugas akhir untuk menjadi syarat kelulusan dalam kelas. Pada kelas ini,tugas yang diberikan adalah membuat lens sesuai dengan apa yang sudah kita pelajari. Nantinya,tugas kalian akan diperiksa oleh para reviewer. Nilai nya berupa bintang, sudah pasti bintang 5 menunjukan tugas yang kalian buat sangat-sangat baik dan memenuhi kriteria. Dari sini pun sudah jelas yaaa,kalau lulusan dicoding tidak asal-asalan karna pekerjaan siswanya selalu diperiksa oleh para reviewer.



Nah, gambar diatas adalah hasil review yang saya dapatkan setelah selesai mengerjakan tugas skhir. Jika kalian lulus kelas,kalian akan mendapatkan sertifikat kelulusan.



Sepertinya penjelasanya sudah cukup singkat,padat,dan (semoga) jelas hehe. Kita akan lanjut ke pembahsan berikutnya mengenai challenge dicoding.

CHALLENGE APA YANG DIIKUTI?

Pada akhir tahun lalu yaitu 2021 dicoding mengadakan sebuah challenge dengan nama IDCamp Developer Challenge - Snapchat AR Creator Holiday Series. Ada sekitar waktu satu bulan lebih untuk mengikuti challenge tersebut. 



Saya tertarik untuk mengikutinya,namun masih asing dengan software yang harus digunakan saat itu. Challenge tersebut merupakan hasil kolaborasi Indosat Ooredo bersama Snapchat. Nah,iya,snapchat! jadi kita harus membuat augmented reality dengan Lens Studio untuk Snapchat. Dikarenakan saya yang saat itu belum terbiasa dengan Lens Studio,dicoding juga memberikan solusinya yaitu dengan kelas Belajar Membuat Augmented Reality dengan Lens Studio yang sudah saya jelaskan sebelumnya. Saya menyelesaikan kelas sekitar setengah bulan alias dua minggu dikarenakan harus membagi waktu antara kuliah dan bekerja. Setelah selesai menyelesaikan kelas,saya langsung mencari beberapa ide konsep untuk challenge. Saya mendapatkan beberapa konsep yang berhubungan dengan tema liburan seperti apa yang diminta. Mencari ide menurut saya tidak membutuhkan waktu yang lama,tetapi mencari objek yang tepat dan menarik yang cukup memakan waktu pada saat itu. Hari-haripun berlalu dengan ide konsep yang saya coba realisasikan ke dalam lens. Lens saya hampir jadi,tapi sayangnya saya sakit,mungkin karna terlalu banyak kegiatan yaa hahaha. Waktu tersisa hanya 5 hari, pada H-3 saya berhasil menyelesaikan ke-empat lens saya. Hanya tinggal publikasi saja.


Semua lens berhasil di upload,kecuali satu. Lens dengan nama Travel Portal tidak bisa diunggah entah apa masalahnya. Kerena sepengetahuan saya,objek yang saya pakai semuanya bersifat free dan tidak melanggar hak cipta. Padahal lens tersebut merupakan lens yang saya andalkan untuk challenge tersebut. Pada akhirnya,saya berniat untuk mengajukan ketiga lens yang ada. Namun,saya melupakan satu hal. Engagement apakah lenses yang dibuat memiliki jumlah pengguna yang layak ternyata masuk ke dalam kriteria penilaian.

Hari terakhir challenge pun tiba,saya mengecek satu per satu lens insight,mencoba memutuskan lens mana yang akan saya serahkan. Ternyata insight yang didapat jauh dari kata banyak. Hanya puluhan. Tidak heran karna saya baru upload 2 hari yang lalu. Namun, ada satu lens dengan insight yang menurut saya tinggi pada hari itu.




Lens yang saya beri nama Hometown meraih 1.479 views, angka yang menurut saya tinggi untuk lens yang baru 2 hari di upload. Saya memutuskan untuk memakai lens tersebut dalam challenge.
Sekitar beberapa hari berlalu,saya mendapat notifikasi dari Snapchat jika lens yang saya buat telah digunakan oleh 33.000 pengguna. Senang? ga perlu ditanyaaaa,jelas senang hahaha. Tapi saya juga menyesal karena jika saja saya bisa menyelesaikan lens tersebut jauh dari hari H challenge,saya bisa melampirkan screenshot lens saya dengan insight yang lebih tinggi itu. Hingga hari ini, saya mendapat sekitar 52.000 views.


Challenge IDCamp Developer Challenge - Snapchat AR Creator Holiday telah usai, memiliki 1 pemenang utama dan 50 pemenang lainnya dengan hadiah point sebesar 2500 yang bisa ditukarkan dengan kelas maupun barang-barang menarik seperti speaker,Mi watch,dll yang disediakan oleh dicoding untuk para siswanya. Ah iya,dicoding menyediakan reward lhooo,bisa ditukar dengan point yang sudah kalian kumpulkan,tidak tanggung-tanggung dicoding juga menyediakan reward berupa smartphone seperti Samsung A52,Poco X3 Pro,dll. Menarik bukan?






Pengumuman pun tiba, saya mendapatkan sebuah email. Saya tidak memenangkan challenge tersebut, nyesel ga karna capek ikut tapi ga menang? seperti yang saya bilang tadi,saya punya rasa menyesal karna menyelesaikan lens mendekati hari H,sehingga tidak begitu maksimal. Tapiiiii,saya akan jauh lebih menyesal jika tidak bisa menyelesaikan dan ikut berpartisipasi pada challenge tersebut...

Nah,itu dia cerita saya dalam mengikuti challenge yang diselenggarakan dicoding. Kapan-kapan mungkin akan saya ceritakan pengalaman yang lebih menarik bersama dicoding. Terima kasih sudah membaca blog saya. See youuu!!! jangan lupa mampir ke dicoding yaa!

Kamis, 16 Desember 2021

REKAYASAPERANGKAT LUNAK (IMPLEMENTASI DAN PEMELIHARAAN)

 IMPLEMENTASI PERANGKAT LUNAK

Perancangan dan implementasi PL adalah tahap dalam proses RPL dimana dikembangkan sistem PL yang dapat dieksekusi. Implementasi adalah proses mewujudkan desain sebagai sebuah program. RPL mencakup semua kegiatan yang terlibat dalam pengembangan PL dari persyaratan awal sistem hingga pemeliharaan dan pengelolaan sistem yang digunakan. Implementasi dapat melibatkan pengembangan program atau menyesuaikan dan mengadaptasi sistem generik, off-the-shelf untuk memenuhi persyaratan khusus dari suatu organisasi.

Aspek implementasi yang sangat penting untuk RPL:

  • Reuse

Sebagian besar PL modern dibangun dengan menggunakan kembali komponen atau sistem yang ada.

  • Configuration Management

Selama proses pengembangan, banyak versi yang berbeda dari setiap komponen PL.

  • Host-Target Development

Produksi PL biasanya tidak dijalankan pada komputer yang sama dengan lingkungan pengembangan PL. Pengembangan pada satu komputer (sistem host) dan dijalankan pada komputer yang terpisah (sistem target).

A. Reuse

Penggunaan ulang (reuse) PL dimungkinkan pada sejumlah level yang berbeda:

  • Tingkat Abstraks.

Pada tingkat ini, tidak menggunakan reuse software secara langsung tetapi menggunakan pengetahuan abstraksi dalam desain PL menggunakan pola desain dan pola arsitektur.

  • Tingkat Objek.

Pada tingkat ini, langsung menggunakan reuse objects dari library daripada menulis kode sendiri.

  • Tingkat Komponen.

Komponen adalah kumpulan objek dan kelas objek yang beroperasi bersama untuk menyediakan fungsi dan layanan terkait. Pada tingkat ini harus menyesuaikan dan memperluas komponen dengan menambahkan beberapa kode sendiri.

  • Tingkat Sistem.

Pada tingkat ini, menggunakan kembali seluruh sistem aplikasi. Biasanya melibatkan beberapa jenis konfigurasi sistem. Dapat dilakukan dengan menambahkan dan memodifikasi kode atau dengan menggunakan antarmuka konfigurasi sistem sendiri.

Keuntungan menggunakan reuse software yang ada:

  1. Dapat mengembangkan sistem baru dengan lebih cepat
  2. Dengan risiko pengembangan yang lebih sedikit dan juga biaya yang lebih rendah
  3. Karena reuse software yang digunakan telah diuji dalam aplikasi lain, sehingga lebih dapat diandalkan daripada PL baru

Biaya yang terkait dengan penggunaan kembali:
  1. Biaya waktu yang dihabiskan dalam mencari PL untuk digunakan kembali dan menilai apakah sudah memenuhi kebutuhan atau tidak, dan menguji PL untuk memastikan bahwa dapat bekerja di lingkungan sistem.
  2. Biaya membeli PL yang dapat digunakan kembali.
  3. Biaya untuk adaptasi dan mengkonfigurasi komponen PL/sistem yang dapat digunakan kembali.
  4. Biaya untuk mengintegrasikan elemen reuse software yang dapat digunakan satu sama lain (jika menggunakan PL dari sumber yang berbeda) dan dengan kode baru yang telah dikembangkan.
B. Manajemen Konfigurasi (Configuration Management)

Manajemen konfigurasi merupakan proses rekayasa sistem untuk menetapkan dan mempertahankan konsistensi dari kinerja produk, fungsional, dan atribut fisik dengan persyaratan, desain, dan informasi operasional sepanjang hidupnya. Tujuan dari manajemen konfigurasi adalah untuk mendukung proses integrasi sistem sehingga semua pengembang dapat mengakses kode dan dokumen dengan cara yang terkontrol, mencari tahu perubahan yang telah dibuat, dan mengkompilasi dan menghubungkan komponen untuk membuat sistem.

Tiga aktivitas dasar manajemen konfigurasi:
  1. Version Management, dukungan diberikan untuk melacak berbagai versi komponen PL, mencakup fasilitas untuk mengkoordinasikan pengembangan oleh beberapa programmer.
  2. Integrasi sistem, dukungan disediakan untuk membantu pengembang menentukan versi komponen yang digunakan untuk membuat setiap versi sistem.
  3. Pelacakan masalah, dukungan diberikan untuk memungkinkan user melaporkan bug dan masalah lain, dan memungkinkan semua pengembang untuk melihat siapa yang bekerja pada masalah ini dan memperbaikinya
C. Host-Target Development

PL dikembangkan pada satu komputer (host), tetapi berjalan pada mesin yang terpisah (target). Platform lebih dari sekedar perangkat keras, termasuk sistem operasi yang terinstal ditambah perangkat lunak pendukung lainnya seperti DBMS, platform pengembangan, dan lingkungan pengembangan interaktif. Platform pengembangan dan eksekusi adalah sama, sehingga memungkinkan untuk mengembangkan PL dan mengujinya di mesin yang sama. Tetapi terkadang sering berbeda sehingga perlu memindahkan PL yang dikembangkan ke platform eksekusi untuk menguji atau menjalankan simulator pada mesin untuk pengembangan.

Platform pengembangan PL harus menyediakan berbagai alat untuk mendukung proses RPL, termasuk:
  1. Sebuah kompilator terintegrasi dan sistem pengeditan yang dirancang secara sintaks yang memungkinkan untuk membuat, mengedit, dan mengkompilasi kode.
  2. Sistem debug bahasa.
  3. Alat pengeditan grafis, seperti alat untuk mengedit UML.
  4. Alat pengujian, seperti JUnit yang dapat menjalankan serangkaian tes secara otomatis pada versi baru program.
  5. Alat dukungan proyek yang membantu mengatur kode untuk berbagai proyek pengembangan.
Diperlukan keputusan tentang bagaimana PL yang dikembangkan akan digunakan pada platform target.
Pertimbangan dalam membuat keputusan adalah:
  1. Persyaratan perangkat keras dan perangkat lunak dari suatu komponen
  2. Ketersediaan persyaratan sistem
  3. Komunikasi komponen, jika ada tingkat lalu lintas komunikasi yang tinggi antar komponen
PEMELIHARAAN (MAINTENANCE)

Pemeliharaan PL adalah suatu aktivitas yang sangat luas yang sering digambarkan mencakup semua pekerjaan yang dibuat di suatu sistem setelah PL beroperasi.
Aktivitas meliputi:
  1. Penambahan atau perbaikan program, seperti penambahan fungsi baru, dan perbaikan tampilan.
  2. Perbaikan terhadap kesalahan yang timbul
  3. Penghapusan kemampuan kualitas
  4. Peningkatan pencapaian & memperluas daya guna untuk memenuhi kebutuhan user yang semakin bertambah
  5. Menyesuaikan PL untuk memenuhi lingkungan yang berubah
A. Kategori Pemeliharaan PL
  1. Korektif adalah perbaikan program akibat adanya kesalahan
  2. Adaptif adalah penyesuaian dengan lingkungan yang baru, seperti penerapan pada platform di lingkungan yang baru, format tampilan printer, dll
  3. Perfective terjadi pada saat pengguna sistem atau stakeholder merubah requirement dari sistem yang dibangun
  4. Preventif berhubungan dengan prediksi yang akan datang, seperti penggunaan anti virus untuk keamanan data, back-up data dan program
Contoh Tugas-Tugas Pemeliharaan


a. Pemeliharaan Korektif (Corrective Maintenance)

Pekerjaan pemeliharaan sistem harus dilakukan terlebih dahulu di lingkungan pengujian, dan kemudian dimigrasikan ke operasional sistem. Situasi terburuk adalah kegagalan sistem. Jika keadaan darurat terjadi, tim pemeliharaan mencoba memperbaiki masalah dengan segera, sementara permintaan sistem tertulis disiapkan dan ditambahkan ke log pemeliharaan. Ketika sistem beroperasi kembali, tim pemeliharaan menentukan penyebabnya, menganalisa masalah, dan mendesain solusi permanen. Kemudian memperbarui file data, menguji sistem secara menyeluruh, dan menyiapkan dokumentasi lengkap.

b. Pemeliharaan Adaptif (Adaptive Maintenance)

Pemeliharaan adaptif menambahkan peningkatan pada operasional sistem dan membuat sistem lebih mudah digunakan berupa peningkatan fitur baru/perubahan. Misal: layanan baru, teknologi manufaktur baru, atau dukungan untuk operasi berbasis web baru. Pemeliharaan adaptif membutuhkan lebih banyak
sumber daya departemen IT daripada pemeliharaan korektif. Pemeliharaan adaptif bisa lebih sulit daripada pengembangan sistem baru karena penyempurnaan harus bekerja dalam batasan sistem yang ada/baru.

c. Pemeliharaan Perfektif (Perfective Maintenance)

Melibatkan perubahan operasional sistem agar lebih efisien, dapat diandalkan, dan dapat dipelihara. Permintaan untuk pemeliharaan korektif dan adaptif biasanya berasal dari pengguna, sedangkan departemen IT biasanya memulai pemeliharaan perfektif. Pemeliharaan perfektif dapat meningkatkan keandalan sistem. Misalnya, masalah input dapat menyebabkan program berhenti secara tidak normal, sehingga diperlukan program yang dapat menangani masalah tsb. Semakin banyak program berubah, semakin besar ketidakefisienan dan sulit dipertahankan.

d. Pemeliharaan Preventif (Preventive Maintenance)

Untuk menghindari masalah, pemeliharaan preventif membutuhkan area analisis dimana masalah mungkin terjadi. Pemeliharaan preventif menghasilkan peningkatan kepuasan pengguna, downtime yang menurun, dan pengurangan biaya. Pemeliharaan harus dilayani oleh teknisi yang ahli sehingga kualitas pemeliharaan akan langsung mempengaruhi keberhasilan organisasi.

PEMELIHARAAN MANAJEMEN

A. TIM PEMELIHARAAN
  • Systems Administrator
Bertanggung jawab untuk pemeliharaan rutin dan berwenang mengambil tindakan pencegahan untuk menghindari keadaan darurat. Seperti kerusakan server, pemadaman jaringan, insiden keamanan, dan kegagalan perangkat keras.
  • Systems Analyst
Bertugas menyelidiki dan menemukan sumber masalah dengan menggunakan keterampilan analisis dan sintesis.
Analisis: memeriksa keseluruhan unsur-unsur individu.
Sintesis: mempelajari bagian-bagian untuk memahami keseluruhan sistem.
  • Programmer
  1. Programmer aplikasi bekerja pada pengembangan dan pemeliharaan sistem baru.
  2. Programmer sistem berkonsentrasi pada perangkat lunak dan utilitas sistem
  3. Programmer basis data fokus pada pembuatan dan dukungan sistem basis data skala besar.
B. PERMINTAAN PEMELIHARAAN

Pengguna mengirimkan sebagian besar permintaan untuk pemeliharaan korektif dan adaptif ketika sistem tidak berfungsi dengan baik, atau jika mereka menginginkan fitur baru.
  • Determinasi Awal
Ketika pengguna mengajukan permintaan pemeliharaan, administrator membuat penentuan awal,
jika permintaan memerlukan perhatian segera, administrator akan mengambil tindakan sekaligus.
  • Komite Peninjau Sistem
Ketika suatu permintaan melebihi tingkat biaya yang telah ditentukan atau melibatkan perubahan konfigurasi utama, komite peninjau sistem akan menetapkan prioritas, atau menolaknya.
  • Penyelesaian Tugas
Administrator sistem bertanggung jawab untuk mempertimbangkan pengalihan tugas di antara staf
IT atau membatasi tugas pemeliharaan kepada individu atau tim tertentu agar tugas dapat diselesaikan dengan baik.
  • User Notification
Pengguna yang memulai permintaan pemeliharaan mengharapkan tanggapan yang cepat, terutama jika situasi tersebut secara langsung mempengaruhi pekerjaan mereka. Bahkan ketika tindakan korektif tidak dapat terjadi dengan segera, pengguna akan menghargai umpan balik dari administrator sistem dan harus terus diberitahu tentang keputusan atau tindakan yang akan mempengaruhi pengguna.

Rabu, 15 Desember 2021

PENGUJIAN APLIKSAI WEB

KONSEP PENGUJIAN

Adalah serangkaian aktivitas yang tujuannya untuk menemukan kesalahan dalam isi, fungsi, kegunaan, kemampuan navigasi, kinerja, kapasitas dan keamanan aplikasi web sebelum aplikasi-aplikasi web yang dibuat dikirimkan ke end user. Hal ini penting karena jika end user menemukan kesalahan yang membuat mereka meragukan aplikasi web tersebut, mereka akan pergi ke web lain untuk mencari isi dan informasi. Langkahnya dimulai dengan fokus pada aspek aplikasi web yang terlihat oleh user dan berlanjut pada pengujian yang terkait dengan teknologi dan infrastruktur.

KONSEP PENGUJIAN APLIKASI WEB

A. Dimensi Kualitas

Kualitas dievaluasi dengan menerapkan serangkaian tinjauan teknis yang melihat berbagai elemen dari model perancangan dan dengan menerapkan proses pengujian.

Atribut Dimensi Kualitas

  • Isi (content)
Dievaluasi di tingkat sintak dan semantik. Pada tingkat sintak dokumen berbasis teks diuji dalam hal ejaan, tanda baca dan tata bahasa. Pada tingkat semantik aspek yang dinilai adalah kebenaran informasi yang disajikan, konsistensi di seluruh objek isi dan objek terkait, dan rendahnya ambiguitas.
  • Fungsi
Diuji untuk menemukan kesalahan yang menunjukkan ketidaksesuaian dengan persyaratan customer.
  • Struktur
Dinilai untuk memastikan bahwa aplikasi web benarbenar menyediakan isi dan fungsi aplikasi web.
  • Kegunaan
Diuji untuk memastikan bahwa setiap kategori user didukung oleh antarmuka yang user friendly serta menerapkan semua sintak dan semantik navigasi yang diperlukan.
  • Kemampuan untuk dapat dinavigasi
Diuji untuk memastikan bahwa semua sintak dan semantik navigasi dilakukan untuk menemukan kesalahan, seperti link yang salah dan dead link.
  • Kinerja
Diuji di bawah berbagai kondisi operasi, konfigurasi, dan loading.
  • Kompatibilitas
Diuji dengan menjalankan aplikasi web dalam berbagai konfigurasi host yang berbeda baik di sisi server maupun client.
  • Interoperabilitas
Diuji untuk memastikan bahwa aplikasi web berantarmuka dengan benar dengan aplikasi lain dan database.
  • Keamanan
Diuji dengan menilai kerentanan potensial.

B. Strategi Pengujian

Langkah-langkahnya:
  1. Model konten untuk aplikasi web ditinjau untuk menemukan kesalahan
  2. Model antarmuka ditinjau untuk memastikan bahwa semua use-case dapat diakomodasi
  3. Model perancangan ditinjau untuk mengungkap kesalahan navigasi
  4. Antarmuka pengguna diuji untuk menggungkap kesalahan dalam presentasi dan/atau mekanik navigasi
  5. Komponen fungsional diuji untuk setiap unit
  6. Navigasi untuk seluruh arsitektur diuji
  7. Aplikasi web diimplementasikan dalam berbagai konfigurasi lingkungan yang berbeda dan diuji kompatibilitasnya
  8. Pengujian keamanan dilakukan dalam upaya untuk mengungkap kelemahan aplikasi web
  9. Pengujian kinerja dilakukan
  10. Aplikasi web diuji oleh end user, hasil interaksinya dievaluasi untuk menemukan kesalahan isi dan navigasi, keamanan, keandalan, dan kinerja aplikasi web
C. Perencanaan Pengujian

Sebuah rencana aplikasi web mengidentifikasikan:
  • Himpunan tugas-tugas yang diterapkan ketika pengujian dimulai
  • Produk kerja yang dihasilkan ketika setiap tugaspengujian dijalankan
  • Cara dimana hasil pengujian dievaluasi, dicatat, dan digunakan kembali saat pengujian regresi dilakukan
PENGUJIAN ISI

Pengujian isi menggabungkan baik peninjauan maupun pembuatan test case yang dapat dilaksanakan

A. Tujuan Pengujian Isi
  1. Untuk mengungkap kesalahan sintak dengan memeriksa ejaan dan tata bahasa otomatis
  2. Untuk mengungkap kesalahan semantik yang fokus pada informasi pada setiap isi objek
  3. Untuk mencari kesalahan dalam pengaturan atau struktur isi dalam susunan dan hubungan yang tepat
B. Pengujian Basis Data

Pengujian basis data menjadi sulit dikarenakan:
  1. Permintaan dari client jarang disajikan dalam bentuk yang dapat dimasukkan ke sistem manajemen basis data
  2. Basis data dapat berada jauh dari server
  3. Data mentah yang diperoleh dari basis data harus dikirim ke server aplikasi web dan diformat dengan benar untuk pengiriman selanjutnya kepada client
  4. Objek isi yang bersifat dinamis harus dikirim ke client dalam bentuk yang dapat ditampilkan kepada end user
Pengujian basis data harus memastikan bahwa:
  1. Informasi yang valid dilewatkan antara client dan server dari lapisan antarmuka
  2. Proses aplikasi web menuliskan ekstraksi atau format data user dengan baik dan benar
  3. Data user diberikan dengan tepat untuk fungsi transformasi data pada sisi server yang membentuk query yang sesuai
  4. Query yang dilewatkan ke layer manajemen data yang berkomunikasi dengan rutin-rutin akses basis data terletak di komputer lain
PENGUJIAN ANTARMUKA

Untuk memastikan bahwa script yang benar dibangun untuk setiap permintaan user dan benar dikirimkan ke server.

Verifikasi dan validasi antarmuka user terjadi pada:
  1. Model antarmuka memastikan bahwa telah sesuai dengan kebutuhan stakeholder dan elemen lain.
  2. Model perancangan antarmuka ditinjau untuk memastikan bahwa kriteria kualitas generik telah ditetapkan untuk semua antarmuka.
  3. Selama pengujian fokus pada interaksi user
A. Strategi Pengujian Antarmuka
Langkah-langkahnya:
  1. Fitur-fitur antarmuka diuji seperti jenis huruf, warna, gambar, border, tabel dll
  2. Mekanisme antarmuka diuji dengan cara yang sama dengan pengujian unit, misalnya pengujian untuk keranjang belanja pada e-commerce, isi streaming, penulisan script dll
  3. Mekanisme antarmuka diuji dalam konteks penggunaan use case untuk kategori user tertentu
  4. Antarmuka lengkap diuji terhadap test case terpilih
  5. Antarmuka diuji dalam berbagai lingkungan
B. Mekanisme Pengujian Antarmuka

1. Formulir. Pengujian untuk memastikan:
  • Label formulir dapat diidentifikasikan secara visual
  • Server menerima semua informasi form
  • Default yang tepat saat user tidak memilih dari menu pull down atau dari tombol
  • Fungsi-fungsi perambah seperti tanda panah back tidak merusak data yang diisikan ke dalam form
  • Script yang memeriksa kesalahan input data
  • Lebar kolom dan jenis data yang tepat
  • Mencegah user memasukkan string text lebih panjang dari jumlah max. yang telah ditetapkan
  • Menu pull down diurutkan dan dapat dipahami user
  • Auto-fill tidak mengarah ke kesalahan input data
  • Key tab memicu perpindahan di antara kolom
2. Link. Setiap link navigasi diuji untuk memastikan bahwa objek isi atau fungsi yang tepat dapat dicapai.

3. Client-side scripting. Pengujian dilakukan untuk menemukan kesalahan saat script dijalankan.

4. HTML dinamis. Dijalankan untuk memastikan bahwa tampilan dinamis sudah benar.

5. Pop-up windows. Memastikan bahwa:
  • Pop-up diukur dan diposisikan dengan benar
  • Pop-up tidak menutupi jendela aplikasi web asli
  • Perancangan pop-up konsisten dengan perancangan antarmuka
  • Scroll bar dan mekalisme kontrol lainnya yang ditambahkan ke pop-up diletakkan dengan benar
6. Script CGI. Pengujian kotak hitam dilakukan dengan penekanan pada integritas data saat dilewatkan ke script CGI.

7. Streaming content. Pengujian menunjukkan bahwa data streaming terbarukan, ditampilkan dengan benar dan dapat dihentikan tanpa kesalahan dan restart tanpa kesulitan.

8. Mekanisme aplikasi antarmuka spesifik. Pengujian sesuai dengan daftar fungsi dan fitur yang didefinisikan pada antarmuka.

C. Pengujian Kompatibilitas

Aplikasi web harus dapat dijalankan pada komputer yang berbeda, berupa:
  1. Perangkat tampilan
  2. Sistem Operasi
  3. Browser
  4. Kecepatan koneksi jaringan
Langkah-langkah uji kompatibilitas:
  1. Mendefinisikan sekumpulan konfigurasi komputasi di sisi client, mengidentifikasi platform, perangkat layar, sistem operasi, browser yang tersedia, kecepatan koneksi internet, dll.
  2. Melakukan serangkaian uji validasi kompatibilitas berupa pengujian navigasi, pengujian kinerja, dan pengujian keamanan
PENGUJIAN NAVIGASI

Tugas pengujian navigasi:
  1. Memastikan bahwa semua mekanisme yang memungkinkan pengguna aplikasi web melakukan penelusuran melalui aplikasi web.
  2. Untuk memvalidasi bahwa setiap unit semantik navigasi dapat dicapai oleh kategori pengguna yang tepat
Pengujian Sintaks Navigasi
  • Link Navigasi 
Mekanisme menyertakan link internal dalam aplikasi web dan link eksternal ke aplikasi web lain, dan anchor pada halaman web tertentu
  • Redirect Link 
beraksi saat user meminta URL yang tidak ada atau memilih sebuah link yang isinya telah dihapus atau namanya telah berubah
  • Bookmark 
Memastikan bahwa judul halaman yang berarti dapat diekstraksi saat bookmark dibuat
  • Frame and frameset
Frameset berisi beberapa frame dan memungkinkan untuk menampilkan beberapa halaman web secara bersamaan. Oleh karena itu harus diuji dalam hal isi, tata letak layar dan ukuran yang tepat, kinerja download, dan kompatibilitas browser.
  • Site map
Berisi daftar isi lengkap pada semua halaman web, setiap entry harus diuji untuk memastikan bahwa link membawa user membaca isi/fungsionalitas yang tepat
  • Search engine internal
User mengetikkan kata kunci untuk menemukan isi yang diperlukan

PENGUJIAN KONFIGURASI

A. Masalah di bagian Server
  1. Aplikasi web sepenuhnya kompatibel dengan server OS
  2. Berkas sistem, direktori, dan data yang terkait dibuat dengan benar saat aplikasi web dioperasikan
  3. Keamanan sistem mengijinkan aplikasi web untuk berjalan dan melayani user tanpa gangguan atau penurunan kinerja
  4. Aplikasi web terintegrasi secara tepat dengan perangkat lunak basis data
  5. Script aplikasi web sisi server mengeksekusi dgn benar
  6. Jika proxy server yang digunakan, apakah perbedaan konfigurasi telah diatasi melalui pengujian
B. Masalah di bagian Client

Pengujian konfigurasi fokus pada kompatibilitas aplikasi web pada komponen berikut:
  1. Hardware: CPU, memori, penyimpanan, perangkat cetak
  2. Sistem operasi
  3. Browser: Firefox, Safari, IE, Opera, Chrome
  4. Komponen antarmuka: Active-X, Java applet
  5. Plug in: Quick Time, RealPlayer
  6. Konektivitas: kabel, DSL, Wifi
PENGUJIAN KEAMANAN

Untuk menyelidiki kerentanan lingkungan di sisi client, komunikasi jaringan yang terjadi saat data dilewatkan dari client ke server, dan di lingkungan server itu sendiri.

Contoh kerentanan yang dapat terjadi:
  1. Buffer overflow, seperti memasukkan URL yang lebih panjang dari ukuran buffer
  2. Akses tidak sah
  3. Spoofing
  4. Serangan DOS
Implementasi keamanan:
  1. Firewall
  2. Authentication
  3. Encryption
  4. Authorization

Selasa, 07 Desember 2021

PENGUJIAN PERANGKAT LUNAK

 DASAR-DASAR PENGUJIAN PERANGKAT LUNAK

Pengujian perangkat lunak adalah proses menjalankan dan mengevaluasi sebuah PL secara manual maupun otomatis untuk menguji apakah PL sudah memenuhi persyaratan atau belum, atau untuk menentukan perbedaan antara hasil yang diharapkan dengan hasil sebenarnya. Pengujian bertujuan untuk mencari kesalahan. Pengujian yang baik adalah pengujian yang memiliki kemungkinan besar dalam menemukan kesalahan sebanyak mungkin dengan usaha sekecil mungkin.

A. Tujuan Pengujian

  1. Menilai apakah perangkat lunak yang dikembangkan telah memenuhi kebutuhan pemakai.
  2. Menilai apakah tahap pengembangan perangkat lunak telah sesuai dengan metodologi yang digunakan.
  3. Membuat dokumentasi hasil pengujian yang menginformasikan kesesuaian perangkat lunak yang diuji dengan spesifikasi yang telah ditentukan.
B. Testability

Testability adalah kemampuan PL untuk dapat diuji artinya seberapa mudah sebuah program komputer untuk bisa diuji.

Karakteristik testability PL:
  1. Kemampuan untuk bisa dioperasikan (operability)
  2. Kemampuan untuk bisa diobservasi (observability)
  3. Kemampuan untuk dapat dikontrol (controllability)
  4. Kemampuan untuk dapat disusun (decomposability)
  5. Kesederhanaan (simplicity)
  6. Stabilitas (stability)
  7. Kemampuan untuk dapat dipahami (understandability)
C. Karakteristik Pengujian
  • Pengujian yang baik memiliki probabilitas tinggi untuk menemukan kesalahan
  • Pengujian yang baik tidak berulang-ulang, waktu dan sumber daya pengujian terbatas
  • Pengujian terbaik harus menjadi “bibit terbaik” yaitu pengujian yang memiliki kemungkinan tertinggi dalam mengungkap seluruh kelas kesalahan
  • Pengujian yang baik tidak terlalu sederhana atau tidak terlalu rumit
PENGUJIAN WHITE BOX

Disebut juga pengujian kotak kaca (glass box testing). Merupakan sebuah filosofi perancangan test case yang menggunakan struktur kontrol.

Test case pada white box:
  1. Menjamin bahwa semua jalur independen di dalam modul telah dieksekusi sedikitnya satu kali
  2. Melaksanakan semua keputusan logis pada sisi benar dan salah
  3. Melaksanakan semua perulangan (loop) yang memenuhi semua batas operasional
  4. Melakukan struktur data internal untuk memastikan kebenarannya
A. Pengujian Jalur Dasar (Basis Path Testing)

Adalah teknik pengujian yang memungkinkan perancangan test case untuk menurunkan ukuran
kompleksitas logis dari suatu rancangan prosedural dan menggunakan ukuran ini sebagai pedoman untuk menentukan rangkaian dasar jalur eksekusi. Test case diturunkan untuk menguji rangkaian dasar
yang dijamin untuk mengeksekusi setiap pernyataan dalam program, setidaknya satu kali selama pengujian. Menggambarkan arus kontrol logis dengan menggunakan Notasi Grafik Alir (Flow Graph).

a. Notasi Grafik Alir (Flow Graph)
Adalah notasi sederhana untuk merepresentasikan aliran kontrol logis. Lingkaran mewakili pernyataan kode program. Notasi flow graph seperti gambar di bawah ini:
Untuk menggambarkan flow graph, dengan merepresentasikan perancangan prosedural seperti gambar berikut:
Notasi Flowchart&FlowGraph

b. Notasi Flow Graph
Lingkaran menunjukkan simpul (node), merupakan satu atau lebih pernyataan-pernyataan prosedural Panah menunjukkan edge atau link, merupakan aliran kendali Area yang dibatasi oleh edge dan node disebut region. Flow graph menjadi rumit ketika adanya kondisi gabungan pada saat satu atau operator boolean ada dalam pernyataan bersyarat. Node yang berisi kondisi disebut node predikat dan ditandai oleh dua atau lebih edge yang berasal dari node tersebut.
Logika Gabungan

B. Jalur Independen
Jalur Independen (Independent Path) adalah setiap jalur yang melalui program yang memperkenalkan setidaknya satu kumpulan pernyataan-pernyataan pemrosesan atau kondisi baru.

Jalur independen gambar diatas:
  • Path 1: 1-11
  • Path 2: 1-2-3-4-5-10-1-11
  • Path 3: 1-2-3-6-8-9-10-1-11
  • Path 4: 1-2-3-6-7-9-10-1-11
Path 1-2-3-4-5-10-1-2-3-6-8-9-10-1-11 tidak dianggap jalur independen karena tidak melintasi setiap edge baru. Path 1 sampai 4 merupakan basis set.

C. Kompleksitas Siklomatik
Adalah metrik PL yang menyediakan ukuran kuantitatif dari kompleksitas logis suatu program.
Perhitungan Kompleksitas Siklomatik:
  • Jumlah daerah-daerah (region) flow graph yang berhubungan dengan Kompleksitas Siklomatik
  • Kompleksitas Siklomatik V (G) = E – N + 2 dimana E adalah jumlah edge, N adalah jumlah node.
  • Kompleksitas Siklomatik V (G) = P + 1 dimana P adalah jumlah node predikat.

Dari kasus independent path:
  • Jumlah region adalah 4
  • V (G) = 11 edge – 9 node + 2 = 4
  • V (G) = 3 node predikat + 1 = 4
  • Jadi Kompleksitas Siklomatiknya adalah 4
D. Menghasilkan Test Case
Diberikan Pseudocode sbb:




Langkah-langkah untuk menurunkan basis set:
1. Buat flow graph
2. Menentukan independent path
3. Menentukan kompleksitas siklomatik

E. Pengujian Struktur Kontrol
a. Pengujian Kondisi
Pengujian kondisi adalah metode perancangan test case yang menguji kondisi logis yang terdapat dalam
modul program. Kondisi sederhana adalah variabel boolean atau ekspresi relasional, kemungkinan didahului oleh satu operator NOT. Jenis kesalahan dalam kondisi meliputi kesalahan operator boolean, kesalahan variabel boolean, kesalahan kurung boolean, kesalahan operator relasional, dan kesalahan ekspresi aritmatika.

b. Pengujian Perulangan
Adalah teknik pengujian white box yang fokus pada validitas konstruksi perulangan.

(1) Perulangan Sederhana
Pengujian dilakukan dengan mudah, dimana n jumlah maksimum yang diijinkan melewati perulangan:
  • Melewati perulangan secara keseluruhan
  • Hanya satu kali melalui perulangan
  • Dua kali melalui perulangan
  • Melalui perulangan sebanyak m dimana m < n
  • n – 1, n, n + 1 melalui perulangan
(2). Perulangan Bersarang
Menggunakan pendekatan perulangan sederhana, sehingga jumlah pengujian akan meningkat.
Petunjuk pengujian:
  • Mulai dari perulangan terdalam dan atur semua perulangan ke nilai minimum
  • Lakukan pengujian perulangan sederhana untuk perulangan terdalam, sambil menjaga perulangan luar pada nilai minimum (misal counter perulangan)
  • Lanjutkan pada perulangan ke luar dan lakukan pengujian pada perulangan berikutnya
  • Lakukan sampai semua perulangan telah diuji
(3). Perulangan Terangkai
Pengujian menggunakan pendekatan perulangan sederhana bila masing-masing perulangan independen. Tetapi bila dua perulangan dirangkai dan counter perulangan 1 digunakan sebagai harga awal perulangan 2 maka perulangan tersebut menjadi tidak independen, dan direkomendasikan ke perulangan tersarang.

(4). Perulangan Tak Terstruktur
Kapan saja memungkinkan, perulangan didisain kembali agar mencerminkan penggunaan konstruksi pemrograman terstruktur.

PENGUJIAN BLACK BOX

Disebut juga pengujian perilaku. Pengujian black box memungkinkan untuk membuat beberapa kumpulan kondisi input yang akan melakukan semua kebutuhan fungsional untuk program.

Kategori kesalahan pada pengujian black box:
  • Fungsi yang salah atau hilang
  • Kesalahan antarmuka
  • Kesalahan struktur data atau akses basis data eksternal
  • Kesalahan perilaku atau kinerja
  • Kesalahan inisialisasi dan penghent
1. Metode Pengujian Berbasis Grafik
Langkah-langkah pengujian:
  • Memahami objek-objek yang dimodelkan dalam PL dan penghubung yang menghubungkan objek-objek tersebut
  • Menentukan serangkaian pengujian yang memastikan bahwa semua objek memiliki hubungan satu sama lain seperti yang diharapkan
  • Node direpresentasikan sebagai lingkaran.
  • Hubungan direpresentasikan dengan anak panah
  • Hubungan satu arah (directed link) bahwa hubungan bergerak hanya satu arah.
  • Hubungan dua arah atau hubungan simetris (bidirection link) bahwa hubungan berlaku dua arah.
  • Hubungan paralel digunakan ketika ada sejumlah hubungan yang berbeda yang dibangun di antara node-node grafik.
2. Partisi Kesetaraan (Equivalence Partitioning)
Adalah metode pengujian black box yang membagi daerah input program ke dalam kelas-kelas data dari test case yang dapat diturunkan. Sebuah kelas kesetaraan merepresentasikan keadaan
valid atau tidak valid dari kondisi input. Contoh: kesalahan terhadap semua data karakter yang mungkin mengharuskan banyak test case sebelum kesalahan umum teramati.

Kelas kesetaraan dapat didefinisikan:
  • Jika kondisi input menspesifikasikan range, satu kelas kesetaraan yang valid dan dua kelas kesetaraan yang tidak valid didefinisikan
  • Jika kondisi input membutuhkan nilai tertentu, satu kelas kesetaraan yang valid dan dua kelas kesetaraan yang tidak valid didefinisikan
  • Jika kondisi input menspesifikasikan anggota dari himpunan, satu kelas kesetaraan yang valid dan dua kelas kesetaraan yang tidak valid didefinisikan
  • Jika kondisi input adalah boolean, satu kelas kesetaraan yang valid dan dua kelas kesetaraan yang tidak valid ditentukan
3. Analisis Nilai Batas (Boundary Value Analysis)
Merupakan teknik perancangan test case yang melengkapi partisi kesetaraan dengan fokus pada kondisi input, dan juga akan menghasilkan output. Banyak kesalahan terjadi pada kesalahan input. BVA mengijinkan untuk menyeleksi kasus uji yang menguji batasan nilai input. BVA merupakan komplemen dari equivalence partitioning, lebih memilih pada elemen-elemen di dalam kelas ekivalen pada bagian sisi batas dari kelas.

Pedoman BVA
  • Jika kondisi input menspesifikasikan range yang dibatasi oleh nilai a dan b, test case harus dirancang dengan nilai a dan b dan hanya di atas dan di bawah nilai a dan b
  • Jika kondisi input menspesifikasikan sejumlah nilai, test case harus dikembangkan untuk menguji jumlah-jumlah minimum dan maksimum.
  • Terapkan pedoman 1 dan 2 untuk kondisi input.
  • Jika struktur data program internal memiliki batas-batas yang telah ditentukan, pastikan untuk merancang test case untuk menguji struktur data pada batasnya.
4. Pengujian Larik Ortogonal
Dapat diterapkan untuk masalah-masalah dimana input domain relatif kecil tapi terlalu besar untuk
mengakomodasi pengujian yang lengkap. Bermanfaat dalam menemukan kesalahan yang terkait
dengan logika yang salah dalam komponen PL.

Selasa, 30 November 2021

PERANCANGAN APLIKASI WEB

 LANGKAH-LANGKAH WEB DESAIN

  • Perancangan Isi

Dikembangkan selama tahapan analisis, dilakukan sebagai basis untuk penetapan objek-objek

  • Perancangan Estetika (Perancangan Grafis)

Membuat tampilan yang akan dilihat oleh user

  • Perancangan Arsitektural

Fokus pada struktur hypermedia untuk semua objek isi dan untuk semua fungsi pada aplikasi web

  • Perancangan Antarmuka

Menentukan tampilan dan mekanisme interaksi yang mendefinisikan user interface

  • Perancangan Struktur Navigasi

Mendefinisikan bagaimana end user melakukan penelusuran untuk melintasi hypermedia

  • Perancangan Komponen

Merepresentasikan rincian struktur elemen-elemen fungsional aplikasi web


SIFAT-SIFAT APLIKASI WEB

  1. Kepadatan jaringan
  2. Keserempakan
  3. Jumlah pengguna yang tidak dapat diprediksi
  4. Kinerja
  5. Ketersediaan
  6. Digerakkan oleh data
  7. Peka terhadap isi
  8. Evolusi yang berkesinambungan
  9. Kesegeraan
  10. Keamanan
  11. Estetika

KUALITAS PERANCANGAN APLIKASI WEB

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


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

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

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.

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.

  • Arsitektur Isi
  1. Struktur Linier: dilakukan saat interaksi user dengan aplikasi web secara umum memperlihatkan urutan yang dapat diramalkan. Contoh: urutan pemasukan pemesanan produk dimana informasi tertentu harus dalam urutan yang bersifat spesifik.
  2. Struktur Grid: arsitektur yang diterapkan saat isi aplikasi web dapat diorganisasikan menjadi 2 dimensi atau lebih. Dimensi horizontal merepresentasikan jenisjenis produk, dan dimensi vertikal merepresentasikan penawaran yang disediakan oleh penjualnya.
  3. Struktur Hirarki: rancangan dimungkinkan adanya pencabangan hypertext (aliran kendali) secara horizontal bergerak melintasi cabang-cabang vertikal pada struktur aplikasi web.
  4. Struktur Jaringan (Web Murni): struktur ini dapat digabungkan untuk membentuk struktur-struktur yang bersifat komposit.
  • Arsitektur Aplikasi Web
    Mendeskripsikan infrastruktur yang memungkinkan sistem atau aplikasi berbasis web untuk mencapai sasaran-sasaran bisnisnya. Arsitektur aplikasi web dibuat dalam 3 lapisan yang
bertujuan untuk memisahkan antarmuka dari mekanisme navigasi dan dari perilaku yang dimiliki oleh aplikasi. Hal ini akan menyederhanakan implementasi aplikasi web dan akan meningkatkan penggunaan ulang komponen-komponennya.

Aristektur MVC (Model View-Controller) secara fungsional dijelaskan sebagai berikut:
  1. Pengendalian: mengelola akses ke model, ke view dan melakukan koordinasi aliran data di antara model dan view.
  2. Model: memuat semua isi yang bersifat spesifik terhadap aplikasi dan memuat logika pemrosesan, termasuk di dalamnya semua objek isi.
  3. View: memuat semua fungsi yang bersifat spesifik terhadap user interface yang di dalamya termuat presentasi isi dan logika pemrosesan, objek isi, akses ke data dan ke sumber informasi lainnya, dan semua fungsionalitas pemrosesan yang diperlukan end user.

Rabu, 24 November 2021

REKAYASA PERANGKAT LUNAK (DESAIN ARSITEKTUR)

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.

ARSITEKTUR PERANGKAT LUNAK

    Arsitektur perangkat lunak mencakup:

  1. Komponen bangunan yang berbeda dapat diintegrasikan menjadi suatu bentuk keseluruhan yang bersifat kohesif
  2. Bangunan yang dibuat sesuai dengan lingkungannya
  3. Bangunan yang dibangun sesuai dengan kegunaannya
  4. Tekstur, warna dan material pembentuknya dikombinasikan untuk membuat tampilan yang bagus
  5. Perancangan pencahayaan, template, dan garis batas
  6. Merupakan suatu bentuk seni
TAMPILAN ARSITEKTURAL

    Tampilan arsitektural antara lain:

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

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
POLA ARSITEKTUR

A. Lapisan Arsitektur (Layered Architecture)

  • Pemahaman tentang pemisahan dan independensisangat 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

  1. Lapisan atas menyediakan fasilitas antarmuka pengguna
  2. Lapisan aplikasi: komponen fungsionalitas aplikasi dan komponen utilitas
  3. Lapisan ketiga: manajemen antarmuka pengguna dan menyediakan otentikasi dan otorisasi pengguna
  4. Lapisan terendah: PL pendukung sistem (basis data dan OS)
Pola Arsitektur Berlapis
  1. Deskripsi: mengatur sistem ke dalam lapisan dengan fungsi terkait. Lapisan menyediakan layanan ke lapisan di atasnya sehingga lapisan tingkat terendah mewakili layanan inti yang kemungkinan akan digunakan di seluruh sistem.
  2. Contoh: sebuah model berlapis dari suatu sistem untuk berbagi dokumen hak cipta yang disimpan di media penyimpanan.
  3. Saat digunakan: saat membangun fasilitas baru di atas sistem yang ada, ketika pengembangan tersebar di beberapa tim dengan tanggung jawab masing-masing tim, ketika ada persyaratan untuk keamananmulti-level.
  4. Keuntungan: memungkinkan penggantian seluruh lapisan selama antarmuka dipertahankan. Fasilitas redundan (misal otentikasi) dapat disediakan di setiap lapisan untuk meningkatkan keandalan sistem.
  5. Kerugian: lapisan tingkat tinggi mungkin harus berinteraksi langsungdengan lapisan tingkat yang lebih rendah daripada melalui lapisan tepat dibawahnya. Kinerja dapat menjadi masalah karena beberapa tingkat interpretasi permintaan layanan diproses pada setiap lapisan.
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
  1. Deskripsi: semua data dalam sistem dikelola di repositori pusat yang dapat diakses oleh semua komponen sistem
  2. Contoh: contoh dari IDE dimana komponen menggunakan repositori, dan setiap PL menghasilkan informasi yang kemudian tersedia untuk digunakan oleh alat lain.
  3. Saat digunakan Ketika sistem dengan sejumlah besar informasi yang dihasilkan disimpan untuk waktu yang lama.
  4. Keuntungan: komponen dapat mandiri, karena tidak perlu mengetahui keberadaan komponen lain, perubahan yang dilakukan oleh satu komponen dapat disebarkan ke semua komponen, semua data dapat dikelola secara konsisten karena semuanya ada di satu tempat.
  5. Kerugian: masalah dalam repositori mempengaruhi seluruh sistem.
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 mengupgrade server secara transparan tanpa mempengaruhi bagian lain dari sistem.
Arsitektur Client-Server
  1. Deskripsi: fungsionalitas sistem diatur ke dalam layanan, dengan setiap layanan yang dikirim dari server terpisah
  2. Contoh: contoh dari perpustakaan film/video
  3. Saat digunakan: ketika data dalam database harus diakses dari berbagai lokasi.
  4. Keuntungan: server dapat didistribusikan melalui jaringan, fungsi umum dapat tersedia untuk semua client dan tidak perlu diterapkan di semua layanan.
  5. Kerugian: setiap layanan dapat terjadi kegagalan sehingga rentan terhadap penolakan layanan atau kegagalan server., kinerja tidak dapat diprediksi karena tergantung pada jaringan dan juga sistem.
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
  1. Deskripsi: pengolahan data diatur dalam suatu sistem sehingga setiap komponen pemrosesan (filter) bersifat diskrit dan melakukan satu jenis transformasi data.
  2. Contoh: contoh pada sistem untuk memproses faktur.
  3. Saat digunakan: umumnya digunakan dalam aplikasi pemrosesan data (baik batch atau berbasis transaksi) di mana input diproses dalam tahap terpisah untuk menghasilkan output.
  4. Keuntungan: mudah dimengerti dan mendukung transformasi reuse, gaya alur kerja cocok dengan struktur proses bisnis, dapat diimplementasikan sebagai sistem sekuensial/konkuren.
  5. Kerugian: format transfer data harus disepakati di antara transformasi komunikasi, setiap transformasi harus memahami input dan tidak mempublikasikan outputnya ke bentuk yang tidak dipahami, meningkatkan overhead sistem, berarti bahwa tidak mungkin menggunakan kembali transformasi fungsional yang menggunakan struktur data yang tidak kompatibel.
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.

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:
  1. Pengguna membuat permintaan ke sistem melalui komponen pemrosesan I / O.
  2. Permintaan diproses oleh beberapa aplikasi logika.
  3. Transaksi dibuat dan diteruskan ke manajer transaksi, yang biasanya tertanam dalam sistem manajemen basis data.
  4. 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


DICODING, KELAS GRATIS HINGGA CHALLENGE MENARIK!

Hai semuanya! sebelumnya, kita kenalan dulu yaa. Saya Mala,salah satu mahasiswi IT di salah satu universitas di Indonesia. Saya ingin berbag...