Advertisement
Yesver08

Closest Point Problem

Sep 26th, 2021
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.54 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class Main {
  4.     public static void main(String[] args) {
  5.         Scanner sc = new Scanner(System.in);
  6.         System.out.print("Masukkan jumlah titik: ");
  7.         int jumlahTitik = sc.nextInt();
  8.  
  9.         Titik[] titik = new Titik[jumlahTitik];
  10.         for (int i = 0; i < jumlahTitik; i++) {
  11.             System.out.print("Masukkan koordinat titik ke-" + (i + 1) + ": ");
  12.             int x = sc.nextInt(), y = sc.nextInt();
  13.             titik[i] = new Titik(x, y);
  14.         }
  15.  
  16.         Double minDistance = null;
  17.         Titik minT1 = null, minT2 = null;
  18.         for (int i = 0; i < jumlahTitik - 1; i++) {
  19.             for (int j = i + 1; j < jumlahTitik; j++) {
  20.                 Titik t1 = titik[i], t2 = titik[j];
  21.                 double cartesianDistance = Math.sqrt(
  22.                     Math.pow(t2.x - t1.x, 2) + Math.pow(t2.y - t1.y, 2)
  23.                 );
  24.                 if (minDistance == null || cartesianDistance < minDistance) {
  25.                     minDistance = cartesianDistance;
  26.                     minT1 = t1;
  27.                     minT2 = t2;
  28.                 }
  29.             }
  30.         }
  31.  
  32.         System.out.println("Dua titik dengan jarak terpendek adalah\n"
  33.                 + minT1 + " " + minT2 +
  34.                 "\ndengan jarak " + minDistance);
  35.     }
  36. }
  37.  
  38. class Titik {
  39.     public int x;
  40.     public int y;
  41.  
  42.     public Titik(int x, int y) {
  43.         this.x = x;
  44.         this.y = y;
  45.     }
  46.  
  47.     @Override
  48.     public String toString() {
  49.         return "(" + x + ", " + y + ")";
  50.     }
  51. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement