From 581806e7f025cdd326b007f90490335e6490867f Mon Sep 17 00:00:00 2001 From: septiintanaml Date: Fri, 6 Mar 2020 21:46:26 +0800 Subject: [PATCH 1/5] Tugas 2 --- assignment-02/H071191022/DataSource.java | 69 ++++++++++++++++++++++++ assignment-02/H071191022/Login.java | 28 ++++++++++ assignment-02/H071191022/Main.java | 8 +++ assignment-02/H071191022/User.java | 27 ++++++++++ assignment-02/H071191022/UserDetail.java | 27 ++++++++++ assignment-02/H071191022/user.txt | 5 ++ assignment-02/H071191022/userdetail.txt | 5 ++ 7 files changed, 169 insertions(+) create mode 100644 assignment-02/H071191022/DataSource.java create mode 100644 assignment-02/H071191022/Login.java create mode 100644 assignment-02/H071191022/Main.java create mode 100644 assignment-02/H071191022/User.java create mode 100644 assignment-02/H071191022/UserDetail.java create mode 100644 assignment-02/H071191022/user.txt create mode 100644 assignment-02/H071191022/userdetail.txt diff --git a/assignment-02/H071191022/DataSource.java b/assignment-02/H071191022/DataSource.java new file mode 100644 index 0000000..0b0b4bb --- /dev/null +++ b/assignment-02/H071191022/DataSource.java @@ -0,0 +1,69 @@ +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; + +class DataSource { + private HashMap userMap = new HashMap<>(); + private HashMap userDetailMap = new HashMap<>(); + + DataSource(){ + putUserDetail(); + putUser(); + } + + private void putUserDetail(){ + BufferedReader reader = null; + try{ + reader = new BufferedReader(new FileReader("userdetail.txt")); + String s; + while ((s = reader.readLine()) != null){ + ArrayList sList = new ArrayList<>(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 (reader != null){ + reader.close(); + } + }catch(IOException e){ + System.out.println(e); + } + } + } + + private void putUser(){ + BufferedReader reader = null; + try{ + reader = new BufferedReader(new FileReader("user.txt")); + String s; + while((s = reader.readLine()) != null){ + ArrayList sList = new ArrayList(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 (reader != null){ + reader.close(); + } + }catch(IOException e){ + System.out.println(e); + } + } + } + + public User getUser(String key){ + return userMap.get(key); + } + public UserDetail getUserDetail(int key){ + return userDetailMap.get(key); + } +} diff --git a/assignment-02/H071191022/Login.java b/assignment-02/H071191022/Login.java new file mode 100644 index 0000000..1600b63 --- /dev/null +++ b/assignment-02/H071191022/Login.java @@ -0,0 +1,28 @@ +class Login { + + private User user; + private UserDetail userDetail; + private DataSource dataSource; + + public void auth (String name,String pass){ + dataSource = new DataSource(); + if ((user = dataSource.getUser(name)) != null){ + dataSource = new DataSource(); + if ((user = dataSource.getUser(name))!= null){ + userDetail = user.getUserDetail(); + }else{ + System.out.println("wrong password"); + } + }else{ + System.out.println("user not found"); + } + } + + public void status(){ + if (userDetail != null){ + System.out.println(userDetail.getName()); + System.out.println(userDetail.getEmail()); + System.out.println(userDetail.getDateOfBirth()); + } + } +} \ No newline at end of file diff --git a/assignment-02/H071191022/Main.java b/assignment-02/H071191022/Main.java new file mode 100644 index 0000000..3773493 --- /dev/null +++ b/assignment-02/H071191022/Main.java @@ -0,0 +1,8 @@ +public class Main { + + public static void main(String[] args) { + Login login = new Login(); + login.auth("fitrh","12345678"); + login.status(); + } +} \ No newline at end of file diff --git a/assignment-02/H071191022/User.java b/assignment-02/H071191022/User.java new file mode 100644 index 0000000..9a3ef5c --- /dev/null +++ b/assignment-02/H071191022/User.java @@ -0,0 +1,27 @@ +class User { + + private int id; + private String userName; + private String password; + private UserDetail userDetail; + + User (int 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; + } +} \ No newline at end of file diff --git a/assignment-02/H071191022/UserDetail.java b/assignment-02/H071191022/UserDetail.java new file mode 100644 index 0000000..612046a --- /dev/null +++ b/assignment-02/H071191022/UserDetail.java @@ -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; + } +} \ No newline at end of file diff --git a/assignment-02/H071191022/user.txt b/assignment-02/H071191022/user.txt new file mode 100644 index 0000000..70d291f --- /dev/null +++ b/assignment-02/H071191022/user.txt @@ -0,0 +1,5 @@ +1;fitrh;12345678 +2;arzk;qwerty +3;ken;asdf +4;naim;Naim +5;farhan;Parhan \ No newline at end of file diff --git a/assignment-02/H071191022/userdetail.txt b/assignment-02/H071191022/userdetail.txt new file mode 100644 index 0000000..8a0deb0 --- /dev/null +++ b/assignment-02/H071191022/userdetail.txt @@ -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 From bd11f423720e01eb9b78ecc281a82090a7c7833c Mon Sep 17 00:00:00 2001 From: Septi <54713592+septiintanaml@users.noreply.github.com> Date: Fri, 6 Mar 2020 23:53:29 +0800 Subject: [PATCH 2/5] Update DataSource.java --- assignment-02/H071191022/DataSource.java | 136 ++++++++++++----------- 1 file changed, 72 insertions(+), 64 deletions(-) diff --git a/assignment-02/H071191022/DataSource.java b/assignment-02/H071191022/DataSource.java index 0b0b4bb..fc4162c 100644 --- a/assignment-02/H071191022/DataSource.java +++ b/assignment-02/H071191022/DataSource.java @@ -1,69 +1,77 @@ -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; +import java.io.*; + import java.util.HashMap; + import java.util.ArrayList; + import java.util.Arrays; -class DataSource { - private HashMap userMap = new HashMap<>(); - private HashMap userDetailMap = new HashMap<>(); + class DataSource { + static DataSource instance = null; + private HashMap userMap = new HashMap<>(); + private HashMap userDetailMap = new HashMap<>(); - DataSource(){ - putUserDetail(); - putUser(); - } + private DataSource() { + putUserDetail(); + putUser(); + } - private void putUserDetail(){ - BufferedReader reader = null; - try{ - reader = new BufferedReader(new FileReader("userdetail.txt")); - String s; - while ((s = reader.readLine()) != null){ - ArrayList sList = new ArrayList<>(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 (reader != null){ - reader.close(); - } - }catch(IOException e){ - System.out.println(e); - } - } - } + static public DataSource getInstance() { + if (instance == null) + instance = new DataSource(); + return instance; + } - private void putUser(){ - BufferedReader reader = null; - try{ - reader = new BufferedReader(new FileReader("user.txt")); - String s; - while((s = reader.readLine()) != null){ - ArrayList sList = new ArrayList(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 (reader != null){ - reader.close(); - } - }catch(IOException e){ - System.out.println(e); - } - } - } + private void putUserDetail() { + BufferedReader br = null; + try { + br = new BufferedReader(new FileReader("UserDetail.txt")); + String s = ""; + while ((s = br.readLine()) != null) { + ArrayList sList = new ArrayList(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); + } + } + } - public User getUser(String key){ - return userMap.get(key); - } - public UserDetail getUserDetail(int key){ - return userDetailMap.get(key); - } -} + private void putUser() { + BufferedReader br = null; + try { + br = new BufferedReader(new FileReader("User.txt")); + String s; + while ((s = br.readLine()) != null) { + ArrayList sList = new ArrayList(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); + } + } From b04fb388e5919e14da29a934580488ec6d342f70 Mon Sep 17 00:00:00 2001 From: Septi <54713592+septiintanaml@users.noreply.github.com> Date: Fri, 6 Mar 2020 23:53:52 +0800 Subject: [PATCH 3/5] Update Login.java --- assignment-02/H071191022/Login.java | 62 +++++++++++++++++------------ 1 file changed, 37 insertions(+), 25 deletions(-) diff --git a/assignment-02/H071191022/Login.java b/assignment-02/H071191022/Login.java index 1600b63..e781c93 100644 --- a/assignment-02/H071191022/Login.java +++ b/assignment-02/H071191022/Login.java @@ -1,28 +1,40 @@ -class Login { +import java.util.NoSuchElementException; - private User user; - private UserDetail userDetail; - private DataSource dataSource; + class Login { + static Login instance = null; + private User user; + private UserDetail userDetail; + private DataSource dataSource; - public void auth (String name,String pass){ - dataSource = new DataSource(); - if ((user = dataSource.getUser(name)) != null){ - dataSource = new DataSource(); - if ((user = dataSource.getUser(name))!= null){ - userDetail = user.getUserDetail(); - }else{ - System.out.println("wrong password"); - } - }else{ - System.out.println("user not found"); - } - } + private Login() { - public void status(){ - if (userDetail != null){ - System.out.println(userDetail.getName()); - System.out.println(userDetail.getEmail()); - System.out.println(userDetail.getDateOfBirth()); - } - } -} \ No newline at end of file + } + + 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()); + } + } + } From e76184797f09c947dc9d963ff23405bb54f87e34 Mon Sep 17 00:00:00 2001 From: Septi <54713592+septiintanaml@users.noreply.github.com> Date: Fri, 6 Mar 2020 23:54:10 +0800 Subject: [PATCH 4/5] Update User.java --- assignment-02/H071191022/User.java | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/assignment-02/H071191022/User.java b/assignment-02/H071191022/User.java index 9a3ef5c..0565a75 100644 --- a/assignment-02/H071191022/User.java +++ b/assignment-02/H071191022/User.java @@ -1,27 +1,29 @@ class User { - - private int id; + private Integer id; private String userName; private String password; private UserDetail userDetail; - User (int id,String userName, String password, 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(){ + + public Integer getId() { return id; } - public String getUserName(){ + + public String getUserName() { return userName; } - public String getPassword(){ + + public String getPassword() { return password; } - public UserDetail getUserDetail(){ + + public UserDetail getUserDetail() { return userDetail; } -} \ No newline at end of file +} From 82dc2083b74bdca37b8fa41b146c440a3f29c05a Mon Sep 17 00:00:00 2001 From: Septi <54713592+septiintanaml@users.noreply.github.com> Date: Fri, 6 Mar 2020 23:54:43 +0800 Subject: [PATCH 5/5] Update Main.java --- assignment-02/H071191022/Main.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/assignment-02/H071191022/Main.java b/assignment-02/H071191022/Main.java index 3773493..79cb44c 100644 --- a/assignment-02/H071191022/Main.java +++ b/assignment-02/H071191022/Main.java @@ -1,8 +1,7 @@ -public class Main { - - public static void main(String[] args) { - Login login = new Login(); - login.auth("fitrh","12345678"); +class Main { + public static void main(String[] args) throws Exception { + Login login = Login.getInstance(); + login.auth("naim", "Naim"); login.status(); } -} \ No newline at end of file +}