DASAR PEMOGRAMAN
PROGRAM PERHITUNGAN NILAI IPK
D
I
S
U
S
U
N
OLEH:
SANDY HENDRAWAN (140402080)
BAB I
PENDAHULUAN
1.1
Latar Belakang
Saat ini perkembangan teknologi telah banyak membantu kita dalam melakukan
aktivitas sehari-hari. Dalam bidang pemrogaman, banyak para programmer membuat
aplikasi untuk member kemudahan bagi masyarakat agar dapat melakukan aktivitas
dengan mudah dan menghemat waktu dalam mengerjakan aktivitas tersebut.
IPK
Peringkat Huruf
Nilai
Keterangan
89 - 100
Sangat Baik
3.5
B+
82 - 88.5
75 81.5
Baik
2.5
C+
67.5 74
60 - 66.5
Sedang
50 - 59
Buruk
0 - 49
Sangat Buruk
1.2
Rumusan Masalah
Pada laporan ini akan dibahas cara membuat program untuk menghitung nilai IP
( Indeks Prestasi ) dan IPK ( Indeks Prestasi Kumulatif ). Bagaimana cara kerjanya?
Fungsi apa saja yang digunakan? Bagaimana cara menggunakan fungsi tersebut?
1.3
Tujuan
BAB II
DASAR TEORI
2.1
Algoritma
2.2
Flowchart
Keterangan
Digunakan untuk mewakili simbol Start (mulai) atau
End (akhir)
2.3
Keputusan
Struktur If
if(ekspresi)
pernyataan;
Struktur If Else
Pernyataan if juga menyertakan suatu yang lain untuk eksekusi jika ekspresi yang di
evaluasi memberikan nilai salah. Dalam hal ini, bentuk umumnya adalah :
if(ekspresi)
pernyataan1;
else
pernyataan2;
Struktur Else If
Struktur Switch
Struktur ini bekerja dengan cara mengendalikan program pada suatu keadaan,
sedemikian hingga semua iliha merupaka nilai - nilai alternatif tertentu yang
berbentuk ekspresi integer. Struktur ini disebut dengan switch dengan kata kunci
switch. Secara umum struktur switch dapat dinyatakan sebagai berikut.
switch(ekspresi)
block pernyataan;
Didalam block pernyataan juga terdapat label case dan sebuah konstanta
integer, yang menunjukan pilihan yang akan dilaksanakan apabila konstanta integer
setelah label case tersebut terpenuhi. Pada akhir setiappilihan, biasanya diikuti dengan
pernyataan break yang menyebabkan kendali berpindah ke akhir block struktur switch
2.4
Perulangan
For
Perulangan for melakukan sejumlah iterasi yang telah ditetapkan. Pada bentuk ini
terdapat tiga ekspresi yang digunakan untuk mengendalikan proses pengulangan.
Bentuk umum sistem perulangannya adalah :
For(ekspresi1; ekspresi2;ekspresi3)
Pernyataan;
2.4.1
While
10
Do While
11
Pernyataan;
While(ekspresi);
dengan perulangan while dan for. Akan tetapi dalam hal-hal tertentu, kadang kadang
lebih cepat jika kita menggunakan do while, yaitu apabila badan pengulangan
hendak dilakukan paling sedikit satu kali. Hal hal yang tepat unutk keadaan ini
adalah meminta kepada user untuk memberikan kata sandi , memberikan jawaban ya
atau tidak apakah perlu pemrosesan ulang dan sebagainya.
2.5
Fungsi
Suatu fungsi adalah suatu bagian dari program yang dimaksudkan untuk mengerjakan
suatu tugas tertentu dan letaknya dipisahkan dari program yang menggunakannya.
Fungsi-fungsi merupakan elemen utama dari program bahasa C. Program dari bahasa
C dibentuk dari kumpulan fungsi, mulai dari fungsi utama dengan nama main(),
fungsi-fungsi pustaka (standar) dan fungsi-fungsi yang dibuat sendiri oleh pemrogram.
12
Fungsi-fungsi banyak digunakan dengan dua alasan utama. Yakni, fungsifungsi menjadikan program C mempunyai struktur yang jelas dan fungsi-fungsi dapat
digunakan untuk menghindari penulisan yang sama yang ditulis secara berulangulang.
Mendefinisikan Fungsi
tipe nama-fungsi(argumen1, argumen2,)
{
tubuh fungsi
}
2.5.1
Deklarasi Fungsi
Suatu fungsi yang memberikan hasil balik selain tipe int perlu dideklarasikan sebelum
digunakan. Dengan demikian jika suatu fungsi tidak dideklarasikan, maka akan
dianggap fungsi tersebut memberikan hasil balik berupa nilai tipe int.
tipe nama-fungsi();
Untuk deklarasi fungsi, argumen-argumen fungsi tidak perlu dituliskan. Tipe adalah
tipe dari fungsi yang akan digunakan dan harus sama dengan tipe fungsi yang
didefinisikan. Jika bagian dari program yang menggunakan fungsi diletakkan sebelum
definisi dari fungsi, maka deklarasi fungsi diperlukan. Akan tetapi jika bagian dari
program yang menggunakan fungsi terletak setelah definisi dari fungsi, maka
deklarasi dari fungsi dapat tidak dituliskan.
2.5.2
Prototype Fungsi
13
14
BAB III
RANCANGAN PROYEK
3.1
Algoritma
Adapun algoritma yang digunakan dalam program perhitungan nilai IPK( Indeks
Prestasi Kumulatif ) adalah sebagai berikut:
a. Start
15
3.2
Flowchart
BAB IV
ANALISA PROYEK
3.1
Pseudo Code
Adapun pseudo code yang digunakan dalam program perhitungan nilai IPK( Indeks
Prestasi Kumulatif ) adalah sebagai berikut:
a. Input nama dan nim
b. Input pilihan semester
c. Input nilai mata kuliah
16
3.2
Hasil Keluaran
17
18
19
20
BAB V
PENUTUP
5.1
Kesimpulan
21
semester dan nilai IPK yang dikembalikan setelah di masukkan nilai-nilai dari
mata kuliah tiap semester.
5.2
Saran
DAFTAR PUSTAKA
22
LAMPIRAN
Source code :
#include<stdio.h>
float perhitungan(float);
int main()
{
char sem,pilih;
int kal,fis1,dtd,dte,agama,daskom,pdm;
int matek,fis2,menggatek,dasprog,etprof;
int pengling,rl1,bing,pdasprog,pdtd;
float ip1 = 0 , ip2 = 0 , ipk;
float
nilai_kal,nilai_fis1,nilai_dtd,nilai_dte,nilai_agama,nila
i_daskom,nilai_pdm;
23
float
nilai_matek,nilai_fis2,nilai_menggatek,nilai_dasprog;
float
nilai_etprof,nilai_pengling,nilai_rl1,nilai_bing,nilai_pd
asprog,nilai_pdtd;
int nim;
char nama[30];
printf("\n\n\n\t\t\t
=====================================");
printf("\n\t\t\t
PROGRAM PERHITUNGAN NILAI IPK
");
printf("\n\t\t\t
===================================== ");
printf("\n\n\n\n FAKULTAS TEKNIK USU ");
printf("\n PROGRAM STUDI TEKNIK ELEKTRO ");
printf("\n\n\t Nama \t : ");
gets(nama);
printf("\n\t NIM \t : ");
scanf("%i",&nim);
system("cls");
printf("\n 1. Semester I");
printf("\n 2. Semester II");
printf("\n\n Pilih Semester : ");
scanf("%s",&sem);
if(sem != '1' && sem != '2')
{
do
{
printf("\n Input yang Anda masukkan
Salah");
printf("\n\n Pilih Semester : ");
scanf("%s",&sem);
}
while(sem != '1' && sem != '2');
}
if(sem == '1')
24
{
system("cls");
printf("\n\n\n\t\t\t\t ==================");
printf("\n\t\t\t\t
SEMESTER I");
printf("\n\t\t\t\t ==================");
printf("\n\n\n\n Pilih Nilai ");
printf("\n (1) A \n (2) B+ \n (3) B \n (4)
C+ \n (5) C \n (6) D \n (7) E");
printf("\n\n Nilai Kalkulus (6 sks) : ");
scanf("%d",&kal);
if(kal != 1 && kal != 2 && kal != 3 && kal != 4
&& kal != 5 && kal != 6 && kal != 7)
{
do
{
printf("\n\n Input yang Anda masukkan
Salah \n\n");
printf(" Nilai Kalkulus (6 sks) : ");
scanf("%d",&kal);
}
while(kal != 1 && kal != 2 && kal != 3 &&
kal != 4 && kal != 5 && kal != 6 && kal != 7);
}
nilai_kal = perhitungan(kal);
25
26
}
nilai_dte = perhitungan(dte);
27
28
{
do
{
printf("\n Input yang Anda masukkan
Salah");
printf("\n\n Pilih : ");
scanf("%s",&pilih);
}
while(pilih != '1' && pilih != '2');
}
if (pilih == '2')
system("exit");
else if(pilih == '1')
{
system("cls");
printf("\n\n\n\t\t\t\t
==================");
printf("\n\t\t\t\t
SEMESTER II");
printf("\n\t\t\t\t ==================");
printf("\n\n\n\n Pilih Nilai ");
printf("\n (1) A \n (2) B+ \n (3) B \n (4)
C+ \n (5) C \n (6) D \n (7) E");
29
nilai_matek = perhitungan(matek);
30
}
nilai_menggatek = perhitungan(menggatek);
31
32
}
while(rl1 != 1 && rl1 != 2 && rl1 !=
3 && rl1 != 4 && rl1 != 5 && rl1 != 6 && rl1 != 7);
}
nilai_rl1 = perhitungan(rl1);
33
scanf("%d",&pdasprog);
}
while(pdasprog != 1 && pdasprog != 2
&& pdasprog != 3 && pdasprog != 4 && pdasprog != 5 &&
pdasprog != 6 && pdasprog != 7);
}
nilai_pdasprog = perhitungan(pdasprog);
printf("\n\n");
system("pause");
system("cls");
printf("\n\n Nama \t : %s",nama);
printf("\n NIM \t : %i",nim);/*
printf("\n\n Nilai : %.2f %.2f
",nilai_kal,nilai_fis1);*/
ip2 = (nilai_matek*6 + nilai_fis2*4 +
nilai_menggatek*2 + nilai_etprof*2 + nilai_pengling*2 +
nilai_rl1*2 + nilai_bing*2 + nilai_dasprog*2 +
nilai_pdasprog + nilai_pdtd)/24;
34
printf("\n\n\n 1. Keluar");
printf("\n Pilih : ");
scanf("%s",&pilih);
if(pilih != '1')
{
do
{
printf("\n\n Input yang Anda
berikan SALAH \n");
printf("\n Pilih : ");
scanf("%d",&pilih);
}
while(pilih != 1);
}
if (pilih == '1')
system("exit");
}
else if(sem == '2')
{
system("cls");
printf("\n\n\n\t\t\t\t ==================");
printf("\n\t\t\t\t
SEMESTER II");
printf("\n\t\t\t\t ==================");
printf("\n\n\n\n Pilih Nilai ");
printf("\n (1) A \n (2) B+ \n (3) B \n (4)
C+ \n (5) C \n (6) D \n (7) E");
35
36
37
38
39
40
printf("\n\n");
system("pause");
system("cls");
printf("\n\n Nama \t : %s",nama);
printf("\n NIM \t : %i",nim);/*
printf("\n\n Nilai : %.2f %.2f
",nilai_kal,nilai_fis1);*/
ip2 = (nilai_matek*6 + nilai_fis2*4 +
nilai_menggatek*2 + nilai_etprof*2 + nilai_pengling*2 +
nilai_rl1*2 + nilai_bing*2 + nilai_dasprog*2 +
nilai_pdasprog + nilai_pdtd)/24;
ipk = ip2;
printf("\n\n IP Semester II : %.2f ",ip2);
printf("\n IP Kumulatif \t : %.2f ",ipk);
41
printf("\n\t\t\t\t ==================");
printf("\n\n\n\n Pilih Nilai ");
printf("\n (1) A \n (2) B+ \n (3) B \n (4)
C+ \n (5) C \n (6) D \n (7) E");
printf("\n\n Nilai Kalkulus (6 sks) : ");
scanf("%d",&kal);
if(kal != 1 && kal != 2 && kal != 3 && kal
!= 4 && kal != 5 && kal != 6 && kal != 7)
{
do
{
printf("\n\n Input yang Anda
masukkan Salah \n\n");
printf(" Nilai Kalkulus (6
sks) : ");
scanf("%d",&kal);
}
while(kal != 1 && kal != 2 && kal !=
3 && kal != 4 && kal != 5 && kal != 6 && kal != 7);
}
nilai_kal = perhitungan(kal);
42
}
nilai_fis1 = perhitungan(fis1);
43
}
nilai_dte = perhitungan(dte);
44
}
nilai_daskom = perhitungan(daskom);
45
printf("\n\n\n 1. Keluar");
printf("\n Pilih : ");
scanf("%s",&pilih);
if(pilih != '1')
{
do
{
printf("\n\n Input yang Anda
berikan SALAH \n");
printf("\n Pilih : ");
scanf("%d",&pilih);
}
while(pilih != 1);
}
if (pilih == '1')
system("exit");
}
}
}
float perhitungan(float a)
{
float nilai_a;
if (a == 1 )
{
printf(" Nilai yang dipilih adalah A ");
nilai_a = 4 ;
}
else if (a == 2)
{
printf(" Nilai yang dipilih adalah B+ ");
nilai_a = 3.5 ;
}
else if (a == 3)
{
printf(" Nilai yang dipilih adalah B ");
nilai_a = 3 ;
}
else if (a == 4)
46
{
printf(" Nilai yang dipilih adalah C+ ");
nilai_a = 2.5 ;
}
else if (a == 5)
{
printf(" Nilai yang dipilih adalah C ");
nilai_a = 2 ;
}
else if (a == 6)
{
printf(" Nilai yang dipilih adalah D ");
nilai_a = 1 ;
}
else if (a == 7)
{
printf(" Nilai yang dipilih adalah E ");
nilai_a = 0 ;
}
return nilai_a;
}