Hai sobat, kali ini saya akan memposting contoh program permainan menara Hanoi yang biasa disebut dengan istilah Tower of Hanoi dan program perkalian matriks dengan menggunakan bahasa pemrograman java.
Program ini merupakan program yang saya buat dalam rangka tugas ke 4 dari mata kuliah pemrograman java. Saya harap postingan saya ini dapat dijadikan bahan referensi bagi para mahasiswa/i TI yang mendapat tugas membuat program tersebut.
1. Tower of Hanoi
System.out.println("Masukkan jumlah disk :");
System.out.print("\n");
}while(pilihan != 2);
2. Perkalian Matriks
Program ini merupakan program yang saya buat dalam rangka tugas ke 4 dari mata kuliah pemrograman java. Saya harap postingan saya ini dapat dijadikan bahan referensi bagi para mahasiswa/i TI yang mendapat tugas membuat program tersebut.
1. Tower of Hanoi
Source Code :
/**
* Program Puzzle
Tower of Hanoi
*/
import java.util.Scanner;
public class towerOfHanoi {
public static void
towerOfHanoi(int N, String towerAwal, String temp, String towerAkhir ) {
if(N == 0)
{
return ;
}
else
{
towerOfHanoi(N-1,
towerAwal, towerAkhir, temp);
System.out.println("Pindahkan
disk " + N + " dari " + towerAwal + " ke " +
towerAkhir + ".");
towerOfHanoi(N-1,
temp, towerAwal, towerAkhir);
}
}
public static void main(String[] args) {
Scanner input =
new Scanner(System.in);
int
jumlahDisk;
int pilihan;
do
{
System.out.println("Program Puzzle Tower of Hanoi .");
System.out.println("===============================");
System.out.println("Masukkan jumlah disk :");
System.out.print("Jumlah Disk : ");
jumlahDisk =
input.nextInt();
towerOfHanoi(jumlahDisk,"Tower Pertama","Tower
Tengah","Tower Akhir");
System.out.print("\n");
System.out.println("Apa anda ingin mengulanginya lagi? 1.ya
2.tidak");
System.out.print("Jawabanmu : ");
pilihan =
input.nextInt();
System.out.print("\n");
}while(pilihan != 2);
}
}2. Perkalian Matriks
Source Code :
/**
/**
* Program perkalian
matriks
*/
import java.util.Scanner;
import java.io.*;
public class matriks {
public static
int[][] multiply(int[][] A, int[][] B) {
//
Fungsi perkalian matriks
int mA
= A.length;
int nA
= A[0].length;
int mB
= B.length;
int nB
= B[0].length;
if(nA
!= mB)
{
throw
new RuntimeException("Dimensi Matriks tersebut ilegal.");
}
int[][]
C = new int[mA][nB];
for(int
i=0; i < mA; i++)
for(int
j=0; j < nB; j++ )
for(int
k=0; k < nA; k++)
C[i][j]
+= (A[i][k] * B[k][j]);
return
C;
}
public static
void print(int[][] A) {
//
Fungsi untuk mencetak hasil perkalian matriks
int M =
A.length;
int N =
A[0].length;
System.out.println("\nMatriks hasil
berordo" + M + " x " + N);
System.out.println("========================================");
for(int i = 0;
i < M; i++) {
System.out.print("|");
for(int j
= 0; j < N; j++) {
System.out.printf("%d",
A[i][j]);
System.out.print("|");
}
System.out.println();
}
}
public static void
main(String[] args) {
Scanner input =
new Scanner (System.in);
int
ordoMatriksM, ordoMatriksN ; // menentukan banyak baris dan kolom pada matriks
pertama
int
ordoMatriks1M, ordoMatriks1N; // menentukan banyak baris dan kolom pada matriks
kedua
int
x,y,nilai,nilai1,pilihan;
int[][]
matriks1;
int[][]
matriks2;
System.out.println("Program Perkalian Dua Buah Matriks.");
System.out.println("============================");
System.out.print("\n");
do
{
System.out.println("Matriks Pertama ");
System.out.print("Masukkan jumlah baris :
");
ordoMatriksM =
input.nextInt();
System.out.print("Masukkan jumlah kolom : ");
ordoMatriksN =
input.nextInt();
System.out.println("Merupakan matriks berordo " + ordoMatriksM
+ " x " + ordoMatriksN + ".");
matriks1 = new
int [ordoMatriksM][ordoMatriksN]; // Inisialisasi ukuran array dua dimensi.
for(x=0;
x<ordoMatriksM; x++)
{
int
indeksBaris1 = x + 1;
for(y=0;
y<ordoMatriksN; y++)
{
int
indeksKolom1 = y + 1;
System.out.print("Indeks
["+indeksBaris1+","+indeksKolom1+"] = ");
nilai
= input.nextInt();
matriks1[x][y]
= nilai;
}
}
System.out.print("\n");
System.out.println("Matriks Kedua ");
System.out.print("Masukkan
jumlah baris : ");
ordoMatriks1M =
input.nextInt();
System.out.print("Masukkan jumlah kolom : ");
ordoMatriks1N =
input.nextInt();
System.out.println("Merupakan matriks berordo " +
ordoMatriks1M + " x " + ordoMatriks1N + ".");
matriks2 = new
int[ordoMatriks1M][ordoMatriks1N];
for(x=0;
x<ordoMatriks1M; x++)
{
int
indeksBaris2 = x + 1;
for(y=0;
y<ordoMatriks1N; y++)
{
int
indeksKolom2 = y + 1;
System.out.print("Indeks
["+indeksBaris2+","+indeksKolom2+"] = ");
nilai1
= input.nextInt();
matriks2[x][y]
= nilai1; // memasukkan nilai pada tiap-tiap elemen array
}
}
System.out.print("\n");
System.out.println("Hasil perhitungan matriks pertama dan
kedua.");
int[][]
matrixHasil = matriks.multiply(matriks1,matriks2); // memanggil fungsi
perkalian
matriks.print(matrixHasil); // memanggil fungsi cetak hasil perkalian
System.out.println();
System.out.println("Mau dilanjutkan lagi ? : 1.Ya 2.Tidak");
System.out.print("Pilihan anda (1 atau 2) : ");
pilihan =
input.nextInt();
System.out.println();
}while(pilihan
!= 2);
}
}