SOAL TUGAS AKHIR SEMESTER ANTARA (SA)
FAKULTAS TEKNOLOGI INFORMASI
Periode Pelaksanaan: 17 Juni – 27 Juni 2026
Dosen Pengampu: Alimin, M.Kom
Sifat Tugas: Mandiri / Individu
Petunjuk Umum Pengerjaan:
-
Mahasiswa wajib mengerjakan tugas untuk setiap mata kuliah yang ditempuh pada Semester Antara ini.
-
Tugas format berupa Review Paper Jurnal + Implementasi Kode Program Sederhana.
-
Output tugas dikumpulkan dalam bentuk Laporan PDF (Maksimal 3 Halaman per mata kuliah) dengan format penamaan file:
NIM_Nama_MataKuliah_SA2026.pdf. Kirim Ke Email (alimin@itbyadika.ac.id) -
Batas akhir pengumpulan adalah 27 Juni 2027 melalui sistem akademik kampus.
BENTUK DAN STRUKTUR SOAL PER MATA KULIAH
1. Mata Kuliah: Keamanan Sistem Informasi
-
A. Instruksi Review Paper:
-
Carilah 1 Jurnal/Paper (Nasional/Internasional) terbitan 5 tahun terakhir dengan tema: "Penerapan Algoritma Kaining/Hashing (MD5 / SHA-256 / AES) untuk Keamanan Autentikasi/Password".
-
Tulis resume singkat yang mencakup: Masalah utama siber yang diangkat, Metode enkripsi yang diajukan, dan Hasil efektivitasnya.
-
-
B. Instruksi Implementasi (Coding):
-
Buatlah sebuah fungsi/skrip kode pendek (menggunakan Python/PHP/Java) untuk mengubah sebuah string teks biasa (Plaintext) menjadi string terenkripsi (Hash SHA-256 atau MD5).
-
-
C. Output Laporan: Screenshot potongan kode program dan hasil terminal yang menampilkan teks sebelum dan sesudah di-hash.
2. Mata Kuliah: Pemrograman Database Berbasis Desktop
-
A. Instruksi Review Paper:
-
Carilah 1 Jurnal/Paper dengan tema: "Arsitektur Konektivitas Aplikasi Desktop dengan Database Management System (DBMS) Menggunakan JDBC/ODBC".
-
Tulis resume singkat mengenai: Kendala koneksi data yang sering terjadi pada aplikasi desktop dan solusi arsitektur database yang ditawarkan oleh paper tersebut.
-
-
B. Instruksi Implementasi (Coding):
-
Buatlah skrip koneksi database (menggunakan pustaka seperti PyMySQL, Connector/J, atau sejenisnya) yang berfungsi mendeteksi status jaringan ke database lokal.
-
-
C. Output Laporan: Screenshot kode koneksi serta pop-up / teks indikator di layar yang memunculkan pesan
"Koneksi ke Database Berhasil!".
3. Mata Kuliah: Praktikum Pemrograman Berbasis Desktop
-
A. Instruksi Review Paper:
-
Carilah 1 Jurnal/Paper dengan tema: "Implementasi Desain Pattern CRUD (Create, Read, Update, Delete) pada Aplikasi Desktop Mandiri".
-
Tulis resume singkat mengenai: Bagaimana struktur kode atau fungsi manipulasi data diatur agar aplikasi tidak mengalami crash saat memproses data.
-
-
B. Instruksi Implementasi (Coding):
-
Buatlah sebuah fungsi spesifik untuk "Insert" (Simpan Data) atau "Delete" (Hapus Data) ke dalam satu tabel database (boleh menggunakan SQLite agar ringan tanpa instalasi server).
-
-
C. Output Laporan: Screenshot visual GUI/aplikasi sebelum tombol aksi diklik, dan kondisi data di database setelah tombol ditekan.
4. Mata Kuliah: Pengolahan Citra (Image Processing)
-
A. Instruksi Review Paper:
-
Carilah 1 Jurnal/Paper dengan tema: "Metode Pre-processing Citra Digital (Grayscale / Thresholding / Canny Edge Detection) untuk Identifikasi Objek".
-
Tulis resume singkat mengenai: Mengapa kualitas gambar asli perlu diubah ke hitam-putih/fitur tepi sebelum diproses oleh sistem utama.
-
-
B. Instruksi Implementasi (Coding):
-
Buatlah program pendek memanfaatkan library pengolahan citra (seperti OpenCV / Pillow) untuk memanipulasi 1 file gambar berwarna menjadi gambar grayscale (abu-abu) atau mendeteksi garis tepinya.
-
-
C. Output Laporan: Screenshot baris kode operasi piksel gambar, serta lampiran foto Before (Berwarna) dan After (Grayscale/Edge) berdampingan.
5. Mata Kuliah: Blockchain
-
A. Instruksi Review Paper:
-
Carilah 1 Jurnal/Paper dengan tema: "Konsep Struktur Data Ledger Berantai (Blockchain) dalam Menjaga Integritas Data".
-
Tulis resume singkat mengenai: Bagaimana mekanisme hash blok sebelumnya (Previous Hash) dapat mencegah manipulasi atau pemalsuan data digital.
-
-
B. Instruksi Implementasi (Coding):
-
Buatlah simulasi kelas (Class) objek Block sederhana di pemrograman yang memiliki komponen:
Data,Timestamp,Previous Hash, danCurrent Hash. Sambungkan minimal 2 atau 3 blok data terikat.
-
-
C. Output Laporan: Screenshot struktur objek kode dan hasil print-out terminal yang membuktikan nilai hash Blok 1 menjadi landasan Previous Hash di Blok 2.
STRUKTUR SISTEMATIKA LAPORAN (MAKSIMAL 3 HALAMAN PER MATKUL)
-
Halaman 1: Identitas & Review Paper
-
Judul Paper, Nama Jurnal, Tahun, Penulis.
-
Ringkasan (Masalah, Metode, Hasil).
-
-
Halaman 2: Kode Sumber (Source Code)
-
Screenshot potongan kode penting/inti yang menjawab soal implementasi.
-
-
Halaman 3: Hasil Pengujian (Output)
-
Screenshot bukti program berjalan sukses di laptop/komputer masing-masing mahasiswa
-
Template Kode Berbasis Python - Semester Antara
Berikut adalah template kode berbasis Python untuk kelima mata kuliah. Bahasa ini dipilih karena mudah dipahami dan proses instalasi library-nya cepat untuk kebutuhan praktikum mahasiswa.
1 Keamanan Sistem Informasi (Template Hashing Password)
Mahasiswa hanya perlu mengganti teks "isi_password_di_sini" dan mencoba algoritma lain jika ingin bereksperimen.
import hashlib def amankan_password(): # TODO: Mahasiswa diminta mengganti teks password di bawah ini password_asli = "isi_password_di_sini" # Proses Hashing menggunakan SHA-256 hash_object = hashlib.sha256(password_asli.encode()) password_terenkripsi = hash_object.hexdigest() print("========== KELOMPOK KEAMANAN SISTEM ==========") print(f"Password Teks Biasa : {password_asli}") print(f"Hasil Enkripsi SHA-256: {password_terenkripsi}") print("==============================================") # Jalankan fungsi amankan_password()
2 Pemrograman Database Berbasis Desktop (Template Koneksi Database)
Template ini menggunakan SQLite agar mahasiswa tidak perlu menginstal MySQL/XAMPP yang berat jika terkendala spek laptop. Namun jika tetap menggunakan MySQL, tinggal menyesuaikan library-nya.
import sqlite3 def cek_koneksi_database(): try: # Mencoba membuka/membuat file database lokal bernama 'kampus_sa.db' koneksi = sqlite3.connect('kampus_sa.db') print("========== CEK KONEKSI DATABASE ==========") print("Status: KONEKSI BERHASIL!") print("Database 'kampus_sa.db' siap digunakan.") print("==========================================") koneksi.close() except Exception as error: print(f"Status: KONEKSI GAGAL! Alasan: {error}") # Jalankan fungsi cek_koneksi_database()
3 Praktikum Pemrograman Berbasis Desktop (Template Fungsi Tambah Data/Insert)
Melanjutkan database di atas, mahasiswa diminta melengkapi bagian logika untuk memasukkan data mahasiswa baru ke dalam tabel.
import sqlite3 def tambah_data_mahasiswa(): koneksi = sqlite3.connect('kampus_sa.db') cursor = koneksi.cursor() # Membuat tabel jika belum ada cursor.execute('''CREATE TABLE IF NOT EXISTS mahasiswa (nim TEXT, nama TEXT)''') # Data yang akan dimasukkan # TODO: Mahasiswa diminta mengubah NIM dan Nama mereka sendiri di sini nim_mhs = "20260001" nama_mhs = "Nama Mahasiswa SA" # Logika SQL Query untuk Tambah Data try: cursor.execute("INSERT INTO mahasiswa (nim, nama) VALUES (?, ?)", (nim_mhs, nama_mhs)) koneksi.commit() print("Status: DATA BERHASIL DISIMPAN KE DATABASE!") except Exception as e: print(f"Status: GAGAL MENYIMPAN DATA. Alasan: {e}") koneksi.close() # Jalankan fungsi tambah_data_mahasiswa()
4 Pengolahan Citra / Image Processing (Template Konversi Grayscale)
Mahasiswa cukup menyiapkan satu file gambar bernama input.jpg di folder yang sama, lalu menjalankan skrip ini menggunakan library OpenCV (pip install opencv-python).
import cv2 def proses_gambar(): # Ambil gambar berwarna # TODO: Pastikan mahasiswa menyediakan file 'input.jpg' di folder yang sama gambar_asli = cv2.imread('input.jpg') if gambar_asli is None: print("Error: File 'input.jpg' tidak ditemukan! Taruh foto di folder yang sama.") return # TODO: Mahasiswa menuliskan baris kode konversi ke Grayscale di bawah ini gambar_abu = cv2.cvtColor(gambar_asli, cv2.COLOR_BGR2GRAY) # Simpan hasil gambar baru cv2.imwrite('output_grayscale.jpg', gambar_abu) print("========== PROSES CITRA SELESAI ==========") print("Gambar 'output_grayscale.jpg' berhasil dibuat!") print("==========================================") # Jalankan fungsi proses_gambar()
5 Blockchain (Template Pembuatan Blok Berantai Sederhana)
Mahasiswa diberikan struktur dasar pembuatan Blok. Mereka diminta melengkapi logika penyambungan blok ke-2 agar mengambil nilai hash dari blok ke-1.
import hashlib import time class Block: def __init__(self, data, previous_hash): self.timestamp = time.time() self.data = data self.previous_hash = previous_hash self.hash = self.hitung_hash() def hitung_hash(self): # Menggabungkan komponen data menjadi satu string hash payload = str(self.timestamp) + str(self.data) + str(self.previous_hash) return hashlib.sha256(payload.encode()).hexdigest() # --- PROSES PEMBUATAN RANTAI (CHAIN) --- print("========== SIMULASI BLOCKCHAIN ==========") # 1. Membuat Blok Pertama (Genesis Block) genesis_block = Block("Data Transaksi Awal Kampus", "0") print(f"Blok 1 (Genesis) Berhasil Dibuat!") print(f"-> Hash Blok 1: {genesis_block.hash}\n") # 2. Membuat Blok Kedua yang terikat dengan Blok Pertama # TODO: Mahasiswa diminta mengisi argumen second_parameter dengan hash dari genesis_block blok_kedua = Block("Data Transaksi Mahasiswa SA", genesis_block.hash) print(f"Blok 2 Berhasil Dibuat!") print(f"-> Previous Hash Blok 2: {blok_kedua.previous_hash}") print(f"-> Hash Blok 2 : {blok_kedua.hash}") print("=========================================")