Pertemuan 11 PBO A - Implementasi Social Network App
Implementasi Social Network App
Nama : Dapunta Adyapaksi Ratyanasja
NRP : 5025231187
Tugas : Pertemuan 11
Fitur
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 : Menyimpan semua data layaknya database.
2. Post : Postingan ini akan berisi konten yang dibuat oleh penguna, seperti teks atau gambar.
3. Network : Menyimpan semua data layaknya database.
Penjelasan Kode
1. Class User
Kelas ini bertujuan untuk mewakili seorang pengguna dalam aplikasi jaringan sosial.
Deklarasi Class User
class User {
// content
}
Deklarasi Atribut
private String username; // Menyimpan nama pengguna dalam bentuk
Stringprivate List<Post> posts; // Menyimpan daftar (list) dari objek
PostKonstruktor User
// Membuat objek baru dari kelas
Userpublic User(String username) {
this.username = username;
this.posts = new ArrayList<>();
}
Metode getUsername()
// Mengembalikan nilai dari atribut
username yang dimiliki oleh penggunapublic String getUsername() {
return username;
}
Metode addPost()
// Menambahkan postingan baru ke dalam daftar postingan pengguna
public void addPost(String content) {
Post post = new Post(this, content);
posts.add(post);
System.out.println(username + " posted : " + content);
}
Metode likePost()
// Memberikan "like" pada sebuah postingan yang dibuat oleh pengguna lain
public void likePost(Post post) {
post.addLike(this);
}
Metode getPosts()
// Mendapatkan daftar semua postingan yang dimiliki oleh pengguna
public List<Post> getPosts() {
return posts;
}
2. Class Post
Kelas ini bertujuan untuk mewakili sebuah postingan dalam aplikasi social network. Setiap postingan dibuat oleh seorang pengguna (User) dan memiliki konten serta daftar pengguna yang menyukainya.
Kelas ini bertujuan untuk mewakili sebuah postingan dalam aplikasi social network. Setiap postingan dibuat oleh seorang pengguna (User) dan memiliki konten serta daftar pengguna yang menyukainya.
Deklarasi Class Post
class Post {
// content
}
Deklarasi Atribut
private User author; // Menyimpan objek
Userprivate String content; // Menyimpan isi konten dari postingan dalam bentuk
Stringprivate List<User> likes; // Menyimpan (list) dari objek
User yang memberikan "like"Konstruktor Post
// Membuat objek
Post yang barupublic Post(User author, String content) {
this.author = author;
this.content = content;
this.likes = new ArrayList<>();
}
Metode getContent()
// Mengambil konten postingan
public String getContent() {
return content;
}
Metode getAuthor()
// Mengambil penulis postingan
public User getAuthor() {
return author;
}
Metode getLikes()
// Mengambil daftar pengguna yang telah memberikan "like"
public List<User> getLikes() {
return likes;
}
Metode addLike()
// Menambahkan pengguna yang menyukai postingan
public void addLike(User user) {
if (!likes.contains(user)) {
likes.add(user);
System.out.println(user.getUsername() + " liked: " + content);
}
}
Metode getLikeCount()
// Menghitung jumlah pengguna yang telah memberikan "like"
public int getLikeCount() {
return likes.size();
}
3. Class Network
Kelas Network ini berfungsi untuk mewakili jaringan sosial (social network) yang menyimpan dan mengelola pengguna (User) serta postingan (Post). Kelas ini bertanggung jawab untuk menangani operasi yang terkait dengan pengguna dan postingan dalam jaringan sosial.
Kelas Network ini berfungsi untuk mewakili jaringan sosial (social network) yang menyimpan dan mengelola pengguna (User) serta postingan (Post). Kelas ini bertanggung jawab untuk menangani operasi yang terkait dengan pengguna dan postingan dalam jaringan sosial.
Deklarasi Class Network
class Network {
// content
}
Deklarasi Atribut
private List<User> users; // Menyimpan (list)
User yang ada dalam jaringan sosialprivate List<Post> posts; // Menyimpan (list)
Post yang ada dalam jaringan sosialKonstruktor Network
// Membuat objek Network yang baru
public Network() {
users = new ArrayList<>();
posts = new ArrayList<>();
}
Metode addUser()
// Menambahkan pengguna baru ke dalam jaringan sosial
public User addUser(String username) {
User user = new User(username);
users.add(user);
System.out.println("User added " + username);
return user;
}
Metode addPost()
// Menambahkan sebuah postingan ke dalam jaringan sosial
public void addPost(Post post) {
posts.add(post);
}
Metode showAllPosts()
// Menampilkan semua postingan yang ada dalam jaringan sosial
public void showAllPosts() {
System.out.println("\nAllPosts:");
for (Post post : posts) {
System.out.println(post.getAuthor().getUsername() + " posted : " + post.getContent() + " - Likes : " + post.getLikeCount());
}
}
4. Class SocialNetwork
Kelas SocialNetwork adalah kelas utama (main class) yang menjalankan aplikasi jaringan sosial. Di sini, program dijalankan dan berbagai metode dari kelas lain seperti Network, User, dan Post dipanggil.
Kelas SocialNetwork adalah kelas utama (main class) yang menjalankan aplikasi jaringan sosial. Di sini, program dijalankan dan berbagai metode dari kelas lain seperti Network, User, dan Post dipanggil.
Deklarasi Class SocialNetwork
public class SocialNetwork {
// main
}
Metode main()
// Metode main adalah titik masuk utama untuk eksekusi program Java.
// Semua eksekusi program akan dimulai dari sini.
public static void main(String[] args) {
// Membuat Objek
Network Network network = new Network();
// Menambahkan Pengguna
User alice = network.addUser("Alice");
User bob = network.addUser("Bob");
// Menambahkan Postingan
alice.addPost("Hello, this is Alice's first post!");
bob.addPost("Hi everyone, Bob here!");
// Menambahkan Postingan ke Jaringan
network.addPost(alice.getPosts().get(0));
network.addPost(bob.getPosts().get(0));
// Pengguna Memberikan "Like" pada Postingan
bob.likePost(alice.getPosts().get(0));
alice.likePost(bob.getPosts().get(0));
// Menampilkan Semua Postingan
network.showAllPosts();
}
Output
Source Code (Full)


Komentar
Posting Komentar