1. LAPORAN PRAKTIKUM
PEMEROGAMAN DASAR
Data Mahasiswa dengan Menggunakan Struct
NAMA ASISTEN:
1. ARDHI SANJAYA
2. AVIN MAULANA
DISUSUN OLEH :
NAMA : FITRI KURNIAWATI
NIM : 155090401111022
TGL.PRAKTIKUM : Rabu,18 Mei 2016
LABORATORIUM MATEMATIKA
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKAN DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS BRAWIJAYA
MALANG
2016
2. Bab I
Soal
Buatlah program dengan ketentuan sebagai berikut :
Input : banyak data, nama, nim, tanggal lahir,bulan lahir,tahun lahir,alamat
asal (kecamatan),alamat asal (kota), tugas 1, tugas 2, utp, uap.
Output : dalam bentuk
Nama Nim Tanggal Lahir Alamat Asal Nilai Akhir Nilai Huruf
Keterangan Tambahan :
Data Mahasiswa
- Nama
- Nim
- Tanggal Lahir
1. Tanggal
2. Bulan
3. Tahun
- Alamat Asal
1. Kecamatan
2. Kota
- Nilai
1. Tugas
a. Tugas 1
b. Tugas 2
2. UTP
3. UAP
4. Nilai akhir
- Nilai Huruf
Nilai akhir = (jumlah
tugas/2)*25% + UTP*30% +
UAP*45%
Nilai Huruf :
A jika nilai >80
B jika nilai >70
C jika nilai >60
D jika nilai >50
E jika nilai selain nilai yang
disebutkan diatas.
3. Source Code
#include <conio.h>
#include <iostream>
using namespace std;
#include <string.h>
main()
{
struct tanggal
{
int tgl,tahun;
string bulan;
}lahir;
struct alamat
{
string kecamatan,kota;
}asal;
struct tugas
{
int tugas1,tugas2;
}total;
struct nilai
4. {
int utp,uap,nilaiakhir;
tugas total;
}skor;
struct biodata
{
string nama;
int NIM;
tanggal lahir;
alamat asal;
nilai skor;
string nilaihuruf;
}data[10];
int n,i;
cout<<"masukkan banyaknya data :";cin>>n;
for(i=0;i<n;i++)
{
cout<<"data ke - "<<i+1;
cout<<"nMasukkan nama : ";
cin>>data[i].nama;
5. cout<<"masukkan nim : ";
cin>>data[i].NIM;
cout<<"masukkan tanggal lahir : ";
cin>>data[i].lahir.tgl ;
cout<<"masukkan bulan lahir: ";
cin>>data[i].lahir.bulan;
cout<<"masukkan tahun lahir : ";
cin>>data[i].lahir.tahun;
cout<<"masukkan alamat asal, kecamatan : ";
cin>>data[i].asal.kecamatan;
cout<<"masukkan alamat asal,kota : ";
cin>>data[i].asal.kota;
cout<<"masukkan nilai tugas pertama : ";
cin>>data[i].skor.total.tugas1;
cout<<"masukkan nilai tugas kedua : ";
cin>>data[i].skor.total.tugas2;
cout<<"masukkan nilai UTP : ";
cin>>data[i].skor.utp;
cout<<"masukkan nilai UAP : ";
cin>>data[i].skor.uap;
data[i].skor.nilaiakhir=((data[i].skor.total.tuga
s1+data[i].skor.total.tugas2)*0.25)+data[i].skor.utp*0.
3+data[i].skor.uap*0.35;
}
6. cout<<"------------------------------------------------
--------------------------------";
cout<<endl;
cout<<"Nama "<<" NIM "<<" Tanggal Lahir "<<"
Alamat Asal "<<" Nilai Akhir "<<" Nilai Huruf";
cout<<endl;
cout<<"------------------------------------------------
--------------------------------";
cout<<endl;
for(i=0;i<n;i++)
{
cout<<data[i].nama<<" ";
cout<<data[i].NIM<<" ";
cout<<data[i].lahir.tgl<<"-
"<<data[i].lahir.bulan<<"-"<<data[i].lahir.tahun<<"
";
cout<<data[i].asal.kecamatan<<","<<data[i].asal.k
ota<<" ";
cout<<data[i].skor.nilaiakhir<<" ";
if(data[i].skor.nilaiakhir>80)
data[i].nilaihuruf="A";
else if(data[i].skor.nilaiakhir>70)
data[i].nilaihuruf="B";
else if(data[i].skor.nilaiakhir>60)
data[i].nilaihuruf="C";
else if(data[i].skor.nilaiakhir>50)
8. Pembahasan
#include <conio.h>
conio.h merupakan File Header yang berfungsi untuk menampilkan
hasil antarmuka kepada pengguna.
#include <iostream>.
Iostream adalah suatu header file. File ini mengandung
Input/Output yang umumnya hanya berisi Cin dan Cout saja, tetapi di
beberapa aplikasi lain secara default bisa berbeda dari iostream yang
tradisional. Iostream juga sering dikaitkan terminal pemakai dan dipakai
untuk menampilkan pesan-pesan kesalahan
using namespace std;
perintah ini digunakan untuk mendeklarasikan/memberitahukan
kepada compiler bahwa akan digunakan semua fungsi/class/file yang
terdapat dalam namespace std. Sehingga dengan menggunakan fungsi ini
tidak diperlukan lagi menambahkan std didepan fungsi-fungsi dalam
namespace std seperti cin, cout dan lainnya
#include <string.h>
string.h merupakan file header yang berfungsi untuk melakukan manipulasi
string.
main()
Fungsi adalah salah satu dasar penyusunan blok pada C++. Sebuah
program C++ minimal mengandung sebuah fungsi, yaitu fungsi main().
Fungsi ini menjadi awal dan akhir eksekusi program C++. Sedangkan
Tubuh fungsi dimulai dari tanda { hingga tanda }. Lebih spesifik lagi,
semua yang terletak didalam tanda { } disebut blok.
9. Tanda () digunakan untuk mengapit argumen fungsi, yaitu nilai
yang akan dilewatkan ke fungsi. Pada fungsi main() seperti pada contoh,
tidak ada argumen yang diberikan. Oleh karena itu tidak ada entri di
dalam ().
{
struct tanggal
{
int tgl,tahun;
string bulan;
}lahir;
}
Pada bagian ini yang akan di struct adalah tanggal yang terdiri dari tgl dan
tahun bertipe integer serta bulan yang memiliki tipe data string. Kemudian
data yang di stuct dalam variable tanggal diberi variable kembali setelah
tanda } diberi nama variable yaitu lahir.
struct alamat
{
string kecamatan,kota;
}asal;
Kemudian selanjutnya alamat akan dibuat struct. Didalamnya terdiri
kecamatan dan kota yang bertipe data string. Kemudian diberi variable baru
yaitu asal.
struct tugas
{
int tugas1,tugas2;
10. }total;
Kemudian selanjutnya variable tugas akan dibuat struct data yang terdiri
dari tugas1 dan tugas 2 yang bertipe data integer. Kemudian diberi variable
baru yaitu total.
struct nilai
{
int utp,uap,nilaiakhir;
tugas total;
}skor;
Kemudian yang selanjutnya di struct adalah variabel nilai yang terdiri dari
variabel utp,uap,nilaiakhir yang memiliki tipe data integer. Dan variabel
tugas total yang berasal dari struct data sebelumnya yaitu struct tugas total.
Kemudian struct data ini diberi variabel yaitu skor.
struct biodata
{
string nama;
int NIM;
tanggal lahir;
alamat asal;
nilai skor;
string nilaihuruf;
}data[10];
Kemudian selanjutnya yang akan di struct adalah variabel biodata yang
terdiri dari nama dan nilai huruf yang memiliki tipe data string dan NIM
yang bertipe data integer. karena tanggal lahir,alamat asal,nilai skor telah
11. dibuat struct sebelumnya sehingga hanya cukup dituliskan variabelnya
tanpa harus menuliskan tipe datanya. Kemudian struct data ini diberi nama
data[10] yang merupakaan array.
int n,i;
variabel n dan i yang memiliki tipe data integer.
cout<<"masukkan banyaknya data :";cin>>n;
Perintah keluaran yaitu masukkan banyaknya data yang kemudian
dilanjutkan dengan memasukkan inputan yang diberi nama variabel n yang
telah dideskripsikan sebelumnya dengan tipe data integer.
for(i=0;i<n;i++)
membuat perulangan dengan variabel i yang diberi nilai awal 0 yang akan
berjalan dengan syarat jika nilainya kurang dari n dan akan bertambah
setelah proses dilakukan. Perulangan yang dilakukan adalah sesuai dengan
perintah dibawah ini.
{
cout<<"data ke - "<<i+1;
menampilan output berupa kalimat data ke- yang nantinya i+1 sehingga
akan berubah sesuai dengan bertambahnya nilai i.
cout<<"nMasukkan nama : ";
menampilkan output berupa kalimat masukkan nama.
cin>>data[i].nama;
kemudian memasukkan data yang berasal dari struct yang telah dibuat
sebelumnya. Pada bagian ini data berasal dari struct data[10] variabel nama
sehingga dituliskan data[i].nama penulisan [i] hal ini dikarenakan
menyesuaikan dengan perulangannya (penulisannya harus sesuai dengan
urutan).
cout<<"masukkan nim : ";
12. menampilkan output data yaitu masukkan nim.
cin>>data[i].NIM;
Kemudian memasukkan data yang berasal dari struct yang telah dibuat
sebelumnya. Pada bagian ini data berasal dari struct data[i] dengan variabel
NIM sehingga dituliskan data[i].NIM.
cout<<"masukkan tanggal lahir : ";
menampilkan output data berupa masukkan tanggal lahir.
cin>>data[i].lahir.tgl ;
Kemudian memasukkan data yang berasal dari struct yang telah dibuat
sebelumnya. Pada bagian ini data berasal dari struct data[i] dan struct lahir
dengan variabel tgl. Penulisannya harus berurutan mengingat struct ini
bertingkat.
cout<<"masukkan bulan lahir: ";
menampilkan output data yang berupa masukkan bulan lahir.
cin>>data[i].lahir.bulan;
Kemudian memasukkan data yang berasal dari struct yang telah dibuat
sebelumnya. Pada bagian ini data berasal dari struct data[i] dan struct lahir
dengan variabel bulan. Penulisannya harus berurutan mengingat struct ini
bertingkat.
cout<<"masukkan tahun lahir : ";
menampilkan output berupa masukkan tahun lahir.
cin>>data[i].lahir.tahun;
Kemudian memasukkan data yang berasal dari struct yang telah dibuat
sebelumnya. Pada bagian ini data berasal dari struct data[i] dan struct lahir
dengan variabel tahun. Penulisannya harus berurutan mengingat struct ini
bertingkat.
13. cout<<"masukkan alamat asal, kecamatan : ";
menampilkan output berupa masukkan alamat asal,kecamatan.
cin>>data[i].asal.kecamatan;
Kemudian memasukkan data yang berasal dari struct yang telah dibuat
sebelumnya. Pada bagian ini data berasal dari struct data[i] dan struct asal
dengan variabel kecamatan. Penulisannya harus berurutan mengingat struct
ini bertingkat.
cout<<"masukkan alamat asal,kota : ";
menampilkan output berupa masukkan alamat asal,kota.
cin>>data[i].asal.kota;
Kemudian memasukkan data yang berasal dari struct yang telah dibuat
sebelumnya. Pada bagian ini data berasal dari struct data[i] dan struct asal
dengan variabel kota. Penulisannya harus berurutan mengingat struct ini
bertingkat.
cout<<"masukkan nilai tugas pertama : ";
menampilkan output berupa masukkan nilai tugas pertama
cin>>data[i].skor.total.tugas1;
Kemudian memasukkan data yang berasal dari struct yang telah dibuat
sebelumnya. Pada bagian ini data berasal dari struct data[i] dan struct skor
dan skor total dengan variabel tugas1. Penulisannya harus berurutan
mengingat struct ini bertingkat.
cout<<"masukkan nilai tugas kedua : ";
menampilkan output berupa masukkan nilai tugas kedua.
cin>>data[i].skor.total.tugas2;
Kemudian memasukkan data yang berasal dari struct yang telah dibuat
sebelumnya. Pada bagian ini data berasal dari struct data[i] dan struct skor
14. dan struct total dengan variabel tugas2. Penulisannya harus berurutan
mengingat struct ini bertingkat.
cout<<"masukkan nilai UTP : ";
Kemudian menampilkan output berupa masukkan nilai UTP.
cin>>data[i].skor.utp;
Kemudian memasukkan data yang berasal dari struct yang telah
dibuat sebelumnya. Pada bagian ini data berasal dari struct data[i] dan
struct skor dengan variabel utp. Penulisannya harus berurutan mengingat
struct ini bertingkat.
cout<<"masukkan nilai UAP : ";
Kemudian menampilkan outpit berupa masukkan nilai UAP
cin>>data[i].skor.uap;
Kemudian memasukkan data yang berasal dari struct yang telah
dibuat sebelumnya. Pada bagian ini data berasal dari struct data[i] dan
struct skor dengan variabel uap. Penulisannya harus berurutan mengingat
struct ini bertingkat.
data[i].skor.nilaiakhir=((data[i].skor.total.tugas1+data[i].skor.total.tug
as2)*0.25*0.5)+data[i].skor.utp*0.3+data[i].skor.uap*0.45;
Kemudian terdapat operasi perhitungan nilai akhir penulisannya adalah
data[i].skor.nilaiakhir hal ini dikarenakan variabel nilai akhir ini berasal
dari struct data[i] dan struct skor yang berurutan. Sehingga penulisannya
harus beruruta dimana perhitungannya adalah
=((data[i].skor.total.tugas1+data[i].skor.total.tugas2)*0.25*0.5)+data[i]
.skor.utp*0.3+data[i].skor.uap*0.45 penulisan variabel yang dihitung
juga sama dengan menyertakan asal struct dari variabel tersebut secara
berurutan
}
15. cout<<"--------------------------------------------------------------------------------
";
menampilkan ouput berupa ----------------------- diberi tanda kutip karena
merupakan karakter.
cout<<endl;
berfungsi untuk menuju baris selanjutnya (enter).
cout<<"Nama "<<" NIM "<<" Tanggal Lahir "<<" Alamat
Asal "<<" Nilai Akhir "<<" Nilai Huruf";
berfungsi untuk menampilkan output Nama, NIM, Tanggal Lahir, Alamat
Asal, Nilai Akhir, dan Nilai Huruf dengan jarak tertentun sehingga diberi
spasi didalamnya untuk memberi jarak pada setiap karakter yang ditulisnya.
cout<<endl;
berfungsi untuk menuju baris selanjurnya (enter).
cout<<"--------------------------------------------------------------------------------
";
menampilkan output berupa ---------------------------- diberi tanda kutip
karena merupakan karakter.
cout<<endl;
berfungsi untuk menampilkan baris selanjurnya (enter).
for(i=0;i<n;i++)
perulangan variabel i dengan nilai awal 0 dengan syarat i kurang dari n dan
nilai i akan bertambah. Perintah yang dilakukan dalam perulangan adalah
seperti perintah dibawah ini :
{
cout<<data[i].nama<<" ";
16. menampilkan output berupa struct data data[i].nama dengan pemberian
spasi sehingga akan dibuat jarak. Oleh karena itu pengaturan spasi
diperlukan.
cout<<data[i].NIM<<" ";
menampilkan output berupa struct data data[i].nim dengan pemberian
spasi sehingga akan dibuat jarak. Oleh karena itu pengaturan spasi
diperlukan.
cout<<data[i].lahir.tgl<<"-"<<data[i].lahir.bulan<<"-
"<<data[i].lahir.tahun<<" ";
menampilkan output berupa struct data dari data[i].lahir.tgl,
data[i].lahir.bulan, data[i].lahir.tahun. dengan penggalan - berupa
karakter dan pengaturan spasi sebagai jarak
cout<<data[i].asal.kecamatan<<","<<data[i].asal.kota<<" ";
menampilkan output berupa data[i].asal.kecamatan dan penggalan ,
berupa karakter dan data[i].asal.kota diberi jarak melalui pengaturan spasi.
cout<<data[i].skor.nilaiakhir<<" ";
menampilkan output berupa data[i].skor.nilaiakhir diberi jarak dengan
mengatur spasi.
if(data[i].skor.nilaiakhir>80)
data[i].nilaihuruf="A";
fungsi pengandaian apabila (data[i].skor.nilaiakhir>80) maka
data[i].nilaihuruf="A".
else if(data[i].skor.nilaiakhir>70)
data[i].nilaihuruf="B";
fungsi pengandaian apabila (data[i].skor.nilaiakhir>70) maka
data[i].nilaihuruf="B".
17. else if(data[i].skor.nilaiakhir>60)
data[i].nilaihuruf="C";
fungsi pengandaian apabila (data[i].skor.nilaiakhir>60) maka
data[i].nilaihuruf="C".
else if(data[i].skor.nilaiakhir>50)
data[i].nilaihuruf="D";
fungsi pengandaian apabila (data[i].skor.nilaiakhir>50) maka
data[i].nilaihuruf="D"
else
selain itu, maka yang dilakukan adalah
data[i].nilaihuruf="E";
data[i].nilaihuruf="E";
cout<<" "<<data[i].nilaihuruf<<" ";
menampilkan output berupa data[i].nilaihuruf dan pemberian jarak
menggunakan pengaturan spasi.
cout<<endl;
berfungsi untuk menuju baris baru (enter );
}
getch();
berfungsi untuk
menghentikan program skrip program dan melanjutkannya setelah kita
menekan tombol Enter. Skrip getch(); ini memiliki header file conio.h.
}