Menghitung IPK
1. Algoritma
2. Struct
struct{
char makul[10];
float SKS;
float nilai_akhir;
float scor;
float NAS;
}nilai[10];
struct{
float SKS;
float NAS;
float IP;
}mhs;
3. Program C++
#include <iostream>
#include <string.h>
#include <windows.h>
using namespace std;
struct{
char makul[10];
float SKS;
float nilai_akhir;
float scor;
float NAS;
}nilai[10];
struct{
float SKS;
float NAS;
float IP;
}mhs;
main()
{
int makul, bykSks=0;
float nil=0.00, n_Total;
cout << "Jumlah Mata Kuliah : ";
cin >> makul;
string nilai[makul];
int sks[makul];
for(int h=0; h<makul; h++)
{
cin.ignore();
cout <<h+1<< ". Nilai Huruf : ";
cin >> nilai[h];
cout<<"\t Banyak SKS : ";
cin >> sks[h];
bykSks += sks[h];
}
cout<<"\n"<<endl;
for(int h=0; h<makul; h++)
{
cout<<h+1<<". "<<nilai[h]<<" \t"<<sks[h]<<" SKS"<<endl;
}
cout<<endl;
for(int h=0; h<makul; h++)
{
if(nilai[h] == "A" || nilai[h] == "a")
nil += (4*sks[h]);
else if(nilai[h] == "B+" || nilai[h] == "b+")
nil += (3.5*sks[h]);
else if(nilai[h] == "B" || nilai[h] == "b")
nil += (3*sks[h]);
else if(nilai[h] == "C+" || nilai[h] == "c+")
nil += (2.5*sks[h]);
else if(nilai[h] == "C" || nilai[h] == "c")
nil += (2*sks[h]);
else if(nilai[h] == "D" || nilai[h] == "d")
nil += (1*sks[h]);
else
nil += 0;
}
n_Total = nil/bykSks;
cout << "IPK Semester ini : " << n_Total <<endl;
system("pause");
}
- Biodata
- Lain Lain
- Portofolio ALPRO
- Tugas Pribadi
- Tugas Kelompok
- Refleksi
- DIKTAT
- Codingan Program
- Praktikum
Selasa, 07 Juni 2016
Jumat, 03 Juni 2016
ALPRO Pertemuan 11
Pagi ini yang kami bahas yaitu mngenai array 2 dimensi.
Dosen menjelaskan tahap demi tahap bagaimana array 2 dimensi dapat di lakukan sebelum membuat program , mahasiswa di anjurkan untuk selalu mengikuti apa yang beliau perintahkan dan contohkan.
Kemudian kami mendapat tugas untuk membuat perkalian matrik dengan vektor 2x3 dengan metode 6 langkah
Dosen menjelaskan tahap demi tahap bagaimana array 2 dimensi dapat di lakukan sebelum membuat program , mahasiswa di anjurkan untuk selalu mengikuti apa yang beliau perintahkan dan contohkan.
Kemudian kami mendapat tugas untuk membuat perkalian matrik dengan vektor 2x3 dengan metode 6 langkah
ALPRO Pertemuan ke 10
Pada
pertemuan ke-10 masih membahahas mengenai macam-macam sorting dan
algoritma penyelesaiannya. Dan tambahannya yaitu membahas mengenai
searching. Sorting dan searching adalah sesuatu yang berkaitan, dimana
sorting di gunakan untuk mengurutkan data sedangkan searching di gunakan
untuk mencari data. Jadi jika data yang ada sudah urut itu akan
mempermudah dan menghemat waktu dalam pencarian data.
BAB X
Pointer, Pengenalan Struktur Data.
Inilah Program & Outputnya :
#include <iostream>
#include <conio.h>
#include <windows.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class Mhs{
public:
void Buat_berikut_list();
char Nama[20];
char Nim[10];
int Nilai;
Mhs *berikut;
};
void Mhs::Buat_berikut_list(){
Mhs *Ptr_Kepala = NULL;
Mhs *Ptr_Baru;
char lagi;
do{
Ptr_Baru= new Mhs;
cout<<"\t\t\tREKAP NILAI MAHASISWA "<<endl<<endl;
cout<<"Nama Mahasiswa : ";
cin>>Ptr_Baru->Nama;
cout<<"Nim Mahasiswa : ";
cin>>Ptr_Baru->Nim;
cout<<"Nilai Mahasiswa : ";
cin>>Ptr_Baru->Nilai;
Ptr_Baru->berikut=Ptr_Kepala;
Ptr_Kepala=Ptr_Baru;
cout<<endl;
cout<<"Tambah (Y/T) : ";
cin>>lagi;
} while (lagi=='Y' || lagi=='y');
system("cls");
cout<<"\nAnda telah memasukkan data : "<<endl<<endl;
Mhs *cetak= Ptr_Kepala;
cout<<"Nama \t\t Nim \t\tNilai Angka \t\tNilai Huruf"<<endl;
while (cetak !=NULL){
cout<<cetak->Nama<<" \t\t"<<cetak->Nim<<" \t\t"<<cetak->Nilai<<" \t\t";
if (cetak->Nilai>=0&&cetak->Nilai<20)
cout<<"E"<<endl;
else if(cetak->Nilai>=20&&cetak->Nilai<40)
cout<<"D"<<endl;
else if(cetak->Nilai>=40&&cetak->Nilai<60)
cout<<"C"<<endl;
else if(cetak->Nilai>=60&&cetak->Nilai<80)
cout<<"B"<<endl;
else
cout<<"A"<<endl;
cetak=cetak->berikut;
}
}
int main(int argc, char** argv) {
Mhs *simpul;
simpul->Buat_berikut_list();
getch();
}
#include <iostream>
#include <conio.h>
#include <windows.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class Mhs{
public:
void Buat_berikut_list();
char Nama[20];
char Nim[10];
int Nilai;
Mhs *berikut;
};
void Mhs::Buat_berikut_list(){
Mhs *Ptr_Kepala = NULL;
Mhs *Ptr_Baru;
char lagi;
do{
Ptr_Baru= new Mhs;
cout<<"\t\t\tREKAP NILAI MAHASISWA "<<endl<<endl;
cout<<"Nama Mahasiswa : ";
cin>>Ptr_Baru->Nama;
cout<<"Nim Mahasiswa : ";
cin>>Ptr_Baru->Nim;
cout<<"Nilai Mahasiswa : ";
cin>>Ptr_Baru->Nilai;
Ptr_Baru->berikut=Ptr_Kepala;
Ptr_Kepala=Ptr_Baru;
cout<<endl;
cout<<"Tambah (Y/T) : ";
cin>>lagi;
} while (lagi=='Y' || lagi=='y');
system("cls");
cout<<"\nAnda telah memasukkan data : "<<endl<<endl;
Mhs *cetak= Ptr_Kepala;
cout<<"Nama \t\t Nim \t\tNilai Angka \t\tNilai Huruf"<<endl;
while (cetak !=NULL){
cout<<cetak->Nama<<" \t\t"<<cetak->Nim<<" \t\t"<<cetak->Nilai<<" \t\t";
if (cetak->Nilai>=0&&cetak->Nilai<20)
cout<<"E"<<endl;
else if(cetak->Nilai>=20&&cetak->Nilai<40)
cout<<"D"<<endl;
else if(cetak->Nilai>=40&&cetak->Nilai<60)
cout<<"C"<<endl;
else if(cetak->Nilai>=60&&cetak->Nilai<80)
cout<<"B"<<endl;
else
cout<<"A"<<endl;
cetak=cetak->berikut;
}
}
int main(int argc, char** argv) {
Mhs *simpul;
simpul->Buat_berikut_list();
getch();
}
Selasa, 24 Mei 2016
Perkalian Matrik dengan Vektor
1.
Identifikasi Masalah
Cara Mengalikan matrik 3x2 dengan vektor.
2. Menentukan
input dan output
input : Matrik = | 2 1 4 |
| 1 4 2 |
Vektor = | 1 |
| 2 |
| 4 |
output : hasil = | 20 |
| 17 |
3.
Algoritma
Procedur kali matrik (input/output i,j,matrik vektor
Deskripsi :
for i<- 1 to 2 do
for j<- 1 to 3 do
([i,j]=(i,j)+a[i,j]*b[i,j])
end for
end for
end for
4.
Mengimplementasikan dengan c++
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void kali(int matrik[2][3],int vektor[3],int hasil[2]){
cout<<"matrik : \n";
for(int i=0;i<2;i++){
for(int j=0;j<3;j++)
hasil[i]=hasil[i]+(matrik[i][j]*vektor[j]);
}
}
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[]){
cout<<"vektor : \n";
for(int i=0;i<3;i++){
cout<<vektor[i]<<endl;
}
}
void cetak(int hasil[]){
cout<<"hasil trakhir : \n";
for(int i=0;i<2;i++){
cout<<hasil[i]<<endl;
}
}
int main(int argc, char** argv) {
int matrik[2][3]={2,1,4,1,4,2}, vektor[3]={1,2,4},hasil[2]={0};
kali(matrik,vektor,hasil);
cetakm(matrik);
cetakv(vektor);
cetak(hasil);
return 0;
}
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void kali(int matrik[2][3],int vektor[3],int hasil[2]){
cout<<"matrik : \n";
for(int i=0;i<2;i++){
for(int j=0;j<3;j++)
hasil[i]=hasil[i]+(matrik[i][j]*vektor[j]);
}
}
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[]){
cout<<"vektor : \n";
for(int i=0;i<3;i++){
cout<<vektor[i]<<endl;
}
}
void cetak(int hasil[]){
cout<<"hasil trakhir : \n";
for(int i=0;i<2;i++){
cout<<hasil[i]<<endl;
}
}
int main(int argc, char** argv) {
int matrik[2][3]={2,1,4,1,4,2}, vektor[3]={1,2,4},hasil[2]={0};
kali(matrik,vektor,hasil);
cetakm(matrik);
cetakv(vektor);
cetak(hasil);
return 0;
}
5. Output
6. Uji
coba dengan data
Matrik
A = | 2 1 4 |
| 1 4 2 |
Vektor
B = | 1 |
| 2 |
| 4 |
Perkalian
C = |A11.B11+A12.B21+A13.B13|
|A21.B11+A22.B21+A23.B31|
= | 1x1 + 3x2 + 3x3 |
| 2x1 + 3x2 + 4x3 |
Hasil
| 20 |
| 17 |
Jumat, 13 Mei 2016
Sorting (Bubble Sort)
Diberi nama "Bubble" karena proses pengurutan secara berangsur-angsur bergera/berpindah ke posisi yang tepat, bila akan di urutkan nilai yang besar yang akan naik sementara nilai yang kecil
turun. Setiap data (misalnya data pertama) akan di bandingkan dengan data yang
ada di sebelahnya (dari data kedua sampai selesai).
Algoritma :
Deklarasi :
Deskripsi :
Pada materi Insertion Sort bisa dilihat di blog teman kelompok saya pada Link Delav
Pada materi Selection Sort bisa dilihat di blog teman kelompok saya pada
Algoritma :
Procedure
Bubble_Sort (input/output
x : larik, input n : byte)
Deklarasi :
larik = array [1..100] of integer
i, a : byte
k : larik
j, bantu : integer
for i <-- 1
to n-1 do
for j <-- i+1
to n do
if x[i] > x[j] then
tukar(x[i], x[j])
endif
endfor
endfor
Flowchat menggunakan aplkasi Raptor :
Outputnya :
Program menggunakan Dev 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 baca_data(int A[], int n) {
int i;
for (i = 0; i < n; i++){
cout<<"Data ke-" <<i+1<< " : ";
cin>>A[i];
}
}
void cetak_data(const int A[], int n) {
int i;
for (i = 0; i < n; i++)
cout<<A[i]<< " ";
cout<<"\n";
}
void tukar (int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void buble_sort (int x[], int n){
int i, j;
for (i = 0; i<n-1; i++)
for (j = i+1; j<n; j++)
if (x[i] > x[j]) tukar(&x[i], &x[j]);
}
int main(int argc, char** argv) {
int data[10], n;
cout<<"Banyak data : ";
cin>>n;
baca_data(data,n);
cetak_data(data,n);
buble_sort(data,n);
cetak_data(data,n);
return 0;
}
#include <cstdlib>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void baca_data(int A[], int n) {
int i;
for (i = 0; i < n; i++){
cout<<"Data ke-" <<i+1<< " : ";
cin>>A[i];
}
}
void cetak_data(const int A[], int n) {
int i;
for (i = 0; i < n; i++)
cout<<A[i]<< " ";
cout<<"\n";
}
void tukar (int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void buble_sort (int x[], int n){
int i, j;
for (i = 0; i<n-1; i++)
for (j = i+1; j<n; j++)
if (x[i] > x[j]) tukar(&x[i], &x[j]);
}
int main(int argc, char** argv) {
int data[10], n;
cout<<"Banyak data : ";
cin>>n;
baca_data(data,n);
cetak_data(data,n);
buble_sort(data,n);
cetak_data(data,n);
return 0;
}
Outputnya :
Pada materi Insertion Sort bisa dilihat di blog teman kelompok saya pada Link Delav
Pada materi Selection Sort bisa dilihat di blog teman kelompok saya pada
Kasus 8.2 : Pencarian Biner (Binary Search)
Algoritma :
function pencarianBiner(input
aray : larik; kunci, low, high : integer) : integer
Deklarasi
ketemu : boolean
i, middle : integer
Deskripsi
ketemu <-- false
while (low <= high) and (not ketemu)
do
middle <-- (low+high)
div 2
if (kunci = aray[middle]) then ketemu <-- true { data pencarian = data di tengah }
else if (kunci < aray[middle]) then high <-- middle – 1 {data
akan dicari lagi di sebelah kiri}
else low <-- middle
+ 1 {data akan dicari lagi di sebelah kanan}
endif
endwhile
if ketemu then pencarianBiner := middle
else pencarianBiner := -1;
endif
Dan yang ini Gambar Program C++ yang Menggunakan
Aplikasi Dev C++ :
#include <iostream>
#define UKURAN 15
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void cetakHeader(void){
int i;
cout<<"\nSubscript : \n";
for (i=0;i<=UKURAN-1;i++) cout<<i<<" ";
cout<<"\n";
for (i=1; i <= 4*UKURAN; i++) cout<<"-";
cout<<"\n";
}
void cetakBaris(int b[], int low, int mid, int high){
int i;
for (i=0; i<=UKURAN-1; i++)
if (i<low || i>high) cout<< " ";
else if (i==mid) cout<< "*" <<b[i];
else cout<<b[i] << " ";
cout<<"\n";
}
int pencarianBiner(int b[], int kunciPencarian, int low, int high){
int i, middle;
while (low <= high) {
middle = (low+high) / 2;
cetakBaris(b, low, middle, high);
if (kunciPencarian == b[middle])
return middle;
else if (kunciPencarian < b[middle])
high = middle - 1;
else low = middle + 1;
}
return -1;
}
int main(int argc, char** argv) {
int a[UKURAN], i, kunci, hasil;
for (i=0; i<=UKURAN-1; i++) a[i] = 2*i;
cout<<"Masukkan bilangan antara 0-28 : ";
cin>>kunci;
cetakHeader();
hasil=pencarianBiner(a,kunci,0,UKURAN-1);
if (hasil != -1) cout<<kunci<<" ditemukan pada posisi : "<< hasil;
else
cout<<kunci<<" tidak ditemukan";
return 0;
}
#include <iostream>
#define UKURAN 15
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
void cetakHeader(void){
int i;
cout<<"\nSubscript : \n";
for (i=0;i<=UKURAN-1;i++) cout<<i<<" ";
cout<<"\n";
for (i=1; i <= 4*UKURAN; i++) cout<<"-";
cout<<"\n";
}
void cetakBaris(int b[], int low, int mid, int high){
int i;
for (i=0; i<=UKURAN-1; i++)
if (i<low || i>high) cout<< " ";
else if (i==mid) cout<< "*" <<b[i];
else cout<<b[i] << " ";
cout<<"\n";
}
int pencarianBiner(int b[], int kunciPencarian, int low, int high){
int i, middle;
while (low <= high) {
middle = (low+high) / 2;
cetakBaris(b, low, middle, high);
if (kunciPencarian == b[middle])
return middle;
else if (kunciPencarian < b[middle])
high = middle - 1;
else low = middle + 1;
}
return -1;
}
int main(int argc, char** argv) {
int a[UKURAN], i, kunci, hasil;
for (i=0; i<=UKURAN-1; i++) a[i] = 2*i;
cout<<"Masukkan bilangan antara 0-28 : ";
cin>>kunci;
cetakHeader();
hasil=pencarianBiner(a,kunci,0,UKURAN-1);
if (hasil != -1) cout<<kunci<<" ditemukan pada posisi : "<< hasil;
else
cout<<kunci<<" tidak ditemukan";
return 0;
}
Kasus 8.1 : Pencarian Linear (Linear Search)
Algoritma :
Dev c++ :
DeklarasiRaptor :
ketemu : boolean
i, n : integer
Deskripsi
ketemu <-- false;
n <-- 1
while ((n < ukuran) and (not ketemu)) do
if (aray[n] = kunci) then
ketemu <-- true { data ketemu }
i <-- n { pada posisi ke-i }
endif
else n <-- n+1 { cek data berikutnya }
endwhile
if ketemu then pencarianLinier <-- i { data ketemu pada posisi ke-i }
else pencarianLinier <-- -1 { data tidak ketemu }
endif
end
Dev c++ :
ALPRO Pertemuan ke 9
Apa kabar ALPRO ? masih sehatkah ?
Seperti biasa dosen meminta kita untuk membuka Rencana Kuliah, PPT, Diktat, E-Book. Dosennya meminta kita untuk membaca di Diktat tentang SORTING. Karena ada permasalahan yang bikin bapaknya gak enak hati jadi perkuliahan dibubarkan dan diganti pada malam harinya.
Dosennya langsung mulai perkuliahan dengan membahas tentang Sorting yang terdapat 3 Metode yaitu : Bubble Sort, Selection Sort, dan Insertion Sort. Dan seperti byasa tiada hari tanpa tugas, kita pun diberi tugas seperti kemarin dan di upload di blog masing-masing.
yah seperti itu kira-kira gambaran pertemuan ke 9 kami, walaupun saya kurang paham saya mencoba memahami dan bertanya keteman yang lain. sampai ketemu alpro selasa depan...
Seperti biasa dosen meminta kita untuk membuka Rencana Kuliah, PPT, Diktat, E-Book. Dosennya meminta kita untuk membaca di Diktat tentang SORTING. Karena ada permasalahan yang bikin bapaknya gak enak hati jadi perkuliahan dibubarkan dan diganti pada malam harinya.
Dosennya langsung mulai perkuliahan dengan membahas tentang Sorting yang terdapat 3 Metode yaitu : Bubble Sort, Selection Sort, dan Insertion Sort. Dan seperti byasa tiada hari tanpa tugas, kita pun diberi tugas seperti kemarin dan di upload di blog masing-masing.
yah seperti itu kira-kira gambaran pertemuan ke 9 kami, walaupun saya kurang paham saya mencoba memahami dan bertanya keteman yang lain. sampai ketemu alpro selasa depan...
BAB IX
1. Buatlah algoritma dan program untuk mengalikan matriks dengan vektor. Vektor adalah
matriks berdimensi satu (bisa matriks baris maupun matriks kolom). Implementasikan
matriks dengan array berdimensi dua, dan vektor dengan menggunakan matriks
berdimensi satu.
a. Buat contoh matriks sembarang, misal berordo 2x2 :
b. Buat contoh vektor :
c. Kalikan matriks poin a dan vektor poin b elemen demi elemen. Jangan menuliskan hasil
akhir saja, tapi tuliskan pula perkalian (dan penjumlahan) setiap elemen.
d. Identifikasilah dan kelompokkan setiap langkah dengan variabel perulangan !
e. Tulis lengkap algoritma yang anda peroleh :
Dev c++ :
2. Diberikan suatu matriks berordo n. Buatlah algoritma dan program untuk mencetak
matriks identitas berodo n.
Dev c++ :
3. Buatlah algoritma dan program untuk menghasilkan transpose suatu matriks.
Dev c++ :
4. Buatlah algoritma dan program mengalikan matriks dengan suatu skalar (konstanta).
Dev c++ :
5. Buatlah algoritma dan program invers matriks berordo dua. Lalu kalikan matriks asal
dengan matriks inversnya untuk mengecek apakah hasil kalinya merupakan matriks
identitas atau bukan.
a. Buat contoh matriks sembarang, berordo 2x2 :
b. Hitung determinan matriks di atas
c. Tulis matriks adjoin dari poin a
d. Hitung invers matriks berordo 2x2 :
Dev c++ :
matriks berdimensi satu (bisa matriks baris maupun matriks kolom). Implementasikan
matriks dengan array berdimensi dua, dan vektor dengan menggunakan matriks
berdimensi satu.
a. Buat contoh matriks sembarang, misal berordo 2x2 :
b. Buat contoh vektor :
c. Kalikan matriks poin a dan vektor poin b elemen demi elemen. Jangan menuliskan hasil
akhir saja, tapi tuliskan pula perkalian (dan penjumlahan) setiap elemen.
d. Identifikasilah dan kelompokkan setiap langkah dengan variabel perulangan !
e. Tulis lengkap algoritma yang anda peroleh :
Dev c++ :
2. Diberikan suatu matriks berordo n. Buatlah algoritma dan program untuk mencetak
matriks identitas berodo n.
Dev c++ :
3. Buatlah algoritma dan program untuk menghasilkan transpose suatu matriks.
Dev c++ :
4. Buatlah algoritma dan program mengalikan matriks dengan suatu skalar (konstanta).
Dev c++ :
5. Buatlah algoritma dan program invers matriks berordo dua. Lalu kalikan matriks asal
dengan matriks inversnya untuk mengecek apakah hasil kalinya merupakan matriks
identitas atau bukan.
a. Buat contoh matriks sembarang, berordo 2x2 :
b. Hitung determinan matriks di atas
c. Tulis matriks adjoin dari poin a
d. Hitung invers matriks berordo 2x2 :
Dev c++ :
Langganan:
Postingan (Atom)