1
STRUCTURE
Struktur (Structure = struct) merupakan
suatu struktur data yang terdiri dari satu atau lebih
variabel yang bertipe data sama atau
berbeda.
Struktur secara logik membuat suatu tipe data
baru(user defined type) yang dapat dipergunakan
untuk menampung data / informasi yang bersifat
majemuk.
Misalnya, data seorang mahasiswa STT PLN,
dimana tiap mahasiswa mempunyai: Nim,
Nama, Alamat, Nilai, IPK, SKS, dll, dan semua itu
harus dipandang sebagai satu data mahasiswa.
2
Deklarasi Struktur :
struct Nama_Struktur
{
blok_anggota_struktur;
};
dimana:
Nama_Struktur (structTag) -> tipe_data baru
Contoh :
struct Titik {
double x; // anggota struktur
double y; // anggota struktur
};
struct point { float x, y; };
3
struct Mahasiswa { char NIM[11]; char Nama[30];
char Mata_Kuliah[30];
float Nilai; }
struct Barang { char Id[11], Nama_Barang[30];
int Jumlah;
float Harga; };
Deklarasi Variabel Struktur :
 Struktur yang telah dideklarasikan struktur ini dapat digunakan
untuk mendefinisikan suatu variabel
Contoh :
struct data_tanggal tanggal_lahir;
merupakan pendefinisian variabel struktur bertipe struktur
tanggal_lahir dimana didalamnya terdiri tiga buah anggota yaitu
 Tahun
 Bulan
 Tanggal
#Struktur di dalam struktur
suatu stuktur juga bisa mengandung struktur yang lain.
Contoh :
Struct data_pegawai
{
int nip;
Char nama[25];
data_tanggal tanggal_lahir;
} rec_peg
Pada contoh diatas terdapat pendeklarasian struktur bernama
data_pegawai dan sekaligus pendefinisian variabel stuktur bernama
rec_peg menunjukkan anggota dari variabel rec_peg.
4
5
Akses Anggota Struktur :
 Anggota struktur diakses dengan menggunakan :
variabel_struktur.nama_anggota
Tanda titik diberikan diantara nama variabel struktur dan nama
anggota
Contoh :
Tanggal_lahir.tanggal = 1;
Merupakan pernyataan penugasan untuk memberikan nilai 1 ke
anggota tanggal pada variabel sruktur tanggal_lahir.
atau
Rec_peg.tanggal_lahir.bulan = 9;
Contoh Program C++ :
#include <iostream.h>
#include <conio.h>
Void main()
{
struct data_tanggal
{
int tahun;
int bulan;
int tanggal;
};
data_tanggal.tanggal_lahir;
tanggal_lahir.tanggal= 1;
tanggal_lahir.bulan = 9;
tanggal_lahir.tahun = 1964;
Cout<<tanggal_lahir.tanggal<<‘/’
<<tanggal_lahir.bulan<<‘/’
<<tanggal_lahir.tahun<<endl;
}
6
# Penugasan struktur
pemberian nilai terhadap suatu struktur dapat dilakukan dengan bentuk :
var1=var2
sepanjang kedua variabel adalah variabel struktur bertipe sama
misal terdapt pendefinisian :
data_tanggal tgl1 tgl2;
penugasan seperti berikut :
tgl2 = tgl1 diperkenankan
Contoh Program C++ :
#include <iostream.h>
#include <conio.h>
Void main()
{
struct data_tanggal
{
int tahun;
int bulan;
int tanggal;
};
data_tanggal tgl1, tgl2;
tgl1.tanggal= 1;
tgl1.bulan = 9;
tgl1.tahun = 1964;
tgl2 = tgl1
Cout<< tgl2.tanggal<<‘/’
<< tgl2.bulan<<‘/’
<< tgl2.tahun<<endl;
7
# Pembandingan struktur
pembandingan dua buah stuktur tidak dapat dilakukan
secara langsung melainkan masing-masing anggota
harus di bandingkan secara sendiri-sendiri.
Contoh :
if((tgl1.tahun==tgl2.tahun)&&
(tgl1.bulan==tgl2.bulan)&&
(tgl1.bulan==tgl2.bulan))
cout<<“isi kedua struktur sama”<<endl;
else
cout<<“isi kedua struktur tidak sama”<<endl;
8
# Struktur dan Fungsi
Suatu struktur juga dapat berkedudukan sebagai argumen fungsi contoh pada program:
#include <iostream.h>
#include <conio.h>
//deklarasi sruktur
Struct koordinat
{
int x;
int y;
};
Void tampilkan_posisi(koordinat posisi); // prototipe
Void main()
{
clrscr();
koordinat posisi; // definisi variabel struktur
posisi.x=27;
posisi.y=55;
tampilkan_posisi(posisi);
}
// definisi fungsi
Void tampilkan_posisi(koordinat posisi)
{
Cout<<“posisi x = “ <<posisi.x<<endl;
Cout<<“posisi x = “ <<posisi.x<<endl;
}
9
10
Contoh Program C++ :
 #include <iostream.h>
 #include <iomanip.h>
 #include <conio.h>
 #include <stdio.h>
 struct Mahasiswa { char Nim[11];
char Nama[20];
char Mata_Kuliah[20];
float Nilai; };
 main()
 {
Mahasiswa M[3];
clrscr();
for ( int i=0; i<3; i++ )
 {
cout << "Nim : "; gets ( M[i].Nim );
 cout << "Nama : "; gets ( M[i].Nama );
 cout << "Mata Kuliah : "; gets ( M[i].Mata_Kuliah );
 cout << "Nilai : "; cin >> M[i].Nilai;
 cout << " n";
 }
11
cout << " ----------------------------------------------------------- n";
cout << " No Nim Nama Mahasiswa Mata Kuliah Nilai n";
cout << "-----------------------------------------------------------n";
for ( i=0; i<3; i++ )
{
 printf("%4d % -11s %-20s %- 20s %5.2f n", i+1,
 M[i].Nim, M[i].Nama, M[i].Mata_Kuliah, M[i].Nilai );
 }
cout << " ----------------------------------------------------------- n";
getch();
return 0;
}
12
Struktur Bertingkat :
 Struktur dapat disusun dalam struktur yang lain ( Nested Structured ).
Contoh :
struct Jarak { int feet;
float inches };
struct Kamar { Jarak Panjang;
Jarak Lebar; };
Contoh Program C++ :
 #include <iostream.h>
 #include <conio.h>
 struct Jarak { int feet;
float inches; };
 struct Kamar { Jarak Panjang;
Jarak Lebar;
 }
13
 void main()
 {
 Kamar Makan;
 Makan.Panjang.inches = 6.5;
 Makan.panjang.feet = 4.0
 Makan.Lebar.feet = 10;
 Makan.Lebar.inches = 5.0;
 float P = Makan.Panjang.feet + Makan.Panjang.inches/12;
 float L = Makan.Lebar.feet + Makan.Lebar.inches/12;
 float Luas = P * L;
 cout << "Luas kamar makan = ";
 cout.width(7); cout.precision(2);
 cout << Luas << " feet^2";
 getch();
 }
Tugas :
 Buatlah Program dengan menggunakan structure dan inputan sebanyak 10 dengan hasil output:
 -------------------------------------------------------------------------------------------------------------------------------
 NO NIM Nama Mahasiswa Matakuliah Nilai UTS Nilai UAS
----------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------------
Jumlah SKS
Semester
IPK
IPK didapat dari penjumlahan 10% absen+ 20% tugas +35%UTS +35% UAS
% Absen didapat apabila mahasiswa mengikuti matakuliah min 70% dari 14 kali pertemuan
% tugas didapat dari berapakali dosen memeberikan tugas kepada mahasiswa * 20%
UTS di dapat dari nilai ujian pada saat mengikuti ujian UTS
UAS di dapat dari nilai ujian pada saat mengikuti ujian UAS
14

Pertemuan VI Teori

  • 1.
    1 STRUCTURE Struktur (Structure =struct) merupakan suatu struktur data yang terdiri dari satu atau lebih variabel yang bertipe data sama atau berbeda. Struktur secara logik membuat suatu tipe data baru(user defined type) yang dapat dipergunakan untuk menampung data / informasi yang bersifat majemuk. Misalnya, data seorang mahasiswa STT PLN, dimana tiap mahasiswa mempunyai: Nim, Nama, Alamat, Nilai, IPK, SKS, dll, dan semua itu harus dipandang sebagai satu data mahasiswa.
  • 2.
    2 Deklarasi Struktur : structNama_Struktur { blok_anggota_struktur; }; dimana: Nama_Struktur (structTag) -> tipe_data baru Contoh : struct Titik { double x; // anggota struktur double y; // anggota struktur }; struct point { float x, y; };
  • 3.
    3 struct Mahasiswa {char NIM[11]; char Nama[30]; char Mata_Kuliah[30]; float Nilai; } struct Barang { char Id[11], Nama_Barang[30]; int Jumlah; float Harga; }; Deklarasi Variabel Struktur :  Struktur yang telah dideklarasikan struktur ini dapat digunakan untuk mendefinisikan suatu variabel Contoh : struct data_tanggal tanggal_lahir; merupakan pendefinisian variabel struktur bertipe struktur tanggal_lahir dimana didalamnya terdiri tiga buah anggota yaitu  Tahun  Bulan  Tanggal
  • 4.
    #Struktur di dalamstruktur suatu stuktur juga bisa mengandung struktur yang lain. Contoh : Struct data_pegawai { int nip; Char nama[25]; data_tanggal tanggal_lahir; } rec_peg Pada contoh diatas terdapat pendeklarasian struktur bernama data_pegawai dan sekaligus pendefinisian variabel stuktur bernama rec_peg menunjukkan anggota dari variabel rec_peg. 4
  • 5.
    5 Akses Anggota Struktur:  Anggota struktur diakses dengan menggunakan : variabel_struktur.nama_anggota Tanda titik diberikan diantara nama variabel struktur dan nama anggota Contoh : Tanggal_lahir.tanggal = 1; Merupakan pernyataan penugasan untuk memberikan nilai 1 ke anggota tanggal pada variabel sruktur tanggal_lahir. atau Rec_peg.tanggal_lahir.bulan = 9;
  • 6.
    Contoh Program C++: #include <iostream.h> #include <conio.h> Void main() { struct data_tanggal { int tahun; int bulan; int tanggal; }; data_tanggal.tanggal_lahir; tanggal_lahir.tanggal= 1; tanggal_lahir.bulan = 9; tanggal_lahir.tahun = 1964; Cout<<tanggal_lahir.tanggal<<‘/’ <<tanggal_lahir.bulan<<‘/’ <<tanggal_lahir.tahun<<endl; } 6
  • 7.
    # Penugasan struktur pemberiannilai terhadap suatu struktur dapat dilakukan dengan bentuk : var1=var2 sepanjang kedua variabel adalah variabel struktur bertipe sama misal terdapt pendefinisian : data_tanggal tgl1 tgl2; penugasan seperti berikut : tgl2 = tgl1 diperkenankan Contoh Program C++ : #include <iostream.h> #include <conio.h> Void main() { struct data_tanggal { int tahun; int bulan; int tanggal; }; data_tanggal tgl1, tgl2; tgl1.tanggal= 1; tgl1.bulan = 9; tgl1.tahun = 1964; tgl2 = tgl1 Cout<< tgl2.tanggal<<‘/’ << tgl2.bulan<<‘/’ << tgl2.tahun<<endl; 7
  • 8.
    # Pembandingan struktur pembandingandua buah stuktur tidak dapat dilakukan secara langsung melainkan masing-masing anggota harus di bandingkan secara sendiri-sendiri. Contoh : if((tgl1.tahun==tgl2.tahun)&& (tgl1.bulan==tgl2.bulan)&& (tgl1.bulan==tgl2.bulan)) cout<<“isi kedua struktur sama”<<endl; else cout<<“isi kedua struktur tidak sama”<<endl; 8
  • 9.
    # Struktur danFungsi Suatu struktur juga dapat berkedudukan sebagai argumen fungsi contoh pada program: #include <iostream.h> #include <conio.h> //deklarasi sruktur Struct koordinat { int x; int y; }; Void tampilkan_posisi(koordinat posisi); // prototipe Void main() { clrscr(); koordinat posisi; // definisi variabel struktur posisi.x=27; posisi.y=55; tampilkan_posisi(posisi); } // definisi fungsi Void tampilkan_posisi(koordinat posisi) { Cout<<“posisi x = “ <<posisi.x<<endl; Cout<<“posisi x = “ <<posisi.x<<endl; } 9
  • 10.
    10 Contoh Program C++:  #include <iostream.h>  #include <iomanip.h>  #include <conio.h>  #include <stdio.h>  struct Mahasiswa { char Nim[11]; char Nama[20]; char Mata_Kuliah[20]; float Nilai; };  main()  { Mahasiswa M[3]; clrscr(); for ( int i=0; i<3; i++ )  { cout << "Nim : "; gets ( M[i].Nim );  cout << "Nama : "; gets ( M[i].Nama );  cout << "Mata Kuliah : "; gets ( M[i].Mata_Kuliah );  cout << "Nilai : "; cin >> M[i].Nilai;  cout << " n";  }
  • 11.
    11 cout << "----------------------------------------------------------- n"; cout << " No Nim Nama Mahasiswa Mata Kuliah Nilai n"; cout << "-----------------------------------------------------------n"; for ( i=0; i<3; i++ ) {  printf("%4d % -11s %-20s %- 20s %5.2f n", i+1,  M[i].Nim, M[i].Nama, M[i].Mata_Kuliah, M[i].Nilai );  } cout << " ----------------------------------------------------------- n"; getch(); return 0; }
  • 12.
    12 Struktur Bertingkat : Struktur dapat disusun dalam struktur yang lain ( Nested Structured ). Contoh : struct Jarak { int feet; float inches }; struct Kamar { Jarak Panjang; Jarak Lebar; }; Contoh Program C++ :  #include <iostream.h>  #include <conio.h>  struct Jarak { int feet; float inches; };  struct Kamar { Jarak Panjang; Jarak Lebar;  }
  • 13.
    13  void main() {  Kamar Makan;  Makan.Panjang.inches = 6.5;  Makan.panjang.feet = 4.0  Makan.Lebar.feet = 10;  Makan.Lebar.inches = 5.0;  float P = Makan.Panjang.feet + Makan.Panjang.inches/12;  float L = Makan.Lebar.feet + Makan.Lebar.inches/12;  float Luas = P * L;  cout << "Luas kamar makan = ";  cout.width(7); cout.precision(2);  cout << Luas << " feet^2";  getch();  }
  • 14.
    Tugas :  BuatlahProgram dengan menggunakan structure dan inputan sebanyak 10 dengan hasil output:  -------------------------------------------------------------------------------------------------------------------------------  NO NIM Nama Mahasiswa Matakuliah Nilai UTS Nilai UAS ---------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------- Jumlah SKS Semester IPK IPK didapat dari penjumlahan 10% absen+ 20% tugas +35%UTS +35% UAS % Absen didapat apabila mahasiswa mengikuti matakuliah min 70% dari 14 kali pertemuan % tugas didapat dari berapakali dosen memeberikan tugas kepada mahasiswa * 20% UTS di dapat dari nilai ujian pada saat mengikuti ujian UTS UAS di dapat dari nilai ujian pada saat mengikuti ujian UAS 14