Anda di halaman 1dari 32

Pemrograman Dasar

Array 1 Dimensi: Operasi Vektor


dan Himpunan
Syaiful Anam, S.Si, MT, Ph.D
Laboratorium Komputer dan Sains Data

Program Studi S1 Matematika


Jurusan Matematika
Universitas Brawijaya Copy Right @Syaiful Anam
Matematika UB
Operasi Vektor

Jika n adalah sebuah bilangan bulat positif, maka tuple


n terorde (ordered-n-tuple) adalah sebuah urutan
bilangan riil (a1, a2,..., an). Himpunan semua tuple n
terorde dinamakan ruang-n dan dinyatakan dengan Rn.

Bila n=2 atau 3, maka biasanya digunakan istilah


pasangan terode atau triple terorde dan bukannya
tuple-2-terorde atau tuple-3-terorde. Untuk n=1 cukup
ditulis R bukan R1.

Laboratorium Komputer dan Sains Data


Operasi Vektor

Penjumlahan vektor
Dua vektor u=(u1, u2,..., un) dan v=(v1, v2,..., vn) pada Rn
dinamakan sama jika
u1=v1, u2=v2,...,un=vn
Jumlah u+v didefinisikan oleh
u+v=(u1+ v1, u2+ v2,..., un+ vn)

Contoh
Penjumlahan dari vektor u=(-1,3,5,7) dan v=(5,-4,7,0) pada R4
adalah u+v =(4,-1,12,7)

Laboratorium Komputer dan Sains Data


Melakukan cek 2 vektor sama atau tidak
U=(u[1],u[2],u[3],…u[n]), V=(v[1],v[2],v[3],…v[n])
1. START
2. INPUT n 7. IF Cek=True THEN
3. FOR i=1 TO n DO PRINT “ U dan V adalah sama”
ELSE
INPUT U[i]
PRINT “U dan V adalah tidak
END FOR sama”
4. FOR i=1 TO n DO 8. END IF
INPUT V[i] 9. END
END FOR
5. Cek=True
6. FOR i=1 TO n DO
a. IF U[i]<>V[i] THEN
Cek=False
END IF
END FOR
Laboratorium Komputer dan Sains Data
Program

#include <stdio.h> printf("Vektor v= \n");


#include <conio.h> for(i=0;i<n;i++)
main() {
{ scanf("%f",&v[i]);
int n,i; }
float u[100],v[100]; cek=true;
bool cek; for(i=0;i<n;i++)
printf("Masukkan Dimensi dari vektor:"); if (u[i]!=v[i])
scanf("%d",&n); cek=false;
printf("Vektor u= \n"); if (cek==true)
for(i=0;i<n;i++) printf("u dan v adalah sama");
{ else
scanf("%f",&u[i]); printf("u dan v adalah tidak
} sama");
getch();
}

Laboratorium Komputer dan Sains Data


Perhitungan dari Penjumlahan Vektor

A=(2,3,4,5,6)
B=(3,3,4,7,8)
C=A+B=(2+3,3+3,4+4,5+7,6+8)

C[1]=A[1]+B[1]
C[2]=A[2]+B[2] FOR i=1 TO 5 DO
C[3]=A[3]+B[3] C[i]=A[i]+B[i]
C[4]=A[4]+B[4] END FOR
C[5]=A[5]+B[5]
Laboratorium Komputer dan Sains Data
Pseudocode Penjumlahan Vektor

1. INPUT dim
2. FOR i=1 TO dim DO
INPUT A[i]
END FOR
3. FOR i=1 TO dim DO
INPUT B[i]
END FOR
4. FOR i=1 TO dim DO
C[i]=A[i]+B[i]
END FOR
5. FOR i=1 TO dim DO
PRINT C[i]
END FOR

Laboratorium Komputer dan Sains Data


Contoh Program Penjumlahan Vektor

#include <stdio.h>
#include <conio.h>
#include <windows.h>
void gotoxy(short x, short y) {
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
main()
{
int dim,i; printf("%5.2f",c[i]);
float a[100],b[100],c[100];
printf("Masukkan Dimensi Vektor:");
scanf("%d",&dim); 5 . 0 0
printf("\nVektor A: \n");
for(i=0;i<dim;i++)
{
gotoxy(3,3+i);scanf("%f",&a[i]);
} 6
7

Laboratorium Komputer dan Sains Data


Lanjutan

printf("Vektor B: \n");
for(i=0;i<dim;i++)
{
gotoxy(3,4+i+dim);scanf("%f",&b[i]);
}
printf("Vektor A+B: \n");
for(i=0;i<dim;i++)
{
c[i]=a[i]+b[i];
gotoxy(3,5+i+2*dim);printf("%5.2f",c[i]);
}
} Laboratorium Komputer dan Sains Data
Perkalian Vektor dengan Skalar

Jika k adalah sebarang skalar, maka perkalian skalar ku


didefinisikan oleh
ku=(ku1, ku2,..., kun)

k=5
u=(3,4,5,6)
Ku=(15,20,25,30)

Laboratorium Komputer dan Sains Data


Cara kerja Perkalian Vektor dengan Skalar

k=5
u=(3,4,5,6)
ku=(15,20,25,30)
FOR i=1 TO 4 DO
Ku[1]=k*u[1] ku[i]=k*u[i]
Ku[2]=k*u[2] END FOR
Ku[3]=k*u[3]
Ku[4]=k*u[4]

Laboratorium Komputer dan Sains Data


Pseudocode Perkalian Vektor dengan Skalar

1. INPUT dim
2. FOR i=1 TO dim DO
INPUT u[i]
END FOR
3. INPUT k
4. FOR i=1 TO dim DO
ku[i]=k*u[i]
END FOR
5. FOR i=1 TO dim DO
PRINT ku[i]
END FOR
Laboratorium Komputer dan Sains Data
Program Perkalian Skalar

#include <stdio.h>
#include <conio.h>
#include <windows.h>
void gotoxy(short x, short y) {
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
main()
{
int dim,i;
float u[100],ku[100],k;
printf("Masukkan Dimensi Vektor:");
scanf("%d",&dim); // dim=3
printf("\nVektor U: \n");

Laboratorium Komputer dan Sains Data


Program Perkalian Skalar

for(i=0;i<dim;i++)
{
gotoxy(3,3+i);scanf("%f",&u[i]); //pencetakan terakhir dim+2
}
printf("Masukkan skalar:"); //3+dim
scanf("%f",&k);
printf("Vektor ku: \n"); //4+dim
for(i=0;i<dim;i++)
{
ku[i]=k*u[i];
gotoxy(3,5+i+dim);printf("%5.2f",ku[i]);
}
getch();
}
Laboratorium Komputer dan Sains Data
Lanjutan

Dot product
Jika u=(u1, u2,..., un) dan v=(v1, v2,..., vn) adalah sebarang
vektor pada Rn, maka dot product u dan v yaitu u.v
didefinisikan dengan
u.v=u1 v1+ u2 v2+...+ un vn

Laboratorium Komputer dan Sains Data


Cara kerja dot Product

Contoh
Dot product dari vektor u=(-1,3,5,7) dan v=(5,-4,7,0) pada R4 adalah u.v
=(-1) 5 + 3 (-4) +5 (7) +7 (0) =18

• u=(-1,3,5,7) dan v=(5,-4,7,0)


• uv =(-1) 5 + 3 (-4) +5 (7) +7 (0) =18
• uv=u[1]*v[1]+u[2]*v[2]+u[3]*v[3]+u[4]*v[4]
uv=0
uv=0
uv=uv+u[1]*v[1]
FOR i=1 TO 4 DO
uv=uv+u[2]*v[2]
uv=uv+u[i]*v[i]
uv=uv+u[3]*v[3]
END FOR
uv=uv+u[4]*v[4]

Laboratorium Komputer dan Sains Data


Pseudocode Dot Product

1. INPUT dim
2. FOR i=1 TO dim DO
INPUT u[i]
END FOR
3. FOR i=1 TO dim DO
INPUT v[i]
END FOR
4. uv=0
5. FOR i=1 TO dim DO
uv=uv+u[i]*v[i]
END FOR
5. PRINT uv

Laboratorium Komputer dan Sains Data


Program Dot Product

#include <stdio.h>
#include <conio.h>
#include <windows.h>
void gotoxy(short x, short y) {
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
main()
{
int dim,i;
float u[100],v[100],uv;
printf("Masukkan Dimensi Vektor:");
scanf("%d",&dim);
printf("\nVektor u: \n");

Laboratorium Komputer dan Sains Data


Program Dot Product
for(i=0;i<dim;i++)
{
gotoxy(3,3+i);scanf("%f",&u[i]);
}
printf("Vektor v: \n");
for(i=0;i<dim;i++)
{
gotoxy(3,4+i+dim);scanf("%f",&v[i]);
}
uv=0;
for(i=0;i<dim;i++)
{
uv=uv+u[i]*v[i];
}
printf(" Dot product u dan v = %5.2f",uv);
getch();
}
Laboratorium Komputer dan Sains Data
Norm Vektor

Norma Euclidis (atau panjang Euclidis) vektor u=(u1, u2,..., un)


pada Rn didefinisikan oleh

1
u  (u.u )  u12  u 22  ...  u n2
2

Jarak dua buah vektor


Jarak Eulidis di antara titik u=(u1, u2,..., un) dan v=(v1, v2,..., vn)
pada Rn didefinsikan oleh

d (u, v)  u  v  (u1  v1 ) 2  (u 2  v2 ) 2  ...  (u n  vn ) 2

Laboratorium Komputer dan Sains Data


Contoh

Diketahui vektor u=(-1,3,5,7) dan v=(5,-4,7,0) pada


R4
Carilah norma u dan d(u,v)

1
u  (u.u )  (1) 2  (3) 2  (5) 2  (7) 2  84
2

d (u, v)  u  v  (1  5) 2  (3  (4)) 2  (5  7) 2  (7  0) 2  90

Laboratorium Komputer dan Sains Data


Operasi Himpunan

• A={3,4,5,7}
• B={1,3,6,7}
• A B={3,4,5,7,1,6}
• AB={3,7}
• A-B={4,5}
• A+B={4,5,1,6}

Laboratorium Komputer dan Sains Data


Cara kerja irisan dua buah himpunan
A={3,4,5,7} i=3
B={1,3,6,7} Apakah A[3]=B[1] ?tidak
AB={3,7} Apakah A[3]=B[2] ?tidak
Apakah A[3]=B[3] ?tidak
AirisB={} Apakah A[3]=B[4] ?tidak
i=1
Apakah A[1]=B[1] ?tidak i=4
Apakah A[1]=B[2] ?ya Apakah A[4]=B[1] ?tidak
AirisB={3} Apakah A[4]=B[2] ?tidak
i=2 Apakah A[4]=B[3] ?tidak
Apakah A[2]=B[1] ?tidak Apakah A[4]=B[4] ?ya
Apakah A[2]=B[2] ?tidak • AirisB={3,7}
Apakah A[2]=B[3] ?tidak
Apakah A[2]=B[4] ?tidak

Laboratorium Komputer dan Sains Data


Pseudocode Irisan

1. INPUT na 4. FOR i=1 TO na DO


2. FOR i=1 TO na DO FOR j=1 TO nb DO
INPUT A[i] IF A[i]=B[j] THEN
END FOR C[nc+1]=A[i]
3. INPUT nb nc=nc+1
4. FOR i=1 TO nb DO BREAK
INPUT B[i] END IF
END FOR END FOR
5. nc=0 END FOR
5 FOR i=1 TO nc DO
PRINT C[i]
END FOR

Laboratorium Komputer dan Sains Data


Program Irisan Dua Buah Himpunan

#include <stdio.h>
#include <conio.h>
#include <windows.h>
void gotoxy(short x, short y) {
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
main()
{
int na,nb,nc,i,j;
char a[100],b[100],c[100];
printf("Masukkan Kardinal Himpunan A:");
scanf("%d",&na);
printf("\nHimpunan A: \n");

Laboratorium Komputer dan Sains Data


Program Irisan Dua Buah Himpunan

for(i=0;i<na;i++)
{
gotoxy(3,3+i); a[i]=getche(); // terakhir 2+na
}
printf("\nMasukkan Kardinal Himpunan B:"); //3+na
scanf("%d",&nb);
printf("Himpunan B: \n"); //4+na
for(i=0;i<nb;i++)
{
gotoxy(3,5+i+na);b[i]=getche();
}
Laboratorium Komputer dan Sains Data
Program Irisan Dua Buah Himpunan

nc=0;
for(i=0;i<na;i++)
{
for (j=0;j<nb;j++)
if (a[i]==b[j])
{
c[nc]=a[i];
nc=nc+1;
//break;
}
}
printf("\nHimpunan A irisan B=\n");

Laboratorium Komputer dan Sains Data


Program Irisan Dua Buah Himpunan

for(i=0;i<nc;i++)
{
if (i<nc-1)
printf("%c,",c[i] );
else
printf("%c} ",c[i]);
}
getch();
}

Laboratorium Komputer dan Sains Data


Latihan ()

1. Buatlah pseudocode , flowchart dan program untuk


mengurutkan n data yang dimasukkan !
2. Buatlah psudocode , flowchart dan program untuk
mencari median dari n data yang dimasukkan !
3. Buatlah Pseudocode dan program untuk mencari
frekuensi dari bilangan bilangan bulat yang
dimasukkan
4. Buatlah psudocode , flowchart dan program untuk
mencari modus dari n data yang dimasukkan !

Laboratorium Komputer dan Sains Data


Tugas 2

1. Buatlah psudocode dan program untuk mencari


norm dari suatu vektor
2. Buatlah flowchart dan program untuk mencari jarak
antara dua vektor

Laboratorium Komputer dan Sains Data


Latihan ()

1. Buatlah pseudocode , flowchart dan program untuk operasi


gabungan (union) dua himpunan dimasukkan!
2. Buatlah pseudocode , flowchart dan program untuk operasi
selisih dua himpunan dimasukkan!

Laboratorium Komputer dan Sains Data


Blog: http://syaifulmath.lecture.ub.ac.id/
E-mail: syaifulanam2000@yahoo.com
facebook: https://www.facebook.com/shaifuru.anamu
facebook page: https://www.facebook.com/syaifulanam.math.ub?ref=hl
Instagram: https://instagram.com/shaifuru/

Anda mungkin juga menyukai