Anda di halaman 1dari 7

Tugas Personal ke-2

(Minggu 7 / Sesi 11)

Nama : Gayuh Rifai

NIM : 2401984681

Kelas : TXCA
1. Buatlah ringkasan pemahaman anda mengenai perbedaan Struct dan Union serta berikan
contoh penerapannya.

2. Buatlah program untuk menghitung nilai akhir mahasiswa, adapun aturannya adalah
a. Buatlah tampilaan menu sebagai berikut:
 Menu 1 untuk Input data mahasiswa.
 Menu 2 untuk Input nilai.
 Menu 3 untuk melihat nilai mahasiswa dan status
 Menu 4 keluar dari program

b. Jika pengguna memilih Menu 1


Input data mahasiswa antara lain: nim, nama dan mata kuliah

Catatan: Validasikan jika mahasiswa yang dimasukkan sudah pernah diinput sebelumnya.

c. Jika pengguna memilih menu 2


Input data nilai antara lain:
1) Nilai Hadir
2) Nilai Tugas
3) Nilai Quiz
4) Nilai Keaktifan Forum
5) Nilai UAS

d. Jika Pengguna memilih Menu 3.


Pengguna meng-input nim mahasiswa maka akan tampil hasil kalkulasi dari
penjumlahan dan status grade yang didapat.

Catatan

Rumus perhitungan: Nilai Hadir 10% +Nilai Tugas 20% + Nilai Quiz 10% + Nilai keaktifan
forum 10% dan Nilai UAS 50%.

Status grade
Grade A = 100 – 90 (Lulus)
Grade B = 89 – 80 (Lulus)
Grade C = 79 – 70 (Lulus)
Grade D = 69 – 60 (Lulus)
Grade E = 59 – 50 (Tidak Lulus)

COMP6599 – Algorithm and Programming


-=Selamat Mengerjakan=-

Jawab:

Struct adalah tipe data yang digunakan untuk menyimpan lebih dari satu nilai. Struct

mengakses nilai-nilai yang disimpan dalam variabel berdasarkan nama yang dimiliki

anggotanya. Setelah deklarasi, penulisan nama struct dan anggotanya dipisahkan

dengan tanda titik, misalnya "nama_struct.nama_anggota".

Tiap anggota struct menyimpan nilai di lokasi yang berbeda beda, dan juga dengan

nama yang berbeda-beda. Satu variabel dengan tipe data struct bisa memiliki beberapa

anggota yang ditentukan saat deklarasi struct.

Contoh Struct:

#include <stdio.h>

struct kelompok_bilangan{

float pecahan;

int bulat;

}bilangan;

void setengah(struct kelompok_bilangan *angka){

angka->bulat/=2;

angka->pecahan/=2;

printf("nilai bilangan bulat setelah dibagi 2 = %d\n", angka->bulat);

printf("nilai bilangan pecahan setelah dibagi 2 = %f\n",angka->pecahan);

int main(){

bilangan.bulat=7; //memanggil bilangan bulat tipe data int

bilangan.pecahan=7; //memanggil bilangan pecahan tipe data float

setengah(&bilangan);

COMP6599 – Algorithm and Programming


printf("============================================\n");

printf("apakah %d nilai awal bilangan bulat?\n", bilangan.bulat);

printf("apakah %f nilai awal bilangan pecahan?\n", bilangan.pecahan);

printf("bukan. Nilai anggota struct berubah di dalam sekaligus di luar

function.\n");

return 0;

Union adalah cara menginput data dengan menghemat memory, yaitu pada satu lokasi dapat
ditempati oleh beberapa variabel dengan tipe data variabel yang berbeda-beda. Jadi

union mirip seperti struct hanya saja variable - variable nya disimpan di lokasi

memori yang sama dan saling mempengaruhi satu sama lain.

Contoh Union:

#include <stdio.h>

#include <string.h>

union Data

int i;

float f;

char str[20];

};

int main()

union Data data;

printf("Memmory size occupied by data : %d\n", sizeof(data));

getchar();

return 0;

COMP6599 – Algorithm and Programming


}

2. Program menghitung nilai akhir mahasiswa

Compiler: onlinegdb

#include <stdio.h>

#include <string.h>

struct Mahasiswa{

char nama[50];

char nim[20];

char matakuliah[25];

int Hadir;

int Tugas;

int Quiz;

int Keaktifan;

int UAS;

};

int main() {

printf("\n\n======= PILIH MENU =======\n\n");

int pilihan;

float nilaiAkhir;

char cekNim[20];

struct Mahasiswa mhs;

typedef struct Mahasiswa binus[100];

while(1){

printf("1. Input Data Mahasiswa \n");

COMP6599 – Algorithm and Programming


printf("2. Input Nilai Mahasiswa\n");

printf("3. Lihat Nilai dan Status\n");

printf("4. Exit\n");

printf("Masukkan Pilihan : ");

scanf("%d",&pilihan);

switch(pilihan)

case 1:

printf("Masukkan nama siswa:");

scanf("%s",&mhs.nama[0]);

printf("Masukkan nim:");

scanf("%s",&mhs.nim[0]);

printf("Masukkan matakuliah:");

scanf("%s",&mhs.matakuliah[0]);

break;

case 2:

printf("Masukkan nilai hadir:");

scanf("%d",&mhs.Hadir);

printf("Masukkan nilai tugas:");

scanf("%d",&mhs.Tugas);

printf("Masukkan nilai quiz:");

scanf("%d",&mhs.Quiz);

printf("Masukkan nilai keaktifan forum:");

scanf("%d",&mhs.Keaktifan);

COMP6599 – Algorithm and Programming


printf("Masukkan nilai UAS:");

scanf("%d",&mhs.UAS);

break;

case 3:

printf("Masukkan nim:");

scanf("%s",&cekNim[0]);

nilaiAkhir = (mhs.Hadir * 0.1) + (mhs.Tugas * 0.2) +(mhs.Quiz * 0.1) + (mhs.Keaktifan *


0.1) + (mhs.UAS * 0.5);

printf("\nNilai Akhir: %2.f\n", nilaiAkhir);

if(nilaiAkhir>=90){

printf("Grade: A");

printf("\nStatus: LULUS\n");

}else if (nilaiAkhir>=80 && nilaiAkhir<90){

printf("Grade: B");

printf("\nStatus: LULUS\n");

}else if (nilaiAkhir>=70 && nilaiAkhir<80){

printf("Grade: C");

printf("\nStatus: LULUS\n");

}else if (nilaiAkhir>=60 && nilaiAkhir<70){

printf("Grade: D");

printf("\nStatus: LULUS\n");

}else if (nilaiAkhir>=50 && nilaiAkhir<60){

printf("Grade: E");

printf("\nStatus: TIDAK LULUS\n");

}else{

printf("Grade: F");

COMP6599 – Algorithm and Programming


printf("\nStatus: TIDAK LULUS\n");

break;

case 4:

printf("Keluar!\n");

return 0;

return 0;

COMP6599 – Algorithm and Programming

Anda mungkin juga menyukai