diff --git a/assignment-01/H071191040/Main.class b/assignment-01/H071191040/Main.class new file mode 100644 index 0000000..0edcc03 Binary files /dev/null and b/assignment-01/H071191040/Main.class differ diff --git a/assignment-01/H071191040/Main.java b/assignment-01/H071191040/Main.java new file mode 100644 index 0000000..3497c68 --- /dev/null +++ b/assignment-01/H071191040/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("Teknik", "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("mUHammAdldjfksldjflskfjsl;sdfjs;lj;s;dlfjljljsdflj odfjsdlfjsdfka sdjfks sdfjs"); + 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(""); + student2.setLastName("kennedy"); + 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/H071191040/Student.class b/assignment-01/H071191040/Student.class new file mode 100644 index 0000000..1b5e488 Binary files /dev/null and b/assignment-01/H071191040/Student.class differ diff --git a/assignment-01/H071191040/Student.java b/assignment-01/H071191040/Student.java new file mode 100644 index 0000000..8bdf01f --- /dev/null +++ b/assignment-01/H071191040/Student.java @@ -0,0 +1,167 @@ +import java.util.Random; +import java.util.Map; +import java.util.HashMap; + +class Student +{ + static Map departNumber = new HashMap<>(); + private String id; + private String firstName; + private String lastName; + private String email; + private int registerYear; + private String faculty; + private String department; + private String major; + + + void setId(String id) + { + + this.id = id; + } + + String getId() + { + return id; + } + + void setFirstName(String firstName) + { + this.firstName = firstName; + } + + void setLastName(String lastName) + { + this.lastName = lastName; + } + + void setEmail(String email) + { + this.email = email; + } + + String getEmail() + { + return email; + } + + void setRegisterYear(int registerYear) + { + this.registerYear = registerYear; + } + + void setFaculty(String faculty) + { + this.faculty = faculty; + } + + String getFaculty() + { + return faculty; + } + + void setDepartment(String department) + { + this.department = department; + } + + String getDepartment() + { + return department; + } + + void setMajor(String major) + { + this.major = major; + setMap(); + } + + String getMajor() + { + return major; + } + + void setId(Map facultyMap, Map majorMap) + { + int lastdigit = departNumber.get(major) + 1; + String facultyCode = facultyMap.get(faculty); + String majorCode = majorMap.get(major); + id = String.format("%s%s1%s1%03d",facultyCode, majorCode, registerYear%100, lastdigit); + departNumber.put(major, departNumber.get(major)+1); + + } + + void setEmail(Map facultyMap) + { + String splitName[] = getFullName().split(" "); + String lname = splitName[splitName.length-1].toLowerCase(); + char [] letter = new char[splitName.length-1]; + String facultyCode = facultyMap.get(faculty).toLowerCase(); + + for(int i = 0; i < letter.length; i++) + { + letter[i] = splitName[i].charAt(0); + } + + String letters = new String(letter).toLowerCase(); + email = String.format("%s%s%d%s@student.unhas.ac.id", lname, letters, registerYear%100, facultyCode); + + + } + + String getFullName() + { + String splitFname[] = (firstName + " " + lastName).split(" "); + String fullName = ""; + try + { + for(int i = 0; i < splitFname.length; i++) + { + fullName += camelCase(splitFname[i]) + " "; + } + } + catch(StringIndexOutOfBoundsException e) + { + splitFname = lastName.split(" "); + + for(int i = 0; i < splitFname.length; i++) + { + fullName += camelCase(splitFname[i]) + " "; + } + } + + + return fullName; + } + + void description() + { + System.out.println("Name : " + 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(); + } + + String camelCase(String name) + { + name = name.toLowerCase(); + + return String.format("%c%s", name.charAt(0)-('a'-'A'), name.substring(1, name.length())); + } + + void setMap() + { + + if(departNumber.get(major) == null) + { + departNumber.put(major, 0); + } + + } + + +} \ No newline at end of file diff --git a/assignment-02/H071191040/DataSource.java b/assignment-02/H071191040/DataSource.java new file mode 100644 index 0000000..b98759c --- /dev/null +++ b/assignment-02/H071191040/DataSource.java @@ -0,0 +1,103 @@ +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +class DataSource +{ + private Map userMap = new HashMap<>(); + private Map userDetailMap = new HashMap<>(); + static DataSource dataSource = new DataSource(); + // boolean isAccessible = false; + + private DataSource() + { + + } + + public static DataSource getObject() + { + return dataSource; + } + + String read(String fileName) throws IOException + { + FileReader reader = null; + BufferedReader read = null; + String tempString = ""; + try + { + reader = new FileReader(fileName); + read = new BufferedReader(reader); + + String lineRead = ""; + while((lineRead = read.readLine()) != null) + { + tempString += lineRead + "\n"; + } + } + catch (IOException e) + { + System.out.println("something went wrong with file handling"); + } + finally + { + try + { + if(reader != null) + { + reader.close(); + } + if(read != null) + { + read.close(); + } + } + catch(IOException io) + { + System.out.println("unclosed"); + } + } + + return tempString; + + } + + private void putUserDetail() throws IOException + { + String dataSplit[] = read("UserDetail.txt").split("\n"); + + for(int i = 0; i < dataSplit.length; i++) + { + String userData[] = dataSplit[i].split(";"); + Integer id = Integer.parseInt(userData[0]); + userDetailMap.put(id, new UserDetail(id, userData[1], userData[2], userData[3])); + } + } + + private void putUser() throws IOException + { + String dataSplit[] = read("User.txt").split("\n"); + // String userData[][] = new String[dataSplit.length][3]; + + for(int i = 0; i < dataSplit.length; i++) + { + String userData[] = dataSplit[i].split(";"); + Integer id = Integer.parseInt(userData[0]); + userMap.put(userData[1], new User(id, userData[1], userData[2])); + } + } + + public User getUser(String key) throws IOException + { + putUser(); + return userMap.get(key); + } + + public UserDetail getUserDetail(Integer key) throws IOException + { + putUserDetail(); + return userDetailMap.get(key); + } +} \ No newline at end of file diff --git a/assignment-02/H071191040/Login.java b/assignment-02/H071191040/Login.java new file mode 100644 index 0000000..4921759 --- /dev/null +++ b/assignment-02/H071191040/Login.java @@ -0,0 +1,56 @@ +import java.io.IOException; + +class Login +{ + private User user; + private UserDetail userDetail; + private DataSource dataSource; + boolean is_accesible = false; + static Login login = new Login(); + + + private Login() + { + + } + + static Login getObject() + { + return login; + } + + public void auth(String userName, String password) throws IOException + { + dataSource = DataSource.getObject(); + user = dataSource.getUser(userName); + is_accesible = password.equals(user.getPassword()) ? true:false; + userDetail = is_accesible ? dataSource.getUserDetail(user.getId()):null; + + } + + public void status() + { + if(userDetail == null) + { + System.out.println("NoSuchElementException"); + } + else + { + /* + Name : Muhammad Muflihun Naim + Email : naimmm17h@student.unhas.ac.id + Date of Birth : 00-00-0000 + User Name : naim + Password : Naim + + */ + + System.out.println("Name : " + userDetail.getName()); + System.out.println("Email : " + userDetail.getEmail()); + System.out.println("Date of Birth : " + userDetail.getBirth()); + System.out.println("UserName : " + user.getUserName()); + System.out.println("Password : " + user.getPassword()); + } + } + +} \ No newline at end of file diff --git a/assignment-02/H071191040/Main.java b/assignment-02/H071191040/Main.java new file mode 100644 index 0000000..c485ab5 --- /dev/null +++ b/assignment-02/H071191040/Main.java @@ -0,0 +1,13 @@ +import java.io.IOException; + +class Main +{ + + public static void main(String[] args) throws IOException + { + Login login = Login.getObject(); + + login.auth("alba054", "hellfire12"); + login.status(); + } +} \ No newline at end of file diff --git a/assignment-02/H071191040/User.java b/assignment-02/H071191040/User.java new file mode 100644 index 0000000..7d43920 --- /dev/null +++ b/assignment-02/H071191040/User.java @@ -0,0 +1,38 @@ +import java.util.Map; + +// password + +class User +{ + private Integer id; + private String userName; + private String password; + private UserDetail userDetail; + + public User(Integer id, String userName, String password) + { + this.id = id; + this.userName = userName; + this.password = password; + } + + public String getPassword() + { + return password; + } + + public Integer getId() + { + return id; + } + + public String getUserName() + { + return userName; + } + + // public void setUserDetail(Map userDetailMap) + // { + // userDetail = userDetailMap.get(id); + // } +} \ No newline at end of file diff --git a/assignment-02/H071191040/User.txt b/assignment-02/H071191040/User.txt new file mode 100644 index 0000000..3e9d86b --- /dev/null +++ b/assignment-02/H071191040/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/assignment-02/H071191040/UserDetail.java b/assignment-02/H071191040/UserDetail.java new file mode 100644 index 0000000..5584102 --- /dev/null +++ b/assignment-02/H071191040/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/assignment-02/H071191040/UserDetail.txt b/assignment-02/H071191040/UserDetail.txt new file mode 100644 index 0000000..a9f3002 --- /dev/null +++ b/assignment-02/H071191040/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