#include<stdio.h>
typedef struct{
int Tanggal;
int Bulan;
int Tahun;
} Tanggal;
typedef struct{
char NPM[20];
char Nama[20];
Tanggal tglLahir;
char Kelas[1];
float IPK;
} Mahasiswa;
Mahasiswa MakeMahasiswa(){
Mahasiswa mhs;
char c;
printf(" Input Data Mahasiswa \n\n");
printf(" NPM\t\t: "); scanf ("%s",mhs.NPM);
while((c=getchar() != '\n' &&c != EOF));
printf(" Nama\t\t: "); gets (mhs.Nama);
printf(" Tanggal Lahir (contoh:11/11/2000)\n");
printf(" \t\t: ");
scanf("%d/%d/%d",&mhs.tglLahir.Tanggal,&mhs.tglLahir.Bulan,&mhs.tglLahir.Tahun);
printf(" Kelas\t\t: "); scanf ("%s",mhs.Kelas);
printf(" IPK\t\t: "); scanf ("%f",&mhs.IPK);
return mhs;
}
void TulisMahasiswa(Mahasiswa mhs){
printf(" Output Data Mahasiswa \n\n");
printf("+------------+----------------------+---------------+-------+-------+\n");
printf("| %-10s | %-20s | %-7s | %-3s | %-5s |\n",
"NPM",
"Nama Lengkap",
"Tanggal Lahir",
"Kelas",
"IPK");
printf("+------------+----------------------+---------------+-------+-------+\n");
printf("| %-10s | %-20s | %d-%d-%-7d | %-5s | %-6.2f|\n",mhs.NPM,mhs.Nama,mhs.tglLahir.Tanggal,
mhs.tglLahir.Bulan,mhs.tglLahir.Tahun,mhs.Kelas,mhs.IPK);
printf("+------------+----------------------+---------------+-------+-------+\n");
}
int main(){
int x;
Mahasiswa mhs;
mhs = MakeMahasiswa();
printf("\n\n\n");
TulisMahasiswa(mhs);
getchar();
getchar();
return 0;
}
Analisis: program diatas menggunakan 1 fungsi ,1 procedur dan 2 struct
. program fungsi yaitu MakeDataMahasiswa() untuk membaca inputan dan si simpan
dalam variable bertipe data mahasiswa yang telah bertipe data struck dan
procedur TulisDataMahasiswa untuk membaca output dan memanggil data yang telah
di tulis sebelumnya dan menampilkan hasilnya seperti dibawah ini:
0 komentar:
Posting Komentar