Mochamad Kolbi Nuron_5025231183_tugas PBO 11

 Nama : Mochamad Kolbi Nuron

NRP : 5025231183

tugas pbo ke 11 implementasi aplikasi network

1. user.java

import java.util.ArrayList;

import java.util.List;


public class User {

    private String username;

    private List<Post> posts;

    private List<Post> likedPosts;


    public User(String username) {

        this.username = username;

        this.posts = new ArrayList<>();

        this.likedPosts = new ArrayList<>();

    }


    public String getUsername() {

        return username;

    }


    public List<Post> getPosts() {

        return posts;

    }


    public void createPost(String content, boolean isImage) {

        Post newPost = new Post(this, content, isImage);

        posts.add(newPost);

    }


    public void likePost(Post post) {

        if (!likedPosts.contains(post)) {

            post.addLike();

            likedPosts.add(post);

        }

    }


    @Override

    public String toString() {

        return "User: " + username + " (Posts: " + posts.size() + ")";

    }

}

Kelas User merepresentasikan pengguna media sosial dengan atribut username (nama pengguna), daftar postingan (posts), dan daftar postingan yang disukai (likedPosts), dilengkapi konstruktor untuk inisialisasi atribut; metode createPost untuk membuat postingan baru (dengan teks atau gambar) dan menambahkannya ke daftar posts; metode likePost untuk memberikan "like" pada postingan lain jika belum disukai, serta menambahkannya ke likedPosts; dan metode toString untuk memberikan representasi string berupa nama pengguna dan jumlah postingan yang dibuat.

2. network.java
import java.util.ArrayList;
import java.util.List;

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

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

    public void registerUser(String username) {
        User newUser = new User(username);
        users.add(newUser);
    }

    public User getUser(String username) {
        for (User user : users) {
            if (user.getUsername().equals(username)) {
                return user;
            }
        }
        return null;
    }

    public void addPost(Post post) {
        posts.add(post);
    }

    public List<User> getUsers() {
        return users;
    }

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

    public void displayAllPosts() {
        for (Post post : posts) {
            System.out.println(post);
        }
    }

    public void displayAllUsers() {
        for (User user : users) {
            System.out.println(user);
        }
    }
}
Kelas Network mengelola daftar pengguna (users) dan postingan (posts) dalam aplikasi media sosial, menyediakan fitur untuk mendaftarkan pengguna (registerUser), mendapatkan pengguna berdasarkan nama (getUser), menambah postingan (addPost), menampilkan semua pengguna (displayAllUsers), dan menampilkan semua postingan (displayAllPosts).

3. post.java
public class Post {
    private User author;
    private String content;
    private boolean isImage;
    private int likes;

    public Post(User author, String content, boolean isImage) {
        this.author = author;
        this.content = content;
        this.isImage = isImage;
        this.likes = 0;
    }

    public User getAuthor() {
        return author;
    }

    public String getContent() {
        return content;
    }

    public boolean isImage() {
        return isImage;
    }

    public int getLikes() {
        return likes;
    }

    public void addLike() {
        likes++;
    }

    @Override
    public String toString() {
        return "Post by " + author.getUsername() + " [" + (isImage ? "Image" : "Text") + "] - Likes: " + likes;
    }
}
Kelas Post merepresentasikan postingan dalam aplikasi media sosial dengan atribut author (penulis postingan), content (isi postingan), isImage (penanda apakah konten berupa gambar atau teks), dan likes (jumlah like), menyediakan metode untuk mendapatkan informasi postingan (getAuthor, getContent, isImage, getLikes), menambah jumlah like (addLike), serta metode toString untuk memberikan representasi string yang menampilkan informasi penulis, jenis konten (teks/gambar), dan jumlah like.

4. Main.java
public class Main {
    public static void main(String[] args) {
        Network network = new Network();

        // Register users
        network.registerUser("Diana");
        network.registerUser("Ethan");

        // Get users
        User diana = network.getUser("Diana");
        User ethan = network.getUser("Ethan");

        // Users create posts
        diana.createPost("This is my first post!", false);
        diana.createPost("I just captured this beautiful scenery!", true);

        ethan.createPost("Hello, everyone! Glad to join this network.", false);
        ethan.createPost("Loving this platform so far!", false);

        // Add posts to network
        for (Post post : diana.getPosts()) {
            network.addPost(post);
        }
        for (Post post : ethan.getPosts()) {
            network.addPost(post);
        }

        // Users like posts
        ethan.likePost(diana.getPosts().get(0)); // Ethan likes Diana's first post
        diana.likePost(ethan.getPosts().get(1)); // Diana likes Ethan's second post

        // Display all users and their posts
        System.out.println("Users in the network:");
        network.displayAllUsers();

        System.out.println("\nPosts in the network:");
        network.displayAllPosts();
    }
}
Kelas Main adalah titik masuk program yang mensimulasikan aplikasi media sosial dengan membuat objek Network, mendaftarkan pengguna (registerUser), membuat postingan (createPost), menambahkan postingan ke jaringan (addPost), memberikan "like" pada postingan orang lain (likePost), serta menampilkan daftar pengguna (displayAllUsers) dan postingan (displayAllPosts).



Komentar

Postingan populer dari blog ini

Mochamad Kolbi Nuron_5025231183_ETS PBO A

tugas PBOA pengertian dan konsep OOP

Mochamad Kolbi Nuron_5025231183_Tugas PBO 8