From 679c005b7d8fb31a3f91bd64fcdb9c4c06999039 Mon Sep 17 00:00:00 2001 From: Eka Fitri Ramadani Date: Sun, 23 Feb 2020 23:19:19 +0800 Subject: [PATCH 1/2] H071191043 --- .../assigntment-01/H071191043/Main.java | 61 +++++++++++++ .../assigntment-01/H071191043/Student.java | 88 +++++++++++++++++++ 2 files changed, 149 insertions(+) create mode 100644 H071191043/assigntment-01/H071191043/Main.java create mode 100644 H071191043/assigntment-01/H071191043/Student.java diff --git a/H071191043/assigntment-01/H071191043/Main.java b/H071191043/assigntment-01/H071191043/Main.java new file mode 100644 index 0000000..b8616df --- /dev/null +++ b/H071191043/assigntment-01/H071191043/Main.java @@ -0,0 +1,61 @@ +import java.util.HashMap; +import java.util.Map; + +public class Main { + + public static void main(String[] args) { + Map facultyMap = new HashMap<>(); + Map majorMap = new HashMap<>(); + facultyMap.put("Nama Fakultas Lain", "A"); + facultyMap.put("Nama Fakultas Lain", "B"); + facultyMap.put("Nama Fakultas Lain", "C"); + facultyMap.put("Nama Fakultas Lain", "D"); + facultyMap.put("Nama Fakultas Lain", "E"); + facultyMap.put("Nama Fakultas Lain", "F"); + facultyMap.put("Nama Fakultas Lain", "G"); + facultyMap.put("MIPA", "H"); + majorMap.put("Prodi Lain", "01"); + majorMap.put("Prodi Lain", "02"); + majorMap.put("Prodi Lain", "03"); + majorMap.put("Prodi Lain", "04"); + majorMap.put("Prodi Lain", "05"); + majorMap.put("Prodi Lain", "06"); + majorMap.put("Ilmu Komputer", "07"); + + Student student1 = new Student(); + Student student2 = new Student(); + Student student3 = new Student(); + + student1.setFirstName("mUHammAd"); + student1.setLastName("fITRAH"); + student1.setRegisterYear(2017); + student1.setFaculty("MIPA"); + student1.setDepartment("Matematika"); + student1.setMajor("Ilmu Komputer"); + student1.setId(facultyMap, majorMap); + student1.setEmail(facultyMap); + + student2.setFirstName("KENNEDY"); + student2.setLastName(""); + student2.setRegisterYear(2017); + student2.setFaculty("MIPA"); + student2.setDepartment("Matematika"); + student2.setMajor("Ilmu Komputer"); + student2.setId(facultyMap, majorMap); + student2.setEmail(facultyMap); + + student3.setFirstName("Khawaritzmi"); + student3.setLastName("abdallah ahmad"); + student3.setRegisterYear(2017); + student3.setFaculty("MIPA"); + student3.setDepartment("Matematika"); + student3.setMajor("Ilmu Komputer"); + student3.setId(facultyMap, majorMap); + student3.setEmail(facultyMap); + + student1.description(); + student2.description(); + student3.description(); + + } +} \ No newline at end of file diff --git a/H071191043/assigntment-01/H071191043/Student.java b/H071191043/assigntment-01/H071191043/Student.java new file mode 100644 index 0000000..97f0534 --- /dev/null +++ b/H071191043/assigntment-01/H071191043/Student.java @@ -0,0 +1,88 @@ +import java.util.Map; +import java.util.Random; + +public class Student { + private String id; + private String firstName; + private String lastName; + private String email; + private int registerYear; + private String faculty; + private String department; + private String major; + + public String getId(){ + return id; + } + public void setId(String id) { + this.id = id; + } + public void setId(Map facultyMap, Map majorMap) { + String facultyCode = facultyMap.get(faculty); + String majorCode = majorMap.get(major); + int Idregister = registerYear % 100; + Random rand = new Random(); + int rnd = rand.nextInt(69) + 1; + id = String.format("%s%s1%02d%03d", facultyCode, majorCode, Idregister,rnd); + } + public void setFirstName(String firstName) { + this.firstName = firstName; + } + public void setLastName(String lastName) { + this.lastName = lastName; + } + public void setEmail(Map facultyMap) { + String fullname = (firstName + " " + lastName).toLowerCase(); + String[] nameByWord = fullname.split(" "); + email = nameByWord[nameByWord.length - 1]; + for (int i = 0; i < nameByWord.length - 1; i++) { + email += nameByWord[i].charAt(0); + } + email += (registerYear % 100) + facultyMap.get(faculty).toLowerCase() + "@student.unhas.ac.id"; + } + public void setEmail(String email) { + this.email = email; + } + public String getEmail(){ + return email; + } + public void setRegisterYear(int registerYear){ + this.registerYear = registerYear; + } + public void setFaculty(String faculty) { + this.faculty = faculty; + } + public String getFaculty() { + return faculty; + } + public void setDepartment(String department) { + this.department = department; + } + public String getDepartment() { + return department; + } + public void setMajor(String major) { + this.major = major; + } + public String getMajor() { + return major = major; + } + public String getFullName() { + String fullName = (firstName + " " + lastName).toLowerCase(); + String[] splitName = fullName.split(" "); + String finalName = ""; + for (int i = 0; i < splitName.length; i++) { + finalName += splitName[i].substring(0,1).toUpperCase() + splitName[i].substring(1, splitName[i].length()) + " "; + } + return finalName; + } + public void description() { + System.out.println("Nama : " + getFullName()); + System.out.println("NIM : " + getId()); + System.out.println("Email Mahasiswa : " + getEmail()); + System.out.println("Fakultas : " + getFaculty()); + System.out.println("Departemen : " + getDepartment()); + System.out.println("Program Studi : " + getMajor()); + System.out.println(); + } +} \ No newline at end of file From 5fa831e41757d6c78cf8a1c34e714f9a898f6bc4 Mon Sep 17 00:00:00 2001 From: Eka Fitri Ramadani Date: Fri, 6 Mar 2020 21:29:57 +0800 Subject: [PATCH 2/2] H071191043 --- .../assigntment-02/H071191043/DataSource.java | 78 +++++++++++++++++++ .../assigntment-02/H071191043/Login.java | 55 +++++++++++++ .../assigntment-02/H071191043/Main.java | 15 ++++ .../assigntment-02/H071191043/User.java | 74 ++++++++++++++++++ H071191043/assigntment-02/H071191043/User.txt | 5 ++ .../assigntment-02/H071191043/UserDetail.java | 27 +++++++ .../assigntment-02/H071191043/UserDetail.txt | 5 ++ 7 files changed, 259 insertions(+) create mode 100644 H071191043/assigntment-02/H071191043/DataSource.java create mode 100644 H071191043/assigntment-02/H071191043/Login.java create mode 100644 H071191043/assigntment-02/H071191043/Main.java create mode 100644 H071191043/assigntment-02/H071191043/User.java create mode 100644 H071191043/assigntment-02/H071191043/User.txt create mode 100644 H071191043/assigntment-02/H071191043/UserDetail.java create mode 100644 H071191043/assigntment-02/H071191043/UserDetail.txt diff --git a/H071191043/assigntment-02/H071191043/DataSource.java b/H071191043/assigntment-02/H071191043/DataSource.java new file mode 100644 index 0000000..67a41df --- /dev/null +++ b/H071191043/assigntment-02/H071191043/DataSource.java @@ -0,0 +1,78 @@ +package prak; + +import java.util.HashMap; +import java.util.Map; +import java.io.FileReader; +import java.io.BufferedReader; + +public class DataSource { + private static DataSource dataSource; + private Map userMap = new HashMap<>(); + private Map userDetailMap = new HashMap<>(); + private DataSource() { + + try{ + putUserDetail(); + putUser(); + } + catch(Exception e) { + e.printStackTrace(); + } + } + public static DataSource getInstance() { + if(dataSource == null) { + dataSource = new DataSource(); + } + return dataSource; + } + private void putUserDetail() throws Exception{ + // This Method Reads data from the UserDetail.txt file, then saves the data + // into UserDetailMap + BufferedReader br = new BufferedReader(new FileReader("UserDetail.txt")); + String data[]; + while(br.ready()){ + data = br.readLine().split(";"); + //inputs user detail into user detail Map if the data starts with a valid id + if(isInteger(data[0])){ + userDetailMap.put(Integer.valueOf(data[0]), new UserDetail(Integer.valueOf(data[0]), data[1], data[2], data[3])); + } + } + data = null; + br.close(); + } + private void putUser() throws Exception{ + // This Method Reads data from the User.txt file, then saves the data + // into UserMap + BufferedReader br = new BufferedReader(new FileReader("User.txt")); + String data[]; + while(br.ready()){ + data = br.readLine().split(";"); + // inputs user into userMap if the data starts with a valid id + if(isInteger(data[0])){ + userMap.put(data[1], new User(Integer.valueOf(data[0]), data[1], data[2], + userDetailMap.get(Integer.valueOf(data[0])))); + } + } + data = null; + br.close(); + } + public User getUser(String key) { + return userMap.get(key); + } + public UserDetail getUserDetail(int key) { + return userDetailMap.get(key); + } + public static boolean isInteger(String s) { + //This method checks if a string is an integer + boolean isValidInteger = false; + try { + Integer.parseInt(s); + // s is a valid integer + isValidInteger = true; + } + catch (NumberFormatException ex) { + // s is not an integer + } + return isValidInteger; + } +} \ No newline at end of file diff --git a/H071191043/assigntment-02/H071191043/Login.java b/H071191043/assigntment-02/H071191043/Login.java new file mode 100644 index 0000000..3d3171c --- /dev/null +++ b/H071191043/assigntment-02/H071191043/Login.java @@ -0,0 +1,55 @@ +package prak; + +import java.util.*; + +public class Login { + private static Login login; + private User user; + private UserDetail userDetail; + private DataSource dataSource; + private Login() { + dataSource = DataSource.getInstance(); + } + public static Login getInstance() { + if(login == null) { + login = new Login(); + } + return login; + } + public void auth(String userName, String password) throws NoSuchElementException { + user = dataSource.getUser(userName); + try { + if(user.verifyPassword(password)) { + userDetail = user.getUserDetail(); + } + else { + System.out.println("Invalid Password"); + } + } + catch (Exception e) { + throw new NoSuchElementException("No such Username : " + userName); + } + } + public void status() { + try{ + System.out.printf("Name\t\t: %s\n", userDetail.getName()); + System.out.printf("Email\t\t: %s\n", userDetail.getEmail()); + System.out.printf("Date of Birth\t: %s\n", userDetail.getDateOfBirth()); + System.out.printf("Username\t: %s\n", user.getUsername()); + System.out.printf("Password\t: %s\n", user.getPassword()); + } + catch (Exception e) { + System.out.println("Not Logged in"); + } + } + public void logout() { + if(user != null){ + user.logout(); + user = null; + userDetail = null; + } + else { + System.out.println("Not logged in"); + } + } +} \ No newline at end of file diff --git a/H071191043/assigntment-02/H071191043/Main.java b/H071191043/assigntment-02/H071191043/Main.java new file mode 100644 index 0000000..8532b1d --- /dev/null +++ b/H071191043/assigntment-02/H071191043/Main.java @@ -0,0 +1,15 @@ +package prak; + +public class Main { + public static void main(String[] args) throws Exception{ + Login login = Login.getInstance(); + login.auth("naim", "Naim"); + login.status(); + login.logout(); + + System.out.println(""); + login.auth("Farha", "parhan"); + login.status(); + login.logout(); + } +} \ No newline at end of file diff --git a/H071191043/assigntment-02/H071191043/User.java b/H071191043/assigntment-02/H071191043/User.java new file mode 100644 index 0000000..903567e --- /dev/null +++ b/H071191043/assigntment-02/H071191043/User.java @@ -0,0 +1,74 @@ +package prak; + +public class User { + // This class contains the login details of a user + private int id; + private String userName; + private String password; + private UserDetail userDetail; + private boolean authenticated = false; + // prevents access to vital information + // without authentication + public User(int id, String userName, String password, UserDetail userDetail) { + this.id = id; + this.userName = userName; + this.password = password; + this.userDetail = userDetail; + } + public UserDetail geUserDetail() { + if (authenticated) { + return userDetail; + } else { + System.out.println("Not Authenticated"); + return null; + } + } + public int getId() { + if (authenticated) { + return id; + } + else { + System.out.println("Not Authenticated"); + return 0; + } + } + public boolean verifyPassword(String password) { + //this method authenticates the user if the password is correct + if(this.password.equals(password)) { + //if password is correct then authenticate the user + authenticated = true; + return true; + } else { + //if the password is incorrect then don't authenticate the user + return false; + } + } + public String getUsername() { + if (authenticated) { + return userName; + } else { + System.out.println("Not Authenticated"); + return null; + } + } + public UserDetail getUserDetail() { + if (authenticated) { + return userDetail; + } else { + System.out.println("Not Authenticated"); + return null; + } + } + public String getPassword() { + if (authenticated) { + return password; + } + else { + System.out.println("Not Authenticated"); + return null; + } + } + public void logout() { + authenticated = false; + } +} \ No newline at end of file diff --git a/H071191043/assigntment-02/H071191043/User.txt b/H071191043/assigntment-02/H071191043/User.txt new file mode 100644 index 0000000..70d291f --- /dev/null +++ b/H071191043/assigntment-02/H071191043/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/H071191043/assigntment-02/H071191043/UserDetail.java b/H071191043/assigntment-02/H071191043/UserDetail.java new file mode 100644 index 0000000..8d5da8a --- /dev/null +++ b/H071191043/assigntment-02/H071191043/UserDetail.java @@ -0,0 +1,27 @@ +package prak; + +public class UserDetail { + private Integer id; + private String name; + private String dateOfBirth; + private String email; + + public UserDetail(Integer 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/H071191043/assigntment-02/H071191043/UserDetail.txt b/H071191043/assigntment-02/H071191043/UserDetail.txt new file mode 100644 index 0000000..908948c --- /dev/null +++ b/H071191043/assigntment-02/H071191043/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 \ No newline at end of file