Anda di halaman 1dari 10

TUGAS ANALISIS ALGORITMA

TI GAB REG 5

Oleh

Monika Andallu Putri


Bimo Satria Pratama
Harits Rahman M
Vicky

PERGURUAN TINGGI TEKNOKRAT


BANDARLAMPUNG

Sourcecode
#include <stdio.h>
#include <stdlib.h>

int bobot,apakah_diulang;
char nh,ulang;
float nilai,tugas,uts,uas,absensi;

void kepala(void);
void hitungan(void);
void selesai(void);

main()
{
do
{
system("cls");
kepala();
hitungan();

printf("\n\n");
printf("Apakah anda ingin mengulang perhitungan?");
printf("\nIya (y) atau Tidak (t) ===> ");
scanf(" %c",&ulang);
}
while(ulang=='Y' or ulang=='y'); //perulangan do while

selesai();
}

void hitungan(void)
{
mulai:
// input nilai tugas uts uas
printf("Masukkan nilai tugas

: ");scanf("%f",&tugas);

printf("Masukkan nilai uts

: ");scanf("%f",&uts);

printf("Masukkan nilai uas

: ");scanf("%f",&uas);

printf("Masukkan nilai Absensi : ");scanf("%f",&absensi);

//Bila nilai UTS > Nilai UAS, nilai Akhir dihitung dengan rumus :
//Nilai akhir = 40 % (nilai UTS) + 40 % (nilai UAS) + 20% (nilai Tugas)
//Bilai nilai UAS > = nilai UTS, nilai akhir dihitung dengan rumus :
//Nilai akhir = 35 % (nilai UTS) + 45 % (nilai UAS) + 20% (nilai Tugas)

if(tugas>100 or uts>100 or uas>100 or absensi>100)


{
printf("\n\nNILAI YANG ANDA MASUKKAN TIDAK VALID\nNILAI YANG
BISA DIMASUKKAN ADALAH 0-100 \n\n");
system("pause");
goto selesai;
}

if(uts>uas)
{
nilai = (30*uts/100) + (40*uas/100) + (20*tugas/100) + (10*absensi/100);
}
else if(uas>=uts)
{
nilai = (35*uts/100) + (45*uas/100) + (20*tugas/100) + (10*absensi/100);

// menentukan grade dan bobotnya


if (nilai>=85&&nilai<=100) // nilai 85 - 100 = A dan bobot 4
{
bobot = 4;
nh = 'A';
}
else if(nilai>=75&&nilai<85) // nilai 75 - 85 = B dan bobot 3
{
bobot = 3;
nh = 'B';
}
else if(nilai>=65&&nilai<75) // nilai 65 - 75 = C dan bobot 2
{
bobot = 2;
nh = 'C';
}
else if(nilai>=50&&nilai<65) // nilai 50 - 65 = D dan bobot 1

{
bobot = 1;
nh = 'D';
}
else if(nilai>=0&&nilai<50) // nilai 0 - 50 = B dan bobot 0
{
bobot = 0;
nh = 'E';
}

// tampilkan hasil penentuan grade dan bobot hasil dari bilangan yang di input

printf("\n\n");
printf("Anda mendapatkan Grade %c dan bobot %d",nh,bobot);

selesai:
printf("");
}

void kepala(void) //Bagian atas program


{
printf("\t\tProgram Menentukan Nilai dan Bobot Nilai");
printf("\t\t\t\n----------------------------------------\n");
}

void selesai(void) //bagian bawah program jika memilih pilihan "t"


{
system("cls");
printf("Terima Kasih Telah menggunakan Program ini");
}

Mengapa algoritma tersebut termasuk penerapan devide & conquer?


:

Divide: Membagi masalah menjadi beberapa upa-masalah yang memiliki


kemiripan dengan masalah semula namun berukuran lebih kecil (idealnya
berukuran hampir sama).

Conquer: Memecahkan (menyelesaikan) masing-masing upa-masalah (secara


rekursif).

Objek masalah yang di bagi adalah masukan (input) atau instances yang berukuran n:
tabel (larik), matriks, dan sebagainya, bergantung pada masalahnya. Tiap-tiap upamasalah mempunyai karakteristik yang sama (the same type) dengan karakteristik
masalah asal, sehingga metode Divide and Conquer lebih natural diungkapkan dalam
skema rekursif.

Anda mungkin juga menyukai