Jumat, 20 Mei 2016

Pointer, Pengenalan struktur Data

Soal : Modifikasilah struktur data dari algoritma 9.1. dan algoritma 9.2.

Algoritma 

Algoritma 9.1.
Procedure Membuat Daftar Berantai(output Ptr_Kepala : PMhs)
Deklarasi
Type PMhs = ^Mhs
Mhs = Record <
Nama : String[20]
Nim : String[10]
berikut : PMhs >
Ptr_Baru : pMhs
Deskripsi
1. Ptr_Kepala Å NULL
2. NEW(Ptr_Baru)
3. Ptr_Baru->Nama Å 'ANI'
4. Ptr_Baru->Nim  Å '101'
5. Ptr_Baru->berikut Å Ptr_Kepala
6. Ptr_Kepala Å Ptr_Baru
7. Jika masih menambah simpul, kembali kelangkah 2;

Algoritma 9.2.
procedure Menampilkan Isi Daftar Berantai(input Ptr_Kepala : PMhs)
Deklarasi
Type PMhs = ^Mhs
Mhs = Record <
Nama : String[20]
Nim : String[10]
berikut : PMhs >
Deskripsi
while (Ptr_Kepala <> NULL) do
write(Ptr_Kepala->Nama)
writePtr_Kepala->Nim)
Ptr_Kepala Å Ptr_Kepala->berikut { ke node berikutnya }
endwhile


Dev C++

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[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<<"\nNama 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<<"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();

}

outputnya :

Tidak ada komentar:

Posting Komentar