Skip to content
This repository was archived by the owner on Sep 7, 2021. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions assignment-02/H071191022/DataSource.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
import java.io.*;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Arrays;

class DataSource {
static DataSource instance = null;
private HashMap<String, User> userMap = new HashMap<>();
private HashMap<Integer, UserDetail> userDetailMap = new HashMap<>();

private DataSource() {
putUserDetail();
putUser();
}

static public DataSource getInstance() {
if (instance == null)
instance = new DataSource();
return instance;
}

private void putUserDetail() {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("UserDetail.txt"));
String s = "";
while ((s = br.readLine()) != null) {
ArrayList<String> sList = new ArrayList<String>(Arrays.asList(s.split(";")));
UserDetail userDetail = new UserDetail(Integer.valueOf(sList.get(0)), sList.get(1), sList.get(2),
sList.get(3));
userDetailMap.put(Integer.valueOf(sList.get(0)), userDetail);
}
} catch (IOException e) {
System.out.println(e.getMessage());
} finally {
try {
if (br != null) {
br.close();
}
} catch (IOException e) {
System.out.println(e);
}
}
}

private void putUser() {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("User.txt"));
String s;
while ((s = br.readLine()) != null) {
ArrayList<String> sList = new ArrayList<String>(Arrays.asList(s.split(";")));
User user = new User(Integer.valueOf(sList.get(0)), sList.get(1), sList.get(2),
userDetailMap.get(Integer.valueOf(sList.get(0))));
userMap.put(sList.get(1), user);
}
} catch (IOException e) {
System.out.println(e.getMessage());
} finally {
try {
if (br != null) {
br.close();
}
} catch (IOException e) {
System.out.println(e);
}
}
}

public User getUser(String key) {
return userMap.get(key);
}

public UserDetail getUserDetail(Integer key) {
return userDetailMap.get(key);
}
}
40 changes: 40 additions & 0 deletions assignment-02/H071191022/Login.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import java.util.NoSuchElementException;

class Login {
static Login instance = null;
private User user;
private UserDetail userDetail;
private DataSource dataSource;

private Login() {

}

static public Login getInstance() {
if (instance == null)
instance = new Login();
return instance;
}

public void auth(String name, String pass) throws NoSuchElementException {
dataSource = DataSource.getInstance();
try {
user = dataSource.getUser(name);
if (user.getPassword().equals(pass)) {
userDetail = user.getUserDetail();
} else {
System.out.println("wrong password");
}
} catch (Exception e) {
throw new NoSuchElementException("user not found: " + name);
}
}

public void status() {
if (userDetail != null) {
System.out.println(userDetail.getName());
System.out.println(userDetail.getEmail());
System.out.println(userDetail.getDateOfBirth());
}
}
}
7 changes: 7 additions & 0 deletions assignment-02/H071191022/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
class Main {
public static void main(String[] args) throws Exception {
Login login = Login.getInstance();
login.auth("naim", "Naim");
login.status();
}
}
29 changes: 29 additions & 0 deletions assignment-02/H071191022/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
class User {
private Integer id;
private String userName;
private String password;
private UserDetail userDetail;

public User(Integer id, String userName, String password, UserDetail userDetail) {
this.id = id;
this.userName = userName;
this.password = password;
this.userDetail = userDetail;
}

public Integer getId() {
return id;
}

public String getUserName() {
return userName;
}

public String getPassword() {
return password;
}

public UserDetail getUserDetail() {
return userDetail;
}
}
27 changes: 27 additions & 0 deletions assignment-02/H071191022/UserDetail.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
class UserDetail {

private int id;
private String name;
private String dateOfBirth;
private String email;

public UserDetail(int id,String name,String dateOfBirth, String email){
this.id = id;
this.name = name;
this.dateOfBirth = dateOfBirth;
this.email = email;
}

public Integer getId(){
return id;
}
public String getName(){
return name;
}
public String getDateOfBirth(){
return dateOfBirth;
}
public String getEmail(){
return email;
}
}
5 changes: 5 additions & 0 deletions assignment-02/H071191022/user.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
1;fitrh;12345678
2;arzk;qwerty
3;ken;asdf
4;naim;Naim
5;farhan;Parhan
5 changes: 5 additions & 0 deletions assignment-02/H071191022/userdetail.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
1;Muhammad Fitrah;04-09-1998;fitrahm17h@student.unhas.ac.id
2;Muhammad Arizki;00-00-0000;arizkim17h@student.unhas.ac.id
3;Kennedy;00-02-2000;kennedy17h@student.unhas.ac.id
4;Muhammad Muflihun Naim;00-00-0000;naimmm17h@student.unhas.ac.id
5;Farhan Ramdhani;00-00-0000;ramdhanif17h@student.unhas.ac.id