1 / 25

Pertemuan 21-22 Structure

Pertemuan 21-22 Structure. Matakuliah : T0616 / Algoritma dan Pemrograman Tahun : 2007 Versi : 1/0. Learning Outcomes. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Menerapkan konsep tipe data structure untuk data majemuk non homogen (C3). Outline Materi. Structure

jerom
Download Presentation

Pertemuan 21-22 Structure

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. Pertemuan 21-22Structure Matakuliah : T0616 / Algoritma dan Pemrograman Tahun : 2007 Versi : 1/0

  2. Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • Menerapkan konsep tipe data structure untuk data majemuk non homogen (C3)

  3. Outline Materi Structure • Definisi dan deklarasi structure • Nested structure • Inisialisasi structure • Akses anggota structure • Array of structure • Array vs structure

  4. Definisi dan Deklarasi Structure • Structure: tipe data yang digunakan untuk menampung sekelompok data yang berbeda tipe. • Komponen struktur disebut anggota, field atau elemen. • Bersifat heterogen. • Metode akses sekuensial. • Disebut record di bahasa pemrograman lain.

  5. Definisi dan Deklarasi Structure • Sintaks struct name { anggota 1; anggota 2; … anggota m; } ; struct name v1, …, vn; • atau struct name { anggota 1; anggota 2; … anggota m; } v1, …, vn; • struct adalah keyword • name adalah identifier structure

  6. Definisi dan Deklarasi Structure • Contoh : struct rekening { int noRek; char tipeRek; char nama[31]; long saldo; }; struct rekening nasabah1, nasabah2; ATAU struct rekening { int noRek; char tipeRek; char nama[31]; long saldo; } nasabah1, nasabah2;

  7. Definisi dan Deklarasi Structure • Contoh : struct automobile { int year; char model[8]; int engine_power; float weight; }; struct automobile { int year; char model[8]; int engine_power; float weight; } sedan, pick_up, sport_utility;

  8. Nested Structure • Struktur yang salah satu anggotanya adalah struktur lain. • Deklarasi struktur lain dilakukan sebelum deklarasi struktur yang memuatnya. • Contoh : • Struct Mhs berisi Nim, Nama, Alamat, Tempat, Tanggal Lahir • Alamat merupakan struct yang terdiri dari Nama Jalan, Nomor Rumah, Kota, Provinsi • Tanggal Lahir merupakan struct yang berisi Tanggal, Bulan dan Tahun

  9. Nested Structure • Contoh : struct tanggal { int tgl, bln, thn; }; struct rekening { int noRek; char tipeRek; char nama[31]; long saldo; struct tanggal transAkhir; }; struct rekening nasabah1, nasabah2;

  10. Inisialisasi Structure • Sintaks • Struct name variabel = {nilai_1, …, nilai_m}; • Contoh • Struct rekening nasabah1 = {1984, ‘a’, “frenzy”, 200000, 19}; • Operator titik (.) Untuk mengakses anggota/subanggota struktur. • Sintaks • Var_structure.Anggota; • Var_structure.Anggota.Subanggota; • Contoh • nasabah1.norek; • Mhs1.Alamat.NamaJalan

  11. Inisialisasi Structure /* Akses ke anggota structure */ #include <stdio.h> struct computer { float cost; int year; int cpu_speed; char cpu_type[16]; } model; main(void) { printf(“Tipe CPU ?\n"); gets(model.cpu_type); printf(“CPU Speed?\n"); scanf("%d", &model.cpu_speed); printf(“Dibuat tahun ?\n"); scanf("%d", &model.year); printf(“Berapa harganya ?\n"); scanf("%f", &model.cost); printf(“Tahun: %d\n", model.year); printf(“Harga: $%6.2f\n", model.cost); printf(“Tipe CPU: %s\n", model.cpu_type); printf(“Speed CPU: %d MHz\n", model.cpu_speed); } • Contoh :

  12. Inisialisasi Structure • Contoh : /* Inisialisasi structure */ #include <stdio.h> void main(void) { struct employee { int id; char name[32]; }; struct employee info = {1,"B. Smith"}; //inisialisasi printf("Nama Karyawan: %s\n", info.name); printf("ID Karyawan: %04d\n\n", info.id); printf("Nama Anda ?\n"); gets(info.name); printf("ID Anda ?\n"); scanf("%d", &info.id); printf("Nama Anda: %s\n", info.name); printf("ID Anda : %04d\n", info.id); }

  13. Array of Structure • Tipe data struct dalam kenyataannya hanya bisa menampung satu record saja, sedangkan dalam aplikasi biasanya dibutuhkan record lebih dari satu. • Maka, dalam penggunaanya tipe data struct biasanya digabung dengan array.

  14. Array of Structure • Contoh : struct tanggal { int tgl, bln, thn; }; struct rekening { int noRek; char tipeRek; char nama[31]; long saldo; struct tanggal transAkhir; }; struct rekening nasabah[100];

  15. Nilai Awal Array of Structure struct tanggal { char nama[31]; int tgl, bln, thn; }; struct tanggal ultah[ ] = { {“Tata”, 9, 7, 1984}, {“Titi”, 7, 9, 1986}, {“Tutu”, 9, 9, 1990} };

  16. Nilai Awal Array of Structure • Contoh : /* Array structure */ #include <stdio.h> struct haiku { int start_year; int end_year; char author[16]; char str1[32]; char str2[32]; char str3[32]; }; typedef struct haiku HK; void DataDisplay(HK *ptr_s);

  17. Nilai Awal Array of Structure void main(void) { HK poem[2] = { { 1641, 1716, "Sodo", "Leading me along", "my shadow goes back home", "from looking at the moon." }, { 1729, 1781, "Chora", "A storm wind blows", "out from among the grasses", "the full moon grows." } }; int i; for (i=0; i<2; i++) DataDisplay(&poem[i]); } • Contoh :

  18. Nilai Awal Array of Structure • Contoh : /* Definisi Fungsi */ void DataDisplay(HK *ptr_s) { printf("%s\n", (*ptr_s).str1); printf("%s\n", (*ptr_s).str2); printf("%s\n", (*ptr_s).str3); printf("--- %s\n", (*ptr_s).author); printf(" (%d-%d)\n\n", (*ptr_s).start_year, (*ptr_s).end_year); }

  19. Array vs Structure • Array • Hubungan antar elemen: linear • Homogen • Random akses • Akses elemen dengan index • Elemen di memori: contiguous • Structure • Hubungan antar elemen: linear • Heterogen • Sekuensial akses • Akses elemen dengan field id. • Elemen di memori: non-contiguous

  20. Latihan • Buatlah struct sebagai berikut : • Struct Mhs berisi Nim, Nama, Alamat, Tempat, TanggalLahir • Alamat merupakan struct yang terdiri dari NamaJalan, NomorRumah, Kota, Provinsi • TanggalLahir merupakan struct yang berisi Tanggal, Bulan dan Tahun

  21. Latihan • Berdasarkan soal sebelumnya, buatlah program untuk menginput data sebanyak 5 mahasiswa (menggunakan array of structure)

  22. Latihan • Berdasarkan struct berikut : • Buatlah aplikasi menggunakan array of structure untuk menginput 5 jenis mobil, kemudian tampilkan dalam format yang layak. struct automobile { int year; char model[8]; int engine_power; float weight; };

  23. Latihan • Menggunakan struct berikut : struct ipkmhs { char nim[11]; char nama[30]; float ipk; }; • Buatlah program untuk menginput data 5 mahasiswa, dan tampilkan data mahasiswa ipk >= 3.0 dan ipk < 3.0 • Contoh : Mhs ipk >=3.0 : Andi Budi Candra Mhs ipk < 3.0 : Dadu Emin

  24. Latihan • Buatlah sebuah struct : • Buat program (tanpa menggunakan array) untuk menginput struct tersebut, kemudian tampilkan nim, nama, kodemtk, sks, grade. struct nilaimhs { char Nim[11]; char Nama [30]; char KodeMtk [5]; int sks; char grade; };

  25. Latihan • Berdasarkan soal sebelumnya, dengan mempertimbangkan bobot grade dan sks : • Buatlah program menggunakan array of struct untuk menginput 5 nilai matakuliah pada semester 1, kemudian tampilkan IP mahasiswa. Grade BobotGrade A 4 B 3 C 2 D 1 E 0

More Related