From 6697feacc4ff068afe2fab59f2fc2dca21acc77b Mon Sep 17 00:00:00 2001 From: cicaazizahfit Date: Tue, 25 Feb 2020 23:09:16 +0800 Subject: [PATCH 1/2] tugas 1 --- tugas 1/Mahasiswa.class | Bin 0 -> 3383 bytes tugas 1/Mahasiswa.java | 77 ++++++++++++++++++++++++++++++++++++++++ tugas 1/main.class | Bin 0 -> 1639 bytes tugas 1/main.java | 58 ++++++++++++++++++++++++++++++ 4 files changed, 135 insertions(+) create mode 100644 tugas 1/Mahasiswa.class create mode 100644 tugas 1/Mahasiswa.java create mode 100644 tugas 1/main.class create mode 100644 tugas 1/main.java diff --git a/tugas 1/Mahasiswa.class b/tugas 1/Mahasiswa.class new file mode 100644 index 0000000000000000000000000000000000000000..cf422698a8a673db0d772718eab8d2a13134330b GIT binary patch literal 3383 zcmb7GNp}=g6#lA*bfr@vp&0qT#|H_t}#9G+KkN;WU3cv0wS z6)y>WS;Z?tUsds%(AP!yjR@XU5HRBkVm%}JF}*dZrxUIHwq>Rh9STZ^O)G2n=_x~j zn$*WX!$wLslL|D;NSImMum%j>QlNAzhz#pPxuktkK{RfR>XvP!jI@GqN*~Ekq-3L+ zHtkIcg7ppi6@<2B;xt{+W2TM1Tx!s;_UeO4o`kc8-A%7*>s_~UwwY}0)kixDwqm5T z-%O-+J7-ZZRUp4{dQ{U-HWgUCO(nTIoN)b|UEeU>E)&Esx+YUt<$32%vREmjSkFXu z%V@JJmrS~8FYmYYp`#4l$xH-q5oIg}H9FlQ#0o<05R2;y4*y3;DzEoUFDvG6u{bN} z&Yme)sP?ONr)?u)SdM2=Ny!98B-HUuIXT-M%n&lRf^stbdx^Q%g^~E^eU`PPgfnLVzr5NvDMh`SY3IyiR#wMS3KGbsgg3ZcI>XC~u@ zrC~kVBY0cGJ9u|o(^otV@8Nw79cU-`+ceyTbs9dv84YJ~hUl(a*-i|*7dmRY21kq` zTf>Jq7r}Xv{Yb;d_(a2}=+v+Z?HcC{mo>6{hECe8(eODgD1cb~Lc^DG8r_nR>aQ5e zq%^D*;ji$uh7IEGMGfEJ5<8jz(rbLb4K&q_&IrEMa2Y#9qPy3}uc;A)Pa^;ARStwAS;GgeBc^7ux?THZL;t6jM0M$pQdi9^`|4rK#6lx^!!_Jc#&p`?{iWCU>C#N9$tb``>nSE2mC4+WdK zmN~va8u(Il>CH90KY)ZqqLd(sBa%D;~~$q zYbX!rF@rnjC{_{r8I=RUmdds~W?n#tY z9J`e3)Htr7>U#?K= z&ynKUzr-v_o{o6wVdT|$%$2C`a1$}d-7-!&nb#AW-y7Vtu<7OntnqZ3DcH1dRWOvt zf;<+wJ8qoZi52Sho(d`#|NgC6q767zo5#9INgJ>T%~(u;)Zj4bFqYsxaw-tGg%uI( zjG#yPi-TH0FZ!q~8T^BRgh|ieuG_t_`F+8)p{h{x%~1RTmU?T2mriGk6H0t83j#465+Srsw%^0*o9IPZf+bF!ZIBrS` z<=dI;)s*L>;a&0XuB@fR{^E9P3+=9_-3^rIlk=Z;H&Wt2al6q%yPIiu3+4G>d3Gm9 z2iv_cds`{=;KY>qlMNwL=Ejd$;=v?#rxZVrrQ-#z^YNCsyyeAs^}-`+7U$7Wj8B^m zza$TqO5m4=-?p@t=-1{U_?yOGA^bdA{k%L@PUd3?D-C900cXlOX72!J#R>NRS)%R= PcH%mE80facultyMap, MapmajorMap){ + Random randoms = new Random(); + this.id = facultyMap.get(faculty) + majorMap.get(major) + "1" + String.valueOf(registerYear).substring(2) + "1" + String.format("%03d", randoms.nextInt(061)); + } + public String getId(){ + return id; + } + public void setFirstName(String firstName){ + + this.firstName = firstName; + } + public void setLastName(String lastName){ + this.lastName = lastName; + } + public String getFullName(){ + String fullName[] = (firstName.toLowerCase() + " " + lastName.toLowerCase()).split(" "); + String Name = ""; + for (int i = 0; i < fullName.length;i++) { + Name+= fullName[i].substring(0,1).toUpperCase()+ fullName[i].substring(1) + " "; + } + return Name; + } + public void setEmail(MapfacultyMap){ + String fullName[] = (firstName.toLowerCase() + " " + lastName.toLowerCase()).split(" "); + String Name = ""; + for (int i = 0; i < fullName.length -1;i++) { + Name+= fullName[i].substring(0,1); + } + this.email = (fullName[fullName.length - 1]+ Name + String.valueOf(registerYear).substring(2) + facultyMap.get(faculty) + "@gmail.com").toLowerCase(); + } + public String getEmail(String email){ + return email; + } + public void setRegisterYear(Integer registerYear){ + this.registerYear = registerYear; + } + public void setFaculty(String faculty){ + this.faculty = faculty; + } + public String getFaculty(String faculty){ + return faculty; + } + public void setDepartment(String departemen){ + this.departemen = departemen; + } + public String getDepartment(String departemen){ + return departemen; + } + public void setMajor(String major){ + this.major = major; + } + public String getMajor(){ + return major; + } + public void description() { + System.out.println("Nama : " + getFullName() ); + System.out.println("NIM : " + getId()); + System.out.println("Email Mahasiswa : " + getEmail(email)); + System.out.println("Fakultas : " + getFaculty(faculty)); + System.out.println("Departemen : " + getDepartment(departemen)); + System.out.println("Program Studi : " + getMajor()); + System.out.println(); + } +} diff --git a/tugas 1/main.class b/tugas 1/main.class new file mode 100644 index 0000000000000000000000000000000000000000..e595d5c55195c9a9848858ad68b01d48bd7ff80f GIT binary patch literal 1639 zcmZWqO;lS&6#gdU@rLA4;I*Yq=}+hn4L`4h|5|7@1p<)-5Gsg>Iw6l_$geLiReL<1 z}CLOU`w%W1rIphRCY(fu7bA|>~Xx!vCr`i$ANOZt7AgPdkmcm zvLxMm3>}f-9R~kmIb$>QBxT87uNBj_^FX8vX6!55uWFr{Ex!Hj}ghVDe6 zSPQR}iJLSsW^Wv+=}5F6)ry#>d7>m+c2-uY^n11- zQGfe!CxMMYQr8lPG!!4xqiM5bSA^ph?Ging(>^7R%alMPnxMK5wh}dliz?H4{)?^3 zsbtGElLeZ(|A(u;2Qzl{(2*5amP;7KD1B?y$470V@g*Fm-6gWrIcOu#z@89ch!S=- zoIZ460+Ylk)VGfg@`F8o4&UB0bR=6gHEQ}z?OSwqU{_Jyquiri9u0Uj=uzW@cAKY~ zbj<8Adp+9cQPZQRJ$lBYXHRIqd9F#H<2+qDwBE9J{3k@S%nNl4Smwn#E?Is0@895Z z9ak)~yNMhQdyhLVhu zYGy=9HFH==HBYKFrCL*}HKkfpswt^e$4JPpKqK&)^<$%DesE~$r4|i9#}Mr%sC^3v zU{^6*t*1A}oqwHir>*7h`M*7F(k){tm|30irB} g36{qsb1=m|!VLQav+Og>vCrwpgJFus&WGv$0Mxrt5dZ)H literal 0 HcmV?d00001 diff --git a/tugas 1/main.java b/tugas 1/main.java new file mode 100644 index 0000000..7a0892b --- /dev/null +++ b/tugas 1/main.java @@ -0,0 +1,58 @@ +import java.util.*; +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"); + + Mahasiswa mahasiswa1 = new Mahasiswa(); + Mahasiswa mahasiswa2 = new Mahasiswa(); + Mahasiswa mahasiswa3 = new Mahasiswa(); + + mahasiswa1.setFirstName("Siti"); + mahasiswa1.setLastName("Nur Azizah Fitriani Akbar"); + mahasiswa1.setRegisterYear(2017); + mahasiswa1.setFaculty("MIPA"); + mahasiswa1.setDepartment("Matematika"); + mahasiswa1.setMajor("Ilmu Komputer"); + mahasiswa1.setId(facultyMap, majorMap); + mahasiswa1.setEmail(facultyMap); + + mahasiswa2.setFirstName("Nurfadlia"); + mahasiswa2.setLastName(""); + mahasiswa2.setRegisterYear(2017); + mahasiswa2.setFaculty("MIPA"); + mahasiswa2.setDepartment("Matematika"); + mahasiswa2.setMajor("Ilmu Komputer"); + mahasiswa2.setId(facultyMap, majorMap); + mahasiswa2.setEmail(facultyMap); + + mahasiswa3.setFirstName("Vitalia"); + mahasiswa3.setLastName("Eka Wardani"); + mahasiswa3.setRegisterYear(2017); + mahasiswa3.setFaculty("MIPA"); + mahasiswa3.setDepartment("Matematika"); + mahasiswa3.setMajor("Ilmu Komputer"); + mahasiswa3.setId(facultyMap, majorMap); + mahasiswa3.setEmail(facultyMap); + + mahasiswa1.description(); + mahasiswa2.description(); + mahasiswa3.description(); + + } +} From e3fa3ebb66cee307cb22b0f858c646397c556408 Mon Sep 17 00:00:00 2001 From: cicaazizahfit Date: Fri, 6 Mar 2020 19:40:08 +0800 Subject: [PATCH 2/2] Assignment-02 --- assignment-02/DataSource.java | 86 +++++++++++++++++++++++++++++++++++ assignment-02/Login.java | 55 ++++++++++++++++++++++ assignment-02/Main.java | 15 ++++++ assignment-02/User.java | 78 +++++++++++++++++++++++++++++++ assignment-02/User.txt | 5 ++ assignment-02/UserDetail.java | 29 ++++++++++++ assignment-02/UserDetail.txt | 5 ++ 7 files changed, 273 insertions(+) create mode 100644 assignment-02/DataSource.java create mode 100644 assignment-02/Login.java create mode 100644 assignment-02/Main.java create mode 100644 assignment-02/User.java create mode 100644 assignment-02/User.txt create mode 100644 assignment-02/UserDetail.java create mode 100644 assignment-02/UserDetail.txt diff --git a/assignment-02/DataSource.java b/assignment-02/DataSource.java new file mode 100644 index 0000000..4fe76f3 --- /dev/null +++ b/assignment-02/DataSource.java @@ -0,0 +1,86 @@ +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/assignment-02/Login.java b/assignment-02/Login.java new file mode 100644 index 0000000..150ec5a --- /dev/null +++ b/assignment-02/Login.java @@ -0,0 +1,55 @@ +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/assignment-02/Main.java b/assignment-02/Main.java new file mode 100644 index 0000000..973180f --- /dev/null +++ b/assignment-02/Main.java @@ -0,0 +1,15 @@ +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/assignment-02/User.java b/assignment-02/User.java new file mode 100644 index 0000000..1a9497e --- /dev/null +++ b/assignment-02/User.java @@ -0,0 +1,78 @@ +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/assignment-02/User.txt b/assignment-02/User.txt new file mode 100644 index 0000000..70d291f --- /dev/null +++ b/assignment-02/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/assignment-02/UserDetail.java b/assignment-02/UserDetail.java new file mode 100644 index 0000000..d07db4c --- /dev/null +++ b/assignment-02/UserDetail.java @@ -0,0 +1,29 @@ +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/assignment-02/UserDetail.txt b/assignment-02/UserDetail.txt new file mode 100644 index 0000000..908948c --- /dev/null +++ b/assignment-02/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