identifikasi masalah
mengalikan matrik 3x2 dengan vektor
menentukan input dan output
input : matrik [2][3]={0,2,7,3,4,5};
vektor[3]={7,3,2}
output: hasil[2]
membuat algoritma
procedur kali matrik (input/output i,j,matrik vektor)
deklarasi
i,j= integer
deskripsi
for i<- 1 to 2 do
for j<- 1 to3 do
([i,j]=([i,j]+a[i,j]*b[i,j])
end for
end for
end
mengimplementasikan ke dalam c++
source code
#include <iostream>
using namespace std;
void kali(int matrik[2][3],int vektor[3],int hasil[2]){
for(int i=0;i<2;i++){
for(int k=0;k<3;k++)
hasil[i]=hasil[i]+(matrik[i][k]*vektor[k]);
}
}
void cetakm(int hasil[][3]){
for(int i=0;i<2;i++){
for(int j=0;j<3;j++)
cout<<hasil[i][j]<<" ";
cout<<endl;
}
}
void cetakv(int vektor[]){
for(int i=0;i<3;i++){
cout<<vektor[i]<<endl;
}
}
void cetak(int hasil[]){
for(int i=0;i<2;i++){
cout<<hasil[i]<<endl;
}
}
int main(int argc, char** argv) {
int matrik[2][3]={0,2,7,3,4,5}, vektor[3]={7,3,2},hasil[2]={0};
kali(matrik,vektor,hasil);
cout<<"Matrik A\n";
cetakm(matrik);
cout<<"\nVektor b\n";
cetakv(vektor);
cout<<"\nHasil kali\n\n";
cetak(hasil);
return 0;
}
output
uji data matrik dengan vektor
DIKTAT
Selasa, 24 Mei 2016
Senin, 16 Mei 2016
BUBBLE SORT
BUBBLE
SORT
Bubble
sort adalah salah satu algoritma untuk sorting data, atau dalam kata lain
mengurutkan data dari yg terbesar ke yg terkecil atau sebalik nya (ascending
atau descending). Bubble sort (metode gelembung) adl algoritma pengurutan
dengan cara melakukan penukaran dengan data
tepat disebelahnya, algoritma ini mengulang proses perbandingan antara
tiap-tiap elemen array dan menukarnya apabila urutan nya salah. metode gelembung ini di inspirasikan gelembung sabun yg berada di permukaan air.
Input
output :
Data
sebelum di urutkan 8 6 2 1
Data
setelah diurutkan 1 2 6 8
Algoritma
:
Deklarasi
Data
: i, j, k, tmp, jumlah data : integer
Deskripsi
For
iß1 to do n-1 do
For
j ßi+1 to n do
If
x[i] > x[j] then
Endif
Endfor
endfor
#include <iostream>
using namespace std;
int main()
{
int data[10];
int i, j, k, tmp, jumlah=0;
cout<<"PROGRAM PENGURUTAN BILANGAN BUBBLE SORT\n\n";
cout<<"Masukkan jumlah bilangan : "; cin>>k;
for(i=0; i<k; i++)
{
cout<<"Masukkan Angka ke "<<(i+1)<<" : ";
cin>>data[i];
if(data[i]%2==0)
{jumlah+=data[i];}
}
cout<<"\nData sebelum diurutkan : "<<endl;
for(i=0; i<k; i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
for( i=0;i<k;i++)
{
for(j=i+1;j<k;j++)
{
if(data[i]>data[j])
{
tmp=data[i];
data[i]=data[j];
data[j]=tmp;
}
}
}
cout<<"\nData setelah diurutkan : "<<endl;
for(i=0; i<k; i++)
{
{
cout<<data[i]<<" ";
}
}
return 0;
}
refleksi minggu ke 9
hay gaes balik lagi ke refleksi kali ini aku berangkat agak terlambat tapi belum sampe jam 7 dan untung nya dosen pun datang agak lama dari saya, masuk seperti biasa siapain semua bahan kuliah dan rencana kuliah minggu ke 3 jangan lupa, kami di suruh buka diktat bab 8 materi nya sorting tapi ada beberapa teman kami yg belum buka dan malah salah buka ending nya bapak dosen bdmd dan kuliah hari ini pun di ganti malam nya namun tetap di kasi tugas. dan malam nya kita kuliah pun terjadi kesalahan lagi tugas yg kita buat tidak sesuai yg di minta dosen, huft semoga minggu depan lebih baik. good luck guys.
refleksi minggu ke 8
oke gaes! seperti biasa refleksi buat setiap pertemuan dalam satu minggu, kali ini masuk di minggu setelah uts kami membahas seputar soal uts , mengerjakan ulang salah satu dari teman di suruh maju & di beri waktu hanya beberapa menit bahkan detik untuk mengerjakan soal uts kemaren, agar mahasiswa tau jawaban yg benar. setelah itu seperti biasa di berikan tugas untuk posting. sekian :)
refleksi minggu ke 7
minggu ini adalah minggu terahir sebelum dilaksanakan nya uts, jadi membahas seputar uts dan materi nya adalah array. deklarasi array, membaca elemen array , mencetak array dan string.
Deklarasi array ditentukan dengan tipe dari setiap elemen dan banyaknya elemen yang
diperlukan oleh setiap array sehingga komputer mempersiapkan sejumlah memori.
contoh deklarasi, algoritma : array [1..5] of integer, c++ a[45].
itu sedikit tentang array. selanjut nya teman2 bisa belajar di diktat, selamat belajar, sukses uts.
Deklarasi array ditentukan dengan tipe dari setiap elemen dan banyaknya elemen yang
diperlukan oleh setiap array sehingga komputer mempersiapkan sejumlah memori.
contoh deklarasi, algoritma : array [1..5] of integer, c++ a[45].
itu sedikit tentang array. selanjut nya teman2 bisa belajar di diktat, selamat belajar, sukses uts.
diktat bab 8
No. 1
using namespace std;
int main(int argc, char** argv) {
int banyakData, cariData, posisi=0;
bool
ketemu = false;
cout
<< "Banyak data : ";
cin
>> banyakData;
int
data[banyakData];
for(int
ulang=0; ulang<banyakData; ulang++)
{
cout
<<"Berikan Data ke["<<ulang<<"] : ";
cin >> data[ulang];
}
cout
<<"Data yang akan di cari posisinya: ";
cin
>> cariData;
for(int
ulang=0; ulang<banyakData; ulang++)
{
if(cariData == data[ulang])
{
posisi = ulang;
ketemu = true;
break;
}
}
if(ketemu)
{
cout<<"Data "<<cariData<<" ditemukan di
posisi : "<<posisi<<endl;
cout<<"Terimakasih"<<endl;
}
else
{
cout<<"Data yang anda berikan"<<endl;
cout<<"Tidak tertera pada data Array"<<endl;
}
return
0;
}
output :
No. 2
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
int
A[15],i,j,k,tkr,top,bottom,middle,tm;
for(i=0;
i<15; i++)
{
printf("Data ke-%d : ", i+1);
scanf("%d", &A[i]);
}
printf("Masukkan data yang akan dicari : ");
scanf("%d",&k);
for(i=0;
i<15; i++)
{
for(j=i+1; j<15; j++)
{
if(A[i]>A[j])
{
tkr=A[i];
A[i]=A[j];
A[j]=tkr;
}
}
}
tm=0;
top=9;
bottom=0;
while(top>=bottom)
{
middle=(top+bottom)/2;
if(A[middle]==k)
{
tm++;
}
if(A[middle]<k)
{
bottom=middle+1;
}
else
{
top=middle-1;
}
}
if(tm>0)
{
printf("Data %d yang dicari ada dalam array\n",k);
}
else
if(tm=71)
{
printf("Data tidak diketemukan dalam array\n");
} else
{
printf("Data tidak diketemukan dalam array\n");
}
return
0;
}
output :
No.3
#include <iostream>
#include <conio.h>
/* run this program using the console pauser or add
your own getch, system("pause") or input loop */
using namespace std;
int main()
{ int
a,k,c,d,g;
k=5;
int b[5];
cout<<"Bubble sort adalah salah satu metode sorting atau
mengurutkan dari data terkecil ke data terbesar "<<endl<<endl;
for(a=0;a<k;a++)
{
cout<<"Masukkan nilai "<<a+1<<" :
";
cin>>b[a];
}
for(a=0;a<k-1;a++)
{
for(d=a+1;d<k;d++)
{
c=a;
if(b[c]<b[d])
{
c=d;
}
g=b[c];
b[c]=b[a];
b[a]=g;
}
}
cout<<"\n setelah diurutkan akan menjadi : \n";
for(a=0;a<k;a++)
{
cout<<b[a]<<" \n";
}
return 0;
}
output :
No.4
#include <iostream>
#include <conio.h>
/* run this program using the console pauser or add
your own getch, system("pause") or input loop */
using namespace std;
int main()
{
int data
[50];
int a,b;
int
max,min;
// masukan untuk batas
printf("Banyak Bilangan: ");scanf
("%d",&a);
//pengulangan untuk memasukkan data ke dalam array
for (b=1;b<=a;b++)
{
printf("\nbilangan ke-%d: ",b);scanf("%d",&data
[b]);
}
//mencari nilai terbesar dan terkecil di array
dengan looping
max=data[1];
min=data[1];
for
(b=1;b<=a;b++)
{
if
(data[b]>=max)
{
max=data[b];
}
else
if (data[b]<=min)
{
min=data[b];
}
}
printf("\n\nnilai tertinggi\t:%d", max);
printf("\n\nnilai terkecil\t:%d", min);
getch();
return 0;
}
No.5
#include <iostream>
#include <iomanip>
#include <conio.h>
/* run this program using the console pauser or add
your own getch, system("pause") or input loop */
using namespace std;
template <class T>
void s_sort(T a[],int n)
{
int i,j,t;
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(a[j]<a[i])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
}
int main()
{
int
a[100],i,n;
cout<<"Masukan jumlah elemen : ";
cin>>n;
cout<<"Masukan elemen - elemen tersebut :";
for(i=0;i<n;i++)
{
cout<<"\n
Enter : ";
cin>>a[i];
}
s_sort(a,n);
cout<<"Setelah di sorting :";
for(i=0;i<n;i++)
{
cout<<a[i]<<" , ";
}
return 0;
}
output :
No.6
#include <iostream>
#include <conio.h>
using namespace std ;
int data[7] = {0,5,2,4,6,1,3};
int data2[7];
int n;
void tukar(int a, int b)
{
int t;
t = data[b];
data[b] =
data[a];
data[a] = t;
}
void insertion_sort()
{
int temp,i,j;
for(i=1;i<=6;i++)
{
temp =
data[i];
j = i -1;
while(data[j]>temp && j>=0)
{
data[j+1] =
data[j];
j--;
}
data[j+1] =
temp;
}
}
int main()
{
cout<<"\t\t\t===PROGRAM INSERTION
SORT===\n\n"<<endl;
//Input Data
for(int
i=1;i<=6;i++)
{
cout<<"Data ke "<<i<<" :
"<<data[i]<<endl;
data2[i]=data[i];
}
insertion_sort();
cout<<"\n\n";
//tampilkan
data
cout<<"Data Setelah di Sort :
";
for(int i=1;
i<=6; i++)
{
cout<<" "<<data[i];
}
cout<<"\n\nSorting Selesai";
getch();
}
output :
No.7
#include <iostream>
using namespace std;
void merge(int low, int mid, int up);
void mergeSort(int low, int up);
int a[8] = {32 , 12 ,
5 , 18 , 31 ,
4 ,
25 , 7 };
int main()
{
int jumlahBil,i;
for(int i=0; i<8;i++)
{
cout<<"Bilangan ke- ["<< i
<< "] "<<a[i]<<endl;
}
mergeSort(1,8);
for(i=0;i<8;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
void merge(int low, int mid, int up)
{
int h, i,j,k;
int b[50];
h = low;
i = low;
j = mid+1;
while((h<=mid)&&(j<=up))
{
if(a[h] < a[j])
{
b[i]=a[h];
h++;
}
else
{
b[i]=a[j];
j++;
}
i++;
}
if(h>mid)
{
for(k=j;k<=up;k++){
b[i]=a[k];
i++;
}
}
else
{
for(k=h;k<=mid;k++)
{
b[i]=a[k];
i++;
}
}
for(k=low;k<=up;k++) a[k]=b[k];
}
void mergeSort(int low, int up)
{
int mid;
if(low<up)
{
mid=(low+up)/2;
mergeSort(low,mid);
mergeSort(mid+1,up);
merge(low,mid,up);
}
output :
No.8
#include <iostream>
using namespace std;
void merge(int low, int mid, int up);
void mergeSort(int low, int up);
int a[9] = {8 ,
1 , 4 , 9 ,
7 , 3
, 5 , 2 , 7 };
int main()
{
int jumlahBil,i;
for(int i=0; i<9;i++)
{
cout<<"Bilangan ke- ["<< i + 1
<< "] "<<a[i]<<endl;
}
mergeSort(1,9);
for(i=0;i<9;i++)
cout<<a[i]<<" ";
cout<<endl;
return 0;
}
void merge(int low, int mid, int up)
{
int h, i,j,k;
int b[50];
h = low;
i = low;
j = mid+1;
while((h<=mid)&&(j<=up))
{
if(a[h] < a[j])
{
b[i]=a[h];
h++;
}
else
{
b[i]=a[j];
j++;
}
i++;
}
if(h>mid)
{
for(k=j;k<=up;k++){
b[i]=a[k];
i++;
}
}
else
{
for(k=h;k<=mid;k++)
{
b[i]=a[k];
i++;
}
}
for(k=low;k<=up;k++) a[k]=b[k];
}
void mergeSort(int low, int up)
{
int mid;
if(low<up)
{
mid=(low+up)/2;
mergeSort(low,mid);
mergeSort(mid+1,up);
merge(low,mid,up);
}
output :
No.9
#include <stdio.h>
#define MAX 10
#define MaxStack 11
int Data[MAX];
// Prosedur menukar data
void Tukar (int *a, int *b)
{
int temp;
temp = *a;
*a
= *b;
*b
= temp;
}
// Prosedur pengurutan metode Quick Sort
void
QuickSortNonRekursif()
{
struct tump {
int Kiri;
int Kanan;
}
Tumpukan[MaxStack];
int i, j, L, R, x, ujung = 1; Tumpukan[1].Kiri = 0;
Tumpukan[1].Kanan = MAX-1;
while (ujung!=0){
L =
Tumpukan[ujung].Kiri;
R =
Tumpukan[ujung].Kanan;
ujung--;
while(R > L){
i = L;
j = R;
x =
Data[(L+R)/2];
while(i <= j){
while(Data[i] < x)
i++;
while(x < Data[j])
j--;
if(i
<= j){
Tukar(&Data[i], &Data[j]);
i++;
j--;
}
}
if(L < i){
ujung++;
Tumpukan[ujung].Kiri = i;
Tumpukan[ujung].Kanan =
R;
}
R = j;
}
}
}
int main()
{
int i;
//Memasukkan data yang belum terurut
printf("DATA SEBELUM TERURUT : \n");
for(i=1; i<MAX; i++)
{
printf("Data ke %d
: ", i);
scanf ("%d",
&Data[i]);
}
QuickSortNonRekursif();
//Data setelah terurut
printf("\nDATA SETELAH TERURUT");
for(i=1; i<MAX; i++)
{
printf("\nData ke
%d : %d ", i, Data[i]);
}
//scanf("%d");
return(0);
}
output :
No.10
#include <stdio.h>
#define MAX 10
#define MaxStack 11
int Data[MAX];
// Prosedur menukar data
void Tukar (int *a, int *b)
{
int temp;
temp = *a;
*a
= *b;
*b
= temp;
}
// Prosedur pengurutan metode Quick Sort
void
QuickSortNonRekursif()
{
struct tump {
int Kiri;
int Kanan;
}
Tumpukan[MaxStack];
int i, j, L, R, x, ujung = 1; Tumpukan[1].Kiri = 0;
Tumpukan[1].Kanan = MAX-1;
while (ujung!=0){
L = Tumpukan[ujung].Kiri;
R =
Tumpukan[ujung].Kanan;
ujung--;
while(R > L){
i = L;
j = R;
x =
Data[(L+R)/2];
while(i <= j){
while(Data[i] < x)
i++;
while(x
< Data[j])
j--;
if(i <= j){
Tukar(&Data[i],
&Data[j]);
i++;
j--;
}
}
if(L < i){
ujung++;
Tumpukan[ujung].Kiri = i;
Tumpukan[ujung].Kanan = R;
}
R = j;
}
}
}
int main()
{
int i;
//Memasukkan data yang belum terurut
printf("DATA SEBELUM TERURUT : \n");
for(i=1; i<MAX; i++)
{
printf("Data ke %d :
", i);
scanf ("%d",
&Data[i]);
}
QuickSortNonRekursif();
//Data setelah terurut
printf("\nDATA SETELAH TERURUT");
for(i=1; i<MAX; i++)
{
printf("\nData ke
%d : %d ", i, Data[i]);
}
//scanf("%d");
return(0);
}
output :
Langganan:
Postingan (Atom)