際際滷

際際滷Share a Scribd company logo
Deskripsi Studi Kasus
Dalam aplikasi Newtwork 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 pengguna, 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 menyukai postingan tersebut.
3. Network: Mengelola semua pengguna dan postingan di dalam aplikasi.
Contoh Output
Implementasi Kode
1. Kelas User
Kelas ini memiliki metode untuk membuat postingan dan memberi like pada postingan
lain.
User Class: Kelas User menyimpan nama pengguna dan daftar postingannya sendiri.
Pengguna dapat membuat postingan baru dengan addPost() dan memberi "like" pada
postingan lain dengan likePost().
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;
}
}
2. Kelas Post
Kelas Post berisi informasi tentang postingan, termasuk konten, daftar likes, dan siapa
penulisnya.
Post Class: Kelas Post menyimpan informasi postingan, termasuk penulis (author),
konten (content), dan daftar pengguna yang menyukai postingan tersebut.
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();
}
}
3. Kelas Network
Kelas Network mengelola seluruh pengguna dan postingan di jaringan sosial.
Network Class: Kelas Network bertindak sebagai pengelola dari daftar pengguna dan
postingan. Ia menyediakan metode untuk menambah pengguna, menyimpan
postingan, dan menampilkan semua postingan di jaringan.
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("nAll Posts:");
for (Post post : posts) {
System.out.println(post.getAuthor().getUsername() + " posted: " +
post.getContent() + " - Likes: " + post.getLikeCount());
}
}
}
4. Kelas Main (Untuk Menjalankan Program)
Kelas ini digunakan untuk menjalankan aplikasi jaringan sosial kecil ini.
public class Main {
public static void main(String[] args) {
// Buat Network
Network network = new Network();
// Tambah pengguna
User alice = network.addUser("Alice");
User bob = network.addUser("Bob");
// Pengguna membuat postingan
alice.addPost("Hello, this is Alice's first post!");
bob.addPost("Hi everyone, Bob here!");
// Simpan postingan ke Network
network.addPost(alice.getPosts().get(0));
network.addPost(bob.getPosts().get(0));
// Pengguna menyukai postingan
bob.likePost(alice.getPosts().get(0));
alice.likePost(bob.getPosts().get(0));
// Tampilkan semua postingan di network
network.showAllPosts();
}
}
Deskripsi Studi Kasus Improving Structure With Inheritance

More Related Content

Deskripsi Studi Kasus Improving Structure With Inheritance

  • 1. Deskripsi Studi Kasus Dalam aplikasi Newtwork 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 pengguna, 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 menyukai postingan tersebut. 3. Network: Mengelola semua pengguna dan postingan di dalam aplikasi. Contoh Output
  • 2. Implementasi Kode 1. Kelas User Kelas ini memiliki metode untuk membuat postingan dan memberi like pada postingan lain. User Class: Kelas User menyimpan nama pengguna dan daftar postingannya sendiri. Pengguna dapat membuat postingan baru dengan addPost() dan memberi "like" pada postingan lain dengan likePost(). 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); }
  • 3. public void likePost(Post post) { post.addLike(this); } public List<Post> getPosts() { return posts; } }
  • 4. 2. Kelas Post Kelas Post berisi informasi tentang postingan, termasuk konten, daftar likes, dan siapa penulisnya. Post Class: Kelas Post menyimpan informasi postingan, termasuk penulis (author), konten (content), dan daftar pengguna yang menyukai postingan tersebut. 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() {
  • 5. 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(); } }
  • 6. 3. Kelas Network Kelas Network mengelola seluruh pengguna dan postingan di jaringan sosial. Network Class: Kelas Network bertindak sebagai pengelola dari daftar pengguna dan postingan. Ia menyediakan metode untuk menambah pengguna, menyimpan postingan, dan menampilkan semua postingan di jaringan. 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); }
  • 7. public void showAllPosts() { System.out.println("nAll Posts:"); for (Post post : posts) { System.out.println(post.getAuthor().getUsername() + " posted: " + post.getContent() + " - Likes: " + post.getLikeCount()); } } }
  • 8. 4. Kelas Main (Untuk Menjalankan Program) Kelas ini digunakan untuk menjalankan aplikasi jaringan sosial kecil ini. public class Main { public static void main(String[] args) { // Buat Network Network network = new Network(); // Tambah pengguna User alice = network.addUser("Alice"); User bob = network.addUser("Bob"); // Pengguna membuat postingan alice.addPost("Hello, this is Alice's first post!"); bob.addPost("Hi everyone, Bob here!"); // Simpan postingan ke Network network.addPost(alice.getPosts().get(0)); network.addPost(bob.getPosts().get(0)); // Pengguna menyukai postingan bob.likePost(alice.getPosts().get(0)); alice.likePost(bob.getPosts().get(0)); // Tampilkan semua postingan di network network.showAllPosts(); } }