Contoh Validasi (JAVA)

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

Your email address will not be published. Required fields are marked *

Afiseaza emoticoanele Locco.Ro