berikut ini ada sebuah soal UAS pemrograman JavaSmile

"Buatlah Program Perkalian dua matriks dengan ordo masing-masing matriks diinputkan,

dan elemen tiap matriks merupakan bilangan acak antara 25-75,

setelah itu simpan hasil outputnya ke sebuah file ".

hmmm ternyata gampang-gampang sussah...Laughing hehehehehe...

kebanyakan bingung bagaimana menentukan bilangan acak antara 25-75, 

kebanyakan contoh program hanya menyebut angka 0-100 sebagai hasil random.

oke mari kita simak contoh source code berikut ini...Wink

 

/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */

package UAS;

 

import java.io.DataInputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.logging.Level;

import java.util.logging.Logger;

 

/**

 *

 * @author xp

 */

public class SoalUAS {

 

    public static void main(String[] args) {

        int A[][];

        int B[][];

 

        int BA = 1, KA = 1, BB = 1, KB = 1;

        DataInputStream dis = new DataInputStream(System.in);

 

        try {

            System.out.println("PROGRAM PERKALIAN DUA MATRIKS");

            System.out.println("MATRIKS A");

            System.out.print("Masukkan Jumlah Baris : ");

            BA = Integer.parseInt(dis.readLine());

            System.out.print("Masukkan Jumlah Kolom : ");

            KA = Integer.parseInt(dis.readLine());

            System.out.println("Matriks B");

            System.out.print("Masukkan Jumlah Baris : ");

            BB = Integer.parseInt(dis.readLine());

            System.out.print("Masukkan jumlah Kolom : ");

            KB = Integer.parseInt(dis.readLine());

            if (KA != BB) {

                System.out.println("MAAF, KOLOM MATRIKS A DAN BARIS MATRIKS B HARUS SAMA");

                System.exit(0);

            }

            A = new int[BA][KA];

            B = new int[BB][KB];

 

            for (int i = 0; i < A.length; i++) {

                for (int j = 0; j < A[i].length; j++) {

                    A[i][j] = (int) Math.round(Math.random() * 50 + 25);

                }

            }

            for (int i = 0; i < B.length; i++) {

                for (int j = 0; j < B[i].length; j++) {

                    B[i][j] = (int) Math.round(Math.random() * 50 + 25);

                }

            }

 

            //String yang menjadi output disimpan dalam satu variable

            String hasil = "HASIL DARI PERKALIAN MATRIKS  \n" + toPrintMatriks(A)

                    + "X\n" + toPrintMatriks(B) + "=\n" + toPrintMatriks(perkalianMatriks(A, B));

            System.out.println(hasil);

            String FileName = "";

            System.out.print("\nMasukkan Nama File : ");

            FileName = dis.readLine();

            saveToFile(FileName, hasil);

            System.out.println("DATA SAVED");

 

        } catch (IOException e) {

        }

    }

 

    /**

     * Fungsi untuk menghitung perkalian dua matriks yang dilewatkan melalui

     * parameter fungsi.

     *

     * @param A Matriks A (berupa Array 2 Dimensi)

     * @param B Matriks B (berupa Array 2 Dimensi)

     * @return Matriks hasil perkalian A dan B

     */

    private static int[][] perkalianMatriks(int[][] A, int[][] B) {

        int C[][] = new int[A.length][B[0].length];

        for (int i = 0; i < A.length; i++) {

            for (int j = 0; j < B[0].length; j++) {

                C[i][j] = 0;

                for (int k = 0; k < B.length; k++) {

                    C[i][j] += A[i][k] * B[k][j];

                }

            }

        }

        return C;

    }

 

    /**

     * Fungsi untuk mengembalikan String berupa tampilan matriks yang siap cetak

     * @param M Matriks yang ingin dicetak (berupa Array 2 Dimensi)

     */

    private static String toPrintMatriks(int[][] M) {

        String h = "";

        for (int i = 0; i < M.length; i++) {

            h += "[\t";

            for (int j = 0; j < M[i].length; j++) {

                h += M[i][j] + "\t";

            }

            h += "]\n";

        }

        return h;

    }

 

    /**

     * Fungsi untuk menyimpan String ke sebuah File

     * Nama file dijadikan sebuag parameter supaya kita bisa

     * merubah nama file yang akan disimpan sesuai dengan keinginan kita

     *

     * @param FileName nama File yang diinginkan

     * @param data Data String yang akan disimpan

     */

    private static void saveToFile(String FileName, String data) {

        try {

            FileOutputStream fos = null;

            File f = new File("C:/folder coba/" + FileName + ".uas");

            fos = new FileOutputStream(f);

            fos.write(data.getBytes());

            fos.close();

        } catch (IOException ex) {

            Logger.getLogger(SoalUAS.class.getName()).log(Level.SEVERE, null, ex);

        }

    }

}

 

hmmm... ternyata tak sesulit yang kita kira bukan...???
Math.random() akan menghasilkan bilangan acak antara 0.00 s/d 1.0 
jadi kita cuman perlu memanipulasi hasil acakannya supaya sesuai dengan yang kita inginkan.
Wink
Semoga bermanfaat... yah