MODUL PRAKTIKUM STRUKTUR DATA

dokumen-dokumen yang mirip
Algoritma Pemrograman & Struktur Data

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

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

Single Linked List (1)

KU-1072 Pengenalan Teknologi Informasi - B. Materi: Array. Fakultas Ilmu dan Teknologi Kebumian

LAPORAN PRAKTIKUM RESMI QUEUE

04. Single Linked List

Algoritma dan Struktur Data. Linked List

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

Algoritma dan Struktur Data. Ramos Somya

Mesin Karakter dan Mesin Kata

LAPORAN PRAKTIKUM IX. Oleh:

Kode : IF2121 NIM :... Matakuliah : Algoritma dan Struktur Data Nama :... Hari, Tanggal : Senin, 13 November 2017 Waktu : 150 Menit

Array Dimensi Satu. Pendahuluan. Slamet Kurniawan, S.Kom

A. TUJUAN PEMBELAJARAN

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

05. Double Linked List

LIST. Dewi Sartika, M.Kom

TUGAS PENDAHULUAN MODUL 12 PENGENALAN DAN IMPLEMENTASI STRUKTUR DATA STACK

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

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

List Linier (Bag. I) IF2121/Algoritma dan Struktur Data Sem. I 2016/ /25/2017 IF2121/Sem I 2017/2018 1

KONSEP POINTER DAN LINKED LIST

Algoritma Pemrograman & Struktur Data

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER STMIK AMIKOM YOGYAKARTA

MODUL 6 SINGLE & DOUBLE LINKED LIST

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

Algoritma dan Struktur Data. Ramos Somya

Array (Larik) Modul 7

Struct Lanjutan: Studi Kasus

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

PEMROGRAMAN BERORIENTASI OBJEK. Tipe Data. Budhi Irawan, S.Si, M.T

Struktur Data Array. Rijal Fadilah S.Si

SENARAI BERANTAI (LINK LIST)

BAHASA PEMROGRAMAN C

STRUKTUR DATA POKOK BAHASAN - 7 STACK ( TUMPUKAN )

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

KONSEP POINTER DAN LINKED LIST

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

Variasi List Linier (Bagian 2)

Fungsi : Dasar Fungsi

Algoritma dan Struktur Data. Pertemuan 7 Linked List

Praktikum 7. Pengurutan (Sorting) Insertion Sort, Selection Sort POKOK BAHASAN: TUJUAN BELAJAR: DASAR TEORI:

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

SINGLE LINKED LIST (NON CIRCULAR)

PENGANTAR KOMPUTER & SOFTWARE II. Array (Part II) Tim Pengajar KU Institut Teknologi Sumatera

PERTEMUAN 2 KONSEP DASAR PEMROGRAMAN

IKG2A3/ Pemrograman Terstruktur 2

Pengenalan Struktur Data. Farah Zakiyah Rahmanti 2014

BAB VI BAHASA C Pendahuluan

Algoritma Pemrograman & Struktur Data

MODUL III ARRAYLIST TUGAS PENDAHULUAN

VARIABEL & TIPE DATA PEMROGRAMAN C++

PERTEMUAN KE 11. Linked List. Apa Itu Linked List?

UJIAN AKHIR SEMESTER GANJIL 2008/2009 ALGORITME DAN PEMROGRAMAN Sabtu, 31 Januari 2009; Pukul 13:30 16:00; CATATAN TERTUTUP

Algoritme dan Pemrograman

KONSEP POINTER DAN LINKED LIST

Praktikum Algoritma dan Struktur Data

DIKTAT MATA KULIAH PEMROGRAMAN I BAB IX STRUCT. tipe_data_1 variabel_1 ; tipe_data_2 variabel_2 ; tipe_data_n variabel_n ;

KONSEP POINTER DAN LINKED LIST

A. TUJUAN PEMBELAJARAN

KONSEP POINTER DAN LINKED LIST

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA Searching ( Pencarian ) Modul III

STRUKTUR DATA (2) Single Linked List

PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahka

Praktikum Algoritma dan Struktur Data 2010

Tugas Studi Kasus. Linked List SLLNC dengan Head & Tail

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA April 1, 2010 BAB 8 REKURSIF

Praktikum 4. Tumpukan (Stack)

MODUL 1 STANDAR INPUT DAN OUTPUT

MODUL PRAKTIKUM TI014 STRUKTUR DATA Season 1

Algoritma dan Struktur Data

Pencarian (Searching)

LAPORAN PRAKTIKUM I. Oleh:

Implementasi Queue menggunakan Array. Imam Fahrur Rozi

PRAKTIKUM 10 STRING A B C D E \0. Gambar 11.1 Komposisi penyimpanan string dalam memori

Algoritme dan Pemrograman

PRAKTIKUM I STRUKTUR DATA. a. List program di bawah ini untuk dijalankan di Turbo C++ atau Borland C++ #include <iostream.h>

MODUL V POINTER DAN STRING

a[0] a[1] a[2] a[3] a[4] a[5] x

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

APLIKASI ALGORITMA KNUTH-MORRIS-PRATT PADA MESIN PENCARI KATA UNTUK LINGKUNGAN WEBSITE MAHASISWA INFORMATIKA 2005

SATUAN ACARA PERKULIAHAN (SAP)

Penerapan BFS dan DFS dalam Garbage Collection

ARNA FARIZA YULIANA SETIOWATI

Garis-Garis Besar Program Pembelajaran Berbasis Kompetensi

Bahasa C-M6 By Jamilah, Skom 1

Algoritma dan Struktur Data. Pertemuan 9 Circular Linked List

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

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

MODUL ARSIKOM POINTER DAN ARRAY. Disusun oleh : Afif Setyo Nugroho ( ) Agus Setyawan ( ) Maulana Akhsan ( )

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

OPERASI PERNYATAAN KONDISI

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

Satuan Acara Perkuliahan

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

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

Transkripsi:

MODUL PRAKTIKUM STRUKTUR DATA OPERASI PENAMBAHAN ELEMEN PADA SENARAI/LIST Mata Kuliah Bahasa Pemrograman Software Dosen : Struktur Data : C++ : C-Free : Taofik Muhammad AMIK HASS BANDUNG

LIST (Senarai) List atau senarai adalah sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel, di mana setiap elemen akan ditambahkan saat dibutuhkan, tidak dialokasikan dengan tempat tertentu dari awal. List merupakan kumpulan elemen dengan struktur tertentu. Pada pratikum kali ini kita akan mempelajari bagaimana mengimplementasikan proses penambahan list di awal, di tengah, dan di akhir dengan menggunakan bahasa pemrograman C++. Baca petunjuk, dan ikuti langkah-langkah dibawah ini agar anda mudah untuk memahaminya. 1. Buka IDE C-Free anda. 2. Buat file baru dengan memilih File->New 3. Simpan file tersebut (file->save) dan beri nama list. Jangan lupa ubah save as typenya ubah menjadi c++ files. 4. Pada jendela kerja masukan kode-kode dibawah ini secara berurutan dan tetap pada file yang sama. Mendeklarasikan stuktur data nilai mata kuliah yang menjadi data elemen #include <stdio.h> #include <string.h> //deklarasi struktur nilai mata kuliah typedef struct char nim[10]; char nama[50]; char nilai[2]; nilaimatkul; Mendeklarasikan struktur data elemen //deklarasi stuktur data elemen typedef struct nilaimatkul elmt; int next; elemen; Mendeklarasikan list tunggal menggunakan array typedef struct int first; elemen data[10]; list; Mendeklarasikan prosedur createlist yang menginisialisasi nilai first pada list dimana diasumsikan sebuah list kosong nilai first adalah elemen dengan indeks -

1 dan menginisialisasi isi array dimana isi next dari elemen diisi dengan -2 sebagai asumsi bahwa elemen adalah elemen kosong void createlist(list *L) (*L).first = -1; int i; for (i=0;i<=10;i++) //proses menginisialisasi isi array (*L).data[i].next=-2; Mendeklarasikan fungsi countelement yang menghitung jumlah elemen list int countelement(list L) int hasil=0; if (L.first!= -1) //list tidak kosong int elmt; //inisialisasi elmt=l.first; while (elmt!= -1) //proses hasil=hasil+1; //iterasi elmt=l.data[elmt].next; return hasil;

Mendeklarasikan fungsi emptyelement yang mengembalikan indeks elemen array yang masih kosong, dan jika tidak ditemukan maka mengembalikan nilai -1 (array telah penuh) int emptyelement (list L) int hasil=-1; if (countelement(l)<10) int ketemu=0; int i=0; while ((ketemu==0) && (i<=10)) if (L.data[i].next==-2) hasil =i; ketemu =1; else i=i+1; return hasil; Mendeklarasikan prosedur addfirst yang menambhakna elemen pada awal list Kasus yang harus ditangani: - Jika list belum penuh cari tempat kosong dan isis dengan data elemen baru - Jika list kosong tambahkan elemen sebagai awal list elemen kosong - Jika list tidak kosong tambahkan elemen sebagai awal list dengan elemen next merupakan elemen awal list sebelum ditambah - Jika list penuh tampilkan pesan list penuh

void addfirst(char nim[],char nama[],char nilai[], list *L) if (countelement(*l)<10) int indeks=emptyelement(*l); strcpy((*l).data[indeks].elmt.nim,nim); strcpy((*l).data[indeks].elmt.nama,nama); strcpy((*l).data[indeks].elmt.nilai,nilai); if ((*L).first==-1) //jika list kosong else (*L).data[indeks].next=-1; (*L).data[indeks].next; (*L).data[(*L).first].next; else (*L).first = indeks; cout<<"sudah tidak dapat ditambahkan"; Mendeklarasikan prosedur addafter yang menambahkan elemen pada tengah list Kasus yang harus ditangani: - Jika list belum penuh cari tempat kosong dan isi dengan data elemen baru dan elemen baru ditambahkan sebagai elemen setelah prec - Jika list penuh tampilkan pesan list penuh int addafter(int prec, char nim[], char nama[],char nilai[], list *L) if (countelement(*l)<10)

int indeks=emptyelement(*l); strcpy((*l).data[indeks].elmt.nim, nim); strcpy((*l).data[indeks].elmt.nama, nama); strcpy((*l).data[indeks].elmt.nilai,nilai); (*L).data[indeks].next=(*L).data[prec].next; (*L).data[prec].next=indeks; else //proses jika array penuh cout<<"sudah tidak dapat ditambah"; Mendeklarasikan prosedur addlast yang menambahkan elemen pada akhir list Kasus yang harus ditangani : - Jika list kosong, buat elemen pada indeks awal sebagai elemen pertama list - Jika list telah berisi elemen - Jika list belum penuh cari tempat kosong dan isi dengan data elemen, cari indeks elemen terakhir, tambahkan elemn baru pada akhir list - Jika list penuh tampilkan pesan list penuh void addlast(char nim[], char nama[], char nilai[], list *L) if ((*L).first == -1) //proses jika list masih kosong int indeks=0;

strcpy ((*L).data[indeks].elmt.nim,nim); strcpy ((*L).data[indeks].elmt.nama,nama); strcpy ((*L).data[indeks].elmt.nilai,nilai); (*L).data[indeks].next=-1; (*L).first=indeks; else //proses jika list telah berisi elemen if (countelement(*l)<10) //proses jika list belum penuh int indeks = emptyelement(*l); strcpy((*l).data[indeks].elmt.nim,nim); strcpy((*l).data[indeks].elmt.nama,nama); strcpy((*l).data[indeks].elmt.nilai,nilai); (*L).data[indeks].next=-1; //proses mencari elemen terakhir //inisialisasi int last=(*l).first; while ((*L).data[last].next!= -1)

//iterasi last=(*l).data[last].next; (*L).data[last].next=indeks; else //proses jika array penuh cout<<"sudah tidak dapat ditambah"; Mendeklarasikan prosedur printelemen yang menampilkan isi elemen list void printelement(list L) if (L.first!= -1) //inisialisasi int elmt = L.first; int i=1; while (elmt!= -1) cout<<"elemen ke:"<<i<<endl; cout<<"nim :"<<L.data[elmt].elmt.nim<<endl; cout<<"nama :"<<L.data[elmt].elmt.nama<<endl; cout<<"nilai :"<<L.data[elmt].elmt.nilai<<endl; cout<<"==============================="<<endl; elmt=l.data[elmt].next;

else i=i+1; //proses jika list kosong cout<<"list kosong"; Mendeklarasikan algoritma utama yang menggunakan operasi list int main() list L; createlist(&l); addfirst("0608551","taofik muhammad","a",&l); addafter(l.first,"0604156","dini rafuani pratiwi","a",&l); addlast("0689038","udin sedunia","d",&l); printelement(l); 5. Lakukan kompilasi dengan menekan tombol run atau F5 pada keyboard. 6. Jika tidak ada error maka outputnya akan seperti ini. ==Selamat Belajar==

Referensi : Rosa A.S dan M.Shalahuddin. (2010). Modul Pembelajaran Struktur Data. Penerbit Modula: Bandung