Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

dokumen-dokumen yang mirip
By : Agus Priyanto, M.Kom ST3 Telkom Purwokerto Structure and Pointer

MODUL IV ARRAY DAN STRUCTURE

ARRAY / LARIK. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

Array (Tabel) [DalamBahasaC++]

ALGORITMA DAN STRUKTUR DATA

Pointer. ted = &andy;

REVIEW ARRAY. Institut Teknologi Sumatera

ARRAY PENGANTAR PROGRAM STUDI. Institut Teknologi Sumatera

MODUL VI OBJECT ORIENTED PROGRAMMING (OOP)

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

Pointer di C++ Menurut Frieyadie Edisi Revisi Buku Pemrograman C++ dengan Borland C

Array ARRAY BERDIMENSI SATU. Representasi (Pemetaan) di memori. Lihat gambar dibawah ini, nilai data A (18) dismpan mulai dari alamat 1136 di memori.

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

ARRAY & POINTER. Listing 8.1. EXPENSES.C demonstrates the use of an array. AP3: Array & Pointer

BAHASA PEMROGRAMAN 1 (PERTEMUAN 3)

MODUL. Pointer. Modul Praktikum C++ Dasar Pemrograman Komputer JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK

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

STRUKTUR DASAR PEMROGRAMAN

P3 Dasar Struktur Data TIF42/SIF42

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Gambar 13.1 Ilustrasi proses algoritma sorting

Politeknik Elektronika Negeri Surabaya

TUGAS TEORI ALGO LANJUT

Inheritance dan Polimorfisme

PENGANTAR KOMPUTER & SOFTWARE II

DASAR PEMROGRAMAN. Institut Teknologi Sumatera

LAPORAN PRAKTIKUM SEMENTARA PENGANTAR PEMROGAMAN BAHASA C++

PENGANTAR KOMPUTER & SOFTWARE II. Pengulangan (For) Tim Pengajar KU Institut Teknologi Sumatera

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Paradigma Pemrograman Berorientasi Objek

BAB X. Struct Dalam C++, kita dapat membuat sebuah tipe data baru. Maka penulisan variabel baru kita akan menjadi:

Pointer, File Header & Makro

Konsep Dasar Pemrograman Dan Pengenalan C++

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

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel

Matriks. Tim Pengajar KU1072. KU1072/Pengenalan Teknologi Informasi B Tahap Tahun Pertama Bersama Institut Teknologi Bandung

Pointer dan Referensi

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

Minggu III STRUKTUR PEMILIHAN (KONTROL PROGRAM)

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

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

Pencarian (Searching)

Politeknik Elektronika Negeri Surabaya

Array dan Matriks. IF2121 / Algoritma dan Struktur Data Sem / /7/2017 IF2121/sem /2018 1

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

Pemrograman Dasar C. Minggu 9

SATUAN ACARA PERKULIAHAN(SAP)

Sorting. Pertemuan ke 14.

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

Tes Asisten Praktikum Alpro Lanjut

MODUL V POINTER DAN STRING

ilmu bahasa pemrograman ilmu c++ Copyright izie ilmu c++

Operasi File. Chapter 13

Pengenalan C++ Oleh : Dewi Sartika

Kurikulum Qt. Chapter 4 Function. Fungsi

PERULANGAN P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

StrukturDasarProgram Prosedural (dalambahasac++)

Modul 8 SORTING (PENGURUTAN)

pada program di atas, akan ditampilkan alamat memori dari variabel x, bukan nilai x.

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

PEMROGRAMAN BERORIENTASI OBJEK. Operator. Budhi Irawan, S.Si, M.T

A. TUJUAN PEMBELAJARAN

INF-103 Pemrograman II VECTOR & STRING. Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc. Program Studi Informatika FMIPA UNIVERSITAS KUALA

BAB VI Pengurutan (Sorting)

Modul Praktikum Bahasa Pemrograman 1

ALGORITMA SEARCHING. Oleh : Agus Priyanto, M.Kom SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM. Smart, Trustworthy, And Teamwork

MODUL MATA KULIAH PEMROGRAMAN KOMPUTER

Praktikum 8. Pengurutan (Sorting) Bubble Sort, Shell Sort

A. TUJUAN PEMBELAJARAN

Algoritme dan Pemrograman

Array Pendeklarasian Array

Konsep Array dalam PBO

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA BUBBLE SORT, SELECTION SORT, INSERTION SORT

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-8 Pengurutan (Sorting) 1

LAPORAN PRAKTIKUM RESMI QUEUE

Komentar, Identifier, Konstanta dan Variabel

Tujuan Instruksional. Mahasiswa mampu :

UJIAN TENGAH SEMESTER KU1072/PENGENALAN TEKNOLOGI INFORMASI B SEM /2014

SUB PROGRAM P E N G A N TA R P R O G R A M S T U D I. Institut Teknologi Sumatera

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

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

Algoritma dan Pemrograman Array/Tabel[1] Oleh: Eddy Prasetyo N

Modul Praktikum 4 Pemograman Berorientasi Objek

ABSTRACT DATA TYPE (ADT) Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc

Kurikulum Qt. Chapter 8 - Polymorphism. Polimorfisme. Problema Pewarisan Tunggal (Single Inheritance)

PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN KOMPONEN PEMROGRAMAN TERSTRUKTUR

Politeknik Elektronika Negeri Surabaya

Elemen Bahasa Pemrograman. Aditya Rizki Yudiantika, M.Eng.

Chapter 9 Operator Types dan Operator Overloading

1. Kompetensi Mengenal dan memahami notasi-notasi algoritma yang ada.

Array 1 Dimensi pada Java

Kontrak Perkuliahan & Introduction

PENGANTAR KOMPUTER & SOFTWARE II PERCABANGAN

PEMROGRAMAN BERORIENTASI OBJEK

Fungsi : Dasar Fungsi

Game Technology Design Course College of Multi Media Yogyakarta Spring Tri Anggraeni, S.Kom., M.Sc.

SUMBER BELAJAR PENUNJANG PLPG

Pemrograman Dasar C. Minggu 10

Transkripsi:

Kisi-Kisi Ujian Akhir Semester 2015.2 Algoritma dan Pemrograman Lanjut A. Materi Ujian Tengah Semester 1. Array Array adalah kumpulan data yang bertipe sama yang menggunakan nama yang sama. Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan nomor elemen (subscript/indeks) Variabel dapat dideklarasikan ber-type array dari suatu type tertentu. Setiap elemen array diakses dengan alamat berupa indeks yang bertype integer. Contoh : int TabInt[10]; Array bernama TabInt Setiap elemen bertype integer, Dengan ukuran 10 elemen, Dengan alamat setiap elemen array (indeks) adalah dari indeks ke-0 s.d. 9. a. Deklarasi Array int main() // Kamus int TabJumlahHari[12]; // indeks 0..11 float TabNilai[15]; // indeks 0..14 char TabHuruf[100]; // indeks 0..99 string TabKata[100]; // indeks 0..99 Point TabTitik[20]; // indeks 0..19 // Algoritma.. Elemen dari array dapat diakses langsung jika dan hanya jika indeks terdefinisi Cara mengacu sebuah elemen : TabInt[2] TabInt[i] jika i terdefinisi b. Mengisi Array Mengisi array merupakan aktifitas memberi nilai elemen array Pemberian nilai satu elemen Contoh : TabInt[0]=31; Pemberian nilai beberapa elemen Contoh : for (i=0;i<10;i++) TabInt[i]=i*10; Page 1

c. Mengisi Dan Membaca Isi Array Elemen array yang telah diberi nilai dapat diakses kembali. Contoh : menampilkan semua isi array ke layar #include <iostream> using namespace std; int main () // Kamus int TabInt[10]; int i; // Algoritma mengisi array for (i=0; i<10; i++) TabInt[i]=i*10; // Algoritma membaca dan menuliskan // isi array ke layar for (i=0; i<10; i++) cout << TabInt[i] << endl; return 0; 2. Algoritma Sorting a. Penyisipan langsung (straight insertion sort) Cara mengurutkannya adalah dicek satu persatu mulai dari yang kedua sampai dengan yang terakhir. Apabila ditemukan data yang lebih kecil dari data sebelumnya, maka data tersebut disisipkan pada posisi yang sesuai. Subrutin Insertion Sort void insertion_sort(int arr[], int length) int i, j,tmp; for (i = 1; i < length; i++) j = i; while (j > 0 && arr[j - 1] > arr[j]) tmp = arr[j]; arr[j] = arr[j - 1]; arr[j - 1] = tmp; j--; //end of while loop print_array(arr,5); //end of for loop Page 2

b. Seleksi (selection sort) Cara mengurutkannya adalah dengan membandingkan elemen sekarang dengan elemen yang berikutnya sampai terkahir. Jika ditemukan elemen paling kecil, kemudian ditukar dengan elemen sekarang. Subrutin Selection Sort void selectsort(int arr[], int n) int pos_min,temp; for (int i=0; i < n-1; i++) pos_min = i; for (int j=i+1; j < n; j++) if (arr[j] < arr[pos_min]) pos_min=j; if (pos_min!= i) temp = arr[i]; arr[i] = arr[pos_min]; arr[pos_min] = temp; c. Gelembung (buble sort) Cara mengurutkannya adalah membandingkan elemen yang sekarang dengan elemen yang berikutnya. Jika elemen sekarang> elemen berikutnya, maka tukar Subrutin Buble Sort void bubble_sort(int arr[], int size) bool not_sorted = true; int j=0,tmp; while (not_sorted) not_sorted = false; j++; for (int i = 0; i < size - j; i++) if (arr[i] > arr[i + 1]) tmp = arr[i]; arr[i] = arr[i + 1]; arr[i + 1] = tmp; not_sorted = true; //end of if print_array(arr,5); //end of for loop //end of while loop //end of bubble_sort Page 3

3. Algoritma Searching a. Pencarian Sekuensial (Linier) Pencarian Sekuensial (Linier) merupakan model pencarian yang paling sederhana yang dilakukan terhadap kumpulan data Terdapat sebuah larik yang berisi n buah data ( L[0], L[1],, L[n-1]) k adalah data yang dicari L[i]=k i adalah bilangan indeks terkecil, yang memenuhi kondisi 0 k n-1 k adalah data yang dicari L[i]=k Berikut ini merupakan implementasi algoritma pencarian secara sekuensial. Subrutin akan menghasilkan nilai balik berupa : -1 jika data yang dicari tidak ditemukan dan Bilangan antara 0 sampai dengan n-1 (dengan n adalah jumlah elemen larik) jika data yang dicari ditemukan b. Pencarian Terhadap Data Terurut (Binary) Apabila kumpulan data sudah dalam keadaan terurut, pencarian data dengan menggunakan pencarian sekuensial akan memakan waktu yang lama jika jumlah data dalam kumpulan data tersebut sangat banyak. Untuk mengatasi hal tersebut terdapat algoritma yang dirancang agar pencarian lebih efesien yaitu pencarian biner (Binary Search). Pencarian biner dilakukan dengan membagi larik menjadi dua bagian dengan jumlah yang sama atau berbeda 1 jika jumlah data semula ganjil Data yang dicari kemudian dibandingkan dengan data terakhir pada bagian pertama Dalam hal ini akan terjadi 3 kemungkinan yang terjadi : Data yang dicari sama dengan elemen terakhir pada bagian pertama dalam larik. Jika kondisi ini terpenuhi, data yang dicari berarti ditemukan. Data yang dicari bernilai kurang dari nilai elemen terakhir pada bagian pertama dalam larik. Pada keadaan ini, pencarian diteruskan pada bagian pertama. Data yang dicari bernilai lebih dari nilai elemen terakhir pada bagian pertama dalam larik. Pada keadaan ini, pencarian diteruskan pada bagian kedua. 4. Structure and Pointer a. Structure Structure adalah kumpulan data yang saling berhubungan, yang disimpan dalam satu unit penyimpanan. Misalkan pada suatu database peyimpanan data pegawai, dimana setiap pegawai akan menyimpan nama, alamat dan gaji. Bila menggunakan array biasa, maka diperlukan tiga variable yang bebas satu dengan yang lain, yaitu variabel nama, alamat dan gaji. Dengan menggunakan structure, data tersebut diorganisasikan dalam satu kesatuan. Page 4

b.1. Deklarasi Dan Menginisialisai Structure Gambar 1. Perbedaan Array dan Structure Biodata pegawai mempunyai properties nama, alamat, dan gaji. Bila menggunakan array biasa, maka diperlukan tiga variable yang bebas satu dengan yang lain, yaitu variabel nama, alamat dan gaji dengan deklarasi sebagai berikut. int main() // Kamus string TabNama[10]; // indeks 0..9 string TabAlamat[10]; // indeks 0..9 int TabGaji[10]; // indeks 0..9 // Algoritma Dengan menggunakan structure, data tersebut diorganisasikan dalam satu kesatuan struct data //Deklarasi structure char name[20]; char address[20]; int salary; ; data employee1; //Inisialisasi variabel structure b.2. Memanggil Elemen Tertentu Dari Suatu Structure int main() cout << "Employee's name : "; cin >> employee1.name; cout << "Employee's address : "; cin >> employee1.address; cout << "Employee's salary : "; cin >> employee1.salary; cout << endl << "Employee's data : "; cout << employee1.name << ", "; cout << employee1.address << ", "; cout << employee1.salary; Memanggil elemen name pada structure employee1(inisialisasi variabel structure Data) return 0; Page 5

b. Pointer Pointer adalah built-in type di C dan C++, dimana C++ mengambil konsep pointer dari C. Sebenarnya sangat terkait dengan "Abstract C Machine", yaitu model mesin abstrak dimana program C bekerja. Abstract C Machine adalah mesin abstrak dimana mesin tersebut memiliki prosesor untuk menginterpretasikan stream of instruction, dan addressable memory b.1. Operator Pointer * & Operator menghasilkan alamat dari operand-nya. Operator & merupakan operator alamat. Pada saat pendeklarasian variable, user tidak diharuskan menentukan lokasi sesungguhnya pada memory, hal ini akan dilakukan secara otomatis oleh kompiler dan operating sysem pada saat run-time. Jika ingin mengetahui dimana suatu variable akan disimpan, dapat dilakukan dengan memberikan tanda ampersand (&) didepan variable, yang berarti "address of". Contoh : ted = &andy; Menghasilkan nilai yang berbeda pada sebuah alamat. Operator * merupakan operator reference. Dengan menggunakan pointer, kita dapat mengakses nilai yang tersimpan secara langsung dengan memberikan awalan operator asterisk (*) pada identifier pointer, yang berarti "value pointed by". Contoh : beth = *ted; (dapat dikatakan:"beth sama dengan nilai yang ditunjuk oleh ted") beth = 25, karena ted dialamat 1776, dan nilai yang berada pada alamat 1776 adalah 25. b.2. Pointer Bertipe Void Pada C++ terdapat pointer yang dapat menunjuk ke tipe data apapun, po inter semacam ini dideklarasikan dengan tipe void sehingga sering dikenal dengan istilah Void Pointer. Listing Program Pointer void *p; int a=10; double b=23.4; char c='s'; p=&a; //p menunjuk ke tipe data int cout<<"alamat (a=10) = "<<p<<endl; p=&b; //p menunjuk ke tipe data double cout<<"alamat (b=23.4) = "<<p<<endl; p=&c; //p menunjuk ke tipe data double cout<<"alamat (c='s') = "<<p<<endl; Page 6

c. Paradigma Pemrograman Berorientasi Objek a. Apa itu OOP? Merupakan teknik membuat suatu program berdasarkan objek dan apa yang bisa dilakukan objek tersebut. Object-oriented program terdiri dari objek-objek yang berinteraksi satu sama lain untuk menyelesaikan sebuah tugas. Kenapa menggunakan OOP? Kode-kode di-breakdown agar lebih mudah di-manage. Breakdown berdasarkan objek-objek yang ada pada program tersebut. Dianjurkan diimplementasikan untuk program dengan berbagai ukuran karena lebih mudah untuk men-debug. Pemrograman procedural mengatur program dalam barisan-barisan linier yang bekerja dari atas ke bawah. Kumpulan tahapan yang dijalankan setelah yang lain berjalan. Baik untuk program kecil yang berisi sedikit code. OOP mempunyai karakteristik sebagai berikut : Abstraksi Menemukan hal-hal yang penting pada suatu objek dan mengabaikan hal-hal yang sifatnya insidental. Enkapsulasi Pengkapsulan adalah proses pemaketan data objek bersama method-methodnya Pewarisan (Inheritance) Proses penciptaan kelas baru (subclass/kelas turunan) dengan mewarisi karakteristik dari kelas yang udah ada (superclass/kelas induk), ditambah karakteristik unik kelas baru itu. Reuseability Reuseability adalah kemampuan untuk menggunakan kembali kelas yang sudah ada. Polymorphism Polymorphism berasal dari bahasa Yunani yang berarti banyak bentuk. b. Deklarasi Kelas (Class) : class nama_class Data elemen_class private; Data elemen_class private; Public : Data elemen_class public; Data elemen_class public; nama_object; Listing Program Class Motor class Motor //Nama Class Public : //Tipe anggota data bersifat public, default private char merk[50]; char jenis[35]; //Nama anggota data float harga; int stock; Motor Sport; //Pendefinisian object Page 7

B. Ketentuan Soal 1. Sifat ujian open sheet Sheet dibuat pada kertas ukuran A4, ditulis tangan dan diberi identitas(nim dan nama). Sheet dikumpulkan pada saat ujian berlangsung. Pengumpulan sheet akan mendapatkan nilai tambahan sebesar 10 % dari nilai ujian akhir semester. 2. Waktu pengerjaan soal 90 menit. Soal terdiri dari essay, menentukan output dari listing program Array dan membaca listing program OOP. 3. Tetap semangat dan sukses selalu. Page 8