Tugas 11 PBO Implementasi Network Application

Nama : Afel Allaric Absor
NRP   : 5025231140
Kelas : Pemrograman Berbasis Objek (A)

                                                  Tugas 11 Implementasi Network Application

Dalam aplikasi Network Example ini, kita ingin membuat jaringan sosial sederhana dengan beberapa fitur dasar :

1. User : Pengguna bisa membuat akun, memposting status, dan menyukai postingan orang lain.
2. Post : Postingan ini akan berisi konten yang dibuat oleh penguna, seperti teks atau gambar.
3. Network : Kelas ini menyimpan daftar pengguna dan postingan yang ada dalam aplikasi.

Struktur Kelas :

1. User : Mewakili pengguna dalam aplikasi. Pengguna dapat membuat postingan atau memberi "like" pada postingan orang lain.
2. Post : Mewakili sebuah postingan atau status. Postingan memiliki konten dan daftar pengguna yang telah menyukasi postingan tersebut.
3. Network : Mengelola semua pengguna dan postingan di dalam aplikasi.

- Isi dari file Main.java :

public class Main {
    public static void main (String[] args){

        Network network = new Network();

        User alice = network.addUser("Alice");
        User bob = network.addUser("Bob");

        alice.addPost("Hello, this is Alice's first post!");
        bob.addPost("Hi everyone, Bob here!");

        network.addPost(alice.getPosts().get(0));
        network.addPost(bob.getPosts().get(0));

        bob.likePost(alice.getPosts().get(0));
        alice.likePost(bob.getPosts().get(0));

        network.showAllPosts();
    }
}
___________________________________________________________________________

- Isi dari file Network.java :

import java.util.ArrayList;
import java.util.List;

public class Network {
    private List<User> users;
    private List<Post> posts;

    public Network(){
        users = new ArrayList<>();
        posts = new ArrayList<>();
    }

    public User addUser(String username){
        User user = new User(username);
        users.add(user);

        System.out.println("User added " + username);
        return user;
    }

    public void addPost(Post post){
        posts.add(post);
    }
    public void showAllPosts(){
        System.out.println("\nAllPosts:");
        for (Post post : posts){
            System.out.println(post.getAuthor().getUsername() + " posted : " + post.getContent() +" - Likes : " + post.getLikeCount());
        }
    }
}

___________________________________________________________________________

- Isi dari file Post.java :
import java.util.ArrayList;
import java.util.List;

public class Post {
    private User author;
    private String content;
    private List<User> likes;

    public Post(User author, String content){
        this.author = author;
        this.content = content;
        this.likes = new ArrayList<>();
    }

    public String getContent(){
        return content;
    }

    public User getAuthor(){
        return author;
    }

    public List<User> getLikes(){
        return likes;
    }

    public void addLike(User user){
        if(!likes.contains(user)){
            likes.add(user);
            System.out.println(user.getUsername() + " liked: " + content);
        }
    }

    public int getLikeCount(){
        return likes.size();
    }
}
___________________________________________________________________________

- Isi dari file User.java :
import java.util.ArrayList;
import java.util.List;

public class User {
    private String username;
    private List<Post> posts;

    public User(String username){
        this.username = username;
        this.posts = new ArrayList<>();
    }

    public String getUsername(){
        return username;
    }

    public void addPost(String content){
        Post post = new Post(this, content);
        posts.add(post);
        System.out.println(username + " posted : " + content);
    }

    public void likePost(Post post){
        post.addLike(this);
    }

    public List<Post> getPosts(){
        return posts;
    }
}
___________________________________________________________________________

- Hasil kode saat dijalankan :


Komentar

Postingan populer dari blog ini

PWEB 15 Desain Final Project

Tugas 8 Pemrograman Web (E) Membuat Form Register & Login Menggunakan Bootstrap

Tugas PBO 14 GUI & Panel Login