animasi bergerak gif
My Widget
Hai MBLO!

Selasa, 07 Juni 2016

Tugas Kelompok Minggu 13

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"); 
}

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

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();
}




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;


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 :


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

Deskripsi : 

       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;
}

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;
}

Kasus 8.1 : Pencarian Linear (Linear Search)

Algoritma :

Deklarasi
       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
Raptor :




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...

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++ :