Kamis, 15 Juni 2017

DIKTAT BAB 10 PERTEMUAN TERAKHIR

Oke, pada kesempatan kali ini saya akan posting latihan Diktat yang terakhir yaitu latihan Diktat bab 10. 

Translasi 9.1

#include <iostream>
#include <conio.h>
using namespace std;

class Mhs {
public:
void Buat_berikut_list();
char Nama[20];
char Nim[10];
Mhs *berikut;
};

void Mhs::Buat_berikut_list(){
Mhs *Ptr_Kepala = NULL;
Mhs *Ptr_Baru;
char lagi;
do {
Ptr_Baru = new Mhs;
cout << "\nNama Mahasiswa : ";
cin >> Ptr_Baru->Nama;
cout << "Nim Mhs : ";
cin >> Ptr_Baru->Nim;
Ptr_Baru->berikut = Ptr_Kepala;
Ptr_Kepala = Ptr_Baru;
cout << "Tambah (y/t) : ";
} while ((lagi=getch()) !='t');
cout << "\nAnda telah memasukkan data : ";
Mhs *cetak = Ptr_Kepala;
// mencetak isi link list
while (cetak != NULL) {
cout << "\nNama Mahasiswa : " << cetak->Nama;
cout << "\tNim Mhs : " << cetak->Nim;
cetak = cetak->berikut;
}
}
main() {
Mhs *simpul;
simpul->Buat_berikut_list();
getch();
}

Mahasiswa

#include <iostream>
using namespace std;


class Mhs {
public :
int nim;
char nilai;
};
typedef Mhs *Ptrmhs;
 main() {
Ptrmhs P1, P2, P3;
P1 = new Mhs;
P1->nim = 101;
P1->nilai = 'A';
cout << "P1 : " << P1->nim << " " << P1->nilai << endl;
P2 = new Mhs;
P2 = P1; /* salin alamatnya */
cout << "P2 : " << P2->nim << " " << P2->nilai << endl;
P2->nim = 102;
P2->nilai = 'B';
cout << "P1 : " << P1->nim << " " << P1->nilai << endl;
cout << "P2 : " << P2->nim << " " << P2->nilai << endl;
P3 = new Mhs;
*P3 = *P1; /* salin isinya */
cout << "P1 : " << P1->nim << " " << P1->nilai << endl;
cout << "P3 : " << P3->nim << " " << P3->nilai << endl;
P3->nim = 103;
P3->nilai = 'C';
cout << "P1 : " << P1->nim << " " << P1->nilai << endl;
cout << "P3 : " << P3->nim << " " << P3->nilai << endl;

return 0;
}


Latihan

Modifikasilah struktur data dari algoritma 9.1. dan algoritma 9.2. sehingga sesuai dengan
tabel di bawah ini dengan menggunakan link list.



No
NIM
Nama
Ujian
Nilai



Mid
Akhir
Huruf
Huruf
1
990510001
Khoirul Anwar
80
95
90
A
2
990510002
Siti Zulaiha
45
30
35
D
3
990510003
Nur Rohmah
50
50
50
C
4
990510004
Agus Muhammad
90
60
70
B
5
990510005
Nur Iskandar
40
10
20
E


1.       Identifikasi Masalah
Modifikasi struktur data dari algoritma 9.1. dan algoritma 9.2. sehingga sesuai dengan
tabel di atas dengan menggunakan link list.

1.       Menentukain input dan output
→input                 :Nama
                             Nim
                             Nilai

→output             :Nilai Huruf adalah
                      


2.       Membuat Algoritma atau Flowchart
Algoritma
Deklarasi:
                Nama[30]                            :karakter
                Nim[10]                               :karakter
                Nilai                                     :integer
Deskripsi:
while when lagi=='Y' then lagi=='y'
    while (cetak !=NULL)
if when cetak->Nilai>=0 and cetak->Nilai<20
E
else if when cetak->Nilai>=20 and cetak->Nilai<40
else if when cetak->Nilai>=40 and cetak->Nilai<60
C
else if when cetak->Nilai>=60 and cetak->Nilai<80
B
Else
A
cetak=cetak->berikut
end if
end while
end while


3.       Test menggunakan data
→input                 :Nama adalah

             Khoirul Anwar
       Siti Zulaiha
          Nur Rohmah
             Agus Muhammad
          Nur Iskandar

          Nim adalah
990510001
990510002
990510003
990510004
990510005
 
         Nilai adalah 


95
30
50
60
10






→output             : Nilai Huruf adalah


            A
            D
            C
            B
            E


4.       Source Code
#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[30];
                                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<<"\nNama Mahasiswa : ";
                                cin>>Ptr_Baru->Nama;
                                cout<<"\nNim Mahasiswa : ";
                                cin>>Ptr_Baru->Nim;
                                cout<<"\nNilai Mahasiswa : ";
                                cin>>Ptr_Baru->Nilai;
                                Ptr_Baru->berikut=Ptr_Kepala;
                                Ptr_Kepala=Ptr_Baru;
                               
                                cout<<"Tambah (y/t) : ";
                                cin>>lagi;
                               
                } while (lagi=='Y' || lagi=='y');
                system("cls");
                cout<<"\nAnda telah memasukkan data : "<<endl;
                Mhs *cetak= Ptr_Kepala;
                cout<<"Nama \t\t Nim \t\t Nilai Angka \t\t Nilai 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();
}

DIKTAT BAB 9 PERTEMUAN KE-11

Kali ini saya akan memposting latihan diktat bab 9 pada pertemuan ke-11.

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.

1.    Identifikasi masalah
→ mengalikan matriks dengan vector
2.   Menentukan input dan output
→ input                    :baris
                                :kolom
                                :A[max]
                                : m[baris]
                                :n
→output                  :perkalian matriks dan vektor=
      3. Membuat Algoritma/flowchart
Deklarasi:
A[maks][maks], baris, kolom, m[baris] ,n              :integer

Deskripsi:
for i ←0 to baris do then i++
for j←0 to kolom do then j++
write(‘Masukan data ke ["<<i<<"] ["<<j<<"]’)                   
end for
end for
               
               
write(‘Isi Matriks A ‘)
for i ←0 to baris do then i++
for j←0 to kolom do then j++
write(‘A[i][j]’)

end for
end for

write(‘penghitungan vektor ‘)
for z←0 to kolom do then z++
write(‘Masukan data ke ["<<z<<"] ‘)                      
end for

write(‘ vektor ‘)
for z←0 to kolom do then z++
write(‘m[z]’)
end for

write(‘perkalian matrik dan vektor ‘)
for i ←0 to baris do then i++
for j←0 to kolom do then j++
for z←0 to kolom do then z++
n←A[i][j]*m[z]
end for
end for
end for

            4. Test menggunakan data
inputin→             :baris[2]=|1|
                                          |2|
                           Kolom[2]=|1|
                                             |2|
                           Isi matrik A=|1| |2|
                                               |1| |2|
                           Berapa variable=2
                           Vektor b=|1|
                                           |2|

output→             :perkalian matrik dan vektor= 1 2 2 4 1 2 2 4

      5.  Implementasi dengan c++
#include <iostream>
#define maks 10
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
int A[maks][maks], baris, kolom;
cout<<"input baris :"; cin>>baris;
cout<<"input kolom :"; cin>>kolom;       
for(int i=0; i<baris; i++){
for(int j=0; j<kolom; j++){
cout<<"Masukan data ke ["<<i<<"] ["<<j<<"] : "; cin>>A[i][j];                    
}             
}             
cout<<"Isi Matriks A :\n";
for(int i=0; i<baris; i++){
for(int j=0; j<kolom; j++){
cout<<A[i][j]<<" ";
}
cout<<endl;
}
int m[baris],n;
cout<<"penghitungan vektor \n";
cout<<"berapa variabel : ";
                cin>>m[kolom];
                for(int z=0; z<kolom; z++){
                cout<<"Masukan data ke ["<<z<<"] "" : "; cin>>m[z];                     
}
cout<<endl;

cout<<" vektor b : \n";
                for(int z=0; z<kolom; z++){
cout<<m[z]<<"\n";
}
cout<<"perkalian matrik dan vektor \n";
for(int i=0; i<baris; i++){
for(int j=0; j<kolom; j++){
for(int z=0; z<kolom; z++){
n=A[i][j]*m[z];
cout<<n<<" ";
}
}
}
                return 0;
}


2. Diberikan suatu matriks berordo n. Buatlah algoritma dan program untuk mencetak matriks identitas berodo n. 


1.       Identifikasi masalah
→ program untuk mencetak matriks identitas berodo n

2.       Menetukan Input Output:
→ input               :i, j, n

→output             :masukkan ordo matriks

3.       Membuat Algoritma/flowchart
 Algoritma:
Deklarasi:
i, j, n      :integer
Deklarasi:
Write(‘masukkan ordo matriks ‘)
For i←1 to n do i++ then
For j←1 to n do then j++
if(i==j)
write(‘1’)
else
write(‘0’)
end for
end for
end if