diff --git a/assignment-01/H071191054/StudIdMain.class b/assignment-01/H071191054/StudIdMain.class new file mode 100644 index 0000000..6daf746 Binary files /dev/null and b/assignment-01/H071191054/StudIdMain.class differ diff --git a/assignment-01/H071191054/StudIdMain.java b/assignment-01/H071191054/StudIdMain.java new file mode 100644 index 0000000..8264226 --- /dev/null +++ b/assignment-01/H071191054/StudIdMain.java @@ -0,0 +1,60 @@ +import java.util.HashMap; +import java.util.Map; + +public class StudIdMain { + public static void main(String[] args) { + Map facultyMap = new HashMap<>(); + Map majorMap = new HashMap<>(); + facultyMap.put("Ekonomi dan Bisnis", "A"); + facultyMap.put("Hukum", "B"); + facultyMap.put("Kedokteran", "C"); + facultyMap.put("Teknik", "D"); + facultyMap.put("Ilmu Sosial dan Ilmu Politik", "E"); + facultyMap.put("Ilmu Budaya", "F"); + facultyMap.put("Pertanian", "G"); + facultyMap.put("MIPA", "H"); + majorMap.put("Matematika", "01"); + majorMap.put("Fisika", "02"); + majorMap.put("Kimia", "03"); + majorMap.put("Biologi", "04"); + majorMap.put("Statistika", "05"); + majorMap.put("Geofisika", "06"); + majorMap.put("Ilmu Komputer", "07"); + majorMap.put("Aktuaria", "08"); + + StudentIdentity student1 = new StudentIdentity(); + StudentIdentity student2 = new StudentIdentity(); + StudentIdentity student3 = new StudentIdentity(); + + 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/assignment-01/H071191054/StudentIdentity.class b/assignment-01/H071191054/StudentIdentity.class new file mode 100644 index 0000000..4411e3c Binary files /dev/null and b/assignment-01/H071191054/StudentIdentity.class differ diff --git a/assignment-01/H071191054/StudentIdentity.java b/assignment-01/H071191054/StudentIdentity.java new file mode 100644 index 0000000..7014c41 --- /dev/null +++ b/assignment-01/H071191054/StudentIdentity.java @@ -0,0 +1,109 @@ +import java.util.Map; +import java.util.Random; + +public class StudentIdentity { + + private String id; + private String firstName; + private String lastName; + private String email; + private int registerYear; + private String faculty; + private String department; + private String major; + + // method 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; + } + + // method 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; + } + + // method behaviour + public void setId(Map facultymap, Map majormap) { + Random rdm = new Random(); + + id = String.format("%s%s1%d1%03d", facultymap.get(getFaculty()), majormap.get(getMajor()), registerYear % 100, + rdm.nextInt(60) + 1); + + } + + public void setEmail(Map facultymap) { + String fullName = (firstName + " " + lastName).toLowerCase(); + String[] splitName = fullName.split(" "); + email = splitName[splitName.length - 1]; + for (int i = 0; i < splitName.length - 1; i++) { + email += splitName[i].charAt(0); + } + email += (registerYear % 100) + facultymap.get(faculty).toLowerCase() + "@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 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()); + } +} \ No newline at end of file diff --git a/assigntment-01/README.md b/assignment-01/README.md similarity index 100% rename from assigntment-01/README.md rename to assignment-01/README.md diff --git a/assigntment-01/assets/classobject.pdf b/assignment-01/assets/classobject.pdf similarity index 100% rename from assigntment-01/assets/classobject.pdf rename to assignment-01/assets/classobject.pdf diff --git a/assigntment-01/assets/classobject.png b/assignment-01/assets/classobject.png similarity index 100% rename from assigntment-01/assets/classobject.png rename to assignment-01/assets/classobject.png diff --git a/assignment-02/H071191054/App.java b/assignment-02/H071191054/App.java new file mode 100644 index 0000000..8120ac7 --- /dev/null +++ b/assignment-02/H071191054/App.java @@ -0,0 +1,7 @@ +class App { + public static void main(String[] args) throws Exception { + Login login = Login.getInstance(); + login.auth("naim", "Naim"); + login.status(); + } +} \ No newline at end of file diff --git a/assignment-02/H071191054/DataSource.java b/assignment-02/H071191054/DataSource.java new file mode 100644 index 0000000..aca656c --- /dev/null +++ b/assignment-02/H071191054/DataSource.java @@ -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 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 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); + } + } + } + + 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); + } +} \ No newline at end of file diff --git a/assignment-02/H071191054/Login.java b/assignment-02/H071191054/Login.java new file mode 100644 index 0000000..1bd44f8 --- /dev/null +++ b/assignment-02/H071191054/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 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()); + } + } +} \ No newline at end of file diff --git a/assignment-02/H071191054/User.java b/assignment-02/H071191054/User.java new file mode 100644 index 0000000..d9c3277 --- /dev/null +++ b/assignment-02/H071191054/User.java @@ -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; + } +} \ No newline at end of file diff --git a/assignment-02/H071191054/UserDetail.java b/assignment-02/H071191054/UserDetail.java new file mode 100644 index 0000000..e25cad5 --- /dev/null +++ b/assignment-02/H071191054/UserDetail.java @@ -0,0 +1,29 @@ +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 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