Jurusan Informatika - Fakultas Teknologi Industri - Universitas Islam Indonesia
  • PROFIL
    • Visi dan Misi
    • Sambutan Ketua Jurusan
    • Struktur Organisasi
    • Dosen
    • Staf
    • Kontak
  • PROGRAM STUDI
    • Program Sarjana
      • Sambutan Kaprodi S1
      • Profil Lulusan
      • Kurikulum 2020
      • Capstone
      • Jalur Tahun Keempat
      • Informatics Expo
      • Informasi & Layanan
      • Prospektus S1
      • Mahasiswa
        • Informasi Akademik
        • Mahasiswa Baru S1 – 2022
        • New IP Students – 2022
        • S1 2021 – Reguler
        • S1 – 2021 – International Program
        • S1 – 2020
    • Program Magister
    • Program Doktor
    • International Program
    • Informatika PJJ
  • UNIT PENDUKUNG
    • Laboratorium
    • Pusat Studi
      • Pusat Studi Forensika Digital
      • Pusat Studi Informatika Medis
        • Visi-Misi
        • Struktur Organisasi
        • Mitra Kerjasama
        • Kegiatan
      • Pusat Studi Sistem Informasi Enterprise
      • Pusat Studi Sains Data
    • ITCentrum
    • Student Staff
    • Komunitas Mahasiswa
    • Lembaga Mahasiswa
  • KEMITRAAN
  • ARTIKEL
    • Pojok Dakwah
    • Pojok Informatika
  • Click to open the search input field Click to open the search input field Search
  • Menu Menu
  • Link to Instagram
  • Link to Facebook
  • Link to Youtube
Pojok Informatika

Urgensi Unit Testing: Menggabungkan Alat Otomatis dan Pendekatan Manual

Bayangkan, kita sedang menjadi seorang programmer di sebuah perusahaan rintisan (startup) teknologi. Proyek baru sudah berjalan selama beberapa minggu dan sekarang waktunya untuk merilis fitur-fitur terbaru kepada pengguna. Semuanya terlihat lancar: fitur-fitur sudah selesai, kode telah dirilis, dan aplikasi siap digunakan. Namun, dua hari setelah peluncuran, seorang pengguna melaporkan masalah: aplikasi sering mengalami crash ketika tombol “Checkout” ditekan. Tim panik dan harus segera mencari penyebabnya. Setelah menghabiskan berjam-jam memeriksa log dan kode, ternyata masalahnya ada pada satu baris kode yang gagal menangani input kosong.

Bug ini seharusnya bisa dicegah jika kita telah menulis dan menjalankan unit testing.

Apa itu unit testing?

Unit testing adalah pengujian pada unit terkecil dari kode, biasanya berupa fungsi atau metode, untuk memastikan program bekerja sesuai harapan. Dengan unit testing, setiap bagian kode diuji satu per satu secara terisolasi.  Jadi, jika kita membuat program yang terdiri dari 100 method, paling sedikit kita harus menulis 100 method unit testing. Pada kenyataannya, sebagian besar tim tidak sempat menulis unit test karena terburu-buru mengejar deadline. Akhirnya, bug ditemukan oleh pengguna dan merusak reputasi tim. Ini adalah masalah umum yang dihadapi banyak tim pengembang.

Mengapa unit testing penting untuk dilakukan?

  1. Mencegah Bug Lebih Awal
    Bug yang ditemukan saat pengembangan jauh lebih murah diperbaiki dibanding bug yang muncul di produksi. Semakin cepat masalah ditemukan, semakin sedikit waktu dan biaya yang terbuang.
  2. Memastikan Perubahan Aman
    Kode selalu berubah seiring bertambahnya fitur baru atau perbaikan kode. Unit test memastikan perubahan tidak merusak kode yang sudah ada.
  3. Kecepatan Pengembangan Jangka Panjang
    Awalnya, menulis unit test memang terasa memakan waktu. Namun, dalam jangka panjang, kode yang teruji membuat pengembangan lebih cepat karena membuat tim lebih percaya diri dalam mengubah kode.

Tantangan Unit Testing Manual

Meski penting, menulis unit test secara manual bukanlah pekerjaan mudah. Mari kita ambil contoh sederhana. Misalnya, kita telah menulis fungsi dalam Python seperti ini, dan menyimpannya menjadi diskon.py.

def hitung_diskon(total_belanja, kupon):
    if total_belanja <= 0:
        raise ValueError("Total belanja harus lebih dari 0")

    if kupon == "DISKON50":
        return total_belanja * 0.5

    return total_belanja

Fungsi ini menghitung diskon jika kupon “DISKON50” digunakan. Lalu, bagaimana kita memastikan fungsi ini benar-benar bekerja untuk semua skenario? Kita perlu menulis beberapa test case secara manual, seperti:

  1. Apa yang terjadi jika total belanja = 100 dan kupon = “DISKON50”?
  2. Bagaimana jika total belanja = 0?
  3. Apa yang terjadi jika kupon tidak valid?
  4. Bagaimana jika kupon kosong?

Contoh unit test manual untuk fungsi di atas dalam Python (menggunakan library unittest):

import unittest
from diskon import hitung_diskon

class TestHitungDiskon(unittest.TestCase):
    def test_diskon_valid(self):
        self.assertEqual(hitung_diskon(100, "DISKON50"), 50)

    def test_total_belanja_negatif(self):
        with self.assertRaises(ValueError):
            hitung_diskon(-10, "DISKON50")

    def test_kupon_tidak_valid(self):
        self.assertEqual(hitung_diskon(100, "DISKON20"), 100)

    def test_kupon_kosong(self):
        self.assertEqual(hitung_diskon(100, ""), 100)

if __name__ == '__main__':
    unittest.main()

Nah, menulis seperti ini untuk puluhan bahkan ratusan fungsi bisa memakan waktu. Apalagi jika aplikasi memiliki banyak edge case yang harus diuji.

Solusi: Pembangkitan Unit Test Otomatis

Bayangkan kalau sebuah alat bisa membantu kita menghasilkan test case tersebut secara otomatis. Inilah yang ditawarkan teknologi pembangkitan otomatis pengujian berbasis AI.

Bagaimana alat ini bekerja?

  1. Analisis Kode: Alat AI membaca struktur kode, memahami logika, dan menemukan jalur eksekusi berbeda.
  2. Identifikasi Edge Case: AI secara otomatis menciptakan test case untuk skenario yang mungkin dilewatkan.
  3. Hasil Otomatis: Alat ini membuat test case yang bisa langsung dijalankan.

Contoh Pembangkitan Otomatis dengan AI

Misalkan kita menggunakan alat seperti ChatGPT atau PyTest bersama plugin AI. Tanpa perlu menuliskan semua pengujian secara manual, alat ini bisa menganalisis fungsi hitung_diskon dan langsung menghasilkan kode pengujian seperti:

def test_hitung_diskon_kupon_valid():
    assert hitung_diskon(100, "DISKON50") == 50

def test_hitung_diskon_total_kosong():
    try:
        hitung_diskon(0, "DISKON50")

    except ValueError:
        assert True

def test_hitung_diskon_kupon_tidak_valid():
    assert hitung_diskon(100, "DISKON30") == 100

def test_hitung_diskon_total_negatif():
    try:
        hitung_diskon(-1, "DISKON50")

    except ValueError:
        assert True

AI secara cerdas menghasilkan pengujian yang memastikan semua jalur kode sudah diuji. Ini menghemat banyak waktu!

Namun, bukan berarti kita bisa sepenuhnya meninggalkan pengujian manual. AI sangat membantu dalam menemukan edge case dan pengujian dasar. Namun, pengujian untuk logika bisnis kompleks masih memerlukan pemahaman manusia.

Pendekatan Hibrida

Pendekatan terbaik adalah pendekatan hibrida:

  1. AI digunakan untuk menangani pengujian dasar dan edge case.
  2. Tambahkan pengujian manual untuk skenario khusus, seperti aturan bisnis yang kompleks.
  3. Integrasikan pembangkitan otomatis ini di dalam CI/CD pipeline agar pengujian berjalan secara berkala.

Masa Depan Unit Testing

Di era modern, unit testing bukan lagi “pekerjaan tambahan,” melainkan bagian penting dari pengembangan. Namun, keterbatasan waktu dan kompleksitas kode sering membuat pengembang kewalahan. Teknologi pembangkitan otomatis, terutama yang didukung AI, hadir sebagai solusi. Alat ini bisa mempercepat proses penulisan pengujian, memastikan coverage yang lebih baik, dan memberi tim kepercayaan diri untuk terus mengembangkan fitur baru.

Dengan menggabungkan teknologi ini dengan penilaian manusia, kamu tidak hanya bisa mencegah bug, tapi juga memastikan aplikasi berkualitas tinggi—tanpa mengorbankan waktu dan kecepatan.

Jadi, siapkah kamu memanfaatkan kekuatan unit testing dan AI? Masa depan ada di tanganmu!


Penulis: Novi Setiani (Dosen Informatika UII)

Related posts:

Django: Python Bisa Buat Bikin Web?

Pengaruh UI/UX terhadap Kesehatan Mental

Parallel Development for a Short Time from Technical Aspect

Pemrograman dan Sabar: Pelajaran Kehidupan dari Dunia Coding

Kedaulatan Digital

December 22, 2024/by informatika
Share this entry
  • Share on Facebook
  • Share on X
  • Share on WhatsApp
  • Share on LinkedIn
  • Share by Mail
https://informatics.uii.ac.id/wp-content/uploads/2021/11/Photo-by-JESHOOTS.COM-on-Unsplash-scaled.jpg 1024 2560 informatika https://informatics.uii.ac.id/wp-content/uploads/2020/03/Logo-webTF-UII-1030x420.png informatika2024-12-22 08:30:142024-12-26 08:38:31Urgensi Unit Testing: Menggabungkan Alat Otomatis dan Pendekatan Manual
  • Poster Rekrutmen Calon Kader Posbindu Sirih Melingkar
    PENGUMUMAN Rekrutmen Calon Kader Posbindu Sirih MelingkarOctober 2, 2026 - 16:01
  • SEO Tak Lagi Hanya Soal Google, WPYK #24 di Informatika UII Bahas Search Era AI dan Agentic SEOSeptember 30, 2026 - 15:38
  • Informatics Undergraduate Program logo
    Pengumuman Asisten Mandiri Semester Ganjil 2026/2027September 25, 2026 - 12:24
  • Informatics Undergraduate Program logo
    Surat Edaran Dosen Pembimbing Skripsi Tugas Akhir Semester Ganjil 2026/2027September 25, 2026 - 12:14
  • Informatics Undergraduate Program logo
    ITSC Laboratory Opens Recruitment for Teaching Assistants in the International ProgramSeptember 23, 2026 - 11:06
  • Open Recruitment Asisten Laboratorium ITSC Semester Ganjil Tahun Akademik 2026/2027September 16, 2026 - 16:37
  • PJJ START Sambut Mahasiswa Baru Informatika PJJ UII Semester Ganjil 2026/2027September 16, 2026 - 16:18
  • Tim Yu Ai Ai dari Informatika UII Raih Best Finalist Idea Track Astranauts 2026September 8, 2026 - 15:37
  • Sambut Maba 2026, Prodi Informatika Bekali Mahasiswa Baru lewat Penjelasan AkademikSeptember 8, 2026 - 09:16
  • Oracle Academy Sambangi Informatika UII, Paparkan Pemutakhiran Program bagi Institusi AnggotaSeptember 4, 2026 - 17:55

Categories

JURUSAN INFORMATIKA

Gedung KH. Mas Mansyur  Lantai 2
Universitas Islam Indonesia
Jl. Kaliurang KM. 14,5 Sleman Yogyakarta 55584

Telepon: +62 274 895287 ext. 122
Faks: +62 274 895007
Email:
Jurusan: [email protected]
Prodi Informatika Program Sarjana: [email protected]
Prodi Informatika Program Magister : [email protected]
Prodi Informatika PJJ : [email protected]
Instagram: @informatics.uii

TAUTAN CEPAT

Universitas

Fakultas

UII Gateway

Admisi

© Hak Cipta 2022 - Jurusan Informatika UII - Yogyakarta
  • Link to Instagram
  • Link to Facebook
  • Link to Youtube
Link to: Ujian Pendadaran TA dan Penjaluran Tahun Keempat Link to: Ujian Pendadaran TA dan Penjaluran Tahun Keempat Ujian Pendadaran TA dan Penjaluran Tahun Keempat Link to: Menyikapi Sakit dan Pelajaran di Baliknya Link to: Menyikapi Sakit dan Pelajaran di Baliknya obat kebaikan sakitMenyikapi Sakit dan Pelajaran di Baliknya
Scroll to top Scroll to top Scroll to top