STRUKTUR DATA
MODUL 5
STRUKTUR
Diajukan Untuk Memenuhi Salah Satu Tugas
Metode Pembelajaran Praktikum Stuktur Data
Dosen: EndraSuseno, M.Kom
Di Susun Oleh :
Dera Dwi Bernika
20160920120
SI A 2016
FAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN
Jalan Cut NyakDien No 36 A, Kel.Cijoho, Kuningan, Jawa Barat, Indonesia
2017
DASAR TEORI :
Struktur merupakan kumpulan elemen data yang digunakan menjadi satu kestuan data. Masing – masing elemen data tersebut dinamakan field atau elemen struktur. Field tersebut dapat memiliki tipe data yang sama ataupun berbeda – beda, meskipun field tersebut merupakan satu kesatuan namun bisa diakses secara individu.
Struktur dan array mempunyai kesamaan dan perbedaanm kesamaannya yaitu alokasi emory untuk elemen – elemen nya sudah ditentukan sebelum program dijalankan. Perbedaannya, array adalah struktur data yang elemen – elemennya bertipe data harus sama, dan elemen tersebut diakses melalui indeks sedangkan struktur adalah sebuah struktur data yang tipe dan dari elemen – elemen nya tidak harus sama dan elemen tersebut diakses melalui identifier atau nama variabel.
Contoh struktur dengan tipe data berbeda :
Struct mahasiswa
{
Char nim[10];
Char nama[25];
Char jurusan[2];
Float ipk;
}mhs;
Contoh struktur dengan tipe data sama :
Struct tanggal
{
Int tanggal;
Int bulan;
Int tahun;
}tgl;
---atau biasa ditulis---
Struct tanggal
{
Int tanggal, bulan, tahun;
}tgl;
Struct nama_struktur // nama struktur, kata struct harus ada
{
Type1 element1;
Type2 element2;
Type3 element3;
.
.
} nama_object; // identifier yang digunakan untuk pemanggilan struktur
------------atau------------
Struct nama_struktur
{
Type1 element1;
Type2 element2;
Type3 element3;
.
.
};
Struct nama_struktur nama_object;
PRAKTIKUM 5.1
SYNTAX:
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main ()
{
struct
{
char nama[50];
char alamat[100];
char No_Hp[100];
char ortu[50];
char pekerjaan[50];
char lulusan[50];
}mahasiswa;
clrscr();
cout<<" Program Input Data Diri "<<endl;
printf(" Masukan Nama \t\t\t : ");
scanf("%s",&mahasiswa.nama);
cout<<" Masukan Alamat \t\t : "; cin>>mahasiswa.alamat;
printf(" Masukan Nomor HP \t\t : +628");
cin>>mahasiswa.No_Hp;
cout<<" Masukan Nama Ibu Kandung \t : ";
cin>>mahasiswa.ortu;
printf(" Masukan Pekerjaan Bapak \t : ");
scanf("%s",&mahasiswa.pekerjaan);
cout<<" Masukan Pendidikan Orang Tua \t : ";
cin>>mahasiswa.lulusan;
clrscr();
cout<<"\n \n Data Yang Di Masukan Adalah \n\n";
printf(" Nama \t\t\t\t : %s\n",mahasiswa.nama);
printf(" Alamat \t\t\t : %s\n",mahasiswa.alamat);
cout<<" Nomor HP \t\t\t : +628\n\n"<<mahasiswa.No_Hp<<endl;
cout<<" Nama Ibu Kandung \t\t : "<<mahasiswa.ortu<<endl;
cout<<" Pekerjaan Bapak \t\t : "<<mahasiswa.pekerjaan<<endl;
cout<<" Pendidikan Terakhir \t\t : "<<mahasiswa.lulusan<<endl;
getch();
return 0;
}
HASIL RUNNING :
PEMBAHASAN:
Dalam program tersebut kita akan membuat tampilan data mahasiswa yang dimana program tersebut menggunakan struct, dimana struct tersebut adalah kumpulan dari variabel yang dinyatakan dengan sebuah nama, dengan sifat setiap variabel dapat memiliki tipe yang berlainan. Jadi untuk melakukan input karena variabelnya dikelompokkan dalam struct maka inputnya harus memasukkan nama structnya yaitu mahasiswa baru kemudian masukan variabel yang akan di inputkan nilai atau karakternya.
Scanf(“%s”,&mahasiswa.nama);
Mahasiswa itu merupakan nama dari structnya dan nama itu adalah variabel untuk menampung nilai atau karakter yang akan di inputkan, jadi setelah nama struct dimasukkan kemudian kasih tanda (.) setelah itu masukkan variabelnya.
Untuk outputnya juga tidak jauh beda dengan input, pertama masukkan nama structnya kemudian beri tanda (.) lalu masukkan variabel yang akan dipanggil.
Printf(“Nama\t\t\t\t: %s\n”,mahasiswa.nama);
PRAKTIKUM 5.2
STUDI KASUS 5.2 :
Buatlah program dengan menggunakan struktur tentang biaya kuliah mahasiswa dengan ketentuan sebagai berikut :
D3
SPP Tetap = Rp. 500
SPP Variabel = Rp. 250/sks
S1
SPP Tetap = Rp. 750
SPP Variabel = Rp. 500/sks
SYNTAX :
#include<conio.h>
#include<iostream.h>
struct mhs
{
char nama[20], nim[20], prodi[3];
int sks, program;
}bayar;
main()
{
int var, tetap;
cout<<" Nama Mahasiswa \t\t : "; cin>>bayar.nama;
cout<<" Nim Mahasiswa \t\t\t : "; cin>>bayar.nim;
cout<<" Prodi [ TI SI MI] \t\t : "; cin>>bayar.prodi;
input:
cout<<" Program [1 = D3 / 2 = S1] \t : ";
cin>>bayar.program;
if(bayar.program < 1 || bayar.program > 2)
{
cout<<" Program Tidak Sesuai ";
goto input;
}
cout<<" Jumlah SKS \t\t\t : "; cin>>bayar.sks;
if(bayar.program == 1)
{
tetap = 500;
var = bayar.sks*250;
}
else if(bayar.program == 2)
{
tetap = 750;
var = bayar.sks*500;
}
cout<<" "<<endl;
cout<<" -----------------------------------------------------"<<endl;
cout<<" \t\t\t OUT PUT "<<endl;
cout<<" -----------------------------------------------------"<<endl;
cout<<" Nama \t\t\t : "<<bayar.nama<<endl;
cout<<" Nim \t\t\t : "<<bayar.nim<<endl;
cout<<" Prodi \t\t\t : "<<bayar.prodi<<endl;
cout<<" Program \t\t : "<<bayar.program<<endl;
cout<<" Jumlah SKS \t\t : "<<bayar.sks<<endl;
cout<<" Biaya SPP Tetap \t : "<<tetap<<endl;
cout<<" Biaya SPP Variable \t : "<<var<<endl;
cout<<" -----------------------------------------------------"<<endl;
getch();
return 0;
}
HASIL RUNNING :
PEMBAHASAN:
Dalam program tersebut kita akan menampilkan suatu pembayaran sks pada setiap prodi. Tampilan yang pertama akan masukan nama dan NIM mahasiswa, karena variabel yang akan di inputkan berada dalam struct maka untuk melakukan penginputan cantumkan nama struct kemudian nama variabel yang akan dijadikan sebagai penampung nilai atau karakter.
Cin>>bayar.nama;
Bayar merupakan nama sebuah struct yang didalam struct tersebut terdapat variabel nama. Setelah itu masukan program yang dipilihnya berisi pilihan D3=1 atau S1=2, cara penginputannya juga sama masukan nama struct kemudian beri tanda (.) setelah itu masukan variabel inputnya,
Jika kita masukan angka 1 maka:
If(bayar.program==1)
{
Tetap=500;
Var=bayar.sks*250;
}
Dan jika kita masukan angka 2, maka:
Else if(bayar.program==2)
{
Tetap=750;
Var=bayar.sks*500;
}
Setelah itu kita masukkan program untuk menginput sks yang akan diambil, jadi setiap programnya mempuyai harga per sks tersendiri, jai nantinya sks akan dikali dengan per sks dari program yang dipilih.
PRAKTIKUM 5.3
STUDI KASUS 5.3 :
Sebuah titik pada bidang datar mempunyai koordinat x dan y. Kedua koordinat dijadikan field dari struktur, misal kedua titik adalah a yang berkoordinat di x1, y1 dan b yang berkoordinat di x2, y2 dengan demikian kita dapat menghitung jarak antara kedua titik tersebut dengan melalui koordinat yang tertera pada setiap titik.
adapun rumus mencari jarak titik kordinat (x1-x2)2 + (y1-y2)2)
SYNTAX :
#include<stdio.h>
#include<conio.h>
#include<math.h>
struct t_titik
{
int x, y;
};
int main()
{
struct t_titik a, b;
double jarak;
printf(" Titik A\n Kordinat X : ");
scanf("%d",&a.x);
printf(" Kordinat Y : ");
scanf("%d",&a.y);
puts("\n");
printf(" Titik B\n Kordinat X : ");
scanf("%d",&b.x);
printf(" Kordinat Y : ");
scanf("%d",&b.y);
puts("\n");
jarak = sqrt(pow((a.x - b.x),2)+ pow((a.y - b.y),2));
getch();
printf(" Jarak Titik A dan Titik B = %lf", jarak);
getch();
return 0;
}
HASIL RUNNING :
PEMBAHASAN:
Dalam program tersebut kita akan mencari jarak titik A dengan titik B dimana pada titik A dan B akan di inputkan kordinat x dan y menggunakan struct, jadi untuk menginputnya kita lakukan input kordinat x dan y pada titik a dan untuk melakukan penginputan menggunakan struct dan nama struct untuk titik A adalah a jadi saat akan menginputkan kordinat x dan y pada titik A cantumkan nama structnya dlalu variabelnya.
Untuk script jarak =sqrt(pow((a.x-b.x),2)+pow((a.y-b.y),2)); adalah sebuah rumus untuk mengetahui jarak antara kedua titik, untuk sqrt itu merupakan sebuah oprator aritmatika untuk mencari nilai akar jadi jika hasil penjumlahan itu mendapatkan nilai 9 maka 9 = 3 maka 3 adalah hasil nya, dan sedangkan untuk pow adalah sebuah operator aritmatika yang akan mengalikan nilai dengan dirinya sendiri sesuai dengan jumlah pangkatnya, jadi bisa dibilang pow ini sebuah pangkat jadi jika menggunakan pow maka masukan pangkat nya, contoh di atas adalah pangkat 2, jadi nilai kordinat x pada titik A akan dikurangi kordinat x pada titik B jika sudah memperoleh nilai maka nilai itu akan dikali dengan pangkat yg tertera misal 2 pangkan 2 jadi 2 * 2 = 4, nah untuk pow selanjutnya sama dengan sebelumya tapi dalam rumus itu kordinat y titik A - kordinat y titik B, jika sudah memperoleh nilai maka kordinat x akan di tambah kordinat y dari 2 buah Titik ( A dan B ) setelah di tambah fungsi sqrt ini akan mencari nilai dari akar penjumlahan tadi.
LATIHAN 5.1
Pada suatu daerah memiliki suhu udara yang fluktuatif pengukuran dilakukan setiap satu jam dan akan mendapatkan suhu udara rata-rata di hari tersebut program dibawah ini dapat menyelasikan kasus diatas dengan menggunakan struktur namun anda harus melengkapi program tersebut agar dapat menyelesaikan kasus ini.
Pada suatu daerah memiliki suhu udara yang fluktuatif pengukuran dilakukan setiap satu jam dan akan mendapatkan suhu udara rata-rata di hari tersebut program dibawah ini dapat menyelasikan kasus diatas dengan menggunakan struktur namun anda harus melengkapi program tersebut agar dapat menyelesaikan kasus ini.
SYNTAX :
#include<stdio.h>
#include<conio.h>
struct
{
float suhu, jsuhu;
}temp;
void main()
{
int i, n;
printf(" Masukan Jumlah Jam Pengukuran : ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf(" Masukan Suhu Jam Ke-%d : ",i);
scanf("%f",&temp.suhu);
getch();
temp.jsuhu = ( temp.jsuhu + temp.suhu );
}
puts("\n");
printf(" Rata - rata Suhu Hari Ini : %f ",temp.jsuhu /n);
getch();
}
HASIL RUNNING :
PEMBAHASAN:
Dalam program tersebut kita akan mengetahui rata-rata suhu dalam hari ini dengan cara menguruk suhu perjamnya. Kita masukan terlebih dahulu jumlah jam pengukurannya pengukurannya, dimana dalam satu hari ini kita akan melakukan berapa kali pengukuran tiap jamnya. Dan input ini digunakan sebagai batasan pengulangan jika dalam satu hari terdapat 3 jam pengukuran maka nanti akan menginput 3 kali suhu pada setiap jamnya, setelah memasukan semua nilai atau suhunya maka setelah itu guna rumustemp.jsuhu=(temp.jsuhu+temp.suhu);
Adalah untuk menghitung total suhu yang diperoleh. Jadi, temp.jsuhu itu mempunyai nilai 0 dan ditambah suhu pada jam ke-, setelah itu temp.jsuhu sudah mempunyai nilai dari suhu jam pertama maka setelah itu akan ditambah dengan suhu jam ke-2 dan ke-3.
Setelah itu output hasil tadi dengan
printf(" Rata - rata Suhu Hari Ini : %f ",temp.jsuhu / n);
nah untuk temp.jsuhu / n itu berfungsi untuk mencari nilai rata - rata, karena untuk mencari nilai rerata itu setelah di total maka di bagi dengan jumlah penginputan tadi.
LATIHAN 5.2
Buatlah program untuk mengetahui stok barang yang terjual dengan menggunakan struktur, dengan menginputkan nama barang dan jumlah barang yang dijual menghasilkan output nama barang dan jumlah barang dalam pcs. dibawah ini program dengan menggunakan sturktur untuk menyelesaikan kasus tersebut namun bila ada yang ingin mengubah listing programnya diperbolehkan dengan syarat hasil keluarannya harus sesuai dengan yang diminta.
Buatlah program untuk mengetahui stok barang yang terjual dengan menggunakan struktur, dengan menginputkan nama barang dan jumlah barang yang dijual menghasilkan output nama barang dan jumlah barang dalam pcs. dibawah ini program dengan menggunakan sturktur untuk menyelesaikan kasus tersebut namun bila ada yang ingin mengubah listing programnya diperbolehkan dengan syarat hasil keluarannya harus sesuai dengan yang diminta.
SYNTAX :
#include<iostream.h>
#include<conio.h>
struct stock
{
char nama[50];
int jml;
}data;
int main()
{
cout<<" Program Data Stock Penjualan "<<endl<<endl;
getch();
cout<<" Masukan Nama Barang \t : ";
cin>>data.nama;
cout<<" Masukan Jumlah Barang \t : ";
cin>>data.jml;
cout<<" ---------------------------------------------------- "<<endl;
cout<<" Hasil Input "<<data.nama<<" = "<<data.jml<<" Pcs "<<endl;
getch();
return 0;
}
HASIL RUNNING :
PEMBAHASAN:
Dalam program tersebut digunakan untuk program data stok penjualan, program tersebut menggunakan struct yang berfungsi untuk mengelompokkan variabel, jika nantinya akan melakukan pemanggilan variabel maka nama struct harus dibawa, pertama yang harus dilakukan dengan memasukkan nama barang yang akan di input dan sertakan nama struct, setelah itu masukkan jumlah barang yang akan di inputkan sama seperti input nama barang kemudian sertakan nama struct.
untuk melakukan output pun sama, nama structnya harus dibawa karena variabel itu merupakan bagian dari isi struct.
0 komentar:
Posting Komentar