diff --git a/assigntment-01/H071191034/Main.java b/assigntment-01/H071191034/Main.java new file mode 100644 index 0000000..d629b14 --- /dev/null +++ b/assigntment-01/H071191034/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("Ilmu Budaya", "A"); + facultyMap.put("Hukum", "B"); + facultyMap.put("Kedokteran", "C"); + facultyMap.put("Pertanian", "D"); + facultyMap.put("Sosial dan Politik", "E"); + facultyMap.put("Teknik", "F"); + facultyMap.put("Farmasi", "G"); + facultyMap.put("MIPA", "H"); + majorMap.put("Sastra Inggris", "01"); + majorMap.put("Administrasi Negara", "02"); + majorMap.put("Ilmu Kedokteran", "03"); + majorMap.put("Agribisnis", "04"); + majorMap.put("Sosiologi", "05"); + majorMap.put("Teknik Informatika", "06"); + majorMap.put("Ilmu Komputer", "07"); + + Student student1 = new Student(); + Student student2 = new Student(); + Student student3 = new Student(); + + student1.setFirstName("trULY"); + student1.setLastName("ROSElyne immANuelle RieuwpassA"); + student1.setRegisterYear(2019); + student1.setFaculty("MIPA"); + student1.setDepartment("Matematika"); + student1.setMajor("Ilmu Komputer"); + student1.setId(facultyMap, majorMap); + student1.setEmail(facultyMap); + + student2.setFirstName("weyNY"); + student2.setLastName("SAN"); + student2.setRegisterYear(2018); + student2.setFaculty("Hukum"); + student2.setDepartment("Hukum"); + student2.setMajor("Administrasi Negara"); + student2.setId(facultyMap, majorMap); + student2.setEmail(facultyMap); + + student3.setFirstName("puTra"); + student3.setLastName("wahyU"); + student3.setRegisterYear(2017); + student3.setFaculty("Teknik"); + student3.setDepartment("Teknik Elektro"); + student3.setMajor("Teknik Informatika"); + student3.setId(facultyMap, majorMap); + student3.setEmail(facultyMap); + + student1.desc(); + student2.desc(); + student3.desc(); + + } +} \ No newline at end of file diff --git a/assigntment-01/H071191034/Student.java b/assigntment-01/H071191034/Student.java new file mode 100644 index 0000000..33e583b --- /dev/null +++ b/assigntment-01/H071191034/Student.java @@ -0,0 +1,106 @@ +import java.util.Map; +import java.util.Random; + + +public class Student { + private String id; + private String firstName; + private String lastName; + private String email; + private Integer registerYear; + private String faculty; + private String department; + private String major; + private Random randomValue = new Random(); + + // set + public void setId (String id){ + this.id = id; + } + public void setFirstName (String firstName){ + this.firstName = firstName; + } + public void setLastName (String lastName){ + this.lastName = lastName; + } + public void setEmail (String email){ + this.email = email; + } + public void setRegisterYear (int registerYear){ + this.registerYear= registerYear; + } + public void setFaculty (String faculty){ + this.faculty = faculty; + } + public void setDepartment (String department){ + this.department = department; + } + public void setMajor (String major){ + this.major = major; + } + + // get + public String getId (){ + return id; + } + public String getEmail(){ + return email; + } + public String getFaculty(){ + return faculty; + } + public String getDepartment(){ + return department; + } + public String getMajor(){ + return major; + } + public int getRegisterYear(){ + return registerYear; + } + + public void setId(Map facultyMap, Map majorMap){ + String registerCode = ""+registerYear; + + + int getRandom = 1 + randomValue.nextInt(061); + if (getRandom>9) { + id = facultyMap.get(faculty) + majorMap.get(major) + "1" + registerCode.substring(2, 4) + "1" + "0" + getRandom ; + } else if (getRandom<=9){ + id = facultyMap.get(faculty) + majorMap.get(major) + "1" + registerCode.substring(2, 4) + "1" + "00" + getRandom ; + } + + } + + 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 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 desc() { + System.out.printf("Nama\t\t: %s\n", getFullName()); + System.out.printf("NIM\t\t: %s\n", getId()); + System.out.printf("Email Mahasiswa\t: %s\n", getEmail()); + System.out.printf("Fakultas\t: %s\n", faculty); + System.out.printf("Departemen\t: %s\n", department); + System.out.printf("Program Studi\t: %s\n", major); + System.out.println(); + } +} \ No newline at end of file diff --git a/assigntment-02/H071191034/DataSource.java b/assigntment-02/H071191034/DataSource.java new file mode 100644 index 0000000..f6aa13e --- /dev/null +++ b/assigntment-02/H071191034/DataSource.java @@ -0,0 +1,77 @@ +import java.util.HashMap; +import java.util.ArrayList; +import java.util.Arrays; +import java.io.*; + +class DataSource { + static DataSource instance = null; + private HashMap userMap = new HashMap<>(); + private HashMap userDetailMap = new HashMap<>(); + + private DataSource() { + putUserDetail(); + putUser(); + } + + static public DataSource getInstance() { + if (instance == null) + instance = new DataSource(); + return instance; + } + + private void putUserDetail() { + BufferedReader reader = null; + try { + reader = new BufferedReader(new FileReader("src/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), s, s); + 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("src/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(Integer key) { + return userDetailMap.get(key); + } +} diff --git a/assigntment-02/H071191034/Login.java b/assigntment-02/H071191034/Login.java new file mode 100644 index 0000000..ae08da2 --- /dev/null +++ b/assigntment-02/H071191034/Login.java @@ -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 password) throws NoSuchElementException { + dataSource = DataSource.getInstance(); + try { + user = dataSource.getUser(name); + if (user.getPassword().equals(password)) { + 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()); + } + } +} \ No newline at end of file diff --git a/assigntment-02/H071191034/Main.java b/assigntment-02/H071191034/Main.java new file mode 100644 index 0000000..cb92df1 --- /dev/null +++ b/assigntment-02/H071191034/Main.java @@ -0,0 +1,7 @@ +public class Main { + public static void main(String[] args) { + Login login = Login.getInstance(); + login.auth("naim", "Naim"); + login.status(); + } +} \ No newline at end of file diff --git a/assigntment-02/H071191034/User.java b/assigntment-02/H071191034/User.java new file mode 100644 index 0000000..56d6f59 --- /dev/null +++ b/assigntment-02/H071191034/User.java @@ -0,0 +1,29 @@ +class User{ + private Integer id; + private String username; + private String password; + private UserDetail userDetail; + + 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; + } +} \ No newline at end of file diff --git a/assigntment-02/H071191034/User.txt b/assigntment-02/H071191034/User.txt new file mode 100644 index 0000000..3e9d86b --- /dev/null +++ b/assigntment-02/H071191034/User.txt @@ -0,0 +1,6 @@ +1;fitrh;12345678 +2;arzk;qwerty +3;ken;asdf +4;naim;Naim +5;farhan;Parhan +6;alba054;hellfire123 \ No newline at end of file diff --git a/assigntment-02/H071191034/UserDetail.java b/assigntment-02/H071191034/UserDetail.java new file mode 100644 index 0000000..018fc14 --- /dev/null +++ b/assigntment-02/H071191034/UserDetail.java @@ -0,0 +1,29 @@ +class UserDetail{ + private Integer id; + private String name; + private String dateOfBirth; + private String email; + + 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 this.id; + } + + public String getName(){ + return this.name; + } + + public String getDateOfBirth(){ + return this.dateOfBirth; + } + + public String getEmail(){ + return this.email; + } +} \ No newline at end of file diff --git a/assigntment-02/H071191034/UserDetail.txt b/assigntment-02/H071191034/UserDetail.txt new file mode 100644 index 0000000..a9f3002 --- /dev/null +++ b/assigntment-02/H071191034/UserDetail.txt @@ -0,0 +1,6 @@ +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 +6;Muhammad Alif Setya Prakasa;06-10-2000;prakasamas19h@student.unhas.ac.id \ No newline at end of file