1 / 42

STRUKTUR

STRUKTUR.

jaunie
Download Presentation

STRUKTUR

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. STRUKTUR Strukturmerupakankumpulanelemen data yang digabungkanmenjadisatukesatuan data. Masing-masingelemen data tersebutdinamakan field atauelemenstruktur. Field tersebutbisamemilikitipe data yang ataupunberbeda, meskipun field tersebutdalamsatukesatuantetapitetapbisasiaksessecaraindividu.

  2. STRUCT Struct adalah termasuk tipe data komposit. Berbeda dengan array, tipe data struct mampu menampung banyak data dengan tipe data berbeda-beda (heterogen). Sebagai ilustrasi array mampu menampung banyak data namun dengan satu tipe data yang sama, misalnya integer saja. Sedangkan dalam struct, kita bisa menggunakan untuk menampung banyak data dengan tipe data yang berbeda, satu bagian integer, satu bagian lagi character, dan bagian lainnya Boolean

  3. Stuct • Struct adalah tipe data bentukan yang berisi kumpulan variabel-variabel yang bernaung dalam satu nama yang sama dan memiliki kaitan satu sama lain. • Berbeda dengan array hanya berupa kumpulan variabel yang bertipe data sama, struct bisa memiliki variabel-variabel yang bertipe data sama atau berbeda, bahkan bisa menyimpan variabel yang bertipe data array atau struct itu sendiri. • Variabel-variabel yang menjadi anggota struct disebut dengan elemen struct.

  4. Struktur (struct) adalah • Sekumpulan data • Tipe datanya BOLEH berbeda • Menggunakan nama yang sama • Dibedakan melalui nama field-nya • Struktur biasa dipakai untuk mengelompokkan beberapa informasi yang berkaitan menjadi sebuah kesatuan (dalam bahasa PASCAL, struktur disebut dengan record) • Variabel-variabel yang membentuk suatu struktur, selanjutnya disebut sebagai elemen dari struktur atau field. • Dengan demikian dimungkinkan suatu struktur berisi elemen-elemen data berbeda tipe seperti char, int, float, double, dan lain-lain. • Contoh sebuah struktur adalah informasi data tanggal (date) yang berisi : • month • day • year

  5. Mendefinisikan Struktur • Suatu struktur didefinisikan dengan menggunakan kata kunci struct. • Dua Contoh pendefinisian sebuah tipe data struktur : struct date { struct date { int month; int month, day, year; int day; }; int year; }; yang mendefinisikan sebuah tipe data struktur bernama struct date yang memiliki tiga buah elemen (field) berupa : - month - day - year

  6. Mendeklarasikan Struktur • Untuk mendeklarasikan sebuah variabel todayyang bertipe struct date pernyataannya sbb: • Pernyataan di atas menyatakan bahwa variabel today bertipe struct date.

  7. Mendefinisikan & Mendeklarasikan Struktur • Dalam mendefinisikan sebuah struktur, elemen yang terkandung di dalamnya bisa juga berupa sebuah struktur • Contoh : struct date { int month, day, year; }; struct student { char name[30]; struct date birthday; }; struct student mhs; //deklarasi var mhs • Diagram struktur data dari variabel mhs dapat digambarkan sbb :

  8. Mengakses Elemen Struktur • Elemen dari suatu variabel struktur dapat diakses dengan menyebutkan nama variabel struktur diikuti dengan operator titik (‘.’) dan nama dari elemen strukturnya. • Cara penulisannya sebagai berikut : • Misalnya, memberikan data nama ke field name dari variabel student di atas, maka pernyataan yang diperlukan misalnya adalah : strcpy(mhs.name, “Budi"); • Pada pernyataan di atas, mhs.name dapat dibaca sebagai "field name dari mhs". • Contoh berikut merupakan instruksi untuk mengisikan data pada field birthday : mhs.birthday.day = 10; variabel_struktur.nama_field

  9. Mengakses Elemen Struktur • Sedangkan untuk mendapatkan isi suatu field dari variabel struktur, contohnya : tgl = mhs.birthday.day; merupakan instruksi untuk memberikan isi dari fieldday ke variabel tgl puts(mhs.name); merupakan instruksi untuk menampilkan di layar isi dari fieldname.

  10. Menginisialisasi Struktur • Sebuah struktur juga bisa diinisialisasi pada saat dideklarasikan. • Hal ini serupa dengan inisialisasi array, yaitu elemen-elemennya dituliskan di dalam sepasang kurung kurawal (‘{ }‘) dengan masing-masing dipisahkan dengan koma. • Contoh untuk variabel mhs di atas : struct student mhs = {“Muhammad”, 2, 28, 1970};

  11. Array dan Struktur (array of struct) • Elemen-elemen dari suatu array juga dapat berbentuk sebuah struktur (array of struct), misalnya array yang dipakai untuk menyimpan sejumlah data siswa (struct student). • Array struktur berdimensi satu ini membentuk suatu tabel, dengan barisnya menunjukkan elemen dari array-nya dan kolomnya menunjukkan elemen/field dari struktur. #define MAKS 20 struct date { //definisi dari tipe struct date int month, day, year; }; struct student { //definisi dari tipe struct student char name[30]; struct date birthday; }; struct student data_mhs[MAKS]; //deklarasi variabel array mhs yang artinya, mendeklarasikan arraydata_mhs yang memiliki elemen yang bertipe struct studentsebanyak MAKS.

  12. Array dan Struktur (array of struct) • Setelah array data_mhs dideklarasikan, maka ruang yang disediakan ditunjukkan dalam gambar di bawah ini.

  13. Array dan Struktur #include <stdio.h> #define MAKS 20 struct date { //definisi global dr tipe date int month, day, year; }; struct student { //definisi global dr tipe student char name[30]; struct date birthday; }; main() { struct student data_mhs[MAKS]; int i=0, jml; char lagi; do //memasukkan data { printf("Name : "); gets(data_mhs[i].name); printf("Birthday (mm-dd-yyyy): "); scanf("%d-%d-%d", &data_mhs[i].birthday.month, &data_mhs[i].birthday.day, &data_mhs[i].birthday.year); i++;

  14. Array dan Struktur fflush(stdin); //hapus sisa data dlm buffer keyboard printf(“\nMau memasukkan data lagi [Y/T] ? "); lagi = getchar( ); //baca tombol fflush(stdin); //hapus sisa data dlm buffer keyboard } while(lagi == 'Y' || lagi == 'y'); jml = i; printf("\nDATA MAHASISWA\n"); for (i=0; i<jml; i++) //menampilkan data { printf("%d. Name : %s", i+1, data_mhs[i].name); printf("\n Birthday : %d-%d-%d\n\n", data_mhs[i].birthday.month, data_mhs[i].birthday.day, data_mhs[i].birthday.year); } }

  15. Hasilnya….

  16. Variasi Pendeklarasian Struktur • Selain cara yang sudah dibahas sebelumnya, struktur juga dapat dideklarasikan dalam berbagai bentuk yang lain sbb: struct date { int month, day, year; } today, tomorrow; struct student { char name[30]; struct date birthday; } data_mhs[MAKS]; yaitu mendefinisikan struct date, sekaligus mendeklarasikan variabel today dan tomorrow dengan tipe struct date. Demikian juga mendefinisikan struct student, sekaligus mendeklarasikan variabel array data_mhs sebanyak MAKS elemen dengan tipe struct student. • Cara lainnya : mendefinisikan, mendeklarasikan sekaligus menginisialisasi struktur sbb: struct date { int month, day, year; } today = {12, 25, 2006};

  17. Bentuk Umum • Bentuk umum: • typedef struct <nama_struct> { • tipe_data <nama_var>; • tipe_data <nama_var>; • .... • }

  18. Pendeklarasian dan penggunaan Struct (1) (menggunakan typedef) • typedef struct Mahasiswa { • char NIM[8]; • char nama[50]; • float ipk; • }; • untuk menggunakan struct Mahasiswa dengan membuat variabel mhs dan mhs2 • Mahasiswa mhs,mhs2; • untuk menggunakan struct Mahasiswa dengan membuat variabel array m; • Mahasiswa m[100];

  19. Pendeklarasian dan penggunaan Struct (2) (tanpa menggunakan typedef) • struct { • char NIM[8]; • char nama[50]; • float ipk; • } mhs; • Berarti kita sudah mempunyai variabel mhs yang bertipe data struct seperti diatas.

  20. Cara penggunaan struct dan pengaksesan elemen-elemennya • Penggunaan/pemakaian tipe data struct dilakukan dengan membuat suatu variabel yang bertipe data struct tersebut • Pengaksesan elemen struct dilakukan secara individual dengan menyebutkan nama variabel struct diikuti dengan operator titik (.) • Misalnya dengan struct mahasiswa seperti contoh di atas, kita akan akses elemen-elemennya seperti contoh berikut:

  21. Program • Contoh 1 • #include <stdio.h> • #include <conio.h> • //Pendeklarasian tipe data baru struct Mahasiswa • typedef struct Mahasiswa{ • char NIM[9]; • char nama[30]; • float ipk; • }; • void main(){ • //Buat variabel mhs bertipe data Mahasiswa • Mahasiswa mhs; • clrscr(); • printf("NIM = ");scanf("%s",mhs.NIM); • printf("Nama = ");scanf("%s",mhs.nama); • printf("IPK = ");scanf("%f",&mhs.ipk); • printf("Data Anda : \n"); • printf("NIM : %s\n",mhs.NIM); • printf("Nama : %s\n",mhs.nama); • printf("IPK : %f\n",mhs.ipk); • getch(); • }

  22. Hasil

  23. Program • #include <stdio.h> • #include <conio.h> • #define phi 3.14 • //langsung dianggap variabel 'lingkaran' • struct { • float jari2; • float keliling; • float luas; • } lingkaran; • //fungsi void untuk menghitung luas ingkaran • void luasLingkaran(){ • //langsung menggunakan luas lingkaran asli • lingkaran.luas = lingkaran.jari2 * lingkaran.jari2 * phi; • printf("\nLuas lingkaran = %f",lingkaran.luas); • } • //fungsi yang mengembalikan nilai float untuk menghitung keliling lingkaran • float kelLingkaran(float j){ • return 2*phi*lingkaran.jari2; • } • int main(){ • clrscr(); • printf("Jari-jari = ");scanf("%f",&lingkaran.jari2); • //panggil fungsi luasLingkaran • luasLingkaran(); • //panggil fungsi keliling, nilai kembaliannya dikirim ke keliling lingkaran asli • lingkaran.keliling = kelLingkaran(lingkaran.jari2); • //tampilkan keliling lingkaran asli • printf("\nKeliling lingkaran = %f",lingkaran.keliling); • getch(); • }

  24. Hasil

  25. Struct yang berisi struct lain • #include <stdio.h> • #include <conio.h> • typedef struct Date{ • int dd; • int mm; • int yyyy; • }; • typedef struct Time{ • int h; • int m; • int s; • }; • typedef struct Login{ • int ID; • Date tglLogin; • Time waktuLogin; • }; • int main(){ • Login user1; • printf("USER 1\n"); • printf("ID : ");scanf("%d",&user1.ID); • printf("Tanggal Login\n"); • printf("Hari : ");scanf("%d",&user1.tglLogin.dd); • printf("Bulan : ");scanf("%d",&user1.tglLogin.mm); • printf("Tahun : ");scanf("%d",&user1.tglLogin.yyyy); • printf("Waktu Login\n"); • printf("Jam : ");scanf("%d",&user1.waktuLogin.h); • printf("Menit : ");scanf("%d",&user1.waktuLogin.m); • printf("Detik : ");scanf("%d",&user1.waktuLogin.s); • printf("Terimakasih\n"); • printf("Data Anda :\n"); • printf("ID : %d\n",user1.ID); • printf("Date : %d - %d - %d\n",user1.tglLogin.dd,user1.tglLogin.mm,user1.tglLogin.yyyy); • printf("ID : %d:%d:%d\n",user1.waktuLogin.h,user1.waktuLogin.m,user1.waktuLogin.s); • getch(); • }

  26. Hasil

  27. Array of Struct • #include <stdio.h> • #include <conio.h> • typedef struct Date{ • int dd; • int mm; • int yyyy; • }; • typedef struct Time{ • int h; • int m; • int s; • }; • typedef struct Login{ • int ID; • Date tglLogin; • Time waktuLogin; • }; • int main(){ • Login user[3]; • //3 user • for(int i=0;i<3;i++){ • printf("\nUSER ke-%d\n",i+1); • printf("ID : ");scanf("%d",&user[i].ID); • printf("Tanggal Login\n"); • printf("Hari : ");scanf("%d",&user[i].tglLogin.dd); • printf("Bulan : ");scanf("%d",&user[i].tglLogin.mm); • printf("Tahun : ");scanf("%d",&user[i].tglLogin.yyyy); • printf("Waktu Login\n"); • printf("Jam : ");scanf("%d",&user[i].waktuLogin.h); • printf("Menit : ");scanf("%d",&user[i].waktuLogin.m); • printf("Detik : ");scanf("%d",&user[i].waktuLogin.s); • printf("Terimakasih Atas Pengisiannya\n"); • printf("\nData User ke-%d:\n",i+1); • printf("Login ID : %d\n",user[i].ID); • printf("Login Date : %d - %d - %d\n",user[i].tglLogin.dd,user[i].tglLogin.mm,user[i].tglLogin.yyyy); • printf("Login Time : %d:%d:%d\n",user[i].waktuLogin.h,user[i].waktuLogin.m,user[i].waktuLogin.s); • } • getch(); • }

  28. Hasil

  29. IMAGE Image atau gambar atau citra merupakan tipe data grafik. Misalnya : grafik perkembangan jumlah siswa SMK, foto keluarga kita, video perjalanan dan lain-lain. Pada bahasa-bahasa pemrograman modern terutama yang berbasis visual tipe data ini telah didukung dengan sangat baik.

  30. DATE TIME Nilai data untuk tanggal (Date) dan waktu (Time) secara internal disimpan dalam format yang spesifik. Variabel atau konstanta yang dideklarasikan dengan tipe data Date dapat digunakan untuk menyimpan baik tanggal maupun jam. Tipe data ini masuk dalam kelompok tipe data composite karena merupakan bentukan dari beberapa tipe data. Berikut ini contoh tipe data dalam Visual Basic. Dim WaktuLahir As Date WaktuLahir = “01/01/1997” WaktuLahir = “13:03:05 AM” WaktuLahir = “02/23/1998 13:13:40 AM” WaktuLahir = #02/23/1998 13:13:40 AM#

  31. Deklarasi struktur struct nama_struktur { type1 element1; type2 element2; anggota / elemen dari struktur 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;

  32. Contoh struktur dengan tipe data berbeda : struct mahasiswa { char nim[10]; char nama[25]; char jurusan[2]; float ipk; }mhs;

  33. Contoh struktur dengan tipe data sama : struct tanggal { int tanggal; int bulan; int tahun; }tgl; ---atau bisa ditulis --- struct tanggal { int tanggal, bulan, tahun; }tgl;

  34. Contoh program 1 : //program data stok #include <iostream.h> #include <conio.h> struct stok { char nama [50]; int jml; }stoks ; main () { cout<<"Masukkan nama barang = ";cin>>stoks.nama; cout<<"Masukkan jumlah barang = ";cin>>stoks.jml; cout<<""; cout<<"-------------------------\n"; cout<<""; cout<<"Output "<<stoks.nama<<" = "; cout<<stoks.jml; getch();}

  35. Bisa juga di tulis : //program data stok #include <iostream.h> #include <conio.h> struct stok { char nama [50]; int jml; }; struct stok stoks; main () { cout<<"Masukkan nama barang = ";cin>>stoks.nama; cout<<"Masukkan jumlah barang = ";cin>>stoks.jml; cout<<""; cout<<"-------------------------\n"; cout<<""; cout<<"Output "<<stoks.nama<<" = "; cout<<stoks.jml; getch(); }

  36. Contoh program 2 : //program mengakses elemen struktur #include <iostream.h> #include <conio.h> struct data_tgl { int tgl,bln,thn; }; struct teman { char nama[20]; char j_kel[1]; struct data_tgl tgl; }; struct teman info;

  37. main () { //input data cout<<"Masukkan nama anda = ";cin>>info.nama; cout<<"Jenis kelamin anda = ";cin>>info.j_kel; cout<<"Tanggal lahir anda = ";cin>>info.tgl.tgl; cout<<"Bulan lahir anda = ";cin>>info.tgl.bln; cout<<"Tahun lahir anda = ";cin>>info.tgl.thn; cout<<""; cout<<"-------------------------\n"; cout<<""; //output data cout<<"Nama : "<<info.nama; cout<<"\nKelamin : "<<info.j_kel; cout<<"\nTanggal lahir : "<<info.tgl.tgl<<"-"<<info.tgl.bln <<"-"<<info.tgl.thn; getch();}

  38. Enumerasi Enumerasi adalah tipe data yang mempunyai elemen-elemen bertipe konstanta dengan urutan yang sudah dtentukan. Nilai-nilai dari konstanta ini berupa nilai-nilai integer yang diwakili oleh pengenal yang ditulis di antara tanda kurung kurawal “{ “ dan “}”. Tipe ini dideklarasikan dengan kata kunci enum. Deklarasi Enumerasi : Enum nama_enumerasi{nilai1,nilai2,…}

  39. Contoh program 3 : //program mengakses elemen struktur #include <iostream.h> #include <conio.h> enum j_kel{pria,wanita} ; int main() { struct siswa { int nis; char nama[20]; j_kel kelamin; }A; //input data A.nis=123; A.nama=="Yuli"; A.kelamin=wanita; //output data cout<<"\nNis : "<<A.nis<<endl; cout<<"Nama : "<<A.nama; cout<<"\nKelamin : "<<A.kelamin; getch();}

  40. Struktur yang berisi struktur yang lain Suatu struktur dapat berisi dengan elemen berupa struktur yang lain. Contoh : #include <stdio.h> #include <conio.h> #include <iostream.h> main() { structtanggal{ inthari; intbulan; inttahun; }; structalamat { char jalan[30]; char kota[20]; };

  41. struct { char nama[40]; struct tanggal masuk; struct alamat tinggal; float gaji; } karyawan={"Arief Kurniawan", 17,11,87,"Jalan Raya 5","Yogyakarta", 750000.00}; /*menampilkan data karyawan*/ cout<<"Nama Karyawan : "<< karyawan.nama; cout<<"\nTangggal Masuk : "<< karyawan.masuk.hari << karyawan.masuk.bulan <<karyawan.masuk.tahun ; cout<<"\nalamat : "<< karyawan.tinggal.jalan; cout<<"\n "<< karyawan.tinggal.kota; cout<<"\nGaji Karyawan Rp "<< karyawan.gaji; getch(); }

  42. Output :

More Related