Pertemuan 11. Tipe data Struktur (Struct) dan Union

dokumen-dokumen yang mirip
STRUKTUR DATA POKOK BAHASAN - 5 ABSTRACT DATA TYPE

PERTEMUAN IX DATA TINGKAT LANJUT

LATIHAN DAN KISI-KISI SOAL JURUSAN TELEKOMUNIKASI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA

Pertemuan 2. Gambaran Umum C

Algoritma dan Struktur Data. Pointer Pada Struct

void tukar_xy(struct koordinat *pos_xy){ int z; z = (*pos_xy).x; (*pos_xy).x = (*pos_xy).y; (*pos_xy).y = z;

Pengenalan Struktur Data dan Algoritma

Modul Praktikum Algoritma dan Struktur Data

MODUL 9 STRUCT (STRUKTUR)

Fungsi : Dasar Fungsi

01. Review Array, Pointer dan Struktur

Praktikum 1. Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa : tipe_data nama_var[ukuran];

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

Algoritma dan Struktur Data. Pertemuan 5 Pointer

Minggu ke-14 Typedef, Struct & Command Line Argument

Chapter 3.2 : Tipe, Nama dan Nilai

Pertemuan 6. Pemrograman Modular

Pengenalan C++ Oleh : Dewi Sartika

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

ARRAY & STRUKTUR. Contoh Deklarasi :

Pertemuan 7. Tipe Data Sederhana

Bahasa C melengkapi fasilitas modular dengan menggunakan fungsi pada setiap SubProgram. Contoh pembagian program menjadi beberapa subprogram.

ALGORITMA DAN STRUKTUR DATA

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2017

PERTEMUAN VIII STRUKTUR LANJUT

1. Mempelajari konsep dasar array, array ganda, pengiriman array ke fungsi dan string 2. Membuat program menggunakan array, array ganda

Algoritma dan Struktur Data. Ramos Somya

Pengenalan Struktur Data. Farah Zakiyah Rahmanti 2014

Konsep Pemrograman. Bab 14. Struktur 1. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

Tipe Data dan Operator

SINGLE LINKED LIST (NON CIRCULAR)

STRUKTUR DATA Pertemuan 1 s.d 8

Bahasa C-M6 By Jamilah, Skom 1

A. TUJUAN PEMBELAJARAN

Algoritma dan Pemrograman

12/29/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Address and Pointers. Pointer

Sejarah C. Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs.

Tipe Data, Variabel, Input/Output

A. TUJUAN 1. Menjelaskan tentang prinsip dasar fungsi. 2. Menjelaskan tentang.parameter formal dan parameter aktual

1. Tipe Data Sederhana Hanya dimungkinkan untuk menyimpan sebuah nilai data dalam sebuah variabel Ada 5 macam : int, float, double, char, boolen

PRAKTIKUM 2. perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh

KONSEP POINTER DAN LINKED LIST

Bab 2. Dasar-Dasar Pemrograman C

04. Single Linked List

Algoritma Pemrograman. Fery Updi,M.Kom

MODUL I PENGENALAN IDE C++, ALGORITMA DAN PEMROGRAMAN

Pertemuan 9 Pemrograman Terstruktur

Algoritme dan Pemrograman

Fungsi Lanjut DASAR PEMROGRAMAN

Pemrograman Terstruktur. Pemrosesan File Teks dan File Biner

Struct Lanjutan: Studi Kasus

ALGORITMA (2) Mengupas Kentang

PRAKTIKUM 14 STRUKTUR 2

MODUL 6 RECORD/STRUCT/STRUKTUR

LOGO Pertemuan 3 Dasar Pemrograman Komputer

By : Agus Priyanto, M.Kom ST3 Telkom Purwokerto Structure and Pointer

Algoritma & Pemrograman 1. Muhamad Nursalman Pendilkom/Ilkom Universitas Pendidikan Indonesia

12/29/2011 ILKOM IPB 1. Algoritme dan Pemrograman. Review Latihan Slide 10. Review Latihan Slide 10

BAHASA PEMROGRAMAN C

VARIABEL, TIPE DATA DAN EKSPRESI Bab 2

STRUCT. d e d d y a d i n a n d r a

Achmad Solichin.

Algoritma dan Pemrograman. Pertemuan Ke-11 Function

VARIABEL & TIPE DATA PEMROGRAMAN C++

Pemrograman Dasar C. Minggu 9

PRAKTIKUM 14 STRUKTUR 2

BAB 4 PENGENALAN BAHASA C

Struct dan Fungsi. Pendahuluan. Objektif. Bahan Bacaan

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

Algoritma Pemrograman 2B (Pemrograman C++)

Struktur Dasar Bahasa C Tipe Data Dalam bahasa C terdapat lima tipe data dasar, yaitu :

TIPE DATA ABSTRAK MENGGUNAKAN BAHASA C

Pemrograman Dasar C. Minggu 8

Fungsi DASAR PEMROGRAMAN

KONSEP DASAR. menyusunnya menjadi potongan-potongan mudah untuk ditangani dibanding. conquer.

SUB PROGRAM (FUNGSI)

Pertemuan 10 REKURSI

Tipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dala

KONSEP POINTER DAN LINKED LIST

POINTER DASAR PEMROGRAMAN

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

Seluruh elemen di dalam struktur array mempunyai tipe data yang sama. Random Access

P3 Pengantar Pemrograman C

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

elemen Dasar Bahasa Pemrograman C

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XI POINTER

KONSEP POINTER DAN LINKED LIST

Typedef dan Struct. Pendahuluan. Objektif. Bahan Bacaan

PRAKTIKUM 7 FUNGSI 1

Data bisa dinyatakan dalam bentuk konstanta atau variabel.

Struktur Program Bahasa C

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

Tujuan : date day month year

Modul 1 Dasar Dasar Bahasa Pemrograman C

Array LOGO. Pendidikan Teknik Elektronika FT UNY. Muh. Izzuddin Mahali, M.Cs.

MODUL PRAKTIKUM BAHASA PEMROGRAMAN TESTRUKTUR MODUL 8 POINTER

Transkripsi:

Pertemuan 11 Pemrograman Terstruktur Tipe data Struktur (Struct) dan Union

Definisi STRUKTUR (STRUCT) Struktur (struct) adalah koleksi dari variabel yang dinyatakan dengan sebuah nama, dengan sifat setiap variabel dapat memiliki tipe yang berlainan. Pendeklarasian struct biasanya dilakukan diawal, setelah pendeklarasian file header dan sebelum fungsi main Cara pendeklarasian struct ada beberapa cara : Deklarasi biasa Deklarasi dengan tipedef Deklarasi dalam linked list Deklarasi struct dalam struct

Deklarasi Strutur t :Deklarasi biasa Syntax: struct nama_tipe_struct { tipe field1; tipe field2;.. tipe fieldn; } variabel_struktur1,, variabel_strukturn; Contoh (Membuat struct dengan nama person) struct person { char name[25]; int age; char status; /* M = married, S = single */ } ;

Deklarasi Struktur: Deklarasi dengan Syntax: typedef struct { tipe field2;.. tipe fieldn; }tipe struct ; Contoh: Dalam proyek untuk penelitian lokal diperlukan database untuk menyimpan data berikut Typedef Data yang diperlukan disimpan dalam struck dengan nama planet_t Contoh tersebut dapat diselesaikan dengan membuat struct berikut: li i l k l #define STRSIZ 10 typedef struct { char name[strsiz]; Name : Jupiter double diameter; e /*equatorial diameter in km */ Diameter : 142,800 km int moons; /*number of moons */ Moons : 16 double orbit_time, /*years to orbit sun once*/ Orbit time : 11,9 Rotation time : 9,925 hr } planet_t; rotation_time; /*hours to complete one revolution on axis */

Deklarasi Struktur:Deklarasi dalam Linked List typedef struct { tipe field1; tipe field2; tipe fieldn; tipe_struct *next; }tipe_struct;

Deklarasi Struktur: Deklarasi struktur dalam Struktur typedef struct { tipe fiel1; tipe field2; tipe fieldn; }tipe_struct1; typedef struct { tipe_struct1 field1; tipe field2; tipe fieldn; tipe_struct2 *next; }tipe_struct2; Dalam hal ini struct kedua juga berisi struct pertama.

Deklarasi Variabel dengan Tipe Struktur Pendeklarasian variabel agar bertipe struktur sesuai dengan struktur yang telah dideklarasikan : - struct nama_tipe_struct nama_variabel; Contoh : struct person descrip; /*pendeklarasian variabel descrip agar bertipe struktur seperti struktur person*/ - tipe_struct nama_variabel;(jika pendeklarasian struktur sebelumnya menggunakan typedef) Contoh : planet_t current_planet; /*pendeklarasian variabel current_planet dengan struktur planet yang didefinisikan dengan typedef*/ Bentuk satu elemen struktur field1 field2.. fieldn

PENGAKSESAN STRUKTUR Deklarasi untuk mengakses struktur Nama_variabelStruct.nama_field ld Ket : antara nama variabel dengan nama field dipisahkan dengan tanda titik. Contoh struktur mahasiswa : typedef struct { char NRP[10]; char *nama; char kelas; }mahasiswa; Mahasiswa data_mahasiswa Contoh pengaksesan struktur data_mahasiswa : data_mahasiswa.nrp; data_mahasiswa.nama;

PENGIRIMAN STRUKTUR ANTAR FUNGSI Melalui parameter fungsi - untuk mengirim struktur nama_fungsi (nama_variabel_struct); contoh : tulis (data_mahasiswa); - untuk menerima struktur di dalam parameter tipe nama_fungsi (struct variabel) contoh: void tulis (struct mahasiswaku) Dengan nilai kembalian - struct nama_fungsi ()

CONTOH-CONTOH STRUKTUR PEMBAHASAN CONTOH : Melewatkan Elemen Struktur ke dalam Fungsi Melewatkan Struktur ke dalam Fungsi

Contoh 1 : Melewatkan Elemen Struktur ke dalam Fungsi #include <stdio.h> void tukar (int *x, int *y); void main () { struct koordinat { int x; int y; }; struct koordinat posisi = { 18, 257}; printf ("Nilai isi variable struct \"sebelum\" masuk fungsi \n\n"); printf ("\t\t x ==> %d\n", posisi.x); printf ("\t\t y ==> %d\n", posisi.y); tukar (&posisi.x, &posisi.y); printf ("\n\nnilai isi variable struct \"setelah\" memasuki Fungsi\n\n"); printf ("\t\t x ==> %d\n", posisi.x); printf ("\t\t y ==> %d\n",posisi.y); } void tukar (int *x, int *y) { } int z = *x; *x = *y; *y = z;

Contoh 2 : Melewatkan Struktur ke dalam Fungsi #include <stdio.h> void proses (struct koordinat posisi); struct koordinat { int x; int y; }; void main () { struct koordinat posisi = { 18, 257}; printf ("Nilai isi variable struct didalam fungsi \"main\"\n\n"); printf ("\t\t x ==> %d\n", posisi.x); printf ("\t\t y ==> %d\n", posisi.y); i proses (posisi); } void proses (struct koordinat posisi) p ( p ) { printf ("\n\nnilai isi variable struct didalam fungsi \"proses\"\n\n"); printf ("\t\t x ==> %d\n", posisi.x); printf ("\t\t y ==> %d\n", posisi.y); }

Pemecahan Masalah dengan Tipe Terstruktur Untuk memanipulasi data, C menyediakan semua operasi dasar yang dapat digunakan untuk memecahkan masalah dengan menggunakan tipe data standar Kombinasian type tertentu yang didefinisikan user dengan sekumpulan operasi-operasi dasar yang membolehkan satu kebenaran untuk melihat tipe sebagai konsep kesatuan disebut Abstract Data Type (ADT) Contoh tipe data planet t dan operasi operasi dasarnya Contoh tipe data planet_t dan operasi-operasi dasarnya digambarkan sbb:

Contoh Studi Kasus untuk ADT Tipe yang didefinisikan user untuk angka yang komplek Analisa: Angka yang komplek adalah angka dengan bagian real dan imaginer Contoh : a+bi (a: real, b:imaginer) Definisikan fungsi untuk melakukan operasi aritmetika dasar (penjumlahan, pengurangan, perkalian dan pembagian)

Desain 2 aspek utama dari solusi masalah ini adalah : Mendefinisikan struktur dari tipe yang didefinisikan user Menentukan nama fungsi, parameter, dan tujuan dari tiap operasi

Desain (cont..) Nama struktur yang didefinisikan sendiri : complex_t Fungsi : Multiply_complex (untuk perkalian bil. komplek) Divide_complex (untuk pembagian bil. kompleks Abs_complex (untuk mendapatkan nilai absolut) Print_complex (untuk menampilkan hasil) Scan_ complex (untuk melakukan pembacaan thd bil. Kompleks) Add_complex (untuk menjumlahkan bil. Kompleks) Substract_complex complex (untuk mengurangkan bil. Kompleks)

Spesifikasi dari Tipe complex_t dan operasi- operasi yang berlaku STRUCTURE: Angka kompleks adalah suatu object dari tipe complex_t yang terdiri dari sepasang nilai bertipe double. OPERATOR: /*Complex number input fuction returns standard scanning*/ int scan_complex(complex_t *c) /*output-address of complex variable to fill*/ /* Complex output fuction displays value as a+bi or a-bi Displays only a if imaginary part is 0 Display only bi if real part is 0 */ void print_complex(complex_t c) /* input-complex number to display */

/*Returns sum of complex value c1 and c2*/ complex_t add_complex(complex_t c1,complex_t c2) /*input*/ /*Returns difference c1-c2*/ complex_t subtract_complex(complex_t c1,complex_t c2) /*input*/ /*Returns product of complex values c1 and c2*/ complex_t multiply_complex(complex_t c1,complex_t c2) /*input*/ /*Returns quotient of complex values(c1/c2)*/ complex-t divide-complex(complex_t c1,complex_t c2) /*input*/ /*Returns absolute value of complex number c*/ abs_complex(complex_t c) /*input*/

Implementasi Hasil Implementasi dapat dilihat di buku referensi halaman 559-563

Paralel Array dan Array dari Struktur

Paralel Array Contoh representasi koleksi data menggunakan paralel array : int nrp[50]; double nilai[50]; array nrp dan nilai disebut paralel array karena isi data dengan index yang sama diperuntukkan bagi mahasiswa pada index yang sama.

Array dari struktur Dengan menggunakan array dari struktur contoh data nilai mahasiswa akan menjadi lebih terorganisasi dibandingkan dengan menggunakan paralel array.

Contoh penggunaan array dari struktur typedef struct { int nrp; double nilai; }nilai; nilai mahasiswa[50];

Contoh Data mahasiswa pertama dimasukkan ke dalam struktur mahasiswa[0]. Data nrp dimasukkan dalam mahasiswa[0].nrp Data nilai dimasukkan dalam mahasiswa[0].nilai

Tipe Union (optional)

U Union memungkinkan suatu lokasi memori ditempati oleh 2 atau lebih variabel dengan tipe data berlainan Contoh t h cara mendefinisikan i ik union bil_bulat { unsigned int di ; unsigned char dc[2] ; } ;

Union (cont..) Cara mengakses elemen dari sebuah union: variabel_union.nama elemen Seperti halnya pada struktur, variabel union juga dapat dilewatkan ke dalam suatu fungsi sebagai parameter

Contoh program Union /* Contoh pendeklarasian dan pengaksesan variabel union */ #include<stdio.h> main() { Contoh hasil eksekusi : union{ di=321 dc[0] =65 dc [1] =1 unsigned int di; unsigned char dc[2]; }bil_x; //varibel union bil_x.di =321 ; printf( di=%d dc[0] =%d dc [1] = %d \n,bil,bil_x.di, bil_x.dc, bil_x.dc[1]); }

Contoh program mengubah nilai variabel union melalui fungsi #include <stdio.h> union bil_bulat {unsigned int di ; unsigned char dc[2] ; Contoh hasil eksekusi : }; //definisi tipe union void beri_nilai(union bil_bulat *x); //deklarasi fungsi main() di=321 dc [0] =65 dc [1] =1 { union bil_bulat bil_x ; //deklarasi variabel union beri_nilai(&bil_x); printf( di=%d dc [0] = %d dc [1] = %d \n,bil_x.di,bil_x.dc[0],bil_x.dc[1]); x dc[0] x dc[1]); void beri_nilai(union bil_bulat *x); { x->di=321; //elemen yang ditunjuk oleh x diberi nilai 321 }

Referensi Bab 11, Structure and Union Types, Problem Solving and Program Design in C, Jeri R. Hanly dan Elliot B. Koffman, Addison Wesley, 2002