ALGORITMA DAN
DASAR PEMROGRAMAN
 Struktur adalah sekumpulan variabel yang
masing-masing tipe datanya bisa berbeda,
dan dikelompokkan dalam satu nama.
 Berbeda dengan suatu larik yang berisi
kumpulan elemen-lemen larik bertipe sama
dalam satu nama, struktur dapat terdiri dari
kumpulan variabel-variabel yang berbeda
tipenya dalam satu nama.
 Variabel-variabel yang membentuk suatu
struktur selanjutnya disebut elemen-elemen
atau anggota struktur.
 Struktur membantu mengatur data-data yang
rumit, khususnya dalam program yang besar,
karena struktur memberikan sekelompok
variabel yang diperlakukan sebagai satu unit.
 Struktur dimungkinkan dapat berisi elemen-
elemen data bertipe int, float, char, dan
lainnya.
 Pada Pascal, struktur ini juga dikenal sebagai
record).
 Stuktur sering digunakan untuk mendefinisikan
suatu record data yang disimpan di dalam file.
 Struktur termasuk ke dalam tipe data yang
dibangkitkan (derived data type), yang disusun
menggunakan obyek dengan tipe yang lain.
 Struktur dapat dideklarasikan menggunakan kata
kunci struct, contohnya seperti berikut:
struct IP_Mhs{
int NIM[10];
char Nama[50];
int Semester;
float IP;
};
 Struktur di atas memiliki nama IP_Mhs dan
memiliki empat buah elemen, yaitu NIM[10]
bertipe int, Nama[50] bertipe char, Semester
bertipe int, dan IP bertipe float.
 IP_Mhs merupakan nama dari tipe data struktur
yang mempunyai empat buah elemen tersebut,
bukan nama dari suatu variabel struktur.
 Variabel struktur selanjutnya dapat
dideklarasikan dengan nama tipe data IP_Mhs
yang diawali dengan kata kunci struct seperti
pada contoh berikut ini:
struct IP_Mhs IP_Semester, IP_Kumulatif;
 IP_Semester dan IP_Kumulatif merupakan
variabel-variabel yang mempunyai tipe data
IP_Mhs.
 Deklarasi variabe-variabel tipe data struktur
juga dapat dilakukan dengan menggabungkan
kedua deklarasi yang terpisah menjadi
sebuah deklarasi, seperti contoh berikut:
struct IP_Mhs {
int NIM[10];
char Nama[50];
int Semester;
float IP;
} IP_Semester, IP_Kumulatif;
 Nama dari tipe struktur, selanjutnya dapat
digunakan untuk mendeklarasikan variabel-
variabel yang lain dengan struktur tersebut.
 Jika nama struktur tidak digunakan lagi untuk
mendeklarasikan variabel-variabel struktur yang
lain, maka nama dari tipe data ini dapat juga
tidak dituliskan, sehingga deklarasinya dapat
berbentuk seperti ini:
struct {
int NIM[10];
char Nama[50];
int Semester;
float IP;
} IP_Semester, IP_Kumulatif;
 Variabel-variabel struktur dapat juga langsung diberi
nilai awal. Misalnya variabel IP_Semester mempunyai
nilai awal NIM-nya adalah 3201416001, Nama
Mahasiswanya adalah “Danish”, semesternya adalah 2
dan IP-nya 3.15, maka dapat dituliskan sebagai
berikut:
struct {
int NIM[10];
char Nama[50];
int Semester;
float IP;
} IP_Semester = {
3201416001, “Danish”, 2, 3.15 },
IP_Kumulatif;
 Atau jika nama tipe data strukturnya telah
dideklarasikan sendiri dan variabel
strukturnya dideklarasikan terpisah, maka
dapat ditulis:
struct IP_Semester = {
3201416001, “Danish”, 2, 3.15 },
IP_Kumulatif;
 Elemen-elemen struktur dapat diakses secara
individual dengan menyebutkan nama
variabel strukturnya diikuti oleh operator
titik (‘.’) dan nama dari elemen strukturnya,
seperti berikut ini:
X = IP_Semester.IP;
yang menunjukkan elemen dengan nama IP
dari variabel struktur IP_Semester dengan
nilai awal 3.15, diisikan ke variabel numerik
lain bernama X.
/* ------------------------------------------
Nama Program: ADP_Struktur_1.cpp
Struktur
------------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
struct {
char Nama[20];
int NIM;
float IP;
}Mhs;
printf("Nama Mahasiswa: ");
scanf("%s", &Mhs.Nama);
printf("Nomor Induk Mahasiswa: ");
scanf("%d", &Mhs.NIM);
printf("Indeks Prestasi Semester: ");
scanf("%f", &Mhs.IP);
printf("n");
printf("Data Mahasiswa adalah %s, dengan NIM %d, dan IP %.2fn", Mhs.Nama, Mhs.NIM, Mhs.IP);
printf("n");
system("pause");
}
/* ------------------------------------------
Nama Program: ADP_Struktur_2.cpp
Struktur
------------------------------------------ */
#include <stdio.h>
#include <stdlib.h>
main()
{
struct {
float JariJari;
float Keliling;
float Luas;
}Lingkaran;
printf("Jari-jari Lingkaran: ");
scanf("%f", &Lingkaran.JariJari);
printf("n");
Lingkaran.Keliling = 2*3.14*Lingkaran.JariJari;
Lingkaran.Luas = 3.14*Lingkaran.JariJari*Lingkaran.JariJari;
printf("Jadi Keliling Lingkaran adalah %.2fn", Lingkaran.Keliling);
printf("Sedangkan Luas Lingkaran adalah %.2fn", Lingkaran.Luas);
printf("n");
system("pause");
}
 Pada contoh program ADP_Struktur_1.cpp
variabel struktur Mhs, elemen Nama dapat
diakses dengan menuliskan Mhs.Nama,
elemen NIM dapat diakses dengan
menuliskan Mhs.NIM, dan elemen IP dapat
diakses dengan menuliskan Mhs.IP.
 Sedangkan pada contoh program
ADP_Struktur_2.cpp, elemen JariJari dapat
diakses dengan menuliskan
Lingkaran.JariJari, elemen Keliling dapat
diakses dengan menuliskan
Lingkaran.Keliling dan elemen Luas dapat
diakses dengan menuliskan Lingkaran.Luas.
 Suatu struktur dapat berisi struktur yang lain
dengan elemn berupa struktur yang lain. Jika
suatu elemen dari struktur dapat diakses dengan
menuliskan sebagai berikut:
nama-variabel.nama-elemen;
maka sub-elemen dari struktur dapat diakses
dengan menuliskan:
nama-variabel.nama-elemen.nama-sub-elemen
/* -----------------------------------------
Nama Program: ADP_Struktur_3.cpp
Struktur berisi Struktur lain
----------------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
struct Tanggal{
unsigned int Hari;
unsigned int Bulan;
unsigned int Tahun;
};
struct Alamat{
char Jalan[30];
char Kota[20];
};
struct {
char Nama[40];
struct Tanggal Masuk;
struct Alamat Tinggal;
float Gaji;
}Karyawan = {
"Muhammad Fadly",
17,
11,
87,
“Jl. Adisucipto no.35",
"Pontianak",
1500000
};
//Menampilkan data karyawan
printf("Nama Karyawan : %sn",Karyawan.Nama);
printf("Tanggal Masuk : %2d-%2d-%2dn",Karyawan.Masuk.Hari,
Karyawan.Masuk.Bulan, Karyawan.Masuk.Tahun);
printf("Alamat : %s, %sn",Karyawan.Tinggal.Jalan,
Karyawan.Tinggal.Kota);
printf("Gaji per Bulan : Rp. %10.2fn",Karyawan.Gaji);
printf("n");
system("pause");
}
 Elemen-elemen dari suatu larik dapat juga
berbentuk suatu struktur. Larik struktur
dimensi satu membentuk suatu tabel (mirip
dengan larik dimensi dua) dengan barisnya
menunjukkan elemen dari lariknya dan
kolomnya menunjukkan elemen dari struktur.
Tiap-tiap elemen dari struktur dapat diakses
untuk tiap-tiap elemen larik dengan
menuliskan nama dari lariknya diikuti dengan
indeksnya, diikuti oleh operator titik dan
nama dari elemen strukturnya.
/* --------------------------------
Nama Program: ADP_Struktur_4.cpp
Larik Struktur
-------------------------------- */
#include <stdio.h>
#include <stdlib.h>
main()
{
struct Psd{
char Kode[5];
char Nama[20];
int Unit;
float Harga;
};
struct Psd Persediaan[100] = {
"M123","Monitor",5,125000,
"D124","DVD",10,10000,
"P125","Printer",7,3000000
};
int I, N=3;
float Total=0;
//Tampilkan hasilnya dalam bentuk label
printf(" DATA PERSEDIAANnn");
printf("Kode Nama Unit Harga Totaln");
printf("_____________________________________________________n");
printf("n");
for(I=0;I<N;I++){
printf("%s %-5s %4d %10.2f %10.2fn",Persediaan[I].Kode,
Persediaan[I].Nama,Persediaan[I].Unit,Persediaan[I].Harga,
Persediaan[I].Unit*Persediaan[I].Harga);
Total += Persediaan[I].Unit*Persediaan[I].Harga;
}
printf("n ");
printf("Total %10.2f n",Total);
printf("n");
system("pause");
}
 Kristanto, Andri. (2009). Algoritma &
Pemrograman dengan C++ Edisi 2.
Yogyakarta. Graha Ilmu.
 Hartono, Jogiyanto, MBA., Ph.D. (2002).
Konsep Dasar Pemrograman Bahasa C.
Yogyakarta. Andi.

8 struktur

  • 1.
  • 2.
     Struktur adalahsekumpulan variabel yang masing-masing tipe datanya bisa berbeda, dan dikelompokkan dalam satu nama.  Berbeda dengan suatu larik yang berisi kumpulan elemen-lemen larik bertipe sama dalam satu nama, struktur dapat terdiri dari kumpulan variabel-variabel yang berbeda tipenya dalam satu nama.  Variabel-variabel yang membentuk suatu struktur selanjutnya disebut elemen-elemen atau anggota struktur.
  • 3.
     Struktur membantumengatur data-data yang rumit, khususnya dalam program yang besar, karena struktur memberikan sekelompok variabel yang diperlakukan sebagai satu unit.  Struktur dimungkinkan dapat berisi elemen- elemen data bertipe int, float, char, dan lainnya.  Pada Pascal, struktur ini juga dikenal sebagai record).  Stuktur sering digunakan untuk mendefinisikan suatu record data yang disimpan di dalam file.  Struktur termasuk ke dalam tipe data yang dibangkitkan (derived data type), yang disusun menggunakan obyek dengan tipe yang lain.
  • 4.
     Struktur dapatdideklarasikan menggunakan kata kunci struct, contohnya seperti berikut: struct IP_Mhs{ int NIM[10]; char Nama[50]; int Semester; float IP; };  Struktur di atas memiliki nama IP_Mhs dan memiliki empat buah elemen, yaitu NIM[10] bertipe int, Nama[50] bertipe char, Semester bertipe int, dan IP bertipe float.
  • 5.
     IP_Mhs merupakannama dari tipe data struktur yang mempunyai empat buah elemen tersebut, bukan nama dari suatu variabel struktur.  Variabel struktur selanjutnya dapat dideklarasikan dengan nama tipe data IP_Mhs yang diawali dengan kata kunci struct seperti pada contoh berikut ini: struct IP_Mhs IP_Semester, IP_Kumulatif;  IP_Semester dan IP_Kumulatif merupakan variabel-variabel yang mempunyai tipe data IP_Mhs.
  • 6.
     Deklarasi variabe-variabeltipe data struktur juga dapat dilakukan dengan menggabungkan kedua deklarasi yang terpisah menjadi sebuah deklarasi, seperti contoh berikut: struct IP_Mhs { int NIM[10]; char Nama[50]; int Semester; float IP; } IP_Semester, IP_Kumulatif;
  • 7.
     Nama daritipe struktur, selanjutnya dapat digunakan untuk mendeklarasikan variabel- variabel yang lain dengan struktur tersebut.  Jika nama struktur tidak digunakan lagi untuk mendeklarasikan variabel-variabel struktur yang lain, maka nama dari tipe data ini dapat juga tidak dituliskan, sehingga deklarasinya dapat berbentuk seperti ini: struct { int NIM[10]; char Nama[50]; int Semester; float IP; } IP_Semester, IP_Kumulatif;
  • 8.
     Variabel-variabel strukturdapat juga langsung diberi nilai awal. Misalnya variabel IP_Semester mempunyai nilai awal NIM-nya adalah 3201416001, Nama Mahasiswanya adalah “Danish”, semesternya adalah 2 dan IP-nya 3.15, maka dapat dituliskan sebagai berikut: struct { int NIM[10]; char Nama[50]; int Semester; float IP; } IP_Semester = { 3201416001, “Danish”, 2, 3.15 }, IP_Kumulatif;
  • 9.
     Atau jikanama tipe data strukturnya telah dideklarasikan sendiri dan variabel strukturnya dideklarasikan terpisah, maka dapat ditulis: struct IP_Semester = { 3201416001, “Danish”, 2, 3.15 }, IP_Kumulatif;
  • 10.
     Elemen-elemen strukturdapat diakses secara individual dengan menyebutkan nama variabel strukturnya diikuti oleh operator titik (‘.’) dan nama dari elemen strukturnya, seperti berikut ini: X = IP_Semester.IP; yang menunjukkan elemen dengan nama IP dari variabel struktur IP_Semester dengan nilai awal 3.15, diisikan ke variabel numerik lain bernama X.
  • 11.
    /* ------------------------------------------ Nama Program:ADP_Struktur_1.cpp Struktur ------------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { struct { char Nama[20]; int NIM; float IP; }Mhs; printf("Nama Mahasiswa: "); scanf("%s", &Mhs.Nama); printf("Nomor Induk Mahasiswa: "); scanf("%d", &Mhs.NIM); printf("Indeks Prestasi Semester: "); scanf("%f", &Mhs.IP); printf("n"); printf("Data Mahasiswa adalah %s, dengan NIM %d, dan IP %.2fn", Mhs.Nama, Mhs.NIM, Mhs.IP); printf("n"); system("pause"); }
  • 13.
    /* ------------------------------------------ Nama Program:ADP_Struktur_2.cpp Struktur ------------------------------------------ */ #include <stdio.h> #include <stdlib.h> main() { struct { float JariJari; float Keliling; float Luas; }Lingkaran; printf("Jari-jari Lingkaran: "); scanf("%f", &Lingkaran.JariJari); printf("n"); Lingkaran.Keliling = 2*3.14*Lingkaran.JariJari; Lingkaran.Luas = 3.14*Lingkaran.JariJari*Lingkaran.JariJari; printf("Jadi Keliling Lingkaran adalah %.2fn", Lingkaran.Keliling); printf("Sedangkan Luas Lingkaran adalah %.2fn", Lingkaran.Luas); printf("n"); system("pause"); }
  • 15.
     Pada contohprogram ADP_Struktur_1.cpp variabel struktur Mhs, elemen Nama dapat diakses dengan menuliskan Mhs.Nama, elemen NIM dapat diakses dengan menuliskan Mhs.NIM, dan elemen IP dapat diakses dengan menuliskan Mhs.IP.  Sedangkan pada contoh program ADP_Struktur_2.cpp, elemen JariJari dapat diakses dengan menuliskan Lingkaran.JariJari, elemen Keliling dapat diakses dengan menuliskan Lingkaran.Keliling dan elemen Luas dapat diakses dengan menuliskan Lingkaran.Luas.
  • 16.
     Suatu strukturdapat berisi struktur yang lain dengan elemn berupa struktur yang lain. Jika suatu elemen dari struktur dapat diakses dengan menuliskan sebagai berikut: nama-variabel.nama-elemen; maka sub-elemen dari struktur dapat diakses dengan menuliskan: nama-variabel.nama-elemen.nama-sub-elemen
  • 17.
    /* ----------------------------------------- Nama Program:ADP_Struktur_3.cpp Struktur berisi Struktur lain ----------------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { struct Tanggal{ unsigned int Hari; unsigned int Bulan; unsigned int Tahun; }; struct Alamat{ char Jalan[30]; char Kota[20]; }; struct { char Nama[40]; struct Tanggal Masuk; struct Alamat Tinggal; float Gaji; }Karyawan = { "Muhammad Fadly", 17, 11, 87, “Jl. Adisucipto no.35", "Pontianak", 1500000 }; //Menampilkan data karyawan printf("Nama Karyawan : %sn",Karyawan.Nama); printf("Tanggal Masuk : %2d-%2d-%2dn",Karyawan.Masuk.Hari, Karyawan.Masuk.Bulan, Karyawan.Masuk.Tahun); printf("Alamat : %s, %sn",Karyawan.Tinggal.Jalan, Karyawan.Tinggal.Kota); printf("Gaji per Bulan : Rp. %10.2fn",Karyawan.Gaji); printf("n"); system("pause"); }
  • 19.
     Elemen-elemen darisuatu larik dapat juga berbentuk suatu struktur. Larik struktur dimensi satu membentuk suatu tabel (mirip dengan larik dimensi dua) dengan barisnya menunjukkan elemen dari lariknya dan kolomnya menunjukkan elemen dari struktur. Tiap-tiap elemen dari struktur dapat diakses untuk tiap-tiap elemen larik dengan menuliskan nama dari lariknya diikuti dengan indeksnya, diikuti oleh operator titik dan nama dari elemen strukturnya.
  • 20.
    /* -------------------------------- Nama Program:ADP_Struktur_4.cpp Larik Struktur -------------------------------- */ #include <stdio.h> #include <stdlib.h> main() { struct Psd{ char Kode[5]; char Nama[20]; int Unit; float Harga; }; struct Psd Persediaan[100] = { "M123","Monitor",5,125000, "D124","DVD",10,10000, "P125","Printer",7,3000000 }; int I, N=3; float Total=0;
  • 21.
    //Tampilkan hasilnya dalambentuk label printf(" DATA PERSEDIAANnn"); printf("Kode Nama Unit Harga Totaln"); printf("_____________________________________________________n"); printf("n"); for(I=0;I<N;I++){ printf("%s %-5s %4d %10.2f %10.2fn",Persediaan[I].Kode, Persediaan[I].Nama,Persediaan[I].Unit,Persediaan[I].Harga, Persediaan[I].Unit*Persediaan[I].Harga); Total += Persediaan[I].Unit*Persediaan[I].Harga; } printf("n "); printf("Total %10.2f n",Total); printf("n"); system("pause"); }
  • 23.
     Kristanto, Andri.(2009). Algoritma & Pemrograman dengan C++ Edisi 2. Yogyakarta. Graha Ilmu.  Hartono, Jogiyanto, MBA., Ph.D. (2002). Konsep Dasar Pemrograman Bahasa C. Yogyakarta. Andi.