Algoritma Struktur Data

dokumen-dokumen yang mirip
ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

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

STRUKTUR DATA. Pengajar. Jaidan Jauhari, M.T. Alamat

Pendahuluan Struktur Data STRUKTUR DATA. JULIO ADISANTOSO Departemen Ilmu Komputer IPB. Pertemuan 1 : 20 Juni 2016

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

Modul II Object Oriented Programming

PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O

Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

PEMROGRAMAN BERORIENTASI OBJEK

Abstract Data Type (ADT)

FUNGSI II. Variabel Statis. Sifat variabel statis: Sintaks: static tipe_data nama_variabel; Contoh: static int angka;

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

BAB I PENDAHULUAN. Sebesta (2002) memaparkan kriteria evaluasi terhadap sebuah bahasa

INTERAKSI ANTAR OBJECT

IKG2I4 / Software Project I

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

MODUL 1 PENGENALAN OOP

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

Praktikum 3 Konsep Class, Attribute dan Method

Kontrak Perkuliahan & Introduction

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

Pemrograman Berorientasi. Class dan Obyek 2

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

Konsep Dasar Pemrograman Berorientasi Obyek I JAVA. Anugrah Kusuma Seno Adi Putra

Catatan Kuliah PAM 282 STRUKTUR DATA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

STRUKTUR DENGAN ARRAY DAN FUNCTION

PEMROGRAMAN BERORIENTASI OBJEK

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

Modul 2. [access specifier] [tipe data] [nama variabel];

Daftar lsi... :;.:;:(:;;::t

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

SATUAN ACARA PENGAJARAN

SILABUS MATA KULIAH PEMROGRAMAN JAVA

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

Dasar Pemrograman Java

Pemrograman Berorientasi. Abstract & Interface

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

Pemrograman Berorientasi. Array dan Collections

Bahasa Pemrograman 2.

Bab 1 Pengantar Struktur Data

[Lanjutan] Nurochman

Class & Object 2. Imam Fahrur Rozi

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

Pemrograman Lanjut Review Class dan Object PTIIK

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words

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

MODUL 1. CLASS, OBJECT, CONSTRUCTOR DAN METHOD

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

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

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

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktivitas Pembelajaran

SILABUS STRUKTUR DATA ( TIF-104 ) PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS PEMBANGUNAN JAYA TANGERANG SELATAN

Pemrograman Lanjut. Class : Deeper Look 2

SUMBER BELAJAR PENUNJANG PLPG

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

Algoritma Pemrograman [BS204]

BAB 3 CLASS DAN OBJECT. Tujuan:

MODUL 1. Class, Object, Constructor dan Method

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

Membuat dan Menggunakan Class

KKKF33110 STRUKTUR DATA

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

TUGAS KELOMPOK 4 PEMROGRAMAN BERBASIS OBJEK

Pengenalan pemrograman berorientasi obyek

Bab 8. Dasar-Dasar OOP

CLASS PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM JOGJAKARTA

STRUKTUR DASAR PEMROGRAMAN

Pemrograman Lanjut. Class, dan Instance Variable. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

MINGGU VI : PBO (LANJUTAN)

Tabel 1. Instruksi untuk menampilkan teks No. Bahasa Pemrograman Instruksi 1. Pascal WRITE ( Bahasa pemrograman itu mudah );

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA

Jobsheet 09. Overloading and Overriding Method

JAVA PADA NETBEANS IDE 7.4 ASRI WIDYADHARI KOM E 13

Inheritance dan Kata Kunci static

BAB VI OBYEK DAN KELAS

MATERI PRAKTIKUM STRUKTUR DATA

Spesifikasi: Ukuran: 14x21 cm Tebal: 225 hlm Harga: Rp Terbit pertama: Februari 2005 Sinopsis singkat:

BAB VI OBYEK DAN KELAS

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

UJIAN TENGAH SEMESTER GENAP TA 2011/2012

Polymorphism. Materi ke-8 Pemrograman Berbasis Objek

OBJECT, CLASS DAN METHOD. 1. Mengetahui pengertian dari objek & class 2. Dapat membuat program sederhana dari java dengan menggunakna objek dan class

Dasar-Dasar OOP di Java

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

Pemrograman I. By : Sri Rezeki Candra Nursari SKS

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

PEMAHAMAN DASAR DASAR JAVA

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Transkripsi:

By. Sri Rezeki Candra Nursari 3 sks Algoritma Struktur Data

Materi Pengantar Struktur Data Abstract Data Type (ADT) Rekursif : Fibonacci Sorting (Selection, Insertion, Bubble, Shell, Merge, Quick) Struktur Data Linier (Linked List, Stack, Queu) Struktur Data Hirarki (Tree, Graph, Hash Tables) Search (Sequential, Fibonacci, Interpolation, Binary)

Pengertian ADT ADT adalah definisi type dan sekumpulan primitif (operasi dasar) terhadap type tersebut. Type diterjemahkan menjadi type terdefinisi dalam bahasa pemrograman yang bersangkutan, misalnya menjadi Struct dalam bahasa C Primitif dalam konteks pemrograman prosedural, diterjemahkan menjadi fungsi dan prosedur.

Pengertian ADT Primitif dikelompokkan menjadi : 1. Konstruktor/Kreator, pembentuk nilai type. Biasanya namanya diawali dengan Make. 2. Selektor, untuk mengakses komponen type. Biasanya namanya diawali dengan Get. 3. Prosedur Pengubah nilai komponen 4. Validator komponen type, yang dipakai untuk mengetes apakah dapat membentuk type sesuai batasan. 5. Destruktor/Dealokator, yaitu untuk menghancurkan nilai objek, sekaligus memori penyimpannya 6. Read/write, untuk interface dengan input/output device 7. Operator Relasional terhadap type tersebut untuk mendefinisikan lebih besar, lebih kecil, sama dengan dan sebagainya. 8. Aritmatika terhadap type tersebut, dalam pemrograman biasanya hanya terdefinisi untuk bilangan numerik. 9. Konversi dari type tersebut ke type dasar dan sebaliknya

Abstract Data Type (ADT) Definisi TYPE dari sebuah ADT dapat mengandung definisi ADT lainnya Contoh : ADT waktu terdiri atas ADT jam dan ADT tanggal ADT garis memiliki 2 buah titik ADT diimplementasikan menjadi dua modul: Spesifikasi TYPE dan PRIMITIF Spesifikasi Type sesuai bahasa Spesifikasi PRIMITIF sesuai konteks (fungsi/prosedur) Body berupa kode program

ADT biasanya diimplementasi menjadi dua buah modul, yaitu : 1. Definisi/spesifikasi type dan primitif Spesifikasi type sesuai dengan bahasa yang dipakai Spesifikasi dari primitif sesuai dengan kaidah dalam konteks prosedural, yaitu : a) Fungsi : nama, domain, range, dan pre kondisi jika ada b) Prosedur : Keadaan Awal, Keadaan Akhir dan proses yang dilakukan 2. Body/realisasi dari primitif, berupa kode program dalam bahasa yang bersangkutan. Realisasi fungsi dan prosedur harus sedapat mungkin memanfaatkan Selektor dan Konstruktor

Abstract Data Type (ADT) Realisasi ADT dalam beberapa bahasa pemrograman BAHASA SPESIFIKASI BODY C File header *.h File kode program (*.c) C++ File header *.h File kode program (*.cpp) Java Class Public Class

Abstract Data Type (ADT) Setiap ADT harus dibuat menjadi spesifikasi, body dan driver Dalam bahasa C++, modul spesifikasi dan body dapat dibuat dengan cara Include dari file header Encapsulate dalam class Driver digunakan untuk menguji ADT

Abstract Data Type (ADT) Struktur Data merupakan teknik/strategi untuk mengimplementasikan sebuat ADT (ADT lebih merupakan deskripsi logika) Struktur data merupakan cara membentuk, mengkonstruksi, mengaransemen, mengkomposisi kan/mengorganisasikan data (ADT) ADT: Stack, queue, priority queue, dictionary, sequence, set Struktur Data: Array, linked list, hash table, tree

Contoh ADT Program contoh 01

Algoritma...????? Pseudocode...??????

Pendahuluan Class Class merupakan struktur data dari objek Sebuah class (kelas) yang menyerupai struktur dapat dibuat dengan menggantikan kata struct dengan class Persamaan struktur dengan kelas, pada cara mendeklarasikan, mendefinisikan dan cara akses Sedangkan perbedaan struktur dengan kelas adalah kelas mempunyai access specifier (penentu akses), sedangkan struktur tidak mempunyai access specifier (penentu akses)

Struktur vs Kelas/Class Persamaan : Cara deklarasi struct cthstruct { }; int b;... Cara definisi variabel/objek cthstruct x; Cara akses x.a = 22; Cara deklarasi { class cthclass }; int b;... Cara definisi variabel/objek cthclass x; Cara akses x.a = 22;

Struktur vs Kelas/Class Perbedaan : struct cthstruct { int b;... }; class cthclass { public; int b;... };

Kelas/Class Kelas digunakan untuk mendefinisikan obyek Contoh : tipe data digunakan untuk mendefinisikan variabel Obyek melingkupi anggota data dan fungsi anggota Nama kelas biasanya dimulai dengan huruf besar Pendefinisian Kelas: Pendefinisian obyek: NamaKelas Nama_Obyek

Penentu Akses (Access Specifier) Digunakan untuk menentukan anggota data atau fungsi anggota mana yang boleh diakses dan oleh siapa Ada 4 macam penentu akses(access specifier)/level access modifier: Public Default Private Protected

Penentu Akses (Access Specifier) Public Bisa diakses dari luar kelas (bersifat global) Maka semua class yang lain dapat melihat class tersebut Dapat melakukan import, instansiasi, extends, dan memanggil method yang ada dalam class Default Maka hanya class dari package yang sama atau class turunannya yang dapat melihat class tersebut

Penentu Akses (Access Specifier) Private Hanya bisa diakses dari dalam kelas (bersifat lokal) Hanya dapat digunakan oleh inner class saja, sedangkan class lain tidak dapat ditandai sebagai private Protected Sama dengan Private dan bisa diakses oleh kelas-kelas turunan Class tidak dapat dideklarasikan sebagai protected

Penentu Akses Public Dengan menggunakan penentu akses publik, anggota data dan fungsi anggota bisa diakses dari luar kelas Contoh : class Buku { public: char judul[30];... }

Penentu Akses Private Digunakan untuk memproteksi anggotaanggota tertentu pada kelas agar tidak bisa diakses secara langsung dari luar kelas Biasanya yang menggunakan penentu akses private adalah anggota data Biasa digunakan pada kelas untuk memproteksi anggota-anggota tertentu pada kelas, agar tidak dapat diakses di luar kelas secara langsung

Penentu Akses Private Penentu akses private adalah nilai default sehingga kalau penentu akses tidak ditentukan, maka dianggap menggunakan penentu akses private Contoh : class Buku { } private: char judul[30];...

Fungsi Anggota Ada dua macam cara penulisan fungsi anggota. Cara 1 : Fungsi didefinisikan didalam kelas

Fungsi Anggota Cara 2 : prototipe fungsi dideklarasikan dalam kelas, definisi fungsi diletakkan diluar kelas dibawah fungsi main()

Class vs Object Object adalah instansiasi dari sebuah class Class itu sebagai sebuah cetakan sedangkan object itu adalah barang dari hasil cetakan Class juga dapat dikatakan sebagai kategori, sedangkan object adalah sesuatu yang memuhi syarat-syarat yang harus dipenuhi agar masuk dalam kategori tersebut

Class vs Object Jadi satu class dapat mempunyai banyak object Setiap object mempunyai sifat yang sama persis seperti yang didefinisikan dalam class tersebut Contoh : Mendefinisikan beberapa obyek MtKuliah Jur_IT, Jur_TI; MtKuliah DtMtKuliah[22];

Kelas Contoh Soal 02: Perintah menampilkan obyek komik dari class buku dengan 3 attribut/field (Judul, Pengarang dan Jumlah Buku yang tersedia) Menggunakan penentu akses public

Program contoh 02

Algoritma...????? Pseudocode...??????

Kelas Contoh Soal 03: Perintah menampilkan obyek komik dari class buku dengan 3 attribut/field (Judul, Pengarang dan Jumlah Buku yang tersedia) Menggunakan penentu akses private & public

Program contoh 03

Algoritma...????? Pseudocode...??????

Kelas Contoh Soal 04: Perintah menampilkan obyek komik dari class buku dengan 3 attribut/field (Judul, Pengarang dan Jumlah Buku yang tersedia) Menggunakan fungsi anggota dengan format kelas::data

Program contoh 04

Algoritma...????? Pseudocode...??????

Class & Obyek Class adalah suatu cara untuk membuat tipe data yang baru Mengapa butuh tipe data baru, agar aplikasinya source code lebih mudah dibaca Dari tipe data akan dibuat variabel

Class & Obyek Variabel adalah tempat untuk data Class dengan obyek duluan class nya Instance adalah kata lain dari obyek atau instance miliknya obyek

Class & Obyek Static adalah variabel miliknya si class atau static variebel miliknya class nilai akan berubah kesemua instance Didalam class kita dapat : 1. Constructor selalu instance 2. Method bisa static atau instance 3. Variabel/property bisa static atau instance 4. Buat class didalam class biasa disebut Inner Class

Class & Obyek Constructor selalu instance Constructor dan method ada overloading argumen atau parameter nya berbeda (yang berbeda bisa jumlah, tipe data, urutan), tetapi namanya bisa sama

Class & Obyek Macam-macam method method(); method(int x, Int y); method(string x, String y) method(integer y, String x )

Class & Object Didalam class bisa mennggunakan banyak konstruktor Contoh : Mahasiswa m1 = new Mahasiswa(); Constructor

Obyek Terdiri dari 2, yaitu : 1. Obyek Lokal 2. Obyek Global

1. Obyek Lokal Merupakan suatu obyek yang didefinisikan di luar fungsi Konstruktor dijalankan saat obyek bersangkutan di ciptakan Destruktor dijalankan dengan sendirinya saat fungsi yang mendefinisikannya berakhir

Obyek Lokal Contoh Soal 05: Menampilkan konstruktor dan destruktor pada variabel R,S,T

Program contoh 05

Algoritma...????? Pseudocode...??????

2. Obyek Global Merupakan suatu obyek yang didefinisikan secara global Konstruktor dijalankan saat awal eksekusi program, yaitu sebelum fungsi main() di proses Destruktor dijalankan saat fungsi main() berakhir Apabila ada exit() destruktor obyek global akan dijalankan terlebih dahulu, tetapi destruktor obyek lokal tidak akan dieksekusi

Obyek Global Contoh Soal 06: Menampilkan konstruktor dan destruktor pada variabel R,S,T dengan menambahkan perintah exit()

Program contoh 06

Algoritma...????? Pseudocode...??????

Menyimpan kelas dan fungsi anggota pada file tersendiri Apabila class digunakan untuk sejumlah program, maka class harus dideklarasikan pada file tersendiri Didefinisikan fungsi-fungsi anggotanya File header bisa kita buat sendiri Caranya dengan memisahkan pendefinisian kelas kedalam suatu file tersendiri yaitu file.h

Menyimpan kelas dan fungsi anggota pada file tersendiri Definisi fungsi anggota juga dimasukkan kedalam file.h ini File.H ini kemudian disimpan di folder BC31\Include atau disimpan pada tempat lain Penulisan file header: - #include matkul.h jika file disimpan di folder Include - #include d:\matkul.h jika file disimpan ditempat lain, misal di drive d:

Class dan Obyek Contoh Soal 07: Buat header untuk deklarasi kelas majalah Buat file untuk mendefinisikan fungsi-fungsi anggota dari class majalah Menampilkan majalah dengan menggunakan class yang di deklarasikan pada file header majalah.h

Program contoh 07

Program contoh 07

Program contoh 07

Algoritma...????? Pseudocode...??????

Obyek Sebagai Parameter Ada 3 kemungkinan melewatkan obyek sebagai parameter: 1. Melewatkan obyek berdasarkan nilai (passing parameter by value) 2. Melewatkan obyek sebagai referensi (passing parameter by reference) 3. Melewatkan obyek sebagai pointer

1. Melewatkan Obyek Berdasarkan Nilai Definisi fungsi void lihat_matkul(matkul matakuliah) { } matakuliah.lihat_data(); Pemanggilan Matkul jur_it; lihat_matkul(jur_it);

2. Melewatkan Obyek Sebagai Referensi Definisi fungsi void lihat_matkul(matkul &matakuliah) { matakuliah.lihat_data(); } Pemanggilan Matkul jur_ti; lihat_matkul(jur_ti);

3. Melewatkan Obyek Sebagai Pointer Definisi fungsi (cara 1) void lihat_matkul(matkul *matakuliah) { (*matakuliah).lihat_data(); } Definisi fungsi (cara 2) void lihat_matkul(matkul *matakuliah) { matakuliah->lihat_data(); } Pemanggilan Matkul jur_ts; lihat_matkul(&jur_ts)

Array Obyek Suatu array juga bisa mempunyai elemen berupa obyek Sintaks: NamaKelas NamaObyek[jumlah_data]; Contoh: Matkul data_matakuliah[10]; Inisialisasi: Matkul data_matakuliah[2] = { }; {Matkul( PBO, 3, A )}, {Matkul( Prak PBO, 2, B )} //Matkul : nama konstruktor

Nilai Balik Berupa Obyek Sebuah fungsi dapat menggunakan obyek sebagai tipe nilai balik Sintaks: TipeNilaiBalik NamaFungsi(TipeData NamaVariabel) Contoh: Matkul IsiData(char *nama_mk, int sks_mk, char nilai_mk);

Pointer ke Fungsi Anggota Fungsi anggota dapat diakses melalui pointer Sintaks: TipeNilaiBalik (NamaKelas::*NamaPointer) (Parameter, ); TipeNilaiBalik dan Parameter dari pointer tergantung pada tipe nilai balik dan parameter dari fungsi yang akan diakses Contoh: Class Contoh { public: void FContoh1() {cout << tes ;} int FContoh2(int x, int y) {return(x+y);} };

Pointer ke Fungsi Anggota Pointer ke fungsi dengan nilai balik void dan tidak mempunyai parameter: - Deklarasi: void (Contoh::*ptr_contoh1) (); - Mengakses fungsi FContoh1 dengan pointer: ptr_contoh1 = &Contoh::FContoh1; - Menjalankan fungsi yang ditunjuk oleh pointer: (x.*ptr_contoh1)(); x adalah nama obyek

Pointer ke Fungsi Anggota Pointer ke fungsi dengan nilai balik int dan dua parameter bertipe int: - Deklarasi: int (Contoh::*ptr_contoh2) (int, int); - Mengakses fungsi FContoh2 dengan pointer: ptr_contoh2 = &Contoh::FContoh2; - Menjalankan fungsi yang ditunjuk oleh pointer: (x.*ptr_contoh2)(2,3); x adalah nama obyek