Minggu, 30 September 2012
Manipulation Sinyal
Tipe Deret Diskrit
X(n)=a^n
n=[0:10];>> x=(0.9).^n;>> figure();stem(n,x);
n=[0:100];
x=(0.9*exp(j*pi/10)).^n;
>> real(x);
>> imag(x);
>> figure;subplot(2,1,1);stem(n,real(x));subplot(2,1,2);stem( n,imag(x))
>> abs(x);
>> angle(x);
>>figure;subplot(2,1,1);stem(n,abs(x));subplot(2,1,2);stem( n,angle(x))
>>figure;subplot(2,2,1);stem(n,real(x));subplot(2,2,2); stem(n,imag(x));subplot(2,2,3) ;stem(n,abs(x));subplot(2,2,4) ;stem(n,angle(x))
>>A=convang([pi/2, 3*pi/2, 2*pi],’rad’,’deg’)
>> n=[0:500];>>a=3*cos(0,1*pi*n+pi/3);>>sudut_rad=convang(a,'deg','rad') Untuk menampilkan kedalam grafik kita menggunakan fungsi>>figure;stem(n,sudut_rad);
>> b=randn(1,80)>> a=rand(1,80)>> figure;subplot(2,1,1);stem(0:79,a);subplot(2,1,2);stem(0: 79,b);
x=[1:5]>> xtilde=[x,x,x,x]>> xtilde2=x'*ones(1,4)>> xtilde2=xtilde2(:)>> xtilde2=xtilde2'>> figure; subplot(2,1,1);stem(0:length(xtilde)-1,xtilde);subplot(2,1, 2);stem(0:length(xtilde2)-1, xtilde2)
function [y,n] = sigadd(x1,n1,x2,n2)n=min(min(n1),min(n2)):max(max(n1),max(n2)); y1=zeros(1,length(n));y2=y1;y1(find((n>=min(n1))&(n<=max(n1))==1))= x1 y2(find((n>=min(n2))&(n<=max(n2))==1))=x2; y=y1+y2;figure;subplot(3,1,1);stem(n,y1);subplot(3,1,2);stem(n,y2); subplot(3,1,3);stem(n,y);
>> x1=[3:9]>> x2=ones(1,8)>>n1=[-2:4];>>n2=[-6:1];Kemudian kita panggil fungsinya>> sigadd(x1,n1,x2,n2)
Sinyal Waktu Diskrit
t=0:0.01:2;x=sin(2*pi*t);plot(t,x,’b’);xlabel(’t in sec’);ylabel(’x(t)’);title(’Plot of sin(2\pit)’);figure;stem(t,x)
x(n)= [2, 1,−1, 0, 1, 4, 3, 7]x=[-3:4][ketika di enter akan muncul seperti berikut]x =-3 -2 -1 0 1 2 3 4y= [2, 1,−1, 0, 1, 4, 3, 7][ketika di enter akan muncul seperti berikut]y =2 1 -1 0 1 4 3 7figure;stem(x,y);[ketika di enter akan muncul grafiknya]
x(n)= [2, 1,−1, 0, 1, 4, 3, 7]x=[-4:3][ketika di enter akan muncul seperti berikut]x =-4 -3 -2 -1 0 1 2 3y= [2, 1,−1, 0, 1, 4, 3, 7][ketika di enter akan muncul seperti berikut]y =2 1 -1 0 1 4 3 7figure;stem(x,y);
>> c=zeros(1,15)c =0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>> c(1,8)=1c =0 0 0 0 0 0 0 1 0 0 0 0 0 0 0>> figure;stem(-7,7,d)
function [x,n]=impseq(n0,n1,n2);n=[n1:n2]; x=[(n-n0)==0];figure;stem(n,x);
f=[zeros(1,6),ones(1,7)]stem(-6:6,f)f =0 0 0 0 0 0 1 1 1 1 1 1 1
function [x,n] = stepseq(n0,n1,n2)n=[n1:n2]; x = [(n-n0) >= 0];figure;stem(n,x);
Pengenalan MATLAB
C=A+B C = 4 |
>> A+B
ans =
4
|
>>
A=[1,2,3,4;5,6,7,8]
A =
1
2 3 4
5
6 7 8
|
>> B = magic(4)
B =
16 2
3 13
5 11
10 8
9 7
6 12
4 14
15 1
|
>> Z = magic (5)
Z =
17
24 1 8
15
23
5 7 14
16
4
6 13 20
22
10
12 19 21
3
11
18 25 2
9
|
>> c = ones(3,4)
c =
1 1
1 1
1
1 1 1
1
1 1 1
|
>> C= zeros (3,4)
C =
0
0 0 0
0
0 0 0
0
0 0 0
|
>> A = [1 2 3 4; 5 6 7 8]
A =
1
2 3 4
5
6 7 8
|
>> B=sum(A)
B =
6
8 10 12
|
>> b = A'
b =
1
5
2
6
3
7
4
8
|
>> A=[1:4;5:8;9:12;13:16]
A =
1
2 3 4
5
6 7 8
9
10 11 12
13
14 15 16
|
>> diag(A)
ans =
1
6
11
16
|
>> sum(diag(A))
ans =
34
|
>> A = [1 2 3;4 5 6]
A =
1
2 3
4
5 6
|
Dijumlahkan dengan
|
>> B = ones(2,3)
B =
1
1 1
1
1 1
|
>> C= A+B
C =
2
3 4
5
6 7
|
>> A = [1 2 3;4 5 6]
A =
1
2 3
4
5 6
|
Dikuranghkan dengan
|
>> B = ones(2,3)
B =
1
1 1
1
1 1
|
>> C=A-B
C =
0
1 2
3
4 5
|
>> C=A/2
C =
0.5000
1.0000 1.5000
2.0000
2.5000 3.0000
|
>> C=2\A
C =
0.5000
1.0000 1.5000
2.0000
2.5000 3.0000
|
>> A= [1 2 3; 4 5 6]
A =
1
2 3
4 5 6
|
Dijumlahkan dengan
|
>> B= ones (3,2)
B =
1
1
1
1
1
1
|
>> A*B
ans =
6
6
15
15
|
Jumat, 28 September 2012
Pencarian Persamaan Kuadrat dengan Rumus abc
KOMPETENSI
Setelah melakukan praktik, mahasiswa mampu membuat program dengan bahasa C untuk mengimplementasikan rumus abc untuk mencari akar-akar daru suatu persamaan kuadrat
TEORI DASAR
Ada beberapa cara yang dapat digunakan untuk mencari suku/faktor nilai x
pada persamaan kuadrat, misalnya pemfaktoran, melengkapkan bentuk kuadrat, maupun menggunakan rumus kuadrat atau bisa juga disebut rumus abc. Untuk persamaan kuadrat ax^2 + bx + c = 0
dengan nilai a > 1 ataupun bentuk persamaan kuadrat yang sulit difaktorkan, biasanya akan lebih mudah diselesaikan jika menggunakan rumus kuadrat. Untuk penyelesaiannya diberikan ketentuan sebagai berikut :
Carilah detriminan dari persamaan tersebut dengan rumus :
D=b^2 - 4ac
Jika D=0 maka
x= - (b/2a)
Jika D>0 maka
x1=(-b+√(b^2-4ac))/2a
x2=(-b-√(b^2-4ac))/2a
ALAT dan BAHAN
- Perangkat komputer
- Sistem operasi windows xp/linux/mac
- Program turbo C/Borland C/C++ Builder/Code Block, dll.
TUGAS
Buatlh program untuk mengimplementasikan algoritama pencarian akar-akar persamaan kuadrat dengan rumus abc di atas
Jawaban dan SOURCE CODE Program
Berikut ini adalah source code program untuk menyelesaikan persamaan di atas
- #include <stdio.h>
- #include <conio.h>
- #include <math.h>
- void AkarKuadrat(int a, int b, int c){
- float x1,x2;
- int D;
- D=(b*b)-(4*a*c);
- if (D==0) x1=-1*(b/(2*a));
- else if(D>0){
- x1=(-b+(sqrt(D)))/(2*a);
- x2=(-b-(sqrt(D)))/(2*a);
- }
- printf("D = %d\n",D);
- printf("x1 = %.2f\n",x1);
- printf("x2 = %.2f",x2);
- }
- int main()
- {
- int a,b,c;
- printf("Masukkan nilai a : \n");scanf("%d",&a);
- printf("Masukkan nilai b : \n");scanf("%d",&b);
- printf("Masukkan nilai c : \n");scanf("%d",&c);
- AkarKuadrat(a,b,c);
- return 0;
- }
Sabtu, 04 Agustus 2012
Searching Array : Job Sheet 2
Setelah kita memahami apa itu array. Pada kali ini kita akan mempelajari bagaimana data dalam array itu dapat dimanipulasi, beberapa manipulasi array diantaranya adalah penambahan data, penghapusan data, pengeditan data, pencarian data, penampilan data.
Pada postingan ini kami akan menjelaskan beberapa metode searching beserta cara implementasinya, kelebihan dan kekurangan dari masing-masing metode. Pada dasarnya konsep dari searching itu sendiri adalah meminta inputan dari user data apa yang akan dicari, kemudian disimpan dalam variabel kemudian dibandingkan dengan data yang tersimpan dalam indeks array, apabila data pembanding itu sama maka akan data tersebut akan ditampilkan. Apabilwa data pembanding tidak sesuai dengan yang dicari maka akan muncul pemberitahuan kalo data yang dicari itu tida terdapat dalam indeks, not found, atau yang lainnya
Yang pertama kita akan membicarakan mengenai sequensial search. Sequensial search adalah suatu teknik pencarian data pada array satu dimensi yang dilakukan dengan menelusuri semua elemen-elemen array dari awal sampai akhir. Dimana data yang tersimpan tidak perlu diurutkan terlebih dahulu
Teknik ini memiliki kelebihan dalam pengimplementasiannya dalam code program dan kemungkinan yang terbaik jika data yang dicari terdapat di indeks-indeks awal maka data tersebut tidak terlalu lama dicari. Kekurangannya adalah jika data yang dicari terletak dibagian indeks yang akhir maka akan memakan waktu pencarian yang semakin lama jika dibandingkan dengan yang berada di indeks awal.
Contoh :int nilai[7]={2,3,6,10,1,5,43,44}; (Ingat indeks array dalam bahasa C dimulai dengan indeks ke 0)
Jika kita ingin mencari nilai 6 dalam array tersebut, maka priosesnya adalah seperti berikut : dengan menggunakan looping
- Dimulai dari indeks ke 0, yaitu nilai 2 kemudian dicocokkan dengan nilai yang dicari, jika tidak sama maka akan mencari ke indeks selanjutnya
- Pada indeks ke 1, juga dibandingkan dengan data yang dicari, namun pada indeks ke 1 juga tidak cocok maka akan dilanjutkan ke indeks selanjutnya
- Pada indeks ke 2, ternyata data yang tersimpan ketika dicocokkan sama dengan nilai yang kita cari maka data tersebut di tampilkan dan keluar dari looping
Untuk lebih jelasnya kita implementasikan dalam program codingnya seperti berikut :
- #include <stdio.h>
- #include <conio.h>
- main(){
- int nilai[7]={2,3,6,10,1,5,43,44};
- int find,i,flag=0;
- printf("Nilai yang tersimpan adalah : \n");
- for (i=0;i<8;i++){
- printf("Data ke %d indeks ke %d adalah %d\n",i+1,i,nilai[i]);
- }
- printf("Masukkan nilai yang anda cari : ");scanf("%d",&find);
- for (i=0;i<8;i++){
- if (nilai[i]==cari){
- printf("Ketemu\n");
- printf("Data ke %d indeks ke %d adalah %d",i+1,i,nilai[i]);
- flag=1;break;
- }}
- if (flag==0)printf("Data tidak ada");
- }
Untuk download materinya silahkan klik
Password : ptik2012
Download contoh program .rar
Password MF dan .rar : imhere
Kamis, 26 Juli 2012
Array of struct : Jobsheet 1
typedef struct nama_struct{
tipe_data nama_variabel;
tipe_data nama_variabel;
....
};
Untuk mendeklarasikan sebuah struct ada beberapa cara yang sering saya gunakan adalah sebagai berikut, contoh:
- typedef struct siswa{
- int no_induk;
- char nama[30];
- }siswa;
- struct{
- int no_induk;
- char nama[30];
- }siswa;
Untuk mengakses data yang telah tersimpan dalam struct kita secara umum dapat ditulis
nama_struct.nama_field;
- #include <stdio.h>
- #include <conio.h>
- typedef struct orang{
- int umur;
- char nama[30];
- }orang;
- main(){
- printf("Masukkan nama orang : ");fflush(stdin);
- gets(orang.nama);
- printf("Berapa umurnya : ");scanf("%d",&orang.umur);
- getch();system("cls");
- printf("Nama\t: %s",orang.nama);
- printf("Umur\t: %d",orang.umur);
- return 0;
- }
Contoh program di atas merupakan program yang menggunakan sebuah struct yang memiliki field "nama" dan "umur" dan struct tersebut bernama "orang". karena hanya satu struct maka struct tersebut hanya dapat menyiman satu paket data, dimana paket data tersebut menyimpan data nama dan umur.
Setelah kita faham tentang struct kita lanjut ke modifikasi dengan array, yang kita namakan array of struct. Sehingga kita tidak hanya menyimpan satu paket data saja namun kita dapat menyimpan beberapa paket data pada struct orang lebih dari satu. karena dengan array maka data tersimpan dengan ditandai pada indeks seperti pada pembahasan array sebelumnya.
Ada beberapa cara untuk mendeklarasikan array of struct yang sering saya gunakan adalah syntaxnya seperti berikut :
- typedef struct nama_struct{
- tipe_data nama_field;
- tipe_data nama_field;
- tipe_data nama_field;
- . . .
- }nama_struct[indeks];
oke langsung saja kita keimplementasi pada programnya. Pada intinya array of struct ini sama dengan array seperti biasanya. Struct dianalogikan dengan sebuah tipe data dan diberi indeks.
Namun struktur data tipe ini memiliki kelemahan pada alokasi memori dan penghapusan data. Pengalokasian memori hanya terbatas pada banyaknya indeks yang kita definisikan pada saat pembentukan array-nya. Sedangkan untuk penghapusan tidak dapat dilakukan secara real karena masih ada alokasi memori yang sudah kita alokasikan pada saat pendeklarasian. Sehingga alokasi memori untuk array dapat dikatakan tidak dinamis. Misalnya kita mengalokasikan indeks dengan nilai 10 dan kita hanya menggunakan 5 alokasi memori, maka untuk sisanya akan mubazdir. Begitu pula pada saat kita membutuhkan lebih dari 10 alokasi memori maka alokasi memori kita kurang karena sejak awal pendeklarasian kita hanya mengalokasikan 10 tempat.
Berikut adalah contoh program sederhana untuk Array of struct :- #include <stdio.h>
- #include <conio.h>
- typedef struct orang{
- int umur;
- char nama[30];
- }orang[1000];
- main(){
- int i,awal;
- printf("Berapa data yang akan anda masukkan?");
- scanf("%d",&awal);
- for (i=0;i<awal;i++){
- system("cls");
- printf("\n\t\tData ke %d",i+1);
- printf("Masukkan nama orang : ");fflush(stdin);
- gets(orang[i].nama);
- printf("Berapa umurnya : ");scanf("%d",&orang[i].umur);
- }
- printf("\n\nTekan sembarang tombol Untuk Melihat Data anda");
- getch();system("cls");
- for (i=0;i<awal;i++){
- printf("\n\t\tData Ke %d",i+1);
- printf("Nama\t: %s",orang[i].nama);
- printf("Umur\t: %d",orang[i].umur);
- }
- return 0;
- }
- Download materi Jobsheet 1
- Download latihan 1 Jobsheet 1
- Download latihan 2 Jobsheet 1
- Password MF : imhere | Password .rar : imhere
- Download Tugas Jobsheet 1
- Password MF : imhere | Password .rar :Baca dulu