/** * Praktikum 12 - Teman Level 3 * * Kelas ini digunakan untuk mempermudah kegiatan praktikum mata kuliah * Struktur Data dan Algoritma di Program Studi Teknik Informatika, * Fakultas Teknologi Informasi, Universitas YARSI. * * Berbeda dengan kuliah pendahulunya, Dasar-Dasar Pemrograman, pada kuliah ini * fokus pada mengembangkan kemampuan mahasiswa untuk menggunakan struktur data * dan berbagai algoritma. Mahasiswa diasumsikan sudah memiliki pengetahuan * dasar untuk membuat program, sehingga memberikan berkas untuk mereka * ubah-ubah selama kegiatan Praktikum, tidak akan menghambat mahasiswa dalam * mencapai tujuan kuliah. * * Untuk menyelesaikan kegiatan Praktikum ini dengan baik, pastikan Anda * membaca instruksi Praktikum dengan baik dan benar. */ /* * Diperlukan untuk mempermudah kegiatan Praktikum ini. */ import fti.ti.sda.Praktikum12Helper; /* * Diperlukan agar bisa menggunakan struktur data Node untuk Graf yang sengaja * disiapkan untuk kegiatan Praktikum ini. */ import fti.ti.sda.GraphNodeSDA; /* * Diperlukan untuk menyimpan daftar teman level 3. */ import java.util.LinkedList; /** * @author [tulis nama Anda disini] * @version 1.00 * * Praktikum ini bertujuan untuk melatih Anda dalam memanfaatkan struktur data * Graf beserta salah algoritma penelusurannya, yaitu Breadth First Search. * Berdasarkan graf yang diberikan, Anda harus menentukan teman level ketiga * yang dimiliki oleh Node awal. * * Pastikan nama berkas dan kelas sesuai dengan instruksi Praktikum. */ public class Praktikum12 { /** * Jangan ubah method ini kecuali ketika Anda menyesuaikan nama kelas! * * Method yang pertama kali dipanggil ketika kelas ini eksekusi. * @param args Argumen yang diberikan pengguna saat menjalankan program */ public static void main(String[] args) { /* * Pada kegiatan Praktikum, Anda akan memanfaatkan kelas * Praktikum Helper untuk mempermudah beberapa proses pembuatan program. * Baris berikut akan membuat sebuah instance baru PraktikumHelper. */ Praktikum12Helper helper = new Praktikum12Helper(); /* * Pada kegiatan Praktikum ini, kode yang Anda buat akan diuji dengan * menggunakan banyak set data, yang secara umum dapat dibagi menjadi * data untuk latihan (i.e., practice data) dan data yang dibuat secara * acak (i.e., random data). Practice data selalu memberikan graf yang * sama setiap kali program ini dijalankan. Manfaatkan practice data * untuk mengembangkan algoritma yang diperlukan untuk menyelesaikan * Praktikum ini. */ // lakukan pengujian dengan menggunakan Practice Data System.out.println("--- Practice Data --- "); // membaca practice data dari helper GraphNodeSDA startingPoint = helper.getPracticeData(); // menampilkan informasi mengenai practice data System.out.println("- Informasi tentang data: "); helper.printPracticeData(); // menjalankan dan menampilkan keluaran dari kode yang Anda buat System.out.println("- Jawaban Anda: "); System.out.println("Teman Level 3 dari " + startingPoint.getData() + " adalah " + Praktikum12.getLevel3Friend(startingPoint)); // lakukan pengujian dengan menggunakan Random Data System.out.println("\n--- Test Data --- "); // membaca random data dari helper startingPoint = helper.getData(); // menampilkan informasi mengenai random data System.out.println("- Informasi tentang data: "); helper.printData(); // menjalankan dan menampilkan keluaran dari kode yang Anda buat System.out.println("- Jawaban Anda: "); System.out.println("Teman Level 3 dari " + startingPoint.getData() + " adalah " + Praktikum12.getLevel3Friend(startingPoint)); } /** * Selama Praktikum Anda hanya perlu mengubah method ini. * * Method ini akan mencari teman level 3 dari startNode yang diberikan. * Konsep teman level 3 umum digunakan dalam sosial media, yang biasanya * diterjemahkan sebagai teman-dari-teman-dari-teman-Anda. Berhubung sulit * untuk memprediksi jumlah teman level 3 suatu Node, struktur data dinamis * LinkedList digunakan sebagai tempat pendataan. * @param startNode Node yang menjadi titik awal untuk mencari teman * level 3. * @return Daftar teman level 3 dari Node startNode, yang disimpan dalam * sebuah LinkedList. */ public static LinkedList> getLevel3Friend( GraphNodeSDA startNode){ // membuat tempat penyimpanan teman level 3 dari startNode LinkedList> level3Friend = new LinkedList<>(); // ---- silahkan tambahkan kode Anda di bawah baris ini return level3Friend; // kembalikan seluruh teman level 3 dari startNode } }