Studi Kasus1
Buatlah program untuk matrik 2 dimensi dengan input random dan tampilkan dengan cara:
- a) Urut pada kolom yang sama.
- b) Urut pada baris yang sama.
- c) Urut dari elemen pertama sampai akhir.
Pada kasus kali ini banyak sekali menggunakan proses perulangan untuk membuat suatu elemen matrix yang akan kita tentukan, kemudian untuk menyelesaikan inti permasalahan, baik dalam soal a, b, maupun c, itu menggunakan proses penukaran seperti pada waktu kita mempelajari pertama kali tentang Algoritma Pemrograman, dan dalam proses penukaran itu juga menggunakan proses seleksi dengan menggunakan algoritma menentukan nilai max dan min. selengkapnya silakan pahami source code di bawah ini:
Penyelesaian:

Source code:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<iomanip.h>
/**
*bundet.com
*Array 2 Dimensi, Matrix Urut Baris, Kolom, Elemen Awal-Akhir, Cetak Serentak
*/
void main() {
int a[10][10], b[10][10], brs, klm, x,y,z;
randomize();
cout << "SOAL NO. 1"<<endl<<endl;
cout << "Masukkan jumlah baris: "; cin >> brs;
cout << "Masukkan jumlah kolom: "; cin >> klm;
cout << endl;
//soal A
for(int i=0; i<brs; i++) {
for(int j=0; j<klm; j++) {
a[i][j]=random(50);
}
}
for(int i=0; i<brs; i++) {
for(int j=0; j<klm; j++) {
for(int k=0; k<klm; k++) {
if(a[i][j] < a[k][j]) {
y=a[i][j];
a[i][j]=a[k][j];
a[k][j]=y;
}
}
}
}
cout << "JAWABAN SOAL 1A" << endl <<endl;
for(int i=0; i<brs; i++) {
for(int j=0; j<klm; j++) {
cout << setw(5) << a[i][j];
}
cout << endl;
}
cout<<endl<<endl;
//soal 1B
for(int i=0; i<brs; i++) {
for(int j=0; j<klm; j++) {
a[i][j]=random(50);
}
}
for(int i=0; i<brs; i++) {
for(int j=0; j<klm; j++) {
for(int k=0; k<klm; k++) {
if(a[i][j] < a[i][k]) {
x=a[i][j];
a[i][j]=a[i][k];
a[i][k]=x;
}
}
}
}
cout << "JAWABAN SOAL 1B" << endl <<endl;
for(int i=0; i<brs; i++) {
for(int j=0; j<klm; j++) {
cout << setw(5) << a[i][j];
}
cout << endl;
}
cout<<endl<<endl;
//soal 1C
for(int i=0; i<brs; i++) {
for(int j=0; j<klm; j++) {
a[i][j]=random(50);
}
}
for(int i=0; i<brs; i++) {
for(int j=0; j<klm; j++) {
for(int k=0; k<klm; k++) {
for(int l=0; l<klm; l++) {
if(a[i][j] < a[k][l]) {
z=a[i][j];
a[i][j]=a[k][l];
a[k][l]=z;
}
}
}
}
}
cout << "JAWABAN SOAL 1C" << endl <<endl;
for(int i=0; i<brs; i++) {
for(int j=0; j<klm; j++) {
cout << setw(5) << a[i][j];
}
cout << endl;
}
getch();
}
Studi Kasus2
Pada materi sebelumnya telah dibahas tentang bagaimana cara mengurutkan angka-angka pada matrik berdasarkan kolom maupun baris.
Tantangan kali ini adalah, bagaimana cara mengurutkan angka-angka pada matrix berdasarkan semua elemen, termasuk kolom dan baris. Hal ini memungkinkan kita untuk mengkombinasikan unsur-unsur algoritma yang telah kita buat sebelumnya, bisa dibilang tantangan kali ini adalah menyatukan kembali beberapa ekstraksi program, atau ibarat bermain puzzle.
Penyelesaian:

Source code:
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <iomanip.h>
/**
*bundet.com
*Array 2 Dimensi Matrix Urut Kolom, Baris, Elemen Awal-Akhir.
*/
void main(){
int matrix[10][10];
int tampung[100];
randomize();
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
matrix[i][j]=random(20);
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
cout<<setw(5)<<matrix[i][j];
cout<<endl;
}
int x=0;
//menampung baris ke-0...
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
{
tampung[x]=matrix[i][j];
x++;
}
//mengurutkan nilai di tampung
int tamp;
for(int i=0;i<100;i++)
for(int j=0;j<100;j++)
if (tampung[i]<tampung[j])
{
tamp=tampung[i];
tampung[i]=tampung[j];
tampung[j]=tamp;
}
int a=0;
for(int i=0;i<10;i++)
for(int j=0;j<10;j++)
{
matrix[i][j]=tampung[a];
a++;
}
cout<<"\nMatrix setelah diurutkan perbaris adalah\n";
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
cout<<setw(5)<<matrix[i][j];
cout<<endl;
}
getch();
}
Semoga bermanfaat & selamat belajar!