kebetulan dapet soal pada saat interview di salah satu startup terkemuka di indonesia terkait validasi. jadi disini ada data dengan 5 kolom:
- 1 : id transaksi
- 2 : sumber transaksi
- 3 : tujuan transaksi
- 4 : nilai transaksi
- 5 : tanggal transaksi
kebetulan tes nya diminta untuk membuat 4 validasi:
- 1 : cek transaksi yang duplikasi
- 2 : cek transaksi dengan sumber dan 1 tanggal transaksi yang lebih besar 300
- 3 : cek transaksi denganĀ tujuan dan 1 tanggal transaksi yang lebih besar 300
- 4 : cek transaksi dengan sumber, tujuan dan 1 tanggal transaksi yang lebih besar 300
kurang lebih source code nya:
import java.util.HashMap; public class Tes2 { public static void main(String args[]) { String[] data = { "TRX1;SOURCE1;DEST1;100;20171201", "TRX1;SOURCE1;DEST1;100;20171201", "TRX2;SOURCE2;DEST2;100;20171202", "TRX3;SOURCE2;DEST2;100;20171202", "TRX4;SOURCE2;DEST3;100;20171203", "TRX5;SOURCE3;DEST4;100;20171202", "TRX6;SOURCE3;DEST4;100;20171202", "TRX7;SOURCE3;DEST4;100;20171206", "TRX8;SOURCE3;DEST4;100;20171202", "TRX9;SOURCE3;DEST4;100;20171202", "TRX10;SOURCE4;DEST5;100;20171204" }; HashMap<String, Integer> hmValidasi1 = new HashMap<>(); HashMap<String, Integer> hmValidasi2 = new HashMap<>(); HashMap<String, Integer> hmValidasi3 = new HashMap<>(); HashMap<String, Integer> hmValidasi4 = new HashMap<>(); for (String s: data) { if (hmValidasi1.get(s) == null) { hmValidasi1.put(s, 1); } else { Integer temp = hmValidasi1.get(s); hmValidasi1.put(s, temp + 1); } String[] splitData = s.split("\\;"); // validasi 2 if (hmValidasi2.get(splitData[1] + ";" + splitData[4]) == null) { hmValidasi2.put(splitData[1] + ";" + splitData[4], Integer.valueOf(splitData[3])); } else { Integer temp = hmValidasi2.get(splitData[1] + ";" + splitData[4]); hmValidasi2.put(splitData[1] + ";" + splitData[4], temp + Integer.valueOf(splitData[3])); } // validasi 3 if (hmValidasi3.get(splitData[2] + ";" + splitData[4]) == null) { hmValidasi3.put(splitData[2] + ";" + splitData[4], Integer.valueOf(splitData[3])); } else { Integer temp = hmValidasi3.get(splitData[2] + ";" + splitData[4]); hmValidasi3.put(splitData[2] + ";" + splitData[4], temp + Integer.valueOf(splitData[3])); } // validasi 4 if (hmValidasi4.get(splitData[1] + ";" + splitData[2] + ";" + splitData[4]) == null) { hmValidasi4.put(splitData[1] + ";" + splitData[2] + ";" + splitData[4], Integer.valueOf(splitData[3])); } else { Integer temp = hmValidasi4.get(splitData[1] + ";" + splitData[2] + ";" + splitData[4]); hmValidasi4.put(splitData[1] + ";" + splitData[2] + ";" + splitData[4], temp + Integer.valueOf(splitData[3])); } // output validasi if (hmValidasi1.get(s) > 1) { System.out.println(s + " : duplicate validation"); } if (hmValidasi2.get(splitData[1] + ";" + splitData[4]) > 300) { System.out.println(s + " : source more than 300"); } if (hmValidasi3.get(splitData[2] + ";" + splitData[4]) > 300) { System.out.println(s + " : destination more than 300"); } if (hmValidasi4.get(splitData[1] + ";" + splitData[2] + ";" + splitData[4]) > 300) { System.out.println(s + " : source & destination more than 300"); } } } } |
CMIIW
Leave a Reply