sistem informasi transkrip nilai
DESCRIPTION
Pembuatan Sistem informasi transkrip nilai sederhana menggunakan C++TRANSCRIPT
LAPORAN TUGAS AKHIR STRUKTUR DATA
SISTEM INFORMASI TRANSKRIP NILAI
NAMA KELOMPOK :
MUHAMMAD IQBAL SHAUFI (10.12.4408 )
JAVAD IQBAL (10.12.4384)
JAJAR GANTARA (10.12.4385)
ARBIYAN TEZAR KUMBARA (10.12.4406)
M.RAHMAT HIDAYAT (10.124409 )
ALI ZAINAL (10.12.4401)
JURUSAN SISTEM INFORMASI
STMIK AMIKOM YOGYAKARTA
2011
Final Project Struktur Data 2012
1
KATA PENGANTAR
Alhamdulillah, kami panjatkan rasa syukur kepada Allah swt, hanya dengan bimbingan – Nya
maka laporan final project yang kami lakukan dengan judul pemba\uatan progam “ Transkip Nilai
“ dapat terselesaikan sesuai dengan tujuan yang diharapkan.
Selain kesyukuran tersebut, kami merasakan pula bahwa selesainya project dan laporan ini tidak lepas
dari bantuan banyak pihak, sehingga pada kesempatan ini ingin kami sampaikan ucapan terimakasih
kepada :
1. Yth Bapak M. Suyanto, Prof. Dr, M.M. selaku ketua pengurus yayasan STIMIK AMIKOM
YOGYAKARTA
2. Yth Bapak Riski Aditya, S.Kom selaku dosen ,ata kuliah struktur data yang telah membimbing
hingga jadi nya tugas kami ini
3. Orang tua yang selalu memberi dukungan.
4. Tidak lupa, juga kami sampaikan terimakasih secara tulus kepada teman-teman kuli
ah, yang secara langsung dan tidak tidak langsung telah ikut berperan dalam proses
pembelajaran kami, baik itu dalam bentuk dialog-dialog sederhara dalam pergaulan keseharian
di kampus, ataupun nasehat-nasehat yang telah kami terima. Kepada semuanya kami sampaikan
terimakasih, semoga Allah swt senantiasa memberi balasan kebaikan kepada mereka semuanya
Selanjutnya, demi kesempurnaan laporan ini kami sangat berharap saran dan kritik yang
konstruktif dari semua pihak, sehingga dalam laporan berikutnya akan diperoleh tingkat kualitas laporan
yang lebih baik.
Dan, akhirnya, hanya kepada Allah swt, segala bentuk pengabdian kita arahkan dan tujukan demi
memperoleh ridho- Nya.
Penyusun,
Final Project Struktur Data 2012
2
DAFTAR ISI
KATA PENGANTAR .................................................................................................................................. i
DAFTAR ISI ............................................................................................................................................. ii
BAB I PENDAHULUAN ............................................................................................................................ 3
1.1 LATAR BELAKANG .......................................................................................................................... 3
1.2 RUMUSAN MASALAH .................................................................................................................... 3
1.3 BATASAN MASALAH ...................................................................................................................... 3
1.4 TUJUAN PENULISAN ...................................................................................................................... 4
1.5 SCHEDULE PENGERJAAN ................................................................................................................ 5
BAB II LANDASAN TEORI ......................................................................................................................... 6
2.1 POKOK PEMBAHASAN ................................................................................................................... 6
2.2 DASAR TEORI ................................................................................................................................. 8
BAB III ANALISA DAN PERANCANGAN SISTEM ..................................................................................... 10
3.1 PERANCANGAN INTERFACES ....................................................................................................... 10
3.2 ADMIN LOGIN INTERFACES .......................................................................................................... 10
3.3 MENU UTAMA ............................................................................................................................. 14
3.4 DATA MAHASISWA ...................................................................................................................... 17
3.5 MATA KULIAH INTERFACES ......................................................................................................... 19
3.6 TRANSKRIP INTERFACES .............................................................................................................. 26
3.7 SOURCE CODE ............................................................................................................................ 33
BAB IV KESIMPULAN ........................................................................................................................... 42
4.1 KESIMPULAN ............................................................................................................................... 42
Final Project Struktur Data 2012
3
BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
Pada dasarnya Sebuah perguruan tinggi membutuhkan suatu langkah untuk mempermudah
proses pengambilan nilai akhir pada mahasiswanya, untuk itu dibuatlah sebuah program untuk
mempermudah proses tersebut. Program ini hanya dimungkinkan untuk memproses satu demi satu
transkip nilai mahasiswa, tidak sama halnya dengan program pendaftaran mahasiswa baru yang dapat
secara langsung menginputkan beberapa calon mahasiswa sekaligus. Akan tidak mungkin jika saat dalam
proses penginputan program transkip nilai tersebut kita langsung memasukkan nilai beberapa
mahasiswa , maka pada proses output dari nilai beberapa mahasiswa akan tercampur aduk dan program
justru terlihat tidak efektif.
1.2 RUMUSAN MASALAH
1. langkah apa yang harus kita lakukan agar proses input nilai menjadi lebih efektif ?
2. bagaimana agar mahasiswa bisa mengetahui hasil nilai dengan cepat ?
3. apa langkah yang kita lakukan agar hasil transkip nilai lebih akurat?
1.3 BATASAN MASALAH
Agar identifikasi masalah yang dibahas ini lebih jelas dan mudah dipahami, maka dibuatlah
batasan masalah dalam beberapa hal
1. Sistem yang dibangun dapat mengelola data mahasiswa, data mata kuliah, serta mencetak
transkrip nilai.
2. Pembuatan laporan transkrip nilai terdiri dari berbagai laporan yang di ambil dari data
mahasiswa serta data matakuliah.
Final Project Struktur Data 2012
4
1.4 TUJUAN PENULISAN
1. Membuat proses input nilai menjadi lebih efektif
2. Memberikan kemudahan bagi mahasiswa untuk mengetahui hasil nilai dengan cepat.
3. Menjadikan output nilai yang lebih akurat.
1.5 SCHEDULE PENGERJAAN
Mungkin dari kami semua telah bekerja dengan maksimal dengan pembagina tugas masing dan
semua telah melaksanakan dengan bagus, dengan pembagian tugas sebagai berikut :
Coding dan pembuatan program :
No. Tanggal Daftar Hadir Keterangan
1. Rabu, 21 Desember M. Iqbal Shaufi
M. Rahmat Hidayat
Arbiyan T.K
Jajar Gantara
Javad Iqbal
Ali Zainal
Mengerjakan Coding
Program
2. Sabtu, 25 Desember M. Iqbal Shaufi
M. Rahmat Hidayat
Arbiyan T.K
Jajar Gantara
Javad Iqbal
Ali Zainal
Membuat Analisis dan
Perbaikan Program
Final Project Struktur Data 2012
5
3. Minggu, 26 Desember M. Iqbal Shaufi
M. Rahmat Hidayat
Arbiyan T.K
Jajar Gantara
Javad Iqbal
Ali Zainal
Fix Program
4. Senin, 28 Desember M. Iqbal Shaufi
M. Rahmat Hidayat
Arbiyan T.K
Jajar Gantara
Javad Iqbal
Ali Zainal
Pembagian tugas dalam
pembuatan laporan
untuk Final Project
5. Selasa, 3 Januari M. Iqbal Shaufi
M. Rahmat Hidayat
Arbiyan T.K
Jajar Gantara
Javad Iqbal
Ali Zainal
Pengumupulan dan
penjilidan laporan
Ttd
Ketua
Final Project Struktur Data 2012
6
BAB II
LANDASAN TEORI
2.1 Pokok Pembahasan
Dalam bahasa C/C++, ada beberapa fungsi yang harus kita ketahui dan pahami secara seksama,
karena fungsi-funsi tersebut yang sering digunakan untuk pembuatan program. Berikut ini fungsi-
fungsinya :
• <stdio.h> yang merupakan singkatan dari "standard input / output header", adalah header yang
berisi definisi makro, konstanta, dan deklarasi fungsi dan jenis yang digunakan untuk berbagai
standard input dan output operasi
• <iostream> untuk melaksanakan perintah dari input dan output
• <conio.h> adalah header file yang digunakan untuk membuat teks antarmuka pengguna
• <assert.h> adalah file header yang mendefinisikan makro menegaskan C preprocessor
• <complex.h> adalah file header yang mendefinisikan fungsi untuk aritmatika kompleks
• <ctype.h> adalah header untuk deklarasi yang berfungsi mengklasifikasi karakter
• <errno.h> adalah file header yang berfungsi melaporkan kondisi kesalahan melalui kode
kesalahan.
• <fenv.h> adalah file header yang mengandung berbagai fungsi dan macro untuk memanipulasi
lingkungan floating-point
• <float.h> adalah header yang berfungsi memperluas ke berbagai limit dan parameter dari jenis
floating-point standar
• <inttypes.h> file header berfungsi mendefinisikan beberapa macro untuk digunakan dengan
fungsi printf dan scanf, serta fungsi untuk bekerja dengan jenis intmax_t.
• <iso646.h> adalah header yang mendefinisikan beberapa macro yang memungkinkan
programmer untuk menggunakan C bitwise bahasa dan operator logika, yang, tanpa file header,
tidak bisa cepat atau mudah diketik pada beberapa keyboard non-QWERTY internasional
• limits.h adalah file header dari perpustakaan standar bahasa pemrograman C yang mencakup
definisi karakteristik dari jenis variabel umum
• <locale.h> adalah pemrograman bahasa C file header, digunakan untuk tujuan lokalisasi
• <math.h> berisi prototype fungsi untuk pustaka matematika
Final Project Struktur Data 2012
7
• <string.h> berisi prototype fungsi untuk pemrosesan string
• getch ()
Fungsi getch() (get character and echo) dipakai untuk membaca sebuah karakter dengan sifat
karakter yang dimasukkan tidak perlu diakhiri dengan menekan tombol ENTER, dan karakter
yang dimasukan tidak akan ditampilkan di layar.
• clrscr()
Fungsi ini digunkan untuk membersihkan layar window dan memindahkan posisi kursor ke baris
1 kolom 1 (pojok kiri atas).
• cout()
Fungsi cout() merupakan sebuah objek didalam Borland C++ digunakan untuk menampilkan
suatu data kelayar.
• cin ()
Fungsi cin() merupakan sebuah objeck didalam C++ digunakan untuk
memasukkan suatu data.
• endl
endl merupakan suatu fungsi manipulator yang digunakan untuk menyisipkan karakter NewLine
atau mengatur pindah baris. Fungsi ini sangat berguna untuk piranti keluaran berupa file di disk.
• strcmp()
Digunakan untuk membandingkan dua string Bentuk umum : strcmp (string1, string2)
Dalam beberapa literature, array sering disebut (diterjemahkan) sebagai array. Array merupakan
kumpulan dari nilai-nilai data yan bertipe sama dalam urutan tertentu yang menggunakan sebuah nama
yang sama.
Array memiliki beberapa macam dimensi, ada array berdimensi satu, array berdimensi dua, array
berdimensi tiga atau array berdimensi lebih dari tiga. Array berdimensi satu ( one dimensional array )
mewakili bentuk suatu vector. Array berdimensi dua ( two-dimensional array) mewakili bentuk dari
suatu matriks atau tabel. Array bedimensi tiga ( three-dimensional array) mewakili bentuk dari suatu
Final Project Struktur Data 2012
8
ruang. Dalam pemrograman C++ pada Array, jika kita membuat suatu program yang memerlukan
berbagai tipe data yang akan digunakan. Tentunya dengan nama variable yang banyak pula.
Dalam program yang sederhana, jika kita manggunakan sedikit variable tentu tidak jadi masalah.
Akan tetapi jika kita akan membuat sebuah program yang lebih kompleks, dengan berbagai macam
nama dan tipe variable dalam pendeklarasianya. Dengan struct, kita bisa mengelompokkan berbagai
nama dan tipe variable tersebut sesuai dengan kelompoknya. Hal ini tentunya bisa berguna untuk
memudahkan dalam mengelompokkan sebuah variable. Sebagai contoh umum, ada terdapat berbagai
nama variable : nama, npm, alamat, dll. Variabel – variable tersebut dapat kita kelompokkan menjadi
satu dengan nama data_mahasiswa. Kemudian jika terdapat variable mata_kuliah, nilai, sks, kelas, dll
dapat kita kelompokkan menjadi satu dengan nama krs.
2.2 Dasar Teori
Array merupakan sekumpulan data yang mempunyai nama dan tipe yang sama, Array disebut juga
variabel berindeks. Nilai suatu data dalam Array ditentukan oleh nama dan indeksnya. Array banyak
digunakan pada operasi yang melibatkan indeks seperti pada statistic.
Tipe data Array dapat berupa Array satu dimensi (1D), dua dimensi (2D), tiga dimensi (3D) atau
banyak dimensi. Cara pendeklarasiannya dalam bahasa C++ , yaitu :
• Array satu dimensi:
Tipe_Array nama_Array[ukuran]
Contoh : double Array_1[10]
• Array dua dimensi :
Tipe_Array nama_Array[ukuran1][ukuran2]
Contoh : int Array_2[10][10]
• Array tiga dimensi :
Tipe_Array nama_Array[ukuran1][ukuran2][ukuran3]
Contoh : float Array_3[10][10][10]
Definisi Struktur (struct) sendiri adalah kumpulan dari variabel yang dinyatakan dengan sebuah
nama , dengan sifat setiap variabel dapat memiliki tipe yang berlainan.
Final Project Struktur Data 2012
9
Manfaat tipe data struct secara umum adalah untuk menyimpan paket (sekumpulan) data ke
dalam satu buah nama variabel saja. Kumpulan data tersebut diikat sedemikian rupa menjadi satu.
Kumpulan data di dalam sebuah struct bisa mempunyai tipe data dasar yang beraneka ragam. Kumpulan
data dalam sebuah struct sangat dianjurkan membentuk sebuah kesatuan makna berkaitan dengan
nama struct-nya. Bentuk struktur data yang dapat menyimpan variabel-variabel dalam 1 nama, namun
memiliki tipe data yang berbeda ataupun sama. Variable-variabel tersebut memiliki kaitan satu sama
yang lain.
Bentuk umum :
typedef struct nama_struct{
tipe_data ;
tipe_data ;
....
};
Final Project Struktur Data 2012
10
BAB III
PERANCANGAN SERTA ANALISA SISTEM
3.1 Perancangan Interfaces
Program transkrip nilai yang dibuat terdiri dari 5 menu yaitu :
1.Login Admin (interface pertama yang muncul sebelum masuk ke menu selanjutnya)
2.Data Mahasiswa (Interface yang di gunakan untuk menginputkan data mahasiswa)
3.Olah Nilai (Interface yang di gunakan untuk mengolah jumlah mata kuliah beserta nilainya)
4.Transkrip Nilai (interface untuk mengolah transkrip nilai)
5.Exit (keluar dari aplikasi)
3.2 LOGIN ADMIN
Final Project Struktur Data 2012
11
Pada menu ini user akan di hadapkan oleh interface untuk memasukkan username dan
password yang sesuai agar dapat masuk ke menu utama, jika password dan username salah maka
aplikasi akan melakukan pengulanagn sampai inputan yang dimasukkan bernilai benar (true).
Perancangan kode :
Variabel yang di gunakan adalah :
1.userA dengan tipe data char[5]
2.passA dengan tipe data char[5]
start of code :
menu1:
system("title ADMIN LOGIN");
cout<<endl<<endl<<endl;
cout<<"\t\t"<<endl;
cout<<"\t\t\t W E L C O M E "<<endl;
cout<<"\t\t"<<endl;
cout<<"\t\t Insert User Name & Password"<<endl;
cout<<"\t\t"<<endl;
cout<<endl;
cout<<" \t\t Username : ";cin>>userA;
cout<<" \t\t Password : ";cin>>passA;
if(strcmp(userA,"Shaufi")==0 && strcmp(passA,"406680")==0)
{
clrscr();
Final Project Struktur Data 2012
12
menu:
….......................
….................. (isi kode dari menu utama)
…...............................
…................
else
{
cout<<endl<<endl;
cout<<"\t\t ID & PASS YANG ANDA INPUTKAN SALAH !! ";getch();
clrscr();
goto menu1;
}
end of code :
Penjelasan kode :
menu1:
system("title ADMIN LOGIN");
cout<<endl<<endl<<endl;
cout<<"\t\t"<<endl;
cout<<"\t\t\t W E L C O M E "<<endl;
cout<<"\t\t"<<endl;
cout<<"\t\t Insert User Name & Password"<<endl;
cout<<"\t\t"<<endl;
Final Project Struktur Data 2012
13
cout<<endl;
Kode di atas berfungsi untuk menampilkan Kata “WELCOME”, “Insert Username & Password”,
dengan menggunakan syntax “cout” dengan menyertakan file header iostream untuk operasi input dan
outputnya serta menampilkan judul “Admin Login” pada sudut kiri atas aplikasi dengan syntax
“system(parameter)” dengan menyertakan file header stdlib.
cout<<" \t\t Username : ";cin>>userA;
cout<<" \t\t Password : ";cin>>passA;
if(strcmp(userA,"Shaufi")==0 && strcmp(passA,"406680")==0)
{
clrscr();
menu:
…..
….......isi dari menu utama
…........
….....................
….....................
else
{
cout<<endl<<endl;
cout<<"\t\t ID & PASS YANG ANDA INPUTKAN SALAH !! ";getch();
Final Project Struktur Data 2012
14
clrscr();
goto menu1;
}
Kode di atas berfungsi untuk menampilkan username dan password serta menerima inputan
dari user untuk memasukkan username dan password. Syntax “cin>>userA” akan mnampung data
username yang dimasukkan oleh user ke dalam variabel “userA”. Sedangkan syntax “cin>>passA” akan
menampung data password yang dimasukkan oleh user ke dalam variabel “passA”.
Kemudian program akan melakukan pengecekan terhadap kedua variabel tersebut dengan
membandingkan kedua string tersebut dengan syntax strcmp yang telah di deklarasikan sebelumnya
untuk variabel “userA” harus bernilai “Shaufi” sedangkan “passA” harus bernilai 406680” apabila
kondisi tersebut terpenuhi maka program akan melakukan penghapusan layar dengan syntax clrscr()
kemudian masuk ke menu utama dari program tersebut yang di beri label “ menu: “
Sedangkan jika kondisi diatas tidak terpenuhi maka program akan menampilkan output berupa “ID &
PASS YANG ANDA INPUTKAN SALAH” kemudian program akan masuk ke label “ menu1: “ dengan syntax
“ goto [nama label]; “ untuk kembali memasukkan username dan password yang benar.
3.3 MENU UTAMA
Final Project Struktur Data 2012
15
Menu utama terdiri output untuk memilih
1. Data Mahasiswa
2. Olahan (menu untuk mengolah berapa banyak mata kuliah yang diambil serta nilainya)
3. Cetak Transkrip Nilai
4. Keluar (keluar dari program)
Untuk itu diperlukan kondisi pemilihan dengan menggunakan syntax “ switch-case ” di mana
ketika user memilih angka 1 maka ia akan masuk ke menu “ Data Mahasiswa “ kemudian jika user
memilih angka 2 user akan di bawa ke menu “ Olahan ” dan begitu seterusnya.
Perancangan kode :
Variabel yang di gunakan adalah “ pil “ dengan tipe data integer
start of code :
menu: system("title MENU"); cout<<"\t\t ======================================="<<endl; cout<<"\t\t ===== D A T A M A H A S I S W A ====="<<endl; cout<<"\t\t ======================================="<<endl; cout<<endl; cout<<"\t\t [1] Data Mahasiswa "<<endl; cout<<"\t\t [2] Olahan"<<endl; cout<<"\t\t [3] Cetak Transkip Nilai"<<endl; cout<<"\t\t [4] Keluar"<<endl; cout<<"\t\t Pilihan anda : ";cin>>pil; clrscr();
switch(pil)
{
case 1:
…..................... ( berisi kode untuk
…..................... menu data Mahasiswa )
…....................
clrscr();
Final Project Struktur Data 2012
16
goto menu:
case 2:
…..................... ( berisi kode untuk
…..................... menu Olahan )
clrscr();
goto menu;
case 3:
…..................... ( berisi kode untuk
…..................... menu Cetak Transkrip Nilai )
clrscr();
goto menu;
case 4: break;
}
penjelasan kode :
Kode di atas sudah cukup jelas, user disuruh menginputkan pilihannya berupa angka 1 – 4 yang
akan ditampung ke variabel “ pil “ kemudian program akan melakukan kondisi pemilihan dengan
menswitch variabel yang dipilih, jika pilhan user adalah 1 (case 1:) maka user akan masuk ke menu Data
Mahasiswa, kemudian program akan mengeksekusi kode yang ada di dalam menu Data Mahasiswa
tersebut sampai selesai kemudian kembali lagi ke menu utama yang di beri label “ menu: “ begitu juga
dengan case 2 dan case 3.
Untuk case 4 program akan dipaksa untuk terminated/keluar dengan menambah parameter “ break; “
Final Project Struktur Data 2012
17
3.4 DATA MAHASISWA
Menu Data Mahasiswa ini akan dirancang didalam kode :
case 1:
…... ( kode yang berisikan
…... data mahasiswa)
clrscr();
goto menu;
Perancangan kode :
Variabel yang di gunakan :
char nama[20] (digunakan untuk menampung data nama mahasiswa)
char nim[20] (di gunakan untuk menampung data NIM)
Final Project Struktur Data 2012
18
char kelas[20] (menampung data kelas)
char tahun[20] (menampung tahun ajaran)
char sem[5] (menampung semester yang ditempuh)
char jur[15] (menampung data jurusan yang di ambil)
char status[5] (menampung status mahasiswa)
start of code :
system("title MAHASISWA"); cout<<"\t\t ======================================="<<endl; cout<<"\t\t ===== D A T A M A H A S I S W A ====="<<endl; cout<<"\t\t ======================================="<<endl; cout<<endl; cout<<"\t\tNama Mahasiswa : ";gets(nama); cout<<"\t\tNIM Mahasiswa : ";cin>>nim; cout<<"\t\tKelas : ";gets(kelas); cout<<"\t\tJurusan : ";cin>>jur; cout<<"\t\tTahun Ajaran : ";cin>>tahun; cout<<"\t\tSemester (Genap/Ganjil)\t : ";cin>>sem; cout<<"\t\tStatus Mahasiswa : ";cin>>status; cout<<endl; cout<<"\t\t Press enter to main menu . . . "<<endl; getch(); clrscr(); goto menu;
End of code :
Penjelasan kode :
Kode di atas meminta inputan dari user berupa
Nama Mahasiswa, NIM Mahasiswa, Kelas, Jurusan, Tahun ajaran, Semester yang sedang di
tempuh (Ganjil/Genap), dan Status Mahasiswa (Aktif/Tidak). Dalam kode diatas hanya variabel nama
dan kelas yang menggunakan parameter “ gets() “ hal ini dimaksudkan untuk mengantisipasi adanya
spasi yang ikut diinputkan oleh user.
Final Project Struktur Data 2012
19
3.5 MATA KULIAH
Menu Matakuliah ini akan dirancang didalam kode :
case 2:
…... ( kode yang berisikan
…... data matakuliah beserta nilainya)
clrscr();
goto menu;
Perancangan Algoritma :
Dalam membuat program transkrip nilai maka kita memerlukan variabel variabel yang di butuhkan Yang
akan di masukkan ke dalam struct Transkrip_nilai.
Final Project Struktur Data 2012
20
Variabel yang ditampung dalam struct Transkrip_nilai adalah :
1. Kode dengan tipe data integer (berfungsi untuk menampung data kode matakuliah)
2. sks dengan tipe data integer (berfungsi untuk menampung data banyaknya sks
3. nil_kon dengan tipe data integer ( )
4. nama[50] dengan tipe data char (merupakan string yang digunakan untuk menampung data
nama matakuliah)
5. grade dengan tipe data char (akan menampung data grade nilai mahasiswa “ A-E ”)
6. sifat [15] dengan tipe data char (akan menampung data sifat matakuliah “ Wajib/Pilhan ”)
7. nilai dengan tipe data float (berfungsi untuk menampung nilai yang akan di inputkan)
Sedangkan variabel lokal yang digunakan adalah :
1. total_sks dengan tipe data integer ( akan menampung data total sks)
2. jml_nil dengan tipe data float (menampung data keseluruhan jumlah nilai)
3. total_nil dengan tipe data float (menampung data Total nilai)
4. ipk dengan tipe data float (untuk menampung data ipk mahasiswa)
Rumus untuk mencari total sks adalah :
total sks = total sks (inisialisasi pertamanya adalah 0) + transkrip[i].sks
Rumus untuk mencari jumlah nilai :
jumlah nilai = transkrip[i].nil_kon * transkrip[i].sks
Rumus total nilai adalah :
total nilai = total nilai(inisialisasi pertamanya adalah 0) + jumlah nilai
Rumus mencari IPK :
IPK = total nilai / total sks
Start Of Code :
case 2: struct Transkip_nilai transkip[50];
system("title MATA KULIAH");
cout<<"\t\t ======================================="<<endl;
Final Project Struktur Data 2012
21
cout<<"\t\t ======= M A T A K U L I A H ========"<<endl;
cout<<"\t\t ======================================="<<endl;
cout<<"\n\t\t\tmasukan banyak matakuliah : ";cin>>n;
cout<<endl;
cout<<"\t===================================================================="<<endl;
for (i=1;i<=n;i++)
{
cout<<"\tmasukan kode matakuliah : ";cin>>transkip[i].kode;
cout<<"\tmasukan nama matakuliah : ";gets(transkip[i].nama);
cout<<"\tmasukan sifat matakuliah : ";cin>>transkip[i].sifat;
cout<<"\tmasukan sks matakuliah : ";cin>>transkip[i].sks;
cout<<"\tmasukan nilai matakuliah : ";cin>>transkip[i].nilai;
cout<<"\t================================================================="<<endl;
if(transkip[i].nilai >= 80 && transkip[i].nilai <= 100)
{ transkip[i].grade='A';}
else if(transkip[i].nilai >= 60 && transkip[i].nilai < 80)
{ transkip[i].grade='B';}
else if(transkip[i].nilai >= 40 && transkip[i].nilai < 60)
{ transkip[i].grade='C';}
else if(transkip[i].nilai >= 20 && transkip[i].nilai < 40)
Final Project Struktur Data 2012
22
{ transkip[i].grade ='D';}
else
{ transkip[i].grade='E';}
if(transkip[i].grade =='A')
{transkip[i].nil_kon=4;}
else if(transkip[i].grade =='B')
{transkip[i].nil_kon=3;}
else if(transkip[i].grade =='C')
{transkip[i].nil_kon=2;}
else if(transkip[i].grade =='D')
{transkip[i].nil_kon=1;}
else if(transkip[i].grade =='E')
{transkip[i].nil_kon=0;}
total_sks=total_sks + transkip[i].sks;
jml_nil=(transkip[i].nil_kon*transkip[i].sks);
total_nil=(total_nil+jml_nil);
}
ipk=total_nil/total_sks;
cout<<endl;
cout<<"\t\t\t Press enter to main menu . . . "<<endl;
getch();
Final Project Struktur Data 2012
23
clrscr();
goto menu;
End Of Code
case 2: struct Transkip_nilai transkip[50];
system("title MATA KULIAH");
cout<<"\t\t ======================================="<<endl;
cout<<"\t\t ======= M A T A K U L I A H ========"<<endl;
cout<<"\t\t ======================================="<<endl;
cout<<"\n\t\t\tmasukan banyak matakuliah : ";cin>>n;
Penjelasan kode :
Kode di atas meminta banyaknya matakuliah yang akan di tampung pada variabel n
cout<<"\t===================================================================="<<endl;
for (i=1;i<=n;i++)
{
cout<<"\tmasukan kode matakuliah : ";cin>>transkip[i].kode;
cout<<"\tmasukan nama matakuliah : ";gets(transkip[i].nama);
cout<<"\tmasukan sifat matakuliah : ";cin>>transkip[i].sifat;
cout<<"\tmasukan sks matakuliah : ";cin>>transkip[i].sks;
cout<<"\tmasukan nilai matakuliah : ";cin>>transkip[i].nilai;
cout<<"\t================================================================="<<endl;
Final Project Struktur Data 2012
24
Penjelasan kode :
kode di atas di awali dengan perulangan dimana indeks ke i sama dengan 1 sampai dengan n kemudian
program meminta inputan seperti kode matakuliah, nama matakuliah, sifat matakuliah, banyaknya sks,
serta nilai matakuliah.
Yang perlu diperhatikan disini adalah bahwa variabel transkrip[i].variabel akan melakukan perulangan
sebanyak i kali, contoh ketika jumlah matakuliah yang di masukkan ada 2 maka indeksnya adalah i = 1
sampai 2, kemudian program akan menerima inputan sebanyak i kali :
contoh :
cout<<"\tmasukan kode matakuliah : ";cin>>transkip[i].kode;
karena kondisi awal i adalah 1 sedangkan indeksnya sampai 2, berarti user masih akan melakukan
inputan sebanyak satu kali lagi.
if(transkip[i].nilai >= 80 && transkip[i].nilai <= 100)
{ transkip[i].grade='A';}
else if(transkip[i].nilai >= 60 && transkip[i].nilai < 80)
{ transkip[i].grade='B';}
else if(transkip[i].nilai >= 40 && transkip[i].nilai < 60)
{ transkip[i].grade='C';}
else if(transkip[i].nilai >= 20 && transkip[i].nilai < 40)
{ transkip[i].grade ='D';}
else
{ transkip[i].grade='E';}
Penjelasan kode :
Kode di atas adalah kondisi pemilihan dimana jika varibel nilai bernilai 80 sampai dengan 100 maka
gradenya adalah “A”,
Final Project Struktur Data 2012
25
Jika nilainya 60 sampai dengan 79 maka gradenya adalah “B”,
Jika nilainya 40 sampai dengan 59 maka gradenya adalah “C”,
Jika nilainya 20 sampai dengan 39 maka gradenya adalah “D”,
selain dari ketentua di atas maka gradenya adalah “E”
if(transkip[i].grade =='A')
{transkip[i].nil_kon=4;}
else if(transkip[i].grade =='B')
{transkip[i].nil_kon=3;}
else if(transkip[i].grade =='C')
{transkip[i].nil_kon=2;}
else if(transkip[i].grade =='D')
{transkip[i].nil_kon=1;}
else if(transkip[i].grade =='E')
{transkip[i].nil_kon=0;}
Penjelasan kode :
Kode di atas juga merupakan sebuah kondisi pemilihan di mana jika,
gradenya A maka variabel nil_kon diisi dengan nilai 4, jika
gradenya B maka variabel nil_kon diisi dengan nilai 3, jika
gradenya C maka variabel nil_kon diisi dengan nilai 2, jika
gradenya D maka variabel nil_kon diisi dengan nilai 1, jika
gradenya E maka variabel nil_kon diisi dengan nilai 0
Final Project Struktur Data 2012
26
total_sks=total_sks + transkip[i].sks;
jml_nil=(transkip[i].nil_kon*transkip[i].sks);
total_nil=(total_nil+jml_nil);
}
ipk=total_nil/total_sks;
Penjelasan kode :
kode di atas merupakan rumus dalam menentukan total sks, jumlah nilai, total nilai serta IPK
3.6 TRANSKRIP NILAI
Perancangan kode :
variabel yang di gunakan adalah :
Final Project Struktur Data 2012
27
1.nama, nim ,kelas, jur, tahun, sem, status yang di ambil menu “Data Mahasiswa,”
2.transkip[i].kode
strupr(transkip[i].nama)
transkip[i].sifat
transkip[i].sks
transkip[i].grade
yang di ambil dari data Matakuliah
Start of code :
case 3:
system("title TRANSKRIP");
cout<<endl;
cout<<endl;
cout<<"\t================================================================="<<endl;
cout<<"\t ++++++++++++++++++++ Transkip NIlai Anda +++++++++++++++++++++"<<endl;
cout<<"\t================================================================="<<endl;
cout<<"\t Nama Mahasiswa : "<<nama<<endl;
cout<<"\t NIM Mahasiswa : "<<nim<<endl;
cout<<"\t Kelas : "<<kelas<<endl;
cout<<"\t Jurusan : "<<jur<<endl;
cout<<"\t Tahun Ajaran : "<<tahun<<endl;
cout<<"\t Semester (Genap/Ganjil)\t : "<<sem<<endl;
cout<<"\t Status Mahasiswa\t : "<<status<<endl;
Final Project Struktur Data 2012
28
cout<<endl;
cout<<endl;
cout<<" -oo00* T R A N S K I P N I L A I *00oo-\n";
cout<<" ====================================================\n\n";
cout<<"======================================================================\n";
cout<<"N0.| KODE | MATAKULIAH | SIFAT | SKS | GRADE |\n";
cout<<"======================================================================\n";
cout<<" | | | | | |\n";
for(i=1;i<=n;i++)
{
cout<<setiosflags(ios::left)<<setw(3)<<i<<"|";
cout<<setiosflags(ios::left)<<setw(8)<<transkip[i].kode<<"|";
cout<<setiosflags(ios::left)<<setw(22)<<strupr(transkip[i].nama)<<"|";
cout<<setiosflags(ios::left)<<setw(13)<<transkip[i].sifat<<"|";
cout<<setiosflags(ios::left)<<setw(7)<<transkip[i].sks<<"|";
cout<<setiosflags(ios::left)<<setw(11)<<transkip[i].grade<<"|"<<endl;
}
cout<<"=====================================================================|";
cout<<setiosflags(ios::left)<<"\nTOTAL SKS KESELURUHAN :
"<<setiosflags(ios::right)<<setw(45)<<total_sks<<"|";
cout<<"\n=====================================================================|";
cout<<setiosflags(ios::left)<<"\nIPK ANDA : "<<setiosflags(ios::right)<<setw(45)<<ipk<<"|";
cout<<"\n=====================================================================|";
Final Project Struktur Data 2012
29
cout<<endl;
cout<<endl;
cout<<"\t\tAnda Melakukan Transkip Lagi ?? (Y/T) : ";cin>>ulang;
if (ulang=='Y' || ulang=='y')
{clrscr();
goto menu;}
else if (ulang=='T' || ulang=='t')
{clrscr();
cout<<"\n\n\n\n\n\t\t Terima Kasih telah menggunaka program kami..^^ ";
getch(); }
End Of Code
case 3:
system("title TRANSKRIP");
cout<<endl;
cout<<endl;
cout<<"\t================================================================="<<endl;
cout<<"\t ++++++++++++++++++++ Transkip NIlai Anda +++++++++++++++++++++"<<endl;
cout<<"\t================================================================="<<endl;
cout<<"\t Nama Mahasiswa : "<<nama<<endl;
cout<<"\t NIM Mahasiswa : "<<nim<<endl;
cout<<"\t Kelas : "<<kelas<<endl;
cout<<"\t Jurusan : "<<jur<<endl;
Final Project Struktur Data 2012
30
cout<<"\t Tahun Ajaran : "<<tahun<<endl;
cout<<"\t Semester (Genap/Ganjil)\t : "<<sem<<endl;
cout<<"\t Status Mahasiswa\t : "<<status<<endl;
cout<<endl;
Penjelasan kode :
Kode di atas akan menampilkan data mahasiswa yang di ambil dari variabel variable yang telah
di inputkan dari menu Data Mahasiswa.
cout<<endl;
cout<<" -oo00* T R A N S K I P N I L A I *00oo-\n";
cout<<" ====================================================\n\n";
cout<<"======================================================================\n";
cout<<"N0.| KODE | MATAKULIAH | SIFAT | SKS | GRADE |\n";
cout<<"======================================================================\n";
cout<<" | | | | | |\n";
for(i=1;i<=n;i++)
{
cout<<setiosflags(ios::left)<<setw(3)<<i<<"|";
cout<<setiosflags(ios::left)<<setw(8)<<transkip[i].kode<<"|";
cout<<setiosflags(ios::left)<<setw(22)<<strupr(transkip[i].nama)<<"|";
Final Project Struktur Data 2012
31
cout<<setiosflags(ios::left)<<setw(13)<<transkip[i].sifat<<"|";
cout<<setiosflags(ios::left)<<setw(7)<<transkip[i].sks<<"|";
cout<<setiosflags(ios::left)<<setw(11)<<transkip[i].grade<<"|"<<endl;
}
cout<<"=====================================================================|";
cout<<setiosflags(ios::left)<<"\nTOTAL SKS KESELURUHAN :
"<<setiosflags(ios::right)<<setw(45)<<total_sks<<"|";
cout<<"\n=====================================================================|";
cout<<setiosflags(ios::left)<<"\nIPK ANDA : "<<setiosflags(ios::right)<<setw(45)<<ipk<<"|";
cout<<"\n=====================================================================|";
cout<<endl;
cout<<endl;
Penjelasan kode :
Kode diatas akan menampilkan semua matakuliah yang diinputkan beserta grade, total sksnya,
serta ipk dari mahasiswa bersangkutan, penggunaan setw(n) berfungsi agar saat proses keluaran
mendapat spasi sebanyak n kali.
cout<<"\t\tAnda Melakukan Transkip Lagi ?? (Y/T) : ";cin>>ulang;
if (ulang=='Y' || ulang=='y')
{clrscr();
goto menu;}
else if (ulang=='T' || ulang=='t')
{clrscr();
cout<<"\n\n\n\n\n\t\t Terima Kasih telah menggunaka program kami..^^ ";
Final Project Struktur Data 2012
32
getch(); }
Penjelasan kode
Kode di atas merupakan kondisi pemilihan di mana user akan memilih apakah ingin mengulang
kembali ke program utama? (Y/y) atau tidak (T/t) jika user menginputkan “T” maka program akan
keluar atau terminated.
Final Project Struktur Data 2012
33
3.7 Source Code
Setelah merancang kode, sekarang saatnya merancang kode menjadi satu kesatuan
#include <iostream>
#include <conio>
#include <stdio>
#include <iomanip>
#include <stdlib>
struct Transkip_nilai
{
int kode;
int sks;
int nil_kon;
char nama[50];
char grade;
char sifat [15];
float nilai;
};
main()
Final Project Struktur Data 2012
34
{
int i,n;
char nama[20],nim[20],kelas[20],tahun[20],sem[5],jur[15],status[5];
char userA[5], passA[5], ulang;
int pil, total_sks;
float ipk, jml_nil, total_nil;
menu1:
system("title ADMIN LOGIN");
cout<<endl<<endl<<endl;
cout<<"\t\t"<<endl;
cout<<"\t\t\t W E L C O M E "<<endl;
cout<<"\t\t"<<endl;
cout<<"\t\t Insert User Name & Password"<<endl;
cout<<"\t\t"<<endl;
cout<<endl;
cout<<" \t\t Username : ";cin>>userA;
cout<<" \t\t Password : ";cin>>passA;
if(strcmp(userA,"Shaufi")==0 && strcmp(passA,"406680")==0)
{
clrscr();
Final Project Struktur Data 2012
35
menu:
system("title MENU");
cout<<"\t\t ======================================="<<endl;
cout<<"\t\t ===== D A T A M A H A S I S W A ====="<<endl;
cout<<"\t\t ======================================="<<endl;
cout<<endl;
cout<<"\t\t [1] Data Mahasiswa "<<endl;
cout<<"\t\t [2] Olahan"<<endl;
cout<<"\t\t [3] Cetak Transkip Nilai"<<endl;
cout<<"\t\t [4] Keluar"<<endl;
cout<<"\t\t Pilihan anda : ";cin>>pil;
clrscr();
switch(pil)
{
case 1:
system("title MAHASISWA");
cout<<"\t\t ======================================="<<endl;
cout<<"\t\t ===== D A T A M A H A S I S W A ====="<<endl;
cout<<"\t\t ======================================="<<endl;
cout<<endl;
cout<<"\t\tNama Mahasiswa : ";gets(nama);
Final Project Struktur Data 2012
36
cout<<"\t\tNIM Mahasiswa : ";cin>>nim;
cout<<"\t\tKelas : ";gets(kelas);
cout<<"\t\tJurusan : ";cin>>jur;
cout<<"\t\tTahun Ajaran : ";cin>>tahun;
cout<<"\t\tSemester (Genap/Ganjil)\t : ";cin>>sem;
cout<<"\t\tStatus Mahasiswa : ";cin>>status;
cout<<endl;
cout<<"\t\t Press enter to main menu . . . "<<endl;
getch();
clrscr();
goto menu;
case 2: struct Transkip_nilai transkip[50];
total_sks=0;
total_nil=0;
system("title MATA KULIAH");
cout<<"\t\t ======================================="<<endl;
cout<<"\t\t ======= I N P U T N I L A I ========"<<endl;
cout<<"\t\t ======================================="<<endl;
cout<<"\n\t\t\tmasukan banyak matakuliah : ";cin>>n;
Final Project Struktur Data 2012
37
cout<<endl;
cout<<"\t===================================================================="<<endl;
for (i=1;i<=n;i++)
{
cout<<"\tmasukan kode matakuliah : ";cin>>transkip[i].kode;
cout<<"\tmasukan nama matakuliah : ";gets(transkip[i].nama);
cout<<"\tmasukan sifat matakuliah : ";cin>>transkip[i].sifat;
cout<<"\tmasukan sks matakuliah : ";cin>>transkip[i].sks;
cout<<"\tmasukan nilai matakuliah : ";cin>>transkip[i].nilai;
cout<<"\t================================================================="<<endl;
if(transkip[i].nilai >= 80 && transkip[i].nilai <= 100)
{ transkip[i].grade='A';}
else if(transkip[i].nilai >= 60 && transkip[i].nilai < 80)
{ transkip[i].grade='B';}
else if(transkip[i].nilai >= 40 && transkip[i].nilai < 60)
{ transkip[i].grade='C';}
else if(transkip[i].nilai >= 20 && transkip[i].nilai < 40)
{ transkip[i].grade ='D';}
else
{ transkip[i].grade='E';}
if(transkip[i].grade =='A')
{transkip[i].nil_kon=4;}
Final Project Struktur Data 2012
38
else if(transkip[i].grade =='B')
{transkip[i].nil_kon=3;}
else if(transkip[i].grade =='C')
{transkip[i].nil_kon=2;}
else if(transkip[i].grade =='D')
{transkip[i].nil_kon=1;}
else if(transkip[i].grade =='E')
{transkip[i].nil_kon=0;}
total_sks=total_sks + transkip[i].sks;
jml_nil=(transkip[i].nil_kon*transkip[i].sks);
total_nil=(total_nil+jml_nil);
}
ipk=total_nil/total_sks;
cout<<endl;
cout<<"\t\t Press enter to main menu . . . "<<endl;
clrscr();
goto menu;
case 3:
system("title TRANSKRIP");
cout<<endl;
Final Project Struktur Data 2012
39
cout<<endl;
cout<<"\t================================================================="<<endl;
cout<<"\t ++++++++++++++++++++ Transkip NIlai Anda +++++++++++++++++++++"<<endl;
cout<<"\t================================================================="<<endl;
cout<<"\t Nama Mahasiswa : "<<nama<<endl;
cout<<"\t NIM Mahasiswa : "<<nim<<endl;
cout<<"\t Kelas : "<<kelas<<endl;
cout<<"\t Jurusan : "<<jur<<endl;
cout<<"\t Tahun Ajaran : "<<tahun<<endl;
cout<<"\t Semester (Genap/Ganjil)\t : "<<sem<<endl;
cout<<"\t Status Mahasiswa\t : "<<status<<endl;
cout<<endl;
cout<<endl;
cout<<" -oo00* T R A N S K I P N I L A I *00oo-\n";
cout<<" ====================================================\n\n";
cout<<"======================================================================\n";
cout<<"N0.| KODE | MATAKULIAH | SIFAT | SKS | GRADE |\n";
cout<<"======================================================================\n";
cout<<" | | | | | |\n";
for(i=1;i<=n;i++)
{
Final Project Struktur Data 2012
40
cout<<setiosflags(ios::left)<<setw(3)<<i<<"|";
cout<<setiosflags(ios::left)<<setw(8)<<transkip[i].kode<<"|";
cout<<setiosflags(ios::left)<<setw(22)<<strupr(transkip[i].nama)<<"|";
cout<<setiosflags(ios::left)<<setw(13)<<transkip[i].sifat<<"|";
cout<<setiosflags(ios::left)<<setw(7)<<transkip[i].sks<<"|";
cout<<setiosflags(ios::left)<<setw(11)<<transkip[i].grade<<"|"<<endl;
}
cout<<"======================================================================|\n";
cout<<setiosflags(ios::left)<<"\nTOTAL SKS KESELURUHAN :
"<<setiosflags(ios::right)<<setw(48)<<total_sks<<"|";
cout<<"\n=========================================================================|";
cout<<setiosflags(ios::left)<<"\nIPK ANDA : "<<setiosflags(ios::right)<<setw(48)<<ipk<<"|";
cout<<"\n=========================================================================|";
cout<<endl;
cout<<endl;
cout<<"\t\tAnda Melakukan Transkip Lagi ?? (Y/T) : ";cin>>ulang;
if (ulang=='Y' || ulang=='y')
{clrscr();
goto menu;}
else if (ulang=='T' || ulang=='t')
{clrscr();
cout<<"\n\n\n\n\n\t\t Terima Kasih telah menggunakan program kami..^^ ";
getch(); }
Final Project Struktur Data 2012
41
case 4: break;
}
}
else
{
cout<<endl<<endl;
cout<<"\t\t ID & PASS YANG ANDA INPUTKAN SALAH !! ";getch();
clrscr();
goto menu1;
}
}
Final Project Struktur Data 2012
42
BAB IV
KESIMPULAN
4.1 KESIMPULAN
Kesimpulan kami dari program di atas adalah penggunaan struct sangat memudahkan dalam
pengambilan variabel .Manfaat tipe data struct secara umum adalah untuk menyimpan paket
(sekumpulan) data ke dalam satu buah nama variabel saja. Kumpulan data tersebut diikat
sedemikian rupa menjadi satu. Kumpulan data di dalam sebuah struct bisa mempunyai tipe
data dasar yang beraneka ragam. Kumpulan data dalam sebuah struct sangat dianjurkan
membentuk sebuah kesatuan makna berkaitan dengan nama struct-nya. Misal, jika struct-nya
bernama segitiga maka isi struct-nya antara lain: alas, tinggi, luas dan keliling. walaupun
masih banyak kekurangan dari program ini seperti inputan data mahasiswa yang hanya bisa
satu orang kemudian belum ada metode pencarian dalam mencari data mahasiswa sehingga
memudahkan akademisi untuk mengkroscek nilai.