Struct Lanjutan: Studi Kasus

dokumen-dokumen yang mirip
Struktur Data. Stack STMIK AMIKOM YOGYAKARTA. Bayu Setiaji, S.Kom

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

Algoritma dan Struktur Data. Ramos Somya

Praktikum Algoritma dan Struktur Data

Tipe Data, Variabel, Input/Output

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta

SINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR)

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK

ALUR PROGRAM. SELEKSI KONDISI Statement If a. Bentuk If tunggal sederhana Sintaks : if ( kondisi ) statement ;

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

Tipe Data dan Operator

Algoritma Pemrograman & Struktur Data

LAPORAN PRAKTIKUM RESMI QUEUE

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

Algoritma dan Struktur Data

QUEUE (ANTREAN) Prinsip Antrean : FIFO (First In First Out) FCFS (First Come First Serve) Yang Tiba lebih awal Maka akan dilayani Terlebih Dahulu

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Stack using Array. Alfa Faridh Suni, S.T., M.T. PTIK

Hari : Rabu Pertemuan : 3 Tanggal Praktikum : Oktober 2001 Shift : 4

STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN)

KONSEP POINTER DAN LINKED LIST

UNIVERSITAS WIDYATAMA JURUSAN TEKNIK INFORMATIKA - FAKULTAS TEKNIK Jl. Cikutra No.204 A BAndung UJIAN TENGAH SEMESTER TA.

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

Pengenalan Struktur Data. Farah Zakiyah Rahmanti 2014

Algoritma dan Struktur Data. Linked List

Bahasa C-M6 By Jamilah, Skom 1

01. Review Array, Pointer dan Struktur

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

ALGORITMA DAN STRUKTUR DATA

BAB IV PENGULANGAN PROSES

KONSEP POINTER DAN LINKED LIST

Linked List 6.3 & 7.3 NESTED LOOP

KONSEP POINTER DAN LINKED LIST

A R R A Y. Bentuk umum deklarasi array : type nama_array[ukuran] tipe : menyatakan tipe dasar array ukuran : menyatakan banyaknya elemen pada array

MODUL 10 Fungsi 10.1 Kompetensi 10.2 Alat Dan Bahan: 10.3 Ulasan Teori: Dasar Fungsi Deklarasi Fungsi

PRAKTIKUM 6 PENGULANGAN PROSES 2

Single Linked List (1)

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

FUNCTION (FUNGSI) LOGO. Pendidikan Teknik Elektronika FT UNY. Muh. Izzuddin Mahali, M.Cs.

Algoritma & Pemrograman #9. by antonius rachmat c, s.kom, m.cs

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

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

OPERASI PERNYATAAN KONDISI

Pengenalan C++ Oleh : Dewi Sartika

Fungsi : Dasar Fungsi

Pointer. Yuliana Setiowati

STRUKTUR DATA Pertemuan 1 s.d 8

Fungsi Lanjut DASAR PEMROGRAMAN

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

Konsep Pemrograman. Bab 7. Fungsi1. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

Pendahuluan Pemrograman Mikrokontroler

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

BAHASA PEMROGRAMAN C

Review : Sifat Implementasi Linear List dengan Array

Achmad Solichin.

Penambahan Simpul (Node)

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

POINTER DASAR PEMROGRAMAN

DIKTAT MATA KULIAH PEMROGRAMAN I BAB VII ARRAY

Array (Larik) Modul 7

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

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

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

POINTER. Tim Alpro Teknik Informatika

Struktur Data II. Single Linked List - Non circular

ASD. Alokasi Memori Dinamis

IT234 - Algoritma dan Struktur Data. Ramos Somya

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

PERTEMUAN IX DATA TINGKAT LANJUT

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

Implementasi Struktur Data Stack (Tumpukan) dalam Tower of Hanoi Game

BAB III. Stack. ( Tumpukan )

STRUCTURE. Structure

Fungsi, Parameter, Rekursi

BAB I. LARIK (ARRAY) Array (larik) ialah penampung sejumlah data sejenis (homogen) yang menggunakan satu identifier (pengenal).

Perulangan, Percabangan, dan Studi Kasus

I.1. MEMBUAT PROGRAM C DENGAN VISUAL C

Tugas Studi Kasus. Linked List SLLNC dengan Head & Tail

TIPE DATA ABSTRAK MENGGUNAKAN BAHASA C

MODUL 7 FUNGSI A. Tujuan. B. Petunjuk. C. Dasar Teori

IT234 - Algoritma dan Struktur Data. Ramos Somya

PERTEMUAN XI OPERASI FILE

Array 1 Dimensi pada Java

//membuat sebuah tipe data baru yang terdiri dari. //field data bertipe integer //field next merupakan pointer dari list

STRUKTUR DATA POKOK BAHASAN - 7 STACK ( TUMPUKAN )

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

Algoritma dan Struktur Data. Pertemuan 6 Alokasi Memori Dinamis

MODUL PRAKTIKUM STRUKTUR DATA

Larik/ Array int a1, a2, a3, a4, a5;

Algoritma dan Struktur Data. Ramos Somya

KARAKTER DAN STRING, ARRAY, STRUCT DAN REVIEW PADA BAHASA C

Looping : break, continue, nested loop

Pengenalan Bahasa C. 1. Struktur penulisan program. #include < [library2.h] > #define [nama2] [nilai] ;

Konsep Pemrograman. Bab 12. Pointer 2. Konsep Pemrograman Politeknik Elektronika Negeri Surabaya 2006 PENS-ITS. Umi Sa adah


STACK DAN QUEUE. Pengertian Stack Dan Queue. stack & queue. Last saved by KENKEINA Created by KENKEINA

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan)

Transkripsi:

Struktur Data Struct Lanjutan: Studi Kasus Bayu Setiaji, S.Kom STMIK AMIKOM YOGYAKARTA

1. Tujuan 1. Pendalaman struct 2. Review fungsi 3. Dapat mengaplikasikan konsep struct dalam kasus nyata 2. Penjelasan Bab ini akan membahas studi kasus yang berkaitan dengan struct, yaitu pembuatan buku alamat sederhana. Di sini akan di bahas setiap langkah bagaimana mengaplikasikan struct tersebut beserta fungsi fungsi yang akan digunakan. 3. Percobaan Untuk mengilustrasikan bagaimana struct dan array struct digunakan, bagian ini akan menjelaskan pembuatan program sederhana tentang buku alamat. Dalam buku alamat terdapat informasi tentang nama, jalan, kota, dan kode pos. Langkah pertama adalah membuat struct alamat. Potongan Kode 3.1 Deklarasi struct struct alamat { char nama[30]; char jalan[40]; char kota[20]; unsigned int kdpos; bkalamat[max]; Kemudian membuat fungsi main() sebagai bagian utama program. Fungsi main() ini berisi aksi yang dilakukan berdasarkan pilihan menu. Potongan Kode 3.2 Fungsi main() int main(void) { int pilih; // inisialisasi struct init(); for(;;) { pilih = menu(); 2 P a g e

switch(pilih) { case 1: input(); break; case 2: hapus(); break; case 3: list(); break; case 4: exit(0); return 0; Fungsi init() menyiapkan array struct dengan memberikan karakter null pada byte pertama di field nama pada setiap struct dalam array. Program berasumsi bahwa elemen array dianggap tidak terpakai bila field nama kosong. Potongan Kode 3.3 Fungsi init() void init(void) { register int t; for(t = 0; t < MAX; t++) bkalamat[t].nama[0] = '\0'; Catatan: keyword register menyebabkan variabel akan disimpan di register pada prosesor (variabel biasanya disimpan di RAM), sehingga akan lebih cepat diakses. Fungsi menu() akan menampilkan pilihan menu dan mengembalikan nilai yang dipilih oleh user. Potongan Kode 3.4 Fungsi menu() int menu(void) { char s[80]; int c; printf("\n====[ MENU ]====\n"); printf("1. Input record\n"); printf("2. Hapus record\n"); printf("3. Lihat daftar\n"); 3 P a g e

printf("4. Keluar\n"); do { printf(" Pilih: "); gets(s); // atoi() akan mengubah nilai alfanumerik ke nilai int c = atoi(s); while(c < 0 c > 4); printf("\n"); return c; Fungsi input() akan meminta user memasukkan input dan menyimpan informasinya ke dalam array struct yang tidak digunakan. Bila array penuh maka akan menampilkan pesan Daftar Penuh. Di sini terjadi pemanggilan fungsi cari_kosong() yang akan mencari array struct yang tidak digunakan. Potongan Kode 3.5 Fungsi input() void input(void) { int slot; char s[80]; // melakukan pencarian terhadap index array yang tidak digunakan slot = cari_kosong(); // jika penuh if(slot == -1) { printf("\ndaftar Penuh"); return; printf("***** Input Record *****\n"); printf(" Nama : "); gets(bkalamat[slot].nama); printf(" Jalan : "); gets(bkalamat[slot].jalan); printf(" Kota : "); gets(bkalamat[slot].kota); printf(" Kode pos: "); gets(s); bkalamat[slot].kdpos = atoi(s); 4 P a g e

Perhatikan fungsi cari_kosong() akan mengembalikan nilai -1 bila semua elemen array digunakan. Nilai -1 adalah angka aman di mana tidak mungkin terdapat index -1 untuk elemen array. Potongan Kode 3.6 Fungsi cari_kosong() int cari_kosong(void) { register int t; for(t = 0; bkalamat[t].nama[0] && t < MAX; ++t); if(t == MAX) return -1; return t; Fungsi hapus() akan meminta user untuk memasukkan index pada data yang akan dihapus. Kemudian fungsi akan memberikan karakter null pada karakter pertama field nama. Potongan Kode 3.7 Fungsi hapus() void hapus(void) { register int slot; char s[80]; printf("record yang dihapus #: "); gets(s); slot = atoi(s); if(slot >= 0 && slot < MAX) bkalamat[slot].nama[0] = '\0'; Terakhir adalah fungsi list() yang akan menampilkan keseluruhan isi daftar buku alamat. Potongan Kode 3.8 Fungsi list() void list(void) { register int t; printf("***** Daftar Alamat *****\n"); for(t = 0; t < MAX; ++t) { if(bkalamat[t].nama[0]) { printf("\nrecord #:%d\n", t); printf(" %s\n", bkalamat[t].nama); printf(" %s\n", bkalamat[t].jalan); printf(" %s\n", bkalamat[t].kota); printf(" %d\n", bkalamat[t].kdpos); 5 P a g e

printf("--------------------------\n"); printf("\n"); 4. Latihan 1. Gabungkanlah semua potongan kode di atas sehingga menjadi kode program lengkap. Jangan lupa untuk menambahkan header stdio.h dan stdlib.h di awal program. Deklarasikan pula konstanta MAX dengan nilai 20 (atau terserah Anda). 2. Tambahkan fungsi untuk meng-update data. 6 P a g e