Tuesday, November 28, 2023

Studi Kasus 1 - EPL Aplikasi PPDB

 




Deskripsi Studi Kasus:

PPDB Online adalah sebuah sistem yang dirancang untuk melakukan seleksi penerimaan peserta didik baru. Aplikasi pendaftaran PPDB Online mu ini dimaksudkan untuk memberikan kemudahan kepada siswa/orang tua siswa yang hendak melakukan pendaftaran sebagai calon peserta didik baru secara mandiri karena informasi bisa diakses dari rumah dan juga termasuk pendaftaran ppdb cukup dilakukan secara daring online. Aplikasi dengan nama PPDB Onlinemu ini bisa dugunakan untuk semua jenjang mulai dari TK, SD, SMP, SMA/SMK atau sederajat hingga perguruan tinggi.

PPDB Onlinemu memiliki sistem seleksi mulai dari proses pendaftaran, verifikasi berkas, penskoran nilai, dan perangkingan. Hasil seleksi verifikasi berkas dan cek [ hasil seleksi ] perangkingan dapat diakses setiap waktu secara daring online cukup dari rumah saja.

Dengan PPDB Onlinemu ini akan memberikan keuntungan bagi calon peserta didik baru atau wali murid antara lain informasi PPDB akan lebih cepat diakses dan diterima, efisiensi waktu dan biaya karena tidak perlu langsung datang ke sekolah cukup dari rumah. Keuntungan lainnya adalah sekolah akan memiliki basis data yang akurat dan tentunya akan meningkatkan reputasi sekolah.

Namun, pada saat masa pendaftaran, sistem tersebut mengalami beberapa permasalahan :

  1. Kendala Aksesibilitas: Sistem sering mengalami gangguan aksesibilitas, terutama saat pendaftaran sedang berlangsung, yang menyebabkan kesulitan bagi orang tua siswa untuk mengakses sistem dan melakukan pendaftaran.
  2. Ketidakakuratan Informasi: Beberapa informasi yang ditampilkan oleh sistem tidak akurat atau tidak lengkap, menyebabkan kebingungan di antara orang tua siswa terkait dengan persyaratan pendaftaran dan jadwal seleksi.
  3. Kelambatan Proses Verifikasi: Proses verifikasi dokumen pendaftar memakan waktu lama dan seringkali terhambat karena sistem yang lambat dalam memproses data.


Solusi yang Diusulkan:

  1. Peningkatan Infrastruktur: Dinas Pendidikan meningkatkan infrastruktur perangkat keras dan jaringan untuk menangani lonjakan akses saat pendaftaran PPDB berlangsung. Mereka melakukan peningkatan kapasitas server dan mengadopsi teknologi cloud untuk meningkatkan ketersediaan sistem.
  2. Optimasi Antarmuka Pengguna: Tim pengembangan melakukan revamp terhadap antarmuka pengguna (UI/UX) untuk memastikan informasi yang ditampilkan lebih jelas dan akurat. Mereka juga memperbaiki proses navigasi agar lebih intuitif dan mudah dipahami bagi orang tua siswa yang melakukan pendaftaran.
  3. Implementasi Sistem Verifikasi Otomatis: Dengan mengadopsi teknologi pengenalan dokumen otomatis, Dinas Pendidikan mempercepat proses verifikasi dokumen pendaftar. Sistem ini dapat mengenali dan memverifikasi dokumen secara cepat dan akurat, mempercepat proses seleksi.
  4. Pelatihan dan Dukungan Pengguna: Dinas Pendidikan menyediakan pelatihan kepada pengguna, seperti staf sekolah dan orang tua siswa, untuk menggunakan sistem dengan efektif. Mereka juga menyediakan pusat bantuan (helpdesk) yang responsif untuk menanggapi pertanyaan dan masalah teknis yang mungkin timbul.




Soal

  1. Tentukan metode pemeliharaan yang baik dari aplikasi PPDB
  2. Buat analisa dampak / impact analysis
  3. Tentukan langkah-langkah refactoring dari aplikasi PPDB

Monitoring Kelas


Referensi


Tuesday, November 7, 2023

Refactoring



Refactoring merupakan praktik yang penting dalam pengembangan perangkat lunak karena dapat membantu mengurangi kompleksitas, meningkatkan kualitas kode, dan mempermudah pemeliharaan perangkat lunak seiring berjalannya waktu. Selain itu, refactoring juga membantu mencegah akumulasi teknologi utang (technical debt) yang dapat memperlambat pengembangan perangkat lunak dalam jangka panjang.

Refactoring adalah suatu teknik yang digunakan untuk memperbaiki struktur dan desain perangkat lunak tanpa mengubah fungsionalitas eksternal dari perangkat lunak tersebut. Tujuannya adalah untuk membuat kode menjadi lebih mudah dimengerti, mudah diubah, dan lebih efisien tanpa merusak perilaku yang diinginkan.

Aktivitas yang terkait dengan refactoring meliputi:

  1. Pengidentifikasian Kode Buruk: Pertama, Anda perlu mengidentifikasi kode yang perlu diperbaiki. Kode buruk dapat mencakup duplikasi kode, metode atau kelas yang terlalu panjang, atau desain yang kurang efisien.
  2. Pemilihan Refactoring: Setelah kode yang perlu diperbaiki diidentifikasi, Anda perlu memilih jenis refactoring yang sesuai. Beberapa contoh refactoring meliputi ekstraksi metode (extract method), ekstraksi kelas (extract class), penggantian kondisional dengan polimorfisme (replace conditional with polymorphism), dan banyak lagi.
  3. Implementasi Refactoring: Langkah berikutnya adalah mengimplementasikan perubahan yang diperlukan dalam kode. Ini melibatkan penambahan, penghapusan, atau pemindahan kode sesuai dengan jenis refactoring yang dipilih.
  4. Pengujian: Setelah refactoring diimplementasikan, penting untuk melakukan pengujian untuk memastikan bahwa perubahan tersebut tidak mengganggu fungsionalitas perangkat lunak. Unit testing dan pengujian integrasi adalah bagian penting dari proses ini.
  5. Dokumentasi: Pastikan untuk mengupdate dokumentasi perangkat lunak agar mencerminkan perubahan yang telah dilakukan. Ini akan membantu pengembang lain yang mungkin bekerja pada kode yang sama.


Contoh Refactoring
  1. Pretty printing: Align code statements so that code becomes easier to understand as logical units.
  2. Meaningful names for variables:Variable names are chosen to give an indication of programming plans.
  3. One statement per line: Write one code statement in one line, as opposed to many statements in one line.
REFACTORING PROCESS
  • Identify what to refactor.
  • Determine which refactorings should be applied.
  • Ensure that refactoring preserves the software’s behavior.
  • Apply the refactorings to the chosen entities.
  • Evaluate the impacts of the refactorings.
  • Maintain consistency.
Identify What to Refactor
  • Duplicate Code:
  • Long Parameter List
  • Long Methods
  • Large Classes
  • Message Chain

Studi Kasus




Refactoring dalam konteks aplikasi transaksi keuangan atau perbankan sangat penting untuk memastikan keamanan, keandalan, dan kualitas kode. Berikut beberapa teknik refactoring yang dapat membantu Anda memperbaiki penulisan kode dalam aplikasi perbankan:

  1. Ekstraksi Metode (Extract Method): Pisahkan logika transaksi keuangan menjadi metode-metode terpisah. Ini membantu memperjelas kode dan memungkinkan penggunaan ulang kode.

  2. Pemisahan Kode Bisnis (Business Logic) dari Kode Antarmuka (UI): Pastikan kode bisnis dan tampilan terpisah. Ini memungkinkan Anda untuk mengganti tampilan tanpa harus mengubah logika bisnis yang mendasarinya, dan sebaliknya.

  3. Penanganan Kesalahan yang Lebih Baik (Better Error Handling): Pastikan aplikasi memiliki penanganan kesalahan yang baik, termasuk pesan kesalahan yang informatif dan prosedur pemulihan yang sesuai. Ini akan meningkatkan kualitas pengalaman pengguna.

  4. Optimasi Kode: Identifikasi area-area yang dapat dioptimasi untuk meningkatkan kinerja aplikasi. Ini mungkin termasuk meminimalkan panggilan database atau memperkecil beban penggunaan sumber daya.

  5. Menggunakan Desain Berorientasi Objek yang Baik (Good Object-Oriented Design): Pastikan aplikasi Anda mengikuti prinsip-prinsip desain berorientasi objek yang baik, seperti prinsip SOLID. Ini akan membuat kode lebih mudah dipahami dan dikelola.

  6. Menggunakan Unit Testing: Tambahkan unit testing untuk menguji fungsionalitas transaksi keuangan dan mengidentifikasi kesalahan sejak dini. Ini membantu memastikan bahwa perubahan di masa depan tidak merusak fungsi yang ada.

  7. Menerapkan Pola Desain (Design Patterns): Gunakan pola desain yang sesuai untuk masalah yang Anda hadapi. Contohnya, pola Singleton untuk mengelola koneksi database atau pola Strategy untuk mengelola berbagai jenis transaksi.

  8. Pemisahan Kode dalam Modul dan Paket yang Terorganisir (Code Separation into Organized Modules and Packages): Organisasi kode dalam modul dan paket yang terstruktur membantu meningkatkan keterbacaan dan skalabilitas kode.

  9. Pembersihan Kode (Code Cleanup): Hapus kode yang tidak digunakan, komentar yang tidak relevan, atau blok kode yang tidak diperlukan. Pastikan bahwa kode yang tersisa mudah dimengerti.

  10. Penamaan yang Jelas (Clear Naming): Pastikan variabel, metode, dan kelas memiliki nama yang jelas dan deskriptif agar kode lebih mudah dipahami.

Video



Absensi






Monitoring Kelas


Referensi

Final Project EPL 2023

  Monitoring Form  Monitoring Tugas Hasil Monitoring