Skip to content

Instantly share code, notes, and snippets.

@kresnasatya
Created October 16, 2021 13:18
Show Gist options
  • Save kresnasatya/ce4171f6a0039beda3ecf81039e805c8 to your computer and use it in GitHub Desktop.
Save kresnasatya/ce4171f6a0039beda3ecf81039e805c8 to your computer and use it in GitHub Desktop.
Menginput data dosen yang tipe datanya adalah struct.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Alamat {
char NamaJalan[255];
char NomorRumah[255];
char Kota[255];
char Provinsi[255];
};
struct TanggalLahir {
int Tanggal;
int Bulan;
int Tahun;
};
struct Dosen {
char NoDosen[255];
char NIDN[255];
char Nama[255];
struct Alamat almt;
struct TanggalLahir tgllahir;
};
int main() {
struct Dosen dosen[5];
char NoDosen[255];
char NIDN[255];
char Nama[255];
char NamaJalan[255];
char NomorRumah[255];
char Kota[255];
char Provinsi[255];
int Tanggal;
char Tanggal_str[255];
int Bulan;
char Bulan_str[255];
int Tahun;
char Tahun_str[255];
printf("Pengisian data dosen \n");
for (int i = 0; i < 2; i++) {
printf("Nomor Dosen: ");
fgets(NoDosen, sizeof(NoDosen), stdin);
NoDosen[strcspn(NoDosen, "\n")] = '\0';
strcpy(dosen[i].NoDosen, NoDosen);
printf("Nama: ");
fgets(Nama, sizeof(Nama), stdin);
Nama[strcspn(Nama, "\n")] = '\0';
strcpy(dosen[i].Nama, Nama);
printf("NIDN: ");
fgets(NIDN, sizeof(NIDN), stdin);
NIDN[strcspn(NIDN, "\n")] = '\0';
strcpy(dosen[i].NIDN, NIDN);
// printf("\n Alamat \n");
printf("Nama Jalan: ");
fgets(NamaJalan, sizeof(NamaJalan), stdin);
NamaJalan[strcspn(NamaJalan, "\n")] = '\0';
strcpy(dosen[i].almt.NamaJalan, NamaJalan);
printf("Nomor Rumah: ");
fgets(NomorRumah, sizeof(NomorRumah), stdin);
NomorRumah[strcspn(NomorRumah, "\n")] = '\0';
strcpy(dosen[i].almt.NomorRumah, NomorRumah);
printf("Kota: ");
fgets(Kota, sizeof(Kota), stdin);
Kota[strcspn(Kota, "\n")] = '\0';
strcpy(dosen[i].almt.Kota, Kota);
printf("Provinsi: ");
fgets(Provinsi, sizeof(Provinsi), stdin);
Provinsi[strcspn(Provinsi, "\n")] = '\0';
strcpy(dosen[i].almt.Provinsi, Provinsi);
printf("\n Tanggal Lahir \n");
printf("Tanggal: ");
fgets(Tanggal_str, sizeof(Tanggal_str), stdin);
Tanggal_str[strcspn(Tanggal_str, "\n")] = '\0';
Tanggal = strtol(Tanggal_str, NULL, 10);
while (Tanggal < 1 || Tanggal > 31) {
printf("Tanggal harus dari 1 sampai 31 \n");
printf("Tanggal: ");
fgets(Tanggal_str, sizeof(Tanggal_str), stdin);
Tanggal_str[strcspn(Tanggal_str, "\n")] = '\0';
Tanggal = strtol(Tanggal_str, NULL, 10);
}
dosen[i].tgllahir.Tanggal = Tanggal;
printf("Bulan: ");
fgets(Bulan_str, sizeof(Bulan_str), stdin);
Bulan_str[strcspn(Bulan_str, "\n")] = '\0';
Bulan = strtol(Bulan_str, NULL, 10);
while (Bulan < 1 || Bulan > 12) {
printf("Bulan harus dari 1 sampai 12 \n");
printf("Bulan: ");
fgets(Bulan_str, sizeof(Bulan_str), stdin);
Bulan_str[strcspn(Bulan_str, "\n")] = '\0';
Bulan = strtol(Bulan_str, NULL, 10);
}
dosen[i].tgllahir.Bulan = Bulan;
printf("Tahun: ");
fgets(Tahun_str, sizeof(Tahun_str), stdin);
Tahun_str[strcspn(Tahun_str, "\n")] = '\0';
Tahun = strtol(Tahun_str, NULL, 10);
dosen[i].tgllahir.Tahun = Tahun;
}
printf("Pengisian data dosen selesai. \n");
for (int i = 0; i < 2; i++) {
printf("Nomor Dosen: %s \n", dosen[i].NoDosen);
printf("NIDN: %s \n", dosen[i].NIDN);
printf("Nama: %s \n", dosen[i].Nama);
printf("Alamat \n");
printf("Nama Jalan: %s \n", dosen[i].almt.NamaJalan);
printf("Nomor Rumah: %s \n", dosen[i].almt.NomorRumah);
printf("Kota: %s \n", dosen[i].almt.Kota);
printf("Provinsi: %s \n", dosen[i].almt.Provinsi);
printf("Tanggal Lahir \n");
printf("Tanggal: %d \n", dosen[i].tgllahir.Tanggal);
printf("Bulan: %d \n", dosen[i].tgllahir.Bulan);
printf("Tahun: %d \n", dosen[i].tgllahir.Tahun);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment