Sabtu, 24 Mei 2025

UNIT TESTING REKAYASA PERANGKAT LUNAK (Kelompok 10)

 

UNIT TESTING DALAM REKAYASA PERANGKAT LUNAK: MEMAHAMI FONDASI PENGUJIAN KODE

A. Apa Itu Pengujian Perangkat Lunak?

Dalam dunia pengembangan perangkat lunak, pengujian adalah hal yang tak bisa diabaikan. Ini bukan sekadar aktivitas tambahan, tapi bagian penting dari proses memastikan bahwa aplikasi berjalan seperti yang diharapkan. Tujuannya? Mendeteksi kesalahan sejak dini, memastikan semua fitur sesuai dengan rancangan awal, dan tentunya meminimalkan biaya perbaikan di kemudian hari.

Jenis-Jenis Pengujian Umum:

  • Unit Testing – Pengujian bagian terkecil dari aplikasi, seperti fungsi atau prosedur.

  • Integration Testing – Menguji bagaimana modul-modul berinteraksi satu sama lain.

  • System Testing – Memeriksa seluruh sistem secara menyeluruh.

  • Acceptance Testing – Uji coba dari sudut pandang pengguna akhir.

Intinya, pengujian membantu kita menghindari kejutan tidak menyenangkan saat aplikasi sudah di tangan pengguna.

B. Mengenal Lebih Dekat Unit Testing

Unit Testing adalah jenis pengujian paling dasar, tapi sangat krusial. Di sini, yang diuji adalah unit-unit kecil dalam kode—biasanya berupa fungsi atau metode—secara terpisah dan mandiri.

Ciri Khas Unit Testing:

  • Fokusnya pada logika dalam satu unit kode saja.

  • Tidak tergantung modul lain.

  • Umumnya dijalankan secara otomatis.

  • Dikerjakan langsung oleh programmer saat proses development.

Langkah-Langkah Melakukan Unit Test:

  1. Tentukan bagian kode mana yang ingin diuji.

  2. Buat skenario pengujian (test case) berdasarkan kemungkinan input dan output.

  3. Gunakan teknik seperti mocking atau stubbing untuk lingkungan uji coba.

  4. Jalankan test dan evaluasi apakah hasil sesuai harapan.

Kelebihan:

  • Menemukan bug lebih cepat.

  • Bisa jadi dokumentasi yang hidup.

  • Memudahkan proses perubahan atau perbaikan kode (refactoring).

Kekurangan:

  • Tidak menguji hubungan antar bagian kode.

  • Butuh waktu dan tenaga tambahan saat development.

Beberapa Alat Populer untuk Unit Testing:

  • JUnit – untuk Java.

  • PyTest – untuk Python.

  • PHPUnit – untuk PHP.

C. Black Box Testing: Uji Tanpa Mengintip "Dapur" Kode

Berbeda dari unit test yang fokus ke bagian dalam, Black Box Testing hanya melihat dari luar. Penguji tidak tahu seperti apa struktur kode di balik layar—yang penting adalah apakah fitur berjalan seperti semestinya.

Jenis Pengujian:

  • Functional – Misalnya, apakah proses login bekerja dengan benar?

  • Non-Functional – Seperti kecepatan, keandalan, atau kompatibilitas di berbagai perangkat.

  • Regression – Menguji ulang setelah sistem diperbarui untuk memastikan tak ada fitur yang rusak.

Teknik Populer:

  • Equivalence Partitioning – Membagi input ke kelompok yang setara.

  • Boundary Value Analysis – Menguji batas atas dan bawah input.

  • Decision Table Testing, dan lainnya.

Keunggulan:

  • Lebih mewakili cara pengguna menggunakan aplikasi.

  • Tak perlu pengetahuan teknis mendalam tentang kode.

Kekurangan:

  • Tidak bisa mengungkap masalah logika tersembunyi.

  • Bisa saja ada error yang luput terdeteksi.

D. White Box Testing: Melihat Kode dari Dalam

Kalau black box testing melihat dari luar, White Box Testing justru mengupas sistem dari dalam. Penguji punya akses penuh terhadap kode dan menganalisis alur logika, kondisi, dan jalur program.

Teknik yang Umum Digunakan:

  • Statement Coverage – Menguji apakah setiap baris kode telah dijalankan.

  • Branch Coverage – Memastikan semua kemungkinan cabang (if/else) diuji.

  • Path Coverage – Menguji semua kemungkinan jalur eksekusi dalam program.

Kelebihan:

  • Bisa menangkap kesalahan logika yang kompleks.

  • Menjamin tingkat cakupan pengujian kode yang tinggi.

Kekurangan:

  • Membutuhkan pemahaman mendalam tentang kode.

  • Mungkin butuh waktu lebih lama dan biaya lebih besar.

Behavioral UML (Kelompok 9)

 

Memahami Behavioral UML dan Jenis-Jenisnya

Behavioral UML adalah serangkaian diagram dalam Unified Modeling Language (UML) yang difungsikan untuk merepresentasikan perilaku dinamis dari sebuah sistem. Artinya, diagram ini menggambarkan bagaimana sistem bekerja, bereaksi terhadap interaksi pengguna atau kejadian, serta bagaimana elemen dalam sistem berubah seiring waktu.

Di bawah ini terdapat enam jenis utama dari Behavioral UML yang umum digunakan dalam pemodelan sistem:

1. Activity Diagram

Apa itu?
Activity Diagram adalah representasi visual dari rangkaian aktivitas dalam suatu proses. Bisa dibilang mirip seperti flowchart, namun dengan kemampuan tambahan untuk menampilkan proses yang berjalan paralel serta keputusan bercabang.

Fungsinya?
Untuk memberikan gambaran jelas mengenai alur langkah-langkah dalam suatu kegiatan atau proses sistem.

Ilustrasi penggunaan:
Misalnya, proses login ke aplikasi perpustakaan: mulai dari membuka aplikasi, mengetikkan username dan password, hingga proses validasi berhasil dan pengguna diarahkan ke beranda.

2. Sequence Diagram

Apa maksudnya?
Sequence Diagram memperlihatkan alur pertukaran pesan antar objek dalam sistem sesuai dengan urutan waktunya. Diagram ini cocok untuk menjelaskan bagaimana objek saling berkomunikasi selama eksekusi skenario tertentu.

Tujuannya?
Menampilkan kronologi interaksi antar komponen sistem dalam menyelesaikan tugas.

Contoh konkret:
Seorang mahasiswa masuk ke sistem → sistem mengirimkan data ke database untuk dicek → setelah lolos validasi, sistem menyajikan halaman utama.

3. Use Case Diagram

Definisinya?
Diagram ini menunjukkan hubungan antara pengguna sistem (disebut aktor) dengan fitur-fitur atau layanan yang bisa mereka akses. Fokusnya adalah pada apa saja yang bisa dilakukan oleh aktor dalam sistem.

Manfaatnya?
Menggambarkan kebutuhan sistem dari sisi pengguna, sekaligus mengidentifikasi fitur utama yang perlu dikembangkan.

Contoh penggunaan:
Dalam sistem perpustakaan, aktor seperti Anggota, Pengunjung, Admin, dan Pustakawan memiliki hak akses dan fungsi berbeda seperti meminjam buku, mengelola data, atau mencari koleksi.

4. State Diagram

Apa artinya?
Diagram status ini merekam bagaimana kondisi atau status suatu objek dalam sistem berubah akibat peristiwa tertentu.

Gunanya?
Untuk memahami daur hidup (life cycle) suatu entitas dalam sistem, dari awal hingga akhir.

Contoh kasus:
Akun pengguna bisa dalam keadaan “Aktif”. Jika telat mengembalikan buku, statusnya menjadi “Ditangguhkan”, dan jika terjadi pelanggaran berat, bisa berubah menjadi “Diblokir”.

5. Communication Diagram

Penjelasannya?
Diagram komunikasi menggambarkan bagaimana objek dalam sistem saling berinteraksi dan saling terhubung. Walaupun memperlihatkan hubungan antarkomponen, diagram ini tidak menekankan pada urutan waktu seperti sequence diagram.

Kegunaannya?
Untuk melihat struktur dan jalur komunikasi antara berbagai objek yang terlibat dalam menjalankan suatu fungsi.

Contohnya:
Pengguna mencari buku → melihat detail → memasukkan ke keranjang → melakukan peminjaman.

6. Timing Diagram

Apa itu?
Timing Diagram menggambarkan perubahan keadaan suatu objek terhadap waktu, biasanya digunakan dalam sistem yang sensitif terhadap waktu seperti sistem real-time.

Apa fungsinya?
Untuk menganalisis waktu durasi suatu status dan menyinkronkan aktivitas antar komponen sistem.

Contoh penggunaan:
Skenario penggunaan mesin ATM: pengguna memasukkan kartu → verifikasi berlangsung beberapa detik → kartu dikembalikan → akses menu tersedia.

Dengan memahami Behavioral UML, kita bisa merancang sistem yang tidak hanya berfungsi secara struktural, tetapi juga merespons dan berperilaku secara dinamis sesuai kebutuhan pengguna dan skenario bisnis. Diagram-diagram ini sangat penting dalam proses analisis dan perancangan sistem yang kompleks.

Sabtu, 03 Mei 2025

UNIFIED MODELING LANGUAGE (UML) (Kelompok 8)

Mengenal Unified Modeling Language (UML): Bahasa Visual untuk Merancang Sistem

Kalau kamu sedang belajar atau bekerja di bidang pengembangan perangkat lunak, pasti nggak asing dengan istilah UML. Singkatnya, UML adalah bahasa standar yang digunakan untuk memodelkan sistem berbasis objek secara visual. Dengan UML, kita bisa menggambarkan bagaimana struktur dan perilaku sistem berjalan, sehingga memudahkan proses analisis, desain, dan dokumentasi.


Peran UML dalam Pengembangan Perangkat Lunak

  • UML bukan cuma buat programmer saja, tapi juga alat komunikasi yang efektif antar tim pengembang. Beberapa manfaat UML antara lain:
  • Mempermudah komunikasi dengan gambaran visual yang jelas.
  • Membantu memahami kebutuhan sistem, baik yang fungsional maupun non-fungsional.
  • Menjadi dokumentasi lengkap yang berguna saat pengembangan dan pemeliharaan.
  • Menstandarkan proses pengembangan perangkat lunak.
  • Meningkatkan kualitas software lewat analisis yang mendalam.


Dua Jenis Diagram UML: Structural dan Behavioral

  1. UML punya banyak jenis diagram, tapi secara garis besar terbagi menjadi dua:
  2. Diagram Struktural (Structural UML): Menampilkan bagian statis sistem, seperti kelas, paket, dan komponen. Contohnya adalah Class Diagram dan Package Diagram.
  3. Diagram Perilaku (Behavioral UML): Menggambarkan proses dinamis dan interaksi dalam sistem, misalnya Use Case Diagram dan Sequence Diagram.


Jenis-Jenis Diagram UML yang Sering Digunakan

1. Class Diagram

Ini adalah diagram yang menunjukkan struktur kelas dalam sistem, lengkap dengan atribut, metode, dan hubungan antar kelas seperti asosiasi, agregasi, dan pewarisan. Contohnya, dalam sistem perpustakaan digital, ada kelas User, Buku, dan Peminjaman yang saling terhubung.

2. Package Diagram

Digunakan untuk mengelompokkan kelas atau modul terkait ke dalam paket agar sistem lebih terorganisir dan mudah dipahami. Misalnya, paket Perpustakaan yang berisi sub-paket Admin, Buku, dan Transaksi.

3. Object Diagram

Menampilkan snapshot dari objek-objek yang ada pada suatu waktu tertentu, seperti objek usr1:User dengan atribut nama "Dewi Ayu".

4. Component Diagram

Memetakan komponen perangkat lunak seperti file, library, atau modul, serta hubungan ketergantungannya. Contohnya, komponen login yang terhubung ke database.

5. Deployment Diagram

Menggambarkan infrastruktur fisik sistem, seperti server dan node yang menjalankan aplikasi. Misalnya, node web server yang menjalankan aplikasi perpustakaan.


Diagram Perilaku yang Sering Dipakai

  • Use Case Diagram: Menunjukkan interaksi antara pengguna (aktor) dengan sistem.
  • Sequence Diagram: Memvisualisasikan urutan pesan atau interaksi antar objek.
  • Activity Diagram: Menggambarkan alur kerja atau proses bisnis.
  • State Diagram: Menjelaskan perubahan status objek dalam sistem.


Implementasi UML dalam Pengembangan Sistem

  • Untuk membuat dan mengelola diagram UML, ada beberapa software populer seperti StarUML, Lucidchart, Visual Paradigm, dan Enterprise Architect. Selain itu, UML juga bisa diintegrasikan dengan bahasa pemrograman seperti Java atau C++ untuk menghasilkan kode secara otomatis dari diagram yang dibuat.
  • Biasanya, proses pengembangan sistem dengan UML dimulai dari analisis kebutuhan menggunakan Use Case Diagram, dilanjutkan dengan desain sistem memakai Class dan Component Diagram, lalu arsitektur sistem dengan Deployment Diagram, dan diakhiri dengan pengujian menggunakan Activity Diagram.


Contoh Kasus: Sistem Perpustakaan Digital

  • Bayangkan kamu sedang merancang sistem perpustakaan digital. Dengan UML, kamu bisa membuat:
  • Class Diagram untuk mendefinisikan entitas seperti User, Buku, dan Peminjaman.
  • Deployment Diagram untuk menunjukkan server dan jaringan yang menjalankan aplikasi tersebut.
  • Dengan cara ini, seluruh tim bisa memahami sistem secara menyeluruh sebelum mulai coding.


Kesimpulan

UML adalah alat yang sangat membantu dalam memvisualisasikan dan merancang sistem perangkat lunak secara terstruktur. Dengan berbagai jenis diagram yang tersedia, UML memudahkan komunikasi, dokumentasi, dan pengembangan sistem yang lebih terorganisir dan berkualitas. 

Normalisasi Database (Kelompok 7)

Memahami Konsep Dasar Normalisasi dalam Perancangan Database

Saat kita membangun sebuah database, penting sekali untuk memastikan struktur data yang kita buat efisien dan mudah dikelola. Nah, di sinilah normalisasi berperan sebagai teknik penting dalam perancangan basis data relasional.

Apa Itu Normalisasi?

Normalisasi adalah proses pengaturan dan penyusunan tabel dalam database agar data tersimpan secara optimal. Proses ini memecah tabel besar yang berisi banyak data menjadi beberapa tabel lebih kecil yang saling terhubung lewat kunci tertentu. Tujuannya? Mengurangi pengulangan data (redundansi), mencegah kesalahan, dan menjaga keutuhan data agar tetap konsisten.

Kenapa Normalisasi Penting? Mengenal Anomali Data

  • Kalau database tidak dinormalisasi dengan baik, bisa muncul masalah yang disebut anomali data, yaitu ketidakkonsistenan saat data diubah, ditambah, atau dihapus. Ada tiga jenis anomali yang sering terjadi:
  • Anomali Penyisipan (Insert Anomaly): Kesulitan saat menambah data baru, bisa menyebabkan duplikasi.
  • Anomali Pengubahan (Update Anomaly): Jika data di satu tempat diubah tapi tidak di tempat lain, menyebabkan data tidak konsisten.
  • Anomali Penghapusan (Delete Anomaly): Menghapus data tertentu malah membuat informasi penting lain ikut hilang.

Tujuan dan Manfaat Normalisasi

  • Dengan menjalankan proses normalisasi, kita bisa mendapatkan beberapa keuntungan, antara lain:
  • Menghilangkan data yang berulang sehingga menghemat ruang penyimpanan.
  • Mengurangi kemungkinan terjadinya anomali data.
  • Membuat struktur data jadi lebih sederhana dan mudah diurus.
  • Mempermudah proses pengambilan dan pengolahan data.
  • Menjamin stabilitas data dengan mengelompokkan atribut yang saling bergantung.


Tahapan Normalisasi yang Perlu Diketahui

  • Normalisasi dilakukan secara bertahap melalui beberapa tingkat yang disebut normal forms:
  • First Normal Form (1NF): Setiap kolom hanya berisi nilai tunggal, tidak ada daftar nilai dalam satu sel.
  • Second Normal Form (2NF): Menghilangkan ketergantungan parsial pada kunci utama jika tabel memiliki kunci gabungan.
  • Third Normal Form (3NF): Menghapus ketergantungan transitif, artinya kolom non-kunci hanya bergantung pada kunci utama.
  • Boyce-Codd Normal Form (BCNF): Semua determinan harus merupakan superkey.
  • Fourth Normal Form (4NF): Menghindari ketergantungan multivalued.
  • Fifth Normal Form (5NF): Memecah tabel untuk menghilangkan ketergantungan gabungan tanpa kehilangan data.

Bagaimana Proses Normalisasi Dilakukan?

  • Proses normalisasi biasanya meliputi dua langkah utama:
  • Memecah data ke dalam beberapa tabel yang lebih kecil dan terstruktur.
  • Menguji dan memperbaiki tabel agar memenuhi kriteria normalisasi yang diinginkan, jika belum, tabel akan dipecah lagi sampai optimal.


Tools yang Bisa Membantu Normalisasi

  • MySQL Workbench: Software gratis dengan antarmuka visual yang memudahkan pengelolaan database MySQL.
  • DB Browser for SQLite: Aplikasi ringan untuk mengelola database SQLite, cocok untuk proyek kecil tanpa server.


Kesimpulan

Normalisasi adalah langkah penting dalam pembuatan database yang efisien dan terjaga integritasnya. Dengan memahami konsep dasar dan tahapan normalisasi, kamu bisa menghindari masalah data duplikat, inkonsistensi, dan mempermudah pengelolaan database secara keseluruhan. 

Perubahan Perilaku Konsumen dan Organisasi di Era Digital

Dalam mata kuliah Bisnis Digital, kita mempelajari bahwa teknologi sebenarnya hanyalah instrumen. Inti dari revolusi ini bukanlah pada kecan...