Assalamualaikum wr.wb
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.
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
ASEP
HEDI
RISKI
FIKRI
ADIT
Nim adalah
1600018040
1600018042
1600018043
1600018044
1600018046
Nilai adalah
95
30
50
80
10
→output : Nilai Huruf adalah
A
D
C
B
E
4. dalam c++
#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();
}
5. Eksekusi
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 | TOTAL | HURUF | |||
1 | 1600018040 | ASEP | 80 | 95 | 90 | A |
2 | 1600018042 | HEDI | 45 | 30 | 35 | D |
3 | 1600018043 | RISKI | 50 | 50 | 50 | C |
4 | 1600018044 | FIKRI | 90 | 60 | 70 | B |
5 | 1600018046 | ADIT | 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
ASEP
HEDI
RISKI
FIKRI
ADIT
Nim adalah
1600018040
1600018042
1600018043
1600018044
1600018046
Nilai adalah
95
30
50
80
10
→output : Nilai Huruf adalah
A
D
C
B
E
4. dalam c++
#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();
}
5. Eksekusi