WHAT'S NEW?
Loading...

Java Larik Satu Dimensi Memasukan Nama dan Nilai Secara Terurut Ascending Descending

Bagaimana cara membuat java larik yang dinamis ? larik atau juga bisa di sebut array , karateristik array ada tiga macam yaitu:

# Type data sama.
# Jenis posisi sifatnya sama.
# Bisa di akses secara acak tetap sama.
Untuk array yang akan saya buat nanti menggunakan satu dimensi dimana untuk menentukan jumlah elemen array satu dimensi cukup melihat pada index yang tertera, di contoh program nanti saya akan membuat DATA MAHASISWA (nama , nilai OOP) dimana nama dan nilai akan mengurutkan dari yang terbesar > terkecil atau juga sebaliknya yang sering disebut juga acsending/descending.

PROGRAM JAVA LARIK YANG LENGKAP TANPA PENJELASAN ADA DI BAGIAN PALING BAWAH!

^ langkah awal buka java eclipse / netbeans.
^ buat project dan class baru dengan nama UAS (mengacu pada soal UAS mata kuliah Pemrograman Berbasis Objek di kampus UIKA bogor semester 3)
^ import java BufferReader , IOException , InputSreamReader.
(disini berguna untuk menginput data dari USER nantinya yang berupa value maupun String, sebenarnya ada satu cara lagi yang lebih mudah yaitu menggunakan Scanner tetapi karena saya mengikuti acuan dari dari dosen matkul jadi saya tidak menggunakan Scanner)


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class UAS {

^ selanjutnya buat static int dan static String.
(Larik adalah INPUT nilai mahasiswa , jm adalah jumlah mahasiswa yang di INPUT , nm adalah nama mahasiswa yang di INPUT , asc adalah nilai mahasiswa yang akan diurutkan , tempstr adalah nama mahasiswa yang akan diurutkan)

public class UAS {
static int[] Larik;
      static int jm;
      static String[] nm;
      static int asc;
      static String tempstr;

^ selanjutnya ketik codingan berikut.
(disini saya akan membuat  void urut dan void urut_nama sebelum membuat void tersebut saya membuat terlebih dahulu Nilai dan Nama yang akan mengarahkan INPUT ke program , untuk memasukan nilai dan nama mahasiswa saya gunakan fungsi for yang mana jika j=0; j kurang dari jm; maksudnya adalah apabila jm lebih dari 0 maka akan di eksekusi dan apabila kurang dari 0 maka akan error / tidak tereksekusi)

public static void main(String[] args){
            System.out.print("**********************\n");
            System.out.print("Masukan jumlah mahasiswa   :");
            System.out.print(" ");
            jm = jumlah();
            Larik = new int[jm];
            nm = new String[jm];
            for (int j = 0; j < jm; j++) {
      System.out.print("\n" + (1 + j) + ". Masukan nama mahasiswa  :");
                  System.out.print(" ");
                  nm[j] = nama();
      System.out.print((1 + j) + ". Masukan nilai OOP       :");
                  System.out.print(" ");
                  Larik[j] = nilai();
            }
           
            urut();
            urut_nama();
      }

^ next ketik coding berikut.
(di dalam void urut ada perintah for empat kali <4x> diantaranya adalah <1> kurang lebih sama seperti penjelasan di atas. <2> d=0; kurang (jm-1) maka (jumlah mahasiswa – 1)  <3> a=0; a kurang dari jm – c – 1 artinya adalah jika a kurang c karena c mempunyai turunan d maka yang akan di pakai adalah d yang mana turunannya. *misal jm=3 c<3 ... d<(3-1) ... a<3-2-1 =0; true atau sudah terurut <4> yaitu untuk mengidentifikasi atau menyatakan larik nama yang sudah terurut. Dan untuk void urut_nama kurang lebih sama hanya mengubah fungsi if pada prinsipnya sama.)

      private static void urut() {
            for (int c = 0; c < jm; c++) // ubah < > jumlah asli jm
            {
            for (int d = 0; d < (jm - 1); d++) // ubah < >
                  for (int a = 0; a < jm - c - 1; a++) // ubah < > operasi
                        {
                              if (Larik[a] < Larik[a + 1])
                              {
                                    asc = Larik[a];
                                    Larik[a] = Larik[a + 1];
                                    Larik[a + 1] = asc;

                                    tempstr = nm[a];
                                    nm[a] = nm[a + 1];
                                    nm[a + 1] = tempstr;

                              }
                        }
            }
            System.out.println("");
            System.out.println("Jumlah mahasiswa yang di masukan " + jm);
            System.out.println("Hasil Pengurutan dari nilai yang terbesar adalah: \n");
            for (int i = 0; i < jm; i++) {
                  System.out.print("\n\t Nama  : " + nm[i] + "\n\t Nilai : " + Larik[i] + "\n\n");
            }
      }
      private static void urut_nama() {
            for (int x1 = 0; x1 < jm; x1++) {
                  for (int y = 0; y < (jm - 1); y++) {
                        for (int f = 0; f < jm - x1 - 1; f++)
                              if (nm[f].compareTo(nm[f + 1]) > 0) {
                                    tempstr = nm[f];
                                    nm[f] = nm[f + 1];
                                    nm[f + 1] = tempstr;
                                   
                                    asc = Larik[f];
                                    Larik[f] = Larik[f + 1];
                                    Larik[f + 1] = asc;
                              }
                  }
            }
            System.out.println("");
            System.out.println("Hasil Pengurutan nama menurut alfabet dari " + jm + " data mahasiswa adalah: \n");
            for (int i = 0; i < jm; i++) {
                  System.out.println("\t Nama  :  " + nm[i] +"\n\tNilai  :  " +Larik[i] +"\n\t--------------");
            }
      }
^ next yang terakhir tambahkan coding berikut.
(membuat static int jumlah , static String nama , static int nilai berfungsi untuk membuat INPUT yang nantinya akan di gunakan USER.)

private static int jumlah() {
            BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
            String jumlah = null;
            try {
                  jumlah = bfr.readLine();
            } catch (IOException e) {
                  e.printStackTrace();
            }
            int Data = Integer.valueOf(jumlah).intValue();
            return Data;
      }

      private static String nama() {
            BufferedReader mmm = new BufferedReader(new InputStreamReader(System.in));
            String nama = "";
            try {
                  nama = mmm.readLine();
            } catch (IOException e) {
                  e.printStackTrace();
            }
            return nama;
      }

      private static int nilai() {
            BufferedReader www = new BufferedReader(new InputStreamReader(System.in));
            String nilai = null;
            try {
                  nilai = www.readLine();
            } catch (IOException e) {
                  e.printStackTrace();
            }
            int Data = Integer.valueOf(nilai).intValue();
            return Data;
      }
}

hasil outputnya:
**********************
Masukan jumlah mahasiswa   : 3

1. Masukan nama mahasiswa  : naufal
1. Masukan nilai OOP       : 80

2. Masukan nama mahasiswa  : fahmi
2. Masukan nilai OOP       : 50

3. Masukan nama mahasiswa  : andreas
3. Masukan nilai OOP       : 100

Jumlah mahasiswa yang di masukan 3
Hasil Pengurutan dari nilai yang terbesar adalah:


       Nama  : andreas
       Nilai : 100


       Nama  : naufal
       Nilai : 80


       Nama  : fahmi
       Nilai : 50


Hasil Pengurutan nama menurut alfabet dari 3 data mahasiswa adalah:

       Nama  :  andreas
      Nilai  :  100
      --------------
       Nama  :  fahmi
      Nilai  :  50
      --------------
       Nama  :  naufal
      Nilai  :  80
      --------------


Program lengkap java larik satu dimensi menginput nama & nilai MAHASISWA:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class UAS {
      static int[] Larik;
      static int jm;
      static String[] nm;
      static int asc;
      static String tempstr;

      public static void main(String[] args){
            System.out.print("**********************\n");
            System.out.print("Masukan jumlah mahasiswa   :");
            System.out.print(" ");
            jm = jumlah();
            Larik = new int[jm];
            nm = new String[jm];
            for (int j = 0; j < jm; j++) {
                  System.out.print("\n" + (1 + j) + ". Masukan nama mahasiswa  :");
                  System.out.print(" ");
                  nm[j] = nama();
                  System.out.print((1 + j) + ". Masukan nilai OOP       :");
                  System.out.print(" ");
                  Larik[j] = nilai();
            }
           
            urut();
            urut_nama();
      }

      private static void urut() {
            for (int c = 0; c < jm; c++) // ubah < > jumlah asli jm
            {
                  for (int d = 0; d < (jm - 1); d++) // ubah < > jumlah palsu jm
                        for (int a = 0; a < jm - c - 1; a++) // ubah < > operasi
                        {
                              if (Larik[a] < Larik[a + 1])
                              {
                                    asc = Larik[a];
                                    Larik[a] = Larik[a + 1];
                                    Larik[a + 1] = asc;

                                    tempstr = nm[a];
                                    nm[a] = nm[a + 1];
                                    nm[a + 1] = tempstr;

                              }
                        }
            }
            System.out.println("");
            System.out.println("Jumlah mahasiswa yang di masukan " + jm);
            System.out.println("Hasil Pengurutan dari nilai yang terbesar adalah: \n");
            for (int i = 0; i < jm; i++) {
                  System.out.print("\n\t Nama  : " + nm[i] + "\n\t Nilai : " + Larik[i] + "\n\n");
            }
      }
      private static void urut_nama() {
            for (int x1 = 0; x1 < jm; x1++) {
                  for (int y = 0; y < (jm - 1); y++) {
                        for (int f = 0; f < jm - x1 - 1; f++)
                              if (nm[f].compareTo(nm[f + 1]) > 0) {
                                    tempstr = nm[f];
                                    nm[f] = nm[f + 1];
                                    nm[f + 1] = tempstr;
                                   
                                    asc = Larik[f];
                                    Larik[f] = Larik[f + 1];
                                    Larik[f + 1] = asc;
                              }
                  }
            }
            System.out.println("");
            System.out.println("Hasil Pengurutan nama menurut alfabet dari " + jm + " data mahasiswa adalah: \n");
            for (int i = 0; i < jm; i++) {
                  System.out.println("\t Nama  :  " + nm[i] +"\n\tNilai  :  " +Larik[i] +"\n\t--------------");
            }
      }

      private static int jumlah() {
            BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in));
            String jumlah = null;
            try {
                  jumlah = bfr.readLine();
            } catch (IOException e) {
                  e.printStackTrace();
            }
            int Data = Integer.valueOf(jumlah).intValue();
            return Data;
      }

      private static String nama() {
            BufferedReader mmm = new BufferedReader(new InputStreamReader(System.in));
            String nama = "";
            try {
                  nama = mmm.readLine();
            } catch (IOException e) {
                  e.printStackTrace();
            }
            return nama;
      }

      private static int nilai() {
            BufferedReader www = new BufferedReader(new InputStreamReader(System.in));
            String nilai = null;
            try {
                  nilai = www.readLine();
            } catch (IOException e) {
                  e.printStackTrace();
            }
            int Data = Integer.valueOf(nilai).intValue();
            return Data;
      }

}

Post Comment

0 komentar:

Post a Comment