STRUKTUR DATA Komting: ADITYA (E), SIGIT

Slides:



Advertisements
Presentasi serupa
BAB III – ARRAY STATIS II
Advertisements

Pendahuluan Dr. Anto Satriyo Nugroho, M.Eng Web: Mata Kuliah: Dasar Pemrograman.
Algoritma Struktur Data
- PERTEMUAN 11 - SORTING (PENGURUTAN)
ARRAY 1 DIMENSI #10 STIKOM Searching Pengantar Manfaat Inisialisasi
Algoritma dan Struktur Data Menggunakan Java
Implementasi Binary Tree
Pemrograman Dasar Pendahuluan PTIIK- UB.
PERTEMUAN KE-1. Mata Kuliah STRUKTUR DATA SKS : 3 Penilaian: Tugas-Tugas, UTS, UAS Kehadiran, dll: Peraturan Akademik.
STACK (TUMPUKAN).
Algoritma & Struktur Data TG22113
Testing dan Implementasi Sistem
Struktur Data Stack.
Pertemuan 6 TREE & BINARY TREE
PERTEMUAN 1 Pendahuluan Materi - Endra Rahmawati, S.Kom -
Algoritma & Struktur Data Oleh : Nur Hayatin, S.ST
Struktur Data List Linear : Linked List (Double Linkedlist)
Pengantar Struktur Data & Algoritma
Matakuliah : T0456 ~ Algoritma dan Metode Object Oriented Programming
Structure Data - Array Pertemuan 7 Matakuliah: T0456 / Algoritma dan Metode Object Oriented Programming Tahun: 2007.
Struktur Data List Linear : Linked List (Single Linkedlist)
Pemrograman Berorientasi Obyek Lanjut (IT251)
Pengurutan (Sorting) Diperlukan untuk mempercepat pencaharian suatu target dalam suatu daftar (list). Jenis Pengurutan:  Ascending Pengurutan dilakukan.
SORTING Matakuliah : T0974 / Algoritma dan Metode Object Oriented Programming I Tahun : 2008 Versi : 1/0.
TIF 4201 Algoritma Dan Struktur Data
Pertemuan 5 STACK & QUEUE
Pertemuan 7 stack jual [Valdo] Lunatik Chubby Stylus.
PEMROGRAMAN LANJUT Issa Arwani, S.kom, M.sc.
Pertemuan Linked list jual [Valdo] Lunatik Chubby Stylus.
Universitas Budi Luhur
Struktur Data Tree Eka Rahayu S. (2 Agustus 2011).
STKIP PGRI Tulungagung
Pengenalan Struktur Data Universitas Muhammadiyah Jakarta
Pengantar Struktur Data Sri Nurhayati, MT
Pertemuan 25 MERANCANG ALGORITMA DENGAN KOMPLEKSITAS TERTENTU
ALGORITMA & PEMROGRAMAN
Struktur data Oleh: Tim Struktur Data IF ARRAY STATIS.
Struktur Data Ikhwan Rustanto,S.Kom Program Studi Sistem Informasi
Fondasi Pemrograman & Struktur Data
Algoritma dan Struktur Data
Algoritma dan Struktur Data Menggunakan Java
Design and Analysis Algorithm
Pertemuan 22 Graph Operation
1 PENDAHULUAN BAB PENGANTAR STRUKTUR DATA
Pertemuan 5 Review Berbagai Struktur Data
Silabus dan Rencana Perkuliahan
Struktur Data Yuniansyah.
Algoritma dan Struktur Data
Pertemuan 4 ALGORITMA lanjutan….
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
STRUKTUR DATA 2014 M. Bayu Wibisono.
STRUKTUR DATA Array Statis.
Kontrak Kuliah Algoritma Pemograman
Soal Latihan Struktur Data.
Struktur Data Sri Nurhayati, MT
STRUKTUR DATA Array Statis.
STACK Yohana Nugraheni.
Silabus dan Rencana Perkuliahan
MATERI PERKULIAHAN ALGORITMA & PEMROGRAMAN
Algoritma dan Struktur Data (IT234)
Gambaran Kuliah Pemrograman Terstruktur
Apakah Algoritma & Struktur Data itu ?
Silabus dan Rencana Perkuliahan
STRUKTUR DATA Nurdiansah PTIK 09.
ALGORITMA & PEMROGRAMAN
Algoritma dan Struktur Data (IN211)
Data Structures and Algorithms Introduction. Introduction Prerequisites Basic Computer Programming Language Discreet Mathematics.
Algoritma dan Struktur Data
Pengantar.
Review Struktur Data Nisa’ul Hafidhoh, MT.
Transcript presentasi:

STRUKTUR DATA Komting: ADITYA 08785523198 (E), SIGIT 085645119007 :: Fetty Tri Anggraeny ::

Tentang Mata Kuliah ini ISI3002 – Struktur Data 3 SKS: 3 x 50 menit = 2 jam 30 menit Prasyarat: tidak ada Nilai kelulusan: C Materi kuliah: http://elearning.upnjatim.ac.id  Struktur Data

Tujuan Mata Kuliah Mahasiswa dapat menjelaskan: Struktur data komputer dan pengaruhnya terhadap program Algoritma dan struktur data fundamental Pemilihan penggunaan struktur data dan algoritma yang tepat untuk menyelesaikan masalah standar Implementasi algoritma dan struktur data yang berorientasi objek

Referensi [1] Bruno R. Preiss, B.A.Sc., M.A.Sc. Ph.D., P.Eng., Data Structures and Algorithms with Object-Oriented Design Patterns in Ruby, 2004. [Online] http://www.brpreiss.com/books/opus8/index.html [2] Dave Thomas, Chad Fowler, Andy Hunt, Programming Ruby: The Pragmatic Programmers’ Guide (2nd edition), 2004. [3] David Flanagan, Yukihiro Matsumoto, The Ruby Programming Language, O’Reilly, 2008 !!! No [2] dan [3] tersedia di e-learning dalam bentuk e-book

KONTRAK KULIAH Toleransi keterlambatan 30 menit berlaku bagi dosen dan mahasiswa Pakaian SOPAN, berkerah, bebas rapi dan bersepatu. Tugas dikumpulkan sesuai deadline masing-masing tugas. Keterlambatan pengumpulan : minus 10% dari nilai (per hari keterlambatan) NILAI : NTS terdiri dari: Absensi : 10% Tugas : 40% UTS : 50% NAS terdiri dari: Tugas : 30% Final Project : 30% UAS : 30%

MATERI KULIAH Review materi AlPro Sorting Searching Linked List Stack Queue Graph dan Tree

Satuan Acara Perkuliahan Minggu ke- Topik Pokok Bahasan 1 Pendahuluan : Kontrak Perkuliahan Pengenalan algoritma dan struktur data: Review konsep variable, Tipe data, dan pengendali program, fungsi & prosedur, array Pengenalan konsep struktur data dan tipe data abstrak Pengenalan konsep pemrograman object oriented 2 Single Linked List : Linked List sebagai array yang dinamis Struktur data Linked List Operasi Insert new Node Operasi Search Node Operasi Delete Node Implementasi Single Linked List dalam Ruby: Elemen List Class LinkedList Methods (initialize, purge, first, last, prepend, append, clone, extract, insertAfter, insertBefore) 3 Stack: Definisi Stack Contoh implementasi stack Struktur data stack Operasi Push() dan Pop() Studi kasus: cek kurung, palindrome, evaluasi infix

Satuan Acara Perkuliahan Minggu ke- Topik Pokok Bahasan 4 Queue: Definisi Queue Contoh implementasi queue Struktur data queue Operasi Insert() dan Remove() Studi kasus: parkir mobil, proses CPU 5 Implementasi Stack dan Queue dengan array di Ruby Implementasi Stack dan Queue dengan linked list di Ruby 6 Tree: Definisi Tree N-ary tree Binary Tree Tree traversal: Depth First Traversal (In order, Pre order, Post order), Breadth First Traversal Contoh implementasi tree dalam Ruby 7 8 UTS 9 Searching : Sequential search Binary Search Search Trees: Binary Search Tree AVL Search Tree

Satuan Acara Perkuliahan Minggu ke- Topik Pokok Bahasan 10 Sorting: Bubble sort Selection sort Insertion sort Quick sort, Merge sort, shell sort (dipelajari secara mandiri) 11 Contoh implementasi sorting dan searching dalam Ruby 12 Graph: Definisi Graph Contoh implementasi graph Struktur data graph Graph Traversing: Depth First, Breadth First Shortest Path and Minimum Spanning Trees 13 Demo final project 14 UAS

What is programming? PROGRAM = ALGORITMA + STRUKTUR DATA ALGORITMA : SEQUENTIAL BRANCHING LOOPING/ REKURSI STRUKTUR DATA : ARRAY LINKED LIST ADT : STACK, QUEUE, GRAPH, TREE, DLL

Review Materi AlPro Variabel dan tipe data Kontrol Alur Fungsi/Method Array

Variabel dan tipe data Ruby Numeric class Integer Fixnum Bignum Float Complex (standard library) BigDecimal (standard library) Rational (standard library) Contoh operasi aritmetika pada number: x=5/2 y=5.0/2 z=5/2.0 x=5%2

Variabel dan tipe data Ruby String class Single-quoted string literals: S=‘Ini string sederhana dalam Ruby’ Double-quoted string literals: Lebih fleksibel S="360 degrees=#{2*Math::PI} radians“ output: S="360 degrees=6.283185307179586 radians” String.new  membuat tipe data string baru dan kosong (empty string) Append operator (<<): greeting=“Hello” greeting<<“ “<<“World” puts greeting

Variabel dan tipe data Ruby Concat operator (+): planet=“Earth” “Hello”+” “+planet Array class Array di Ruby tidak memiliki tipe dan resizable Contoh: [1, 2, 3] [[1,2],[3,4],[5]] empty=Array.new zeros=Array.new(4,0) count=Array.new(3) {|i| i+1} More on Array in resource [3] chapter 9.5.2

Variabel dan tipe data Ruby Object class Ruby adalah bahasa pemrograman berorientasi objek all values are objects Semua objek diturunkan dari class Object. Untuk mengetahui class dari object, gunakan perintah .class Contoh: o=“test” o.class #returns an object with String class

CONTROL STRUCTURES SEQUENTIAL/ URUTAN BRANCHING/ PERCABANGAN Program dijalankan mulai dari perintah paling atas/ awal sampai paling akhir secara berurutan/ sekuensial. BRANCHING/ PERCABANGAN Penyeleksian kondisi (TRUE/ FALSE) untuk menentukan statemen selanjutnya LOOPING/ PERULANGAN Mengulangi proses selama syarat/ kondisi tertentu masih terpenuhi

Sequential/Urutan Action 1 Action 2 Action 3 Entry Exit

Branching Entry Condition 1 Action 1 Condition 2 Action 3 Action 2 Exit TRUE FALSE

IF - ELSE Biasa digunakan untuk seleksi nilai/ data Kondisi jamak  ((kondisi_1) &&/ || (kondisi_2)) if (kondisi=TRUE) jalankan_statement_ini if (kondisi=TRUE) statement_1 else statement_2 // if kondisi=FALSE else if (kondisi=TRUE) statement_2 else statement_3 // if kondisi=FALSE if (kondisi=TRUE) if (kondisi=TRUE) nested_statement

If - else If syntax If Else Syntax If Else If Syntax if var == 10      print “Variable is 10″ end If Else Syntax if var == 10    print “Variable is 10″ else    print “Variable is something else” end If Else If Syntax Here’s the key difference between Ruby and most other languages. Note that “else if” is actually spelled “elsif” without the e. if var == 10    print “Variable is 10″ elsif var == “20″    print “Variable is 20″ else    print “Variable is something else” end

SWITCH - CASE Biasa digunakan untuk membuat menu dalam program switch (variabel_pilihan) { case nilai_1 : statemen_1; break; case nilai_2 : statemen_2; break; case nilai_3 : statemen_3; break; … default: statemen_default; } Bisa berbentuk nested/ bersarang

Switch case Switch Case syntax [variable = ] case when bool_condition statements else # the else clause is optional\ end

Looping Action 1 Action 2 Action 3 Entry Exit if 1 if 2 Looping 1

Looping dengan “while” x=10 #initialize a loop counter variable while x>= 0 do #Loop while x is greater than/equal to 0 puts x #Print out the value of x x=x-1 #Subtract 1 from x end #The loop ends here

Looping dengan “until” #Count back up to 10 x=0 until x>10 do puts x x=x+1 end

Looping dengan “for in” array=[1,2,3,4,5] for element in array puts element end

Function or Method Sekelompok blok kode yang memiliki parameter dan berasosiasi dengan 1 atau lebih objek Contoh method: # Define a method named 'factorial' with a single # parameter 'n' def factorial(n) if n < 1 # Test the argument value for validity raise "argument must be > 0" elsif n == 1 # If the argument is 1 1 # then the value of the method invocation is 1 else # Otherwise, the factorial of n is n times n * factorial(n-1) # the factorial of n-1 end

Method with return value def factorial(n) raise "bad argument" if n < 1 return 1 if n == 1 n * factorial(n-1) end

Method with more than 1 return values #Convert the Cartesian point (x,y) to #polar (magnitude, angle) coordinates def polar(x,y) return Math.hypot(y,x), Math.atan2(y,x) end Contoh lain: # Convert polar coordinates to Cartesian coordinates def cartesian(magnitude, angle) [magnitude*Math.cos(angle), magnitude*Math.sin(angle)] Cara pemanggilan method: distance,theta=polar(x,y) x,y=cartesian(distance,theta)

Tipe Data Abstrak (Abstract Data Type – ADT) ADT adalah model formal dari struktur data yang menspesifikasikan: Tipe data yang disimpan Operasi yang dapat dilakukan Tipe parameter dari operasi tersebut ADT menspesifikasikan operasi apa yang dapat dilakukan, bukan bagaimana melakukan operasi tersebut

ADT Objek pada Ruby adalah sebuah abstraksi. Tingkat abstraksi meliputi: atribut (nama, alamat, nilai, masa hidup, cakupan, tipe, dan ukuran) Contoh ADT: Fixnum Jika kita membuat objek, x, bertipe Fixnum, kita tahu bahwa x dapat merepresentasikan integer dalam range [-231, 231-1] dan kita dapat melakukan operasi penambahan, pengurangan, perkalian, dan pembagian Kita tidak perlu tahu bagaimana cara yang dilakukan Fixnum untuk melakukan operasi tersebut, hanya perlu tahu operasi apa yg ada pada Fixnum

Cakupan ADT Struktur linier: Tree Heap Priority Queue Hash-table Set Stack Queue Deque List Tree Heap Priority Queue Hash-table Set String Graph

Hirarki class di Ruby Larger Image

Hirarki class Dua jenis class dalam Ruby: Abstract dan Concrete Abstract class: Class yg mendefinisikan sebagian dari implementasinya Kita tidak dapat membuat objek dari abstract class Digunakan sebagai base class darimana sebuah class diturunkan Class turunan meng-override abstract methods Concrete Class: Kita dapat membuat objek dari concrete class  dengan .new method

Contoh abstract class class Animal def initialize end def move class Cheetah < Animal def initialize @type = :Cheetah end def move "Running!" puts Cheetah.new.move # => "Running!"

Contoh concrete class class Die def roll 1+rand(6); end # akhir method roll end # akhir class Die dice=Die.new; puts dice.roll ]

Next Week Struktur data linked list dan implementasinya dalam Ruby TERIMA KASIH