Algoritma & Pemrograman: Array Satu Dimensi di Java

Halo, para pembaca!

Selamat datang di postingan ini. Pada kesempatan kali ini, saya ingin berbagi dan mengulas tiga program Java yang berfokus pada penggunaan Array. Namun, kita tidak hanya akan menggunakan array secara dasar. Kita akan melangkah lebih jauh dengan menerapkan dua konsep pemrograman penting di dalamnya: Pemrograman Modular (memecah kode menjadi fungsi/metode) dan Pemrograman Rekursif (fungsi yang memanggil dirinya sendiri).

Tanpa berlama-lama lagi, mari kita bedah satu per satu programnya.

1. Program: Menampilkan Elemen Array Secara Terbalik

Program pertama ini bertujuan untuk mengambil sebuah array berisi angka, lalu menampilkannya kembali dalam urutan yang terbalik. Untuk mencapai ini, kita akan menggunakan metode rekursif.

Kode Program:

package latihan_teori;
import java.util.Scanner;

public class Pekan9_Soal1 {
    public void tampilTerbalik(int[] arr, int index) {
        if (index < 0) return;
        System.out.print(arr[index]);
        if (index != 0) System.out.print(", ");
        tampilTerbalik(arr, index - 1);
    }

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Pekan9_Soal1 soal1 = new Pekan9_Soal1();

        System.out.print("Masukkan panjang array: ");
        int n = input.nextInt();
        int[] arr = new int[n];

        for (int i = 0; i < n; i++) {
            System.out.print("Masukkan nilai elemen " + i + ": ");
            arr[i] = input.nextInt();
        }

        System.out.print("Array terbalik: ");
        soal1.tampilTerbalik(arr, n - 1);
        input.close();
    }
}

Contoh Output:

Masukkan panjang array: 4
Masukkan nilai elemen 0: 10
Masukkan nilai elemen 1: 20
Masukkan nilai elemen 2: 30
Masukkan nilai elemen 3: 40
Array terbalik: 40, 30, 20, 10

2. Program: Menghitung Rata-Rata Elemen Array

Program kedua ini akan menghitung nilai rata-rata dari seluruh elemen yang ada di dalam array. Di sini, kita akan menggunakan rekursi untuk menjumlahkan semua elemen, dan modularitas untuk memisahkan logika perhitungan.

Kode Program:

package latihan_teori;
import java.util.Scanner;

public class Pekan9_Soal2 {
    public int hitungTotal(int[] arr, int index) {
        if (index == arr.length) return 0;
        return arr[index] + hitungTotal(arr, index + 1);
    }

    public double hitungRataRata(int[] arr) {
        int total = hitungTotal(arr, 0);
        return (double) total / arr.length;
    }

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Pekan9_Soal2 soal2 = new Pekan9_Soal2();

        System.out.print("Masukkan panjang array: ");
        int n = input.nextInt();
        int[] arr = new int[n];

        for (int i = 0; i < n; i++) {
            System.out.print("Masukkan nilai elemen " + i + ": ");
            arr[i] = input.nextInt();
        }

        double rata = soal2.hitungRataRata(arr);
        System.out.println("Rata-rata nilai: " + rata);

        input.close();
    }
}

Contoh Output:

Masukkan panjang array: 3
Masukkan nilai elemen 0: 5
Masukkan nilai elemen 1: 10
Masukkan nilai elemen 2: 30
Rata-rata nilai: 15.0

3. Program: Mencari Nilai Maksimum dalam Array

Program ketiga ini akan menghitung nilai rata-rata dari seluruh elemen yang ada di dalam array. Di sini, kita akan menggunakan rekursi untuk menjumlahkan semua elemen, dan modularitas untuk memisahkan logika perhitungan.

Kode Program:

package latihan_teori;
import java.util.Scanner;

public class Pekan9_Soal3 {
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        int hasil = 0;
        double rata;
        int[] penjualan = new int[7];

        // Input pengguna
        for (int i = 0; i < penjualan.length; i++) {
            System.out.print("Masukan penjualan hari ke-" + (i + 1) + ": ");
            penjualan[i] = sc.nextInt();
        }

        // Total penjualan
        for (int j = 0; j < penjualan.length; j++) {
            hasil += penjualan[j];
        }

        // Nilai tertinggi
        int max = penjualan[0];
        int indexMax = 1;

        for (int k = 1; k = max) {
                max = penjualan[k];
                indexMax = k + 1;
            }
        }

        rata = (double) hasil / 7;

        System.out.println("Total penjualan: " + hasil);
        System.out.println("Rata-rata penjualan: " + rata);
        System.out.println("Penjualan tertinggi: " + max + " Pada hari ke-" + indexMax);
    }
}

Contoh Output:

Masukan penjualan hari ke-1: 56
Masukan penjualan hari ke-2: 80
Masukan penjualan hari ke-3: 77
Masukan penjualan hari ke-4: 12
Masukan penjualan hari ke-5: 90
Masukan penjualan hari ke-6: 67
Masukan penjualan hari ke-7: 89
Total penjualan: 471
Rata-rata penjualan: 67.0
Penjualan tertinggi: 90 Pada hari ke-5

Itulah tiga contoh bagaimana kita dapat memanfaatkan array di Java dengan cara yang lebih canggih, yaitu dengan mengintegrasikan prinsip-prinsip pemrograman modular dan rekursif.

Menggunakan pendekatan ini tidak hanya membuat kode kita lebih bersih dan terorganisir (modularitas), tetapi juga memungkinkan kita menyelesaikan masalah-masalah kompleks dengan cara yang elegan (rekursi).

Semoga ulasan dan kode program ini bermanfaat bagi Anda yang sedang belajar! Jika ada pertanyaan atau masukan, jangan ragu untuk menuliskannya di kolom komentar.

Leave a Reply

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