diff --git a/assigntment-01/H071191025/DataSource.java b/assigntment-01/H071191025/DataSource.java new file mode 100644 index 0000000..83abe8e --- /dev/null +++ b/assigntment-01/H071191025/DataSource.java @@ -0,0 +1,97 @@ +import java.util.*; +import java.io.*; +/** + * DataSource + */ +public class DataSource { + + private static DataSource dataSource; + private HashMap userMap = new HashMap<>(); + private HashMap userDetailMap = new HashMap<>(); + + private DataSource() { + + try { + putUserDetail(); + putUser(); + } catch (Exception e) { + System.out.println(e); + } + + } + + public static DataSource getInstance() { + + if (dataSource == null) { + dataSource = new DataSource(); + } + + return dataSource; + + } + + private void putUserDetail() throws IOException { + + BufferedReader reader = new BufferedReader(new FileReader("UserDetail.txt")); + String data[]; + + while(reader.ready()) { + + data = reader.readLine().split(";"); + + if (isInt(data[0])) { + userDetailMap.put(Integer.valueOf(data[0]), new UserDetail(Integer.valueOf(data[0]), data[1], data[2], data[3])); + } + } + + data = null; + reader.close(); + + } + + private void putUser() throws IOException { + + BufferedReader reader = new BufferedReader(new FileReader("User.txt")); + String data[]; + + while(reader.ready()) { + + data = reader.readLine().split(";"); + + if (isInt(data[0])) { + userMap.put(data[1], new User(Integer.valueOf(data[0]), data[1], data[2], userDetailMap.get(Integer.valueOf(data[0])))); + } + } + + data = null; + reader.close(); + + } + + public User getUser(String key) { + + return userMap.get(key); + + } + + public UserDetail getUserDetail(int key) { + + return userDetailMap.get(key); + + } + + public static boolean isInt(String str) { + + boolean isInt = false; + + try { + Integer.parseInt(str); + isInt = true; + } catch (NumberFormatException nfe) { + System.out.println(nfe); + } + + return isInt; + } + +} \ No newline at end of file diff --git a/assigntment-01/H071191025/Login.java b/assigntment-01/H071191025/Login.java new file mode 100644 index 0000000..d2a1a33 --- /dev/null +++ b/assigntment-01/H071191025/Login.java @@ -0,0 +1,65 @@ +import java.util.NoSuchElementException; + +/** + * Login + */ +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.checkPass(password)) { + userDetail = user.getUserDetail(); + } else { + System.out.println("Wrong Password..."); + } + + } catch (Exception e) { + throw new NoSuchElementException("Username " + userName + " not found"); + } + + } + + 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.getBirth()); + System.out.printf("Username\t: %s\n", user.getUserName()); + System.out.printf("Password\t: %s\n", user.getPassword()); + } catch (Exception e) { + System.out.println("Who are you...?"); + } + + } + + public void logout() { + + user = null; + + } + +} \ No newline at end of file diff --git a/assigntment-01/H071191025/Main.java b/assigntment-01/H071191025/Main.java new file mode 100644 index 0000000..344528a --- /dev/null +++ b/assigntment-01/H071191025/Main.java @@ -0,0 +1,15 @@ +public class Main { + + public static void main(String[] args) throws Exception{ + + Login login = Login.getInstance(); + + login.auth("farha", "parhan"); + login.status(); + login.logout(); + + + + } + +} \ No newline at end of file diff --git a/assigntment-01/H071191025/Student.java b/assigntment-01/H071191025/Student.java new file mode 100644 index 0000000..c55395a --- /dev/null +++ b/assigntment-01/H071191025/Student.java @@ -0,0 +1,82 @@ +import java.util.*; +public class Student{ + private String id; + private String firstName; + private String lastName; + private String email; + private int registerYear; + private String faculty; + private String departemen; + private String major; + + public void setId(Map facultyMap, Map majorMap) { + Random random = new Random(); + id = facultyMap.get(faculty) + majorMap.get(major) + "1" + getRegisterYear()%100 + "1" + (random.nextInt(60) + 1); + } + public void setFirstname(String firstName){ + this.firstName = firstName; + } + public void setLastname(String lastName){ + this.lastName = lastName; + } + public void setEmail(Map facultyMap) { + + String arr[] = getFullName().split(" "); + email = ""; + email += arr[arr.length-1].toLowerCase(); + for (int i = 0; i < arr.length - 1; i++){ + email += (arr[i].substring(0,1).toLowerCase()); + } + email += getRegisterYear()%100; + email += facultyMap.get(faculty).toLowerCase(); + email += "@student.unhas.ac.id"; + } + public void setRegisterYear(int registerYear){ + this.registerYear = registerYear; + } + public void setFaculty(String faculty){ + this.faculty = faculty; + } + public void setDepartemen(String departemen){ + this.departemen = departemen; + } + public void setMajor(String major){ + this.major = major; + } + public String getId(){ + return id; + } + public String getEmail(){ + return email; + } + public String getFaculty(){ + return faculty; + } + public String getDepartemen(){ + return departemen; + } + public String getMajor(){ + return major; + } + public int getRegisterYear(){ + return registerYear; + } + public String getFullName(){ + String lowerString = (firstName + " " + lastName).toLowerCase(); + String fullName = ""; + String arr[] = lowerString.split(" "); + for (int i = 0; i < arr.length; i++){ + fullName += arr[i].charAt(0) + arr[i].substring(1,arr[i].length()) + " "; + } + return fullName; + } + public void desc() { + 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 : " +getDepartemen()); + System.out.println("Program Studi : " + getMajor()); + System.out.println(); + } +} \ No newline at end of file diff --git a/assigntment-01/H071191025/User.java b/assigntment-01/H071191025/User.java new file mode 100644 index 0000000..02345ef --- /dev/null +++ b/assigntment-01/H071191025/User.java @@ -0,0 +1,39 @@ +public class User { + + private int id; + private String userName; + private String password; + private UserDetail userDetail; + + public User(int id, String userName, String password, UserDetail userDetail) { + this.id = id; + this.userName = userName; + this.password = password; + this.userDetail = userDetail; + } + + // getter + public int getId() { + return id; + } + + public String getUserName() { + return userName; + } + + public String getPassword() { + return password; + } + + public UserDetail getUserDetail() { + return userDetail; + } + + // check password + public boolean checkPass(String password) { + + return password.equals(this.password); + + } + +} \ No newline at end of file diff --git a/assigntment-01/H071191025/User.txt b/assigntment-01/H071191025/User.txt new file mode 100644 index 0000000..9d24ff0 --- /dev/null +++ b/assigntment-01/H071191025/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/assigntment-01/H071191025/UserDetail.java b/assigntment-01/H071191025/UserDetail.java new file mode 100644 index 0000000..8dc2ebb --- /dev/null +++ b/assigntment-01/H071191025/UserDetail.java @@ -0,0 +1,31 @@ +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 String getName() + { + return name; + } + + public String getBirth() + { + return dateOfBirth; + } + + public String getEmail() + { + return email; + } + +} \ No newline at end of file diff --git a/assigntment-01/H071191025/UserDetail.txt b/assigntment-01/H071191025/UserDetail.txt new file mode 100644 index 0000000..284cb4d --- /dev/null +++ b/assigntment-01/H071191025/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 diff --git a/assigntment-01/H071191025/runer.java b/assigntment-01/H071191025/runer.java new file mode 100644 index 0000000..a008f51 --- /dev/null +++ b/assigntment-01/H071191025/runer.java @@ -0,0 +1,60 @@ +import java.util.*; + +public class runer { + + 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.setDepartemen ("Matematika"); + student1.setMajor("Ilmu Komputer"); + student1.setId(facultyMap, majorMap); + student1.setEmail(facultyMap); + + student2.setFirstname ("KENNEDY"); + student2.setLastname (""); + student2.setRegisterYear(2017); + student2.setFaculty("MIPA"); + student2.setDepartemen ("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.setDepartemen("Matematika"); + student3.setMajor("Ilmu Komputer"); + student3.setId(facultyMap, majorMap); + student3.setEmail(facultyMap); + + student1.desc();; + student2.desc();; + student3.desc();; + + } +} \ No newline at end of file