1234 --> baris
2345
1234
kolom.
indeks baris dan kolom dapat juga kita asumsikan sebagai tabel 2 dimensi sejajar sumbu x dan sejajar sumbu y.
algoritma program untuk menggeser matrik.
package matriks;
import java.util.Scanner;
public class Matriks {
public static void main(String[] args) {
int [][] ori ={{5,1,2},{7,9,4},{2,9,1}};
// ini adalah isi dari matrik yang pertama atau nilai originalnya
int [][]q= new int [3][3];
// matrik untuk menampung data yang sudah di proses.
for (a=0;a<3;a++){
//menampilkan matrik awal
for(b=0;b<3;b++){
System.out.print(ori[a][b]);
}
System.out.println();
}
for (a=0;a<3;a++){ //di geser ke kanan 1x(SHL)
for(b=2;b>=0;b--){
c=b-1; //
if (c==-1&&b==0){
q[a][2]=ori[a][0];
}else{
q[a][c]=ori[a][b];
}
}
}
for (a=0;a<3;a++){
for(b=0;b<3;b++){
ori[a][b]=q[a][b];
System.out.print(ori[a][b]);
}
System.out.println();
}
}
dalam program diatas menggunakan 2 variabel dalam perulangan dengan maksud untuk memisahkan indeks dengan sumbu y dan x.
c sebagai variabel bantu untuk menggeser nilai dari indeks. matrik q aadalah tempat penyimpanan sementara matrik ori. matrik tersebut dapat di geser pada kolom karena indeks b(kolom) mempunyai 1 pergeseran dengan c .
hasil :
512 matrik ini adalah nilai awal
794
291
125 matrik ini adalah nilai setelah digeserke kiri 1 step.
147
912
algoritma program untuk menukar kolom dan baris
package matriks;
import java.util.Scanner;
public class Matriks {
public static void main(String[] args) {
int [][] ori ={{5,1,2},{7,9,4},{2,9,1}};
// ini adalah isi dari matrik yang pertama atau nilai originalnya
int [][]q= new int [3][3];
// matrik untuk menampung data yang sudah di proses.
for (a=0;a<3;a++){
//menampilkan matrik awal
for(b=0;b<3;b++){
q=[a][b]=ori[a][b]; // menyimpan ori dalam q
}
System.out.println();
}
for (a=0;a<3;a++){ //menukar kolom dan baris TRANS
for(b=0;b<3;b++){
ori[a][b]=q[b][a];
System.out.print(ori[a][b]);
}
System.out.println();
}System.out.println();
}
untuk nenukar kolom dan baris kita hanya menukar indeks matrik asal dan matrik penampung. pertama matriks harus disimpan dahulu ke dalam matriks lain untuk menghindari kesalahan saat penukaran. lalu kita tinggal menukar indeks asal (matriks ori ) dengan indeks pada matrik penyimpan (matrik q),
hasil
512 matrik ini adalah nilai awal
794
291
572 matrik setelah dirotasi
199
241
algoritma program untuk merotasi matrik
package matriks;
import java.util.Scanner;
public class Matriks {
public static void main(String[] args) {
int [][] ori ={{5,1,2},{7,9,4},{2,9,1}};
// ini adalah isi dari matrik yang pertama atau nilai originalnya
int [][]q= new int [3][3];
// matrik untuk menampung data yang sudah di proses.
for (a=0;a<3;a++){
//menampilkan matrik awal
for(b=0;b<3;b++){
System.out.print(ori[a][b]);
}
System.out.println();
}
for (a=0;a<3;a++){ //rotasi cw
for(b=0;b<3;b++){c=0;d=0;
if(a!=0 && a!= 2&& b!=0 && b!=2){
c=b;d=a;
}else if(a==0&&b!=2){// baris paling atas geser kiri
c=b+1;d=a;
}else if (a!=2&&b==2){//ujung kanan atas turun
d=a+1;c=b;
}else if(b==0&&a!=0){// kolom kiri naik
d=a-1;c=b;
}else if(a==2&&b!=0){// baris bawah ke kiri
c=b-1;d=a;
}
q[a][b]=ori[d][c];
}
}
for (a=0;a<3;a++){
for(b=0;b<3;b++){
ori[a][b]=q[a][b];
System.out.print(ori[a][b]);
}
System.out.println();
} System.out.println();
}
algoritma untuk merotasi matrik ini merupakan gabungan dari algoritma penggeseran matrik. dimana dalam prosesnya mengalami 4 pergeseran kekiri kekanan keatas dan kebawah. karena ini lebih komples maka seleksi programnya lebih banyak. kita perlu mengidentifikasi mana yang harus bergeser kekiri, kekanan keatas maupun ke bawah dengan tepat.
512 matrik ini adalah nilai awal
794
291
751 hasil dari rotasi searah dengan jarum jam
292
914
demikian 3 algoritma seputar matrik yang saya sampaikan semoga bermanfaat ^_^
Tutarni : Terima kasih atas tutorial yang diberikan, akan coba saya praktikan semoga berhasil. Sekali lagi terima kasih :)
BalasHapus