Assalamu'alaikum w.w.,
Hari selasa tanggal 17 Mei 2016perkuliahan alpro minggu ke-10 yaitu tentang : SEARCHING. Seperti pertemuan sebelumnya sebelum dosen datang maka kita sudah harus mempersiapkan/membuka : Rencana Kuliah, PPT, Diktat, E-Book.
Dosennya menjelaskan materi SEARCHING yang didalmnya terdapat Linear Search & Binary Search. Dosennya menjelaskan sesuai dengan 6 kaidah/langkah. Dosennya memberi tugas di kelas, terdapat 2 tugas diantarannya di kumpulkan pada saat perkuliahan selesai 09.00 WIB, dan setelah Solat zuhur 12.00 WIB.
Wassalamu'alaikum w.w.
Jumat, 10 Juni 2016
MENGHITUNG BILANGAN KOMPLEKS
Menghitung Bilangan Kompleks dengan C++ . bilangan kompleks adalah bilangan yang berbentuk
a + bi \,
di mana a dan b adalah bilangan riil, dan i adalah bilangan imajiner tertentu yang mempunyai sifat i 2 = −1
Analisis
Input sebuah bilangan asli.
Output menjadi bilangan kompleks.
C++
//Program operasi bilangan kompleks
#include<iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std;
struct
{
float r1;
float r2;
float i1;
float i2;
}bilangan;
int main(int argc, char** argv)
{
cout<<"\n____________________________";
cout<<"\n| OPERASI BILANGAN KOMPLEK |";
cout<<"\n____________________________\n";
cout<<"bilangan real 1 = "; cin>>bilangan.r1;
cout<<"bilangan imajiner 1 = "; cin>>bilangan.i1;
cout<<endl<<endl;
cout<<"bilangan real 2 = "; cin>>bilangan.r2;
cout<<"bilangan imajiner 2 = "; cin>>bilangan.i2;
cout<<endl<<endl;
cout<<"* PENJUMLAHAN *"<<endl;
cout<<"("<<bilangan.r1<<"+"<<bilangan.i1<<"i) "
<<" + "<<"("<<bilangan.r2<<"+"<<bilangan.i2<<"i) = "
<<bilangan.r1 + bilangan.r2 <<"+"<<bilangan.i1 + bilangan.i2<<"i"<<endl;
cout<<endl<<endl;
cout<<"* PENGURANGAN *"<<endl;
cout<<"("<<bilangan.r1<<"+"<<bilangan.i1<<"i) "
<<" - "<<"("<<bilangan.r2<<"+"<<bilangan.i2<<"i) = "
<<bilangan.r1 - bilangan.r2 <<"+"<<bilangan.i1 - bilangan.i2<<"i"<<endl;
cout<<endl<<endl;
cout<<"* PERKALIAN *"<<endl;
cout<<"("<<bilangan.r1<<"+"<<bilangan.i1<<"i) "
<<" * "<<"("<<bilangan.r2<<"+"<<bilangan.i2<<"i) = "
<<bilangan.r1*bilangan.r2<<"+"<<bilangan.r1*bilangan.i2<<"i"<<" + "
<<bilangan.r2*bilangan.i1<<"i"<<" - "<<bilangan.i1*bilangan.i2
<<" = "<<(bilangan.r1*bilangan.r2) - (bilangan.i1*bilangan.i2)<<" + "
<<(bilangan.r1*bilangan.i2) + (bilangan.r2*bilangan.i1)<<"i"<<
endl;
}
a + bi \,
di mana a dan b adalah bilangan riil, dan i adalah bilangan imajiner tertentu yang mempunyai sifat i 2 = −1
Analisis
Input sebuah bilangan asli.
Output menjadi bilangan kompleks.
C++
//Program operasi bilangan kompleks
#include<iostream>
#include <stdlib.h>
#include <conio.h>
using namespace std;
struct
{
float r1;
float r2;
float i1;
float i2;
}bilangan;
int main(int argc, char** argv)
{
cout<<"\n____________________________";
cout<<"\n| OPERASI BILANGAN KOMPLEK |";
cout<<"\n____________________________\n";
cout<<"bilangan real 1 = "; cin>>bilangan.r1;
cout<<"bilangan imajiner 1 = "; cin>>bilangan.i1;
cout<<endl<<endl;
cout<<"bilangan real 2 = "; cin>>bilangan.r2;
cout<<"bilangan imajiner 2 = "; cin>>bilangan.i2;
cout<<endl<<endl;
cout<<"* PENJUMLAHAN *"<<endl;
cout<<"("<<bilangan.r1<<"+"<<bilangan.i1<<"i) "
<<" + "<<"("<<bilangan.r2<<"+"<<bilangan.i2<<"i) = "
<<bilangan.r1 + bilangan.r2 <<"+"<<bilangan.i1 + bilangan.i2<<"i"<<endl;
cout<<endl<<endl;
cout<<"* PENGURANGAN *"<<endl;
cout<<"("<<bilangan.r1<<"+"<<bilangan.i1<<"i) "
<<" - "<<"("<<bilangan.r2<<"+"<<bilangan.i2<<"i) = "
<<bilangan.r1 - bilangan.r2 <<"+"<<bilangan.i1 - bilangan.i2<<"i"<<endl;
cout<<endl<<endl;
cout<<"* PERKALIAN *"<<endl;
cout<<"("<<bilangan.r1<<"+"<<bilangan.i1<<"i) "
<<" * "<<"("<<bilangan.r2<<"+"<<bilangan.i2<<"i) = "
<<bilangan.r1*bilangan.r2<<"+"<<bilangan.r1*bilangan.i2<<"i"<<" + "
<<bilangan.r2*bilangan.i1<<"i"<<" - "<<bilangan.i1*bilangan.i2
<<" = "<<(bilangan.r1*bilangan.r2) - (bilangan.i1*bilangan.i2)<<" + "
<<(bilangan.r1*bilangan.i2) + (bilangan.r2*bilangan.i1)<<"i"<<
endl;
}
MENGHITUNG IPK MAHASISWA C++
Menghitung IPK menggunakan program C++ .
Analisis
1. Input yang akan digunakan disini adalah , menginputkan jumlah SKS dan Input nilai dalam bentuk huruf A-E.
2. Outpunya akan menghasil nilai IPK berdasar SKS dan Nilai huruf yang telah di inputkan.
algoritma
Procedure IPK (input/output matkul[50] ::char , jmk :: integer, bsks::integer)
Deklarasi
i -> integer
bnilai[100]->integer
mutu[100]->integer
Deskripsi
for(i=1;i<=jmk;i++):
read(matkul[i]);
if (matkul[i]=='A') then bnilai[i]=4;
else if (matkul[i]=='B') then bnilai[i]=3;
else if (matkul[i]=='C') then bnilai[i]=2;
else if (matkul[i]=='D') then bnilai[i]=1;
else if (matkul[i]=='E') then bnilai[i]=0;
endif
read(bsks[i]);
if(bsks[i]>=1 && bsks[i]<=4) then bsks[i]= bsks[i];
endif
mutu[i]=bnilai[i]*bsks[i];
endfor
float tmutu=0, tbobot=0;
for(z=1; z<=jmk; z++):
tmutu+=mutu[z];
tbobot+=bsks[z];
endfor
float ipk;
ipk=tmutu/tbobot;
write(ipk).
c++
#include<iostream>
#include<conio.h>
#include<ctype.h>
#include<stdlib.h>
#include<stdio.h>
#include<windows.h>
using namespace std;
typedef struct{
char npm[15];
char nama[50];
char fakultas[25];
char prodi[25];
}mahasiswa;
class matakuliah {
private:
int bsks[170];
int bnilai[170];
int total[170];
int mutu[170];
int jmk,i;
char matkul[170];
char *cbsks[170];
char sem;
public:
matakuliah();
void input();
void output();
};
matakuliah::matakuliah(){
mahasiswa mhs;
cout<<"=== Hitung IPK Mahasiswa===\n\n";
cout<<"Masukkan Nama: "; cin>>mhs.nama;
cout<<"Masukkan NIM: "; cin>>mhs.npm;
cout<<"Masukkan Fakultas: "; cin>>mhs.fakultas;
cout<<"Masukkan Program Studi: "; cin>>mhs.prodi;
cout<<"Anda Sekarang Semester: "; cin>>sem;
}
void matakuliah::input(){
int jmk, i, z;
cout<<"Masukkan Jumlah Mata Kuliah: "; cin>>jmk;
cout<<"===================================\n\n";
cout<<"Masukkan Nilai Anda [A..E]\n";
for(i=1; i<=jmk; i++){
kondisi:
cout<<"Mata kuliah ke "<<i<<" : "; cin>>matkul[i];
if(matkul[i]=='a' || matkul[i]=='A'){
bnilai[i]=4;
}
else if(matkul[i]=='b' || matkul[i]=='B'){
bnilai[i]=3;
}
else if(matkul[i]=='c' || matkul[i]=='C'){
bnilai[i]=2;
}
else if(matkul[i]=='d' || matkul[i]=='D'){
bnilai[i]=1;
}
else if(matkul[i]=='e' || matkul[i]=='E'){
bnilai[i]=0;
}
else{
cout<<"Masukkan HANYA A,B,C,D,E!!\n";
goto kondisi;
}
kond:
cout<<"Bobot SKS [1..4]: "; cin>>bsks[i];
if(bsks[i]>=1 && bsks[i]<=4){
bsks[i]=bsks[i];
}
else{
cout<<"Masukkan HANYA Angka 1-4!!\n";
goto kond;
}
mutu[i]=bnilai[i]*bsks[i];
}
cout<<"\n\nHASIL\n";
}
void matakuliah::output(){
mahasiswa mhs;
float tmutu=0, tbobot=0;
for(int z=1; z<=jmk; z++){
tmutu+=mutu[z];
tbobot+=bsks[z];
}
float ipk;
ipk=tmutu/tbobot;
cout<<"========================\n";
cout<<"\nNIM: "<<mhs.npm;
cout<<"\nSemester: "<<sem;
cout<<"\nJumlah Mata Kuliah: "<<jmk;
cout<<"\nTotal Mutu: "<<tmutu;
cout<<"\nTotal SKS: "<<tbobot;
cout<<"\nTotal IPK: "<<ipk;
cout<<"\n\n========================";
}
int main(){
matakuliah matkul;
matkul.input();
matkul.output();
getch();
return 0;
}
Analisis
1. Input yang akan digunakan disini adalah , menginputkan jumlah SKS dan Input nilai dalam bentuk huruf A-E.
2. Outpunya akan menghasil nilai IPK berdasar SKS dan Nilai huruf yang telah di inputkan.
algoritma
Procedure IPK (input/output matkul[50] ::char , jmk :: integer, bsks::integer)
Deklarasi
i -> integer
bnilai[100]->integer
mutu[100]->integer
Deskripsi
for(i=1;i<=jmk;i++):
read(matkul[i]);
if (matkul[i]=='A') then bnilai[i]=4;
else if (matkul[i]=='B') then bnilai[i]=3;
else if (matkul[i]=='C') then bnilai[i]=2;
else if (matkul[i]=='D') then bnilai[i]=1;
else if (matkul[i]=='E') then bnilai[i]=0;
endif
read(bsks[i]);
if(bsks[i]>=1 && bsks[i]<=4) then bsks[i]= bsks[i];
endif
mutu[i]=bnilai[i]*bsks[i];
endfor
float tmutu=0, tbobot=0;
for(z=1; z<=jmk; z++):
tmutu+=mutu[z];
tbobot+=bsks[z];
endfor
float ipk;
ipk=tmutu/tbobot;
write(ipk).
c++
#include<iostream>
#include<conio.h>
#include<ctype.h>
#include<stdlib.h>
#include<stdio.h>
#include<windows.h>
using namespace std;
typedef struct{
char npm[15];
char nama[50];
char fakultas[25];
char prodi[25];
}mahasiswa;
class matakuliah {
private:
int bsks[170];
int bnilai[170];
int total[170];
int mutu[170];
int jmk,i;
char matkul[170];
char *cbsks[170];
char sem;
public:
matakuliah();
void input();
void output();
};
matakuliah::matakuliah(){
mahasiswa mhs;
cout<<"=== Hitung IPK Mahasiswa===\n\n";
cout<<"Masukkan Nama: "; cin>>mhs.nama;
cout<<"Masukkan NIM: "; cin>>mhs.npm;
cout<<"Masukkan Fakultas: "; cin>>mhs.fakultas;
cout<<"Masukkan Program Studi: "; cin>>mhs.prodi;
cout<<"Anda Sekarang Semester: "; cin>>sem;
}
void matakuliah::input(){
int jmk, i, z;
cout<<"Masukkan Jumlah Mata Kuliah: "; cin>>jmk;
cout<<"===================================\n\n";
cout<<"Masukkan Nilai Anda [A..E]\n";
for(i=1; i<=jmk; i++){
kondisi:
cout<<"Mata kuliah ke "<<i<<" : "; cin>>matkul[i];
if(matkul[i]=='a' || matkul[i]=='A'){
bnilai[i]=4;
}
else if(matkul[i]=='b' || matkul[i]=='B'){
bnilai[i]=3;
}
else if(matkul[i]=='c' || matkul[i]=='C'){
bnilai[i]=2;
}
else if(matkul[i]=='d' || matkul[i]=='D'){
bnilai[i]=1;
}
else if(matkul[i]=='e' || matkul[i]=='E'){
bnilai[i]=0;
}
else{
cout<<"Masukkan HANYA A,B,C,D,E!!\n";
goto kondisi;
}
kond:
cout<<"Bobot SKS [1..4]: "; cin>>bsks[i];
if(bsks[i]>=1 && bsks[i]<=4){
bsks[i]=bsks[i];
}
else{
cout<<"Masukkan HANYA Angka 1-4!!\n";
goto kond;
}
mutu[i]=bnilai[i]*bsks[i];
}
cout<<"\n\nHASIL\n";
}
void matakuliah::output(){
mahasiswa mhs;
float tmutu=0, tbobot=0;
for(int z=1; z<=jmk; z++){
tmutu+=mutu[z];
tbobot+=bsks[z];
}
float ipk;
ipk=tmutu/tbobot;
cout<<"========================\n";
cout<<"\nNIM: "<<mhs.npm;
cout<<"\nSemester: "<<sem;
cout<<"\nJumlah Mata Kuliah: "<<jmk;
cout<<"\nTotal Mutu: "<<tmutu;
cout<<"\nTotal SKS: "<<tbobot;
cout<<"\nTotal IPK: "<<ipk;
cout<<"\n\n========================";
}
int main(){
matakuliah matkul;
matkul.input();
matkul.output();
getch();
return 0;
}
MENGURUTKAN DATA DENGAN BUBBLE SORT
Masalah tentang mengurutkan angka dengan metode bubble sort. Metode bubble sort ini dilakukan
dengan cara melakukan perbandingan data pertama dengan data setelah nya. Jika data yang di sebelah kiri lebih besar maka data tersebut akan bertukaran tempat yang angka besar berpindah kekanan.
Analisis
misal diberikan input {9,7,4,1} akan menjadi {1,4,7,9}.
Proses yang terjadi:
Tahap ke-1: 7, 9, 4, 1 :: 7, 4, 9, 1 ::7, 4, 1, 9 (ada 3 pertukaran)
Tahap ke-2: 4, 7, 1, 9 :: 4, 1, 7, 9 (ada 2 pertukaran)
Tahap ke-3: 1, 4, 7, 9 (ada 1 pertukaran -> proses selesai
Algoritma
Procedure bubble(input a[0],t,n : integer)
Deskripsi
for(int i=0;i<n;i++)
for(int j=i;j<n;j++)
if(a[i]>a[j])
t=a[i];
a[i]=a[j];
a[j]=t;
endif
endfor
endfor
c++
#include <iostream>
#include <cstdlib>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void output(int a[0],int t,int n){
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
cout<<"\nSesudah Di Urutkan"<<endl;
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}cout<<endl;
}
int main(int argc, char** argv) {
int n,t;
cout<<"Masukkan Batas : ";
cin>>n;
int array[n];
cout<<"Masukkan data : ";
for (int j=0;j<n;j++){
cout<<"Data Ke-"<<j+1<<" = ";
cin>>array[j];
}
cout<<endl<<endl;
cout<<"sebelum di urutkan"<<endl;
for (int j=0;j<n;j++){
cout<<array[j]<<" ";
}
output(array,t,n);
system("pause");
return 0;
}
dengan cara melakukan perbandingan data pertama dengan data setelah nya. Jika data yang di sebelah kiri lebih besar maka data tersebut akan bertukaran tempat yang angka besar berpindah kekanan.
Analisis
misal diberikan input {9,7,4,1} akan menjadi {1,4,7,9}.
Proses yang terjadi:
Tahap ke-1: 7, 9, 4, 1 :: 7, 4, 9, 1 ::7, 4, 1, 9 (ada 3 pertukaran)
Tahap ke-2: 4, 7, 1, 9 :: 4, 1, 7, 9 (ada 2 pertukaran)
Tahap ke-3: 1, 4, 7, 9 (ada 1 pertukaran -> proses selesai
Algoritma
Procedure bubble(input a[0],t,n : integer)
Deskripsi
for(int i=0;i<n;i++)
for(int j=i;j<n;j++)
if(a[i]>a[j])
t=a[i];
a[i]=a[j];
a[j]=t;
endif
endfor
endfor
c++
#include <iostream>
#include <cstdlib>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void output(int a[0],int t,int n){
for(int i=0;i<n;i++){
for(int j=i;j<n;j++){
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
cout<<"\nSesudah Di Urutkan"<<endl;
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}cout<<endl;
}
int main(int argc, char** argv) {
int n,t;
cout<<"Masukkan Batas : ";
cin>>n;
int array[n];
cout<<"Masukkan data : ";
for (int j=0;j<n;j++){
cout<<"Data Ke-"<<j+1<<" = ";
cin>>array[j];
}
cout<<endl<<endl;
cout<<"sebelum di urutkan"<<endl;
for (int j=0;j<n;j++){
cout<<array[j]<<" ";
}
output(array,t,n);
system("pause");
return 0;
}
PERKALIAN MATRIKS DENGAN VEKTOR
Masalah dalam Perkalian Matriks (dengan Ordo di input dari pengguna) dengan Sebuah Vektor.
Didalam perkalian Matriks dengan Vektor ini sebenarnya sama saja dengan mengalikan Dua Buah Matriks. Jumlah kolom dari Matriks harus sama dengan jumlah Baris didalam Vektor agar dapat dilakukan perkalian.
Analisis
1. Input nya adalah Matriks dengan Ordo 2x3 akan dikali dengan Vektor 3x1.
2. Lakukan proses perkalian dengan mengalikan baris dalam Matriks dengan Angka di kolom vektor. Misal = (a11*b11)+(a12*b12)+(a13*b13) dan (a21*b11)+(a22*b12)+(a23*b13)
3. Maka akan menghasilkan matriks baru dengan ukuran 2x1. Sebut saja matriks C, inilah yang akan di outputkan nanti.
Algoritma
Procedure kali( input/output matriks[ ][ ],vektor[ ],hasil[ ]:: integer)::integer
Deklarasi
i,k :: integer
Deskripsi
for(i=0;i<a;i++)
for(k=0;k<b;k++)
hasil[i]=hasil[i]+(matriks[i][k])*(vektor[k]);
endfor endfor
for(int i=0;i<a;i++)
read(hasil[i]);
endfor
Pengujian dengan data
Hasil dari perkalian diatas:
Jadi :
C11 = (a11*b11)+(a12*b12)+(a13*b13) dan
C21 = (a21*b11)+(a22*b12)+(a23*b13)
C11 = (
C11 = (3x3) + (2x1) + (1x0) dan
C21= (1x3) + (2x1) + (1x0)
Hasil Akhirnya :
11
5
c++
#include <iostream>
#include <iomanip>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
int a,b;
cout<<"Masukkan Baris : ";
cin>>a;
cout<<"Masukkan Kolom : ";
cin>>b;
int matriks[a][b],vektor[b],hasil[10];
for(int i=0;i<a;i++){
for(int j=0;j<b;j++){
cout<<"Masukkan Data Matriks ke-["<<i+1<<"]["<<j+1<<"] : ";
cin>>matriks[i][j];
}
}
for(int i=0;i<b;i++){
cout<<"Masukkan Data Vektor ke-["<<i+1<<"] : ";
cin>>vektor[i];
}
cout<<"MATRIK A "<<endl;
for(int i=0;i<a;i++){
cout<<setw(5);
for(int j=0;j<b;j++){
cout<<matriks[i][j]<<setw(5);
}cout<<endl;
}
cout<<endl;
for(int i=0;i<b;i++){
cout<<setw(2)<<vektor[i]<<endl;
}
for(int i=0;i<2;i++){
hasil[i]=0;
}
cout<<"\nHasil Kali nya = "<<endl;
for(int i=0;i<a;i++){
for(int k=0;k<b;k++)
hasil[i]=hasil[i]+(matriks[i][k])*(vektor[k]);
}
for(int i=0;i<a;i++){
cout<<hasil[i]<<endl;
}
return 0;
}
Didalam perkalian Matriks dengan Vektor ini sebenarnya sama saja dengan mengalikan Dua Buah Matriks. Jumlah kolom dari Matriks harus sama dengan jumlah Baris didalam Vektor agar dapat dilakukan perkalian.
Analisis
1. Input nya adalah Matriks dengan Ordo 2x3 akan dikali dengan Vektor 3x1.
2. Lakukan proses perkalian dengan mengalikan baris dalam Matriks dengan Angka di kolom vektor. Misal = (a11*b11)+(a12*b12)+(a13*b13) dan (a21*b11)+(a22*b12)+(a23*b13)
3. Maka akan menghasilkan matriks baru dengan ukuran 2x1. Sebut saja matriks C, inilah yang akan di outputkan nanti.
Algoritma
Procedure kali( input/output matriks[ ][ ],vektor[ ],hasil[ ]:: integer)::integer
Deklarasi
i,k :: integer
Deskripsi
for(i=0;i<a;i++)
for(k=0;k<b;k++)
hasil[i]=hasil[i]+(matriks[i][k])*(vektor[k]);
endfor endfor
for(int i=0;i<a;i++)
read(hasil[i]);
endfor
Pengujian dengan data
Hasil dari perkalian diatas:
Jadi :
C11 = (a11*b11)+(a12*b12)+(a13*b13) dan
C21 = (a21*b11)+(a22*b12)+(a23*b13)
C11 = (
C11 = (3x3) + (2x1) + (1x0) dan
C21= (1x3) + (2x1) + (1x0)
Hasil Akhirnya :
11
5
c++
#include <iostream>
#include <iomanip>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
int a,b;
cout<<"Masukkan Baris : ";
cin>>a;
cout<<"Masukkan Kolom : ";
cin>>b;
int matriks[a][b],vektor[b],hasil[10];
for(int i=0;i<a;i++){
for(int j=0;j<b;j++){
cout<<"Masukkan Data Matriks ke-["<<i+1<<"]["<<j+1<<"] : ";
cin>>matriks[i][j];
}
}
for(int i=0;i<b;i++){
cout<<"Masukkan Data Vektor ke-["<<i+1<<"] : ";
cin>>vektor[i];
}
cout<<"MATRIK A "<<endl;
for(int i=0;i<a;i++){
cout<<setw(5);
for(int j=0;j<b;j++){
cout<<matriks[i][j]<<setw(5);
}cout<<endl;
}
cout<<endl;
for(int i=0;i<b;i++){
cout<<setw(2)<<vektor[i]<<endl;
}
for(int i=0;i<2;i++){
hasil[i]=0;
}
cout<<"\nHasil Kali nya = "<<endl;
for(int i=0;i<a;i++){
for(int k=0;k<b;k++)
hasil[i]=hasil[i]+(matriks[i][k])*(vektor[k]);
}
for(int i=0;i<a;i++){
cout<<hasil[i]<<endl;
}
return 0;
}
Langganan:
Postingan (Atom)