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
Nop.
Cewek Crewet yang tanpa pacar udah seneng.
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;
}
Langganan:
Postingan (Atom)