Struktur (bag 1).

Slides:



Advertisements
Presentasi serupa
STRUKTUR DATA (5) Pointer dan Function
Advertisements

Pointer.
Fungsi, Parameter, Rekursi Daniel Riano Kaparang Book reference: Jogiyanto. Konsep Dasar Pemrograman Bahasa C. Andi Star. Yogyakarta Kristanto Andri.
Fungsi (lanjutan) Pertemuan ke-9 Bahasa C.
PERTEMUAN VIII STRUKTUR LANJUT JURUSAN TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Oleh : Muh. Zen S. Hadi, ST.
CSE1301 Sem /8/2017 File I/O Lecture 19: File I/O.
INSTRUKSI MASUKAN DAN KELUARAN
ARRAY Dr. Lily Wulandari.
Konsep Pemrograman Function.
1 Pointer wijanarto. 2 Topik Introduction to Pointers Pointers dan Parameter Fungsi.
Algoritma & Struktur Data Pointer Evangs Mailoa.
Review-Dasar Pemrograman Komputer
ARRAY OF STRUCT Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara : Deklarasi manual #include typedef struct Mahasiswa { char.
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA
STRUKTUR DATA (5) Pointer dan Function
Pointer Yuliana Setiowati.
Algoritma & Struktur Data Linked List Evangs Mailoa.
POINTER (VAR.PENUNJUK)
STRUKTUR DATA Pointer dan Function
Algoritma dan Struktur Data
Function User Function.
STRUCT OF ARRAY Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara : Deklarasi manual #include typedef struct Mahasiswa { char.
Bab 05 Tipe Data dan Mengisi Variabel
FUNCTIONS Pertemuan 9 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
Rahmat D. R. Dako, ST, M.Eng.  Modul  void main (void)  Modul  fungsi = function  Keuntungan penggunaan Fungsi atau modul :  Program menjadi lebih.
Teknik Pemrog. Terstruktur 2
1 Pertemuan Fungsi Matakuliah: T0016 / Algoritma dan Pemrograman Tahun: 2007 Versi: 6.
1. Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu :  Mendemonstrasikan penggunaan fungsi serta pengiriman parameter 2.
Fungsi, Array dan String
Prosedur dan Fungsi Triana Elizabeth, S.Kom.
1 Komponen Program C bag 1. 2 Topik Type Variables Keywords dan Identifiers Assignments Constant Variables.
Materi-8 STRUCTURE (RECORD).
LAB PEMOGRAMAN DASAR (BAHASA C)
STRUCT (Dalam Bahasa C)
Matakuliah : T0616 / Algoritma dan Pemrograman
Algoritme dan Pemrograman
Algoritma dan Struktur Data
Algoritme dan Pemrograman
Struktur Manfaat tipe data struct secara umum adalah untuk menyimpan paket (sekumpulan) data ke dalam satu buah nama variabel saja. Kumpulan data di dalam.
Fungsi TEE 2103 Algoritma & Pemrograman Dosen: Abdillah, MIT
Struktur Data (Data Structure) – IS 2313
PEMROGRAMAN DASAR.
P O I N T E R.
Remainder Senin depan mulai UTS Praktikum
Latihan #0 Dengan menggunakan pernyataan looping WHILE dan jumlah instruksi sesedikit mungkin, tuliskan cuplikan program (bukan program lengkap, hanya.
Struktur Data Khoiriya Latifa, M.Kom.
Algoritme dan Pemrograman
ARRAY 1d MERISKA DEFRIANI, S.KOMP ALGORITMA DAN PEMROGRAMAN II
Contoh-contoh Pemecahan Masalah 2 TEE 2103 Algoritma & Pemograman
Algoritma dan Struktur Data
(Struktur Dasar, Variabel, Tipe Data, Input, Output, Komentar)
Input Dan Output.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
PEMROGRAMAN DASAR (BAHASA C)
Pertemuan 5 (Variabel dan konstanta) .:: Erna Sri Hartatik ::.
PERBEDAAN C DAN C++ Meriska Defriani, S
Pemrograman Terstruktur
Contoh-contoh Pemecahan Masalah 2 TEE 2103 Algoritma & Pemograman
Algoritma dan Struktur Data
ALGORITMA & STRUKTUR DATA I
STRUKTUR DATA PERTEMUAN 6.
Input dan Output Pertemuan ke-3 Bahasa C.
LAB PEMOGRAMAN DASAR (BAHASA C)
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
Algoritme dan Pemrograman
Pertemuan 3 Input/output Statement Assignment Statement
ALGORITMA & STRUKTUR DATA C Programming
Variable Static & Linked List
FUNGSI.
Transcript presentasi:

Struktur (bag 1)

Topik Struktur Arrays of structs typedef structs and fungsi Pointer ke structs structs dalam structs Data Struktur dan disain modular

Apa itu Struktur? Kumpulan variabel yang berelasi di bawah satu nama besar /aggregate Dapat berisi berbagai macam tipe variabel. Cara menggunaan Struktur: Definisikan Struktur Deklarasikan/Inisialisasikan instan Struktur Anggota Access dari instan Struktur

Definisi Struktur Struktur adalah sebuah blueprint Contoh: Lunchbox Definisikan struktur dg nama “Lunchbox” yg mempunyai bagian/compartments: fruit compartment sandwich compartment drink compartment

Definisi Struktur struct isdipakai utk menentukan blueprint Anggota yg ditentukan tdr dr aspek yg berbeda dr struct Contoh: struct LunchBox { int fruit; float drink; char sandwich[MAXN]; }; Lunchbox

Variabel Struktur Instan Struktur: urutan actual yg berdekatan dalam penyimpanan di lokasi memori struct LunchBox kyle; struct LunchBox stan, cartman, kenny; struct LunchBox kids[5];

Inisialisasi variabel struct struct LunchBox kyle = { 1, 370.0, “ham”};

Inisialisasi variabel struct 1 2 3 4 struct LunchBox kids[5] = { {1, 370.0, “ham” }, {2, 100.0, “roast”}, {0, 0.0, “muffin”}, {1, 300.0, “salad”}, {0, 0.0, “”} };

Anggota variabel struct struct LunchBox stan, kenny; stan.drink = 0.0; stan.fruit = 0; strcpy(stan.sandwich,“fruit cake”); kenny.fruit = 1; strcpy(kenny.sandwich, “muffin”); kenny.drink = 300.0;

Anggota variabel struct struct LunchBox kids[3]; int index = 1; kids[0].drink = 300.0; kids[0].fruit = 1; strcpy(kids[2].sandwich, “ham”); kids[index].fruit = 3; 1 kids[index+1].drink = kids[index - 1].drink; 2

Input/Output dr struct Library functions printf() dan scanf() tdk memiliki format conversion specifiers utk struct Input/Output hanya utk anggota saja struct LunchBox cartman; scanf(“%d”, &(cartman.fruit)); scanf(“%f”, &(cartman.drink)); scanf(“%s”, cartman.sandwich); printf(“%d, %f\n”, cartman.fruit, cartman.drink); printf(“%s\n”, cartman.sandwich);

Input/Output dr struct struct LunchBox kids[3]; int i = 0; for (i=0; i < 3; i++) { scanf(“%d %f %s”, &(kids[i].fruit),&(kids[i].drink), kids[i].sandwich); } printf(“%d, %f, %s\n”, kids[i].fruit, kids[i].drink, 1 2

Contoh: Student Record Tulis program utk membaca dan mencetak daftar nama dan nilai test student input jumlah students for tiap student dalam list { input name dan nilai } output name dan Nilai

Contoh tanpa struct-1 #include <stdio.h> #include <stdlib.h> #define MAXLEN 50 #define MAXN 20 int main() { char lastname[MAXN][MAXLEN]; float Nilai[MAXN]; int count = 0; int i; printf(“Berapa student? "); scanf("%d", &count); Nilais1.c

Contoh without struct-2 if (count > MAXN) { printf("Not enough space.\n"); exit(1); } for (i=0; i < count; i++) printf(“Masukannama dan nilai "); scanf("%s %f", lastname[i], &Nilai[i]); printf("\nDaftar kelas\n\n"); printf("Nama: %s\n", lastname[i]); printf(“Nilai: %.1f\n\n", Nilai[i]); return 0; Nilais1.c

Contoh: Student Record Definisikan struct: StudentRec struct StudentRec { char lastname[MAXLEN]; float Nilai; }; Mudah di perluas nantinya utk di tambah dg IDNum, alamat, dst

Contoh dengan struct (testing) #include <stdio.h> #define MAXLEN 50 struct StudentRec { char lastname[MAXLEN]; float Nilai; }; int main() struct StudentRec studA; struct StudentRec studB; printf(“Masukan Nama dan Nilai utk student A: "); scanf("%s %f", studA.lastname, &(studA.Nilai)); printf(“Masukan Nama dan Nilai utk student B: "); scanf("%s %f", studB.lastname, &(studB.Nilai)); printf("Student A: %s\t%f\n", studA.lastname, studA.Nilai); printf("Student B: %s\t%f\n", studB.lastname, studB.Nilai); return 0; } Nilais2a.c

Contoh with struct-1 #include <stdio.h> #include <stdlib.h> #define MAXLEN 50 #define MAXN 20 struct StudentRec { char lastname[MAXLEN]; float Nilai; }; int main() struct StudentRec class[MAXN]; int count = 0; int i; printf(“Berapa students? "); scanf("%d", &count); Nilais3a.c

Contoh with struct-2 { printf(“Tidak cukup ruang.\n"); exit(1); } if (count > MAXN) { printf(“Tidak cukup ruang.\n"); exit(1); } for (i=0; i < count; i++) printf("Masukan nama dan nilai "); scanf("%s %f", class[i].lastname, &(class[i].Nilai)); printf("\nDaftar kelas\n\n"); printf("Nama: %s\n", class[i].lastname); printf(“Nilai: %.1f\n\n", class[i].Nilai); return 0; Nilais3a.c

Semicolon disini jangan lupa Kesalahan umum struct StudentRec { char lastname[MAXLEN]; float Nilai; }; Semicolon disini jangan lupa

Catatan struct Inisialisasi vs. Assignment struct StudentRec studA = {“Fermat”, 90}; struct StudentRec studA; studA = {“Fermat”, 90}; struct StudentRec studA = {“Fermat”, 90}; struct StudentRec studB; studB = studA; /* struct mengandung pointer? */

Catatan struct Var struct tdk dpt di bandingkan Kita hanya dpt membandingkan aggt-nya saja if (studA == studB) { printf(“Duplikasi data.\n”); } if (strcmp(studA.lastname, studB.lastname) == 0 && (studA.Nilai == studB.Nilai) ) { printf(“Duplikasi data.\n”); }

Catatan struct Kita dapat mendefinisikan struct, dan mendeklarasikan instan utk struktur tsb struct StudentRec { char lastname[MAXLEN]; float Nilai; } studA, studB, class[MAXN]; Instan

typedef Statement typedef membuat identifer sama dg tipe yg ditentukan struct StudentRec { char lastname[MAXLEN]; float Nilai; }; Contoh tanpa typedef struct StudentRec studentA; struct StudentRec class[MAXN];

typedef (lanj) Statement typedef membuat identifer sama dg tipe yg ditentukan struct StudentRec { char lastname[MAXLEN]; float Nilai; }; typedef struct StudentRec Student; Contoh dg typedef Student studA; Student class[MAXN];

Contoh dg typedef (testing) #include <stdio.h> #define MAXLEN 50 struct StudentRec { char lastname[MAXLEN]; float Nilai; }; typedef struct StudentRec Student; int main() Student studA; Student studB; printf(“Masukan Nama dan Nilai utk student A: "); scanf("%s %f", studA.lastname, &(studA.Nilai)); printf(“Masukan Nama dan Nilai utk student B: "); scanf("%s %f", studB.lastname, &(studB.Nilai)); printf("Student A: %s\t%f\n", studA.lastname, studA.Nilai); printf("Student B: %s\t%f\n", studB.lastname, studB.Nilai); return 0; } Nilais2b.c

Contoh dg typedef-1 Nilais3b.c #include <stdio.h> #include <stdlib.h> #define MAXLEN 50 #define MAXN 20 struct StudentRec { char lastname[MAXLEN]; float Nilai; }; typedef struct StudentRec Student; int main() int count = 0; Student class[MAXN]; int i; printf(“Berapa students? "); scanf("%d", &count); Nilais3b.c

Contoh with typedef-2 Nilais3b.c { printf("Not enough space.\n"); if (count > MAXN) { printf("Not enough space.\n"); exit(1); } for (i=0; i < count; i++) printf("Masukan nama dan nilai "); scanf("%s %f", class[i].lastname, &(class[i].Nilai) ); printf("\nDaftar kelas\n\n"); printf("Nama: %s\n", class[i].lastname); printf(" Nilai: %.1f\n\n", class[i].Nilai); return 0; Nilais3b.c

Catatan typedef Cara lain menggunakan typedef: typedef struct { char lastname[MAXLEN]; float Nilai; } Student; Student studA, studB; Student class[MAXN];

Mengirim struct ke Function S[pt biasa, parameter formal di kopi ke aktual parameter void printRecord ( Student item ) { printf("Nama: %s\n", item.lastname); printf(“Nilai: %.1f\n\n", item.Nilai); } main() { Student studentA = {“Gauss”, 99.0}; printRecord(studentA); }

Function yg mengembalikan suatu struct “paket” yg berisi beberapa nilai Student readRecord ( void ) { Student newStudent; printf("Masukan nama dan nilai "); scanf("%s %f",newStudent.lastname,&(newStudent.Nilai)); return newStudent; } Version 1 main() { Student studentA; studentA = readRecord(); }

Function yg mengembalikan suatu struct “paket” yg berisi beberapa nilai Student readRecord ( Student newStudent ) { printf("Masukan nama dan nilai "); scanf("%s %f",newStudent.lastname,&(newStudent.Nilai)); return newStudent; } Version 2 main() { Student studentA; studentA = readRecord(studentA); }

Contoh: Structs dan Function-1 #include <stdio.h> #include <stdlib.h> #define MAXLEN 50 #define MAXN 20 struct StudentRec { char lastname[MAXLEN]; float Nilai; }; typedef struct StudentRec Student; Student readRecord ( void ) Student newStudent; printf("Masukan nama dan nilai "); scanf("%s %f", newStudent.lastname, &(newStudent.Nilai)); return newStudent; } void printRecord ( Student item ) printf("Nama: %s\n", item.lastname); printf(“Nilai: %.1f\n\n", item.Nilai); Nilais4a.c

Contoh: Structs dan Function-2 int main() { int count = 0; Student class[MAXN]; int i; printf(“Berapa students? "); scanf("%d", &count); if (count > MAXN) printf(“Tidak cukup ruang.\n"); exit(1); } for (i=0; i < count; i++) class[i] = readRecord(); printf("\nDaftar kelas\n\n"); printRecord(class[i]); return 0; Nilais4a.c