Skip to content
This repository has been archived by the owner on Sep 7, 2021. It is now read-only.

Assignment-01 & Assignment-02 #37

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions assignment-02/H071191028/App.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
public class App {
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();
}
}
81 changes: 81 additions & 0 deletions assignment-02/H071191028/DataSource.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
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<String, User> userMap = new HashMap<>();
private Map<Integer, UserDetail> 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{

BufferedReader br = new BufferedReader(new FileReader("UserDetail.txt"));
String data[];
while(br.ready()){
data = br.readLine().split(";");

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{

BufferedReader br = new BufferedReader(new FileReader("User.txt"));
String data[];
while(br.ready()){
data = br.readLine().split(";");

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) {

boolean isValidInteger = false;
try {
Integer.parseInt(s);


isValidInteger = true;
} catch (NumberFormatException ex) {

}

return isValidInteger;
}
}
58 changes: 58 additions & 0 deletions assignment-02/H071191028/Login.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import java.util.NoSuchElementException;

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");
}
}
}
76 changes: 76 additions & 0 deletions assignment-02/H071191028/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
public class User {

private int id;
private String userName;
private String password;
private UserDetail userDetail;
private boolean authenticated = false;

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) {

if(this.password.equals(password)) {

authenticated = true;
return true;
} else {

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;
}
}
30 changes: 30 additions & 0 deletions assignment-02/H071191028/UserDetail.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
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;
}

}
5 changes: 5 additions & 0 deletions assignment-02/H071191028/UserDetail.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
1;Muhammad Fitrah;04-09-1998;[email protected]
2;Muhammad Arizki;00-00-0000;[email protected]
3;Kennedy;00-02-2000;[email protected]
4;Muhammad Muflihun Naim;00-00-0000;[email protected]
5;Farhan Ramdhani;00-00-0000;[email protected]
5 changes: 5 additions & 0 deletions assignment-02/H071191028/user.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
1;fitrh;12345678
2;arzk;qwerty
3;ken;asdf
4;naim;Naim
5;farhan;Parhan
82 changes: 82 additions & 0 deletions assigntment-01/H071191028/Student.java
Original file line number Diff line number Diff line change
@@ -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 <String, String> facultyMap, Map <String, String> 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 <String,String> 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();
}
}
Loading