STRUKTUR DATA DIMENSIONAL ARRAY

Slides:



Advertisements
Presentasi serupa
ARRAY.
Advertisements

[Kristanto:2009] perintah if berguna untuk memilih satu dari 2 atau lebih alternatif jawaban yang tersedia. Jika perintah if tersebut terdiri dari 2 atau.
ARRAY (Lanjutan).
STRUKTUR KONTROL PENYELEKSIAN KONDISI.
3 Variabel, Konstanta Tipe Data dan dalam Bahasa C/C++ Java dan Bab
Komentar, Identifier dan Tipe Data
By; NILA FEBY PUSPITASARI
PENGENALAN c++ DAN STRUKTUR DASAR C++
Person 10Person Variabel Lokal dan Global Suatu variabel lokal dideklarasikan di dalam fungsi ‘a’, dan tidak dapat diakses di luar fungsi (a)
PEMROGRAMAN SISTEM PERNYATAAN DASAR PILIHAN Pertemuan V
ARRAY OF STRUCT Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara : Deklarasi manual #include typedef struct Mahasiswa { char.
STRUKTUR DATA STRUCT DAN POINTER
Fungsi.
Algoritma dan Struktur Data
#include //bagian modul int hitung(x,y) { return(x+y); } //bagian utama main() { int jumlah,a,b; a=8; b=2; jumlah=hitung(a,b); cout
Jawaban ujian MID. #include int pil; char tny; main(){ menu: cout
STRUCT OF ARRAY Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara : Deklarasi manual #include typedef struct Mahasiswa { char.
Bab 05 Tipe Data dan Mengisi Variabel
STRUKTUR PERULANGAN 2 (LOOPING-2)
Peserta mengerti tahap-tahap pada ADC
KIMIA UNSUR-UNSUR TRANSISI
KEBIJAKAN PEMERINTAH PROVINSI JAWA TIMUR
Penyusunan Data Baseline dan Perhitungan Capaian Kegiatan Peningkatan Kualitas Permukiman Kumuh Perkotaan DIREKTORAT PENGEMBANGAN KAWASAN PERMUKIMAN DIREKTORAT.
BALTHAZAR KREUTA, SE, M.SI
PENGEMBANGAN KARIR DOSEN Disarikan dari berbagai sumber oleh:
Uji Hipotesis Luthfina Ariyani.
INDEKS PEMBANGUNAN MANUSIA (IPM)
Uji mana yang terbaik?.
Analisis Regresi linear berganda
PEERSIAPAN DAN PENERAPAN ISO/IEC 17025:2005 OLEH: YAYAN SETIAWAN
E Penilaian Proses dan Hasil Belajar
b. Kematian (mortalitas)
Arus, Tahanan, dan Gaya Elektromotif
Ilmu Komputasi BAGUS ADHI KUSUMA
PerATURAN waLI KOTA MEDAN NO 44 TAHUN 2017 tentang TAMBAHAN PENGHASILAN PEGAWAI APARATUR SIPIL NEGARA pemerintah kota medan.
OVERVIEW PERUBAHAN PSAK EFFEKTIF 2015
Pembangunan Ekonomi dan Pertumbuhan Ekonomi
PERSIAPAN UN MATEMATIKA
1 Bab Pembangunan Ekonomi dan Pertumbuhan Ekonomi.
Ekonomi untuk SMA/MA kelas XI Oleh: Alam S..
Dosen: Atina Ahdika, S.Si., M.Si.
Junaidi Fakultas Ekonomi dan Bisnis Universitas Jambi
Pemodelan dan Analisis
Bab 4 Multivibrator By : M. Ramdhani.
DISTRIBUSI PELUANG KONTINU
FETAL PHASE Embryolgy II
ILMU USAHATANI Evaluasi Usahatani.
Yusuf Enril Fathurrohman
3D Viewing & Projection.
Distribusi Diskrit dan Kontinu yang Penting
Gerbang Logika Dwi Indra Oktoviandy (A )
SUGIYO Fisika II UDINUS 2014
Perpajakan di Indonesia
Penyusunan Anggaran Bahan Baku
MOMENTUM, IMPULS, HUKUM KEKEKALAN MOMENTUM DAN TUMBUKAN
Strategi Tata Letak.
Jaminan Pensiun BPJS Ketenagakerjaan
PENGUJIAN HIPOTESIS.
Klasifikasi Dokumen Teks Berbahasa Indonesia
Mekflu_1 Rangkaian Pipa.
Digital to Analog Conversion dan Rekonstruksi Sinyal Tujuan Belajar 1
ASPEK KEPEGAWAIAN DALAM PENILAIAN ANGKA KREDIT
RANGKAIAN DIODA TK2092 Elektronika Dasar Semester Ganjil 2015/2016
Penyelidikan Operasi 3. Penyelesaian Analitis Persoalan Optimisasi.
Ruang Euclides dan Ruang Vektor 1.
* RETNO B. LESTARI07/16/96 B 3 Nilai waktu Uang A B PENGANTAR EKONOMI*
Penyelidikan Operasi Pemrograman Dinamik Deterministik.
Minggu ke 10 – Dyah Anggraini – PTLF*
ANALISIS STRUKTUR MODAL
Penerapan Turunan Riri Irawati, M.Kom 3 sks.
Transcript presentasi:

STRUKTUR DATA DIMENSIONAL ARRAY C++ SULIDAR FITRI, M.Sc

ARRAY 1 DIMENSI #include<iostream.h> #include<conio.h> main()  { int a[5]={10,15,20,25,30}; int b[5]={10,20}; int c[5]={15,0,30}; int j; // Menampilkan nilai dari element array cout<<endl; for(j=0;j<5;j++) { cout<<"A ["<<j<<"] = "<<a[j]<<" , B ["<<j<<"] = "<<b[j]<<" , C ["<<j<<"] = "<<c[j]<<endl; } getch(); }

OUTPUT:

Pengertian Array 2 Dimensi Array 2 dimensi tersusun dalam bentuk baris dan kolom, dimana indeks pertama menunjukkan baris dan indeks kedua menunjukkan kolom. Bentuk umum deklarasi array 2 dimensi Tipe_data nama_array[jmlh_baris][jmlh_kolom] Int nilai[4][3]

Array 2 dimensi #include<iostream.h> #include<conio.h> main(){ int matrix[3][3]; int i,j; for(i=0;i<=2;i++){ for(j=0;j<=2;j++){ cout<<"Masukkan angka pada baris ke "<<i<<" kolom ke "<<j<<" : "; cin>>matrix[i][j]; } cout<<endl; }

for(i=0;i<=2;i++){ for(j=0;j<=2;j++) { cout<<matrix[i][j]<<" "; } cout<<endl; getch();

OUT PUT

CALCULATOR (menggunakan stack) Suatu perhitungan aritmatika biasanya berhubungan dengan operand dan operator. Operand merupakan suatu karakter atau elemen yang nilainya dioperasikan dengan bantuan suatu operator untuik menghasilkan suatu solusi. Misalkan jika diberikan suatu ekspresi aritmatika 2 * 3, maka elemen ‘dua’ dan elemen ‘tiga’ merupakan operand dari ekspresi tersebut dan elemen ‘*’ merupakan operator perkalian atas dua operand yang menghasilkan suatu solusi.

Notasi Infix, Prefix, Postfix Infix, Prefix ataupun Postfix adalah bentuk penulisan operasi matematika, bedanya : Infix - Operator diletakkan di antara Operand Prefix - Operator diletakkan di depan Operand Postfix / Sufix - Operator diletakkan di belakang Operand

CONTOH 1) Notasi prefix, jika operator ditempatkan sebelum dua operand Contoh: * + A B C 2) Notasi infix, jika operator ditempatkan di antara dua operand Contoh: (A + B) * C 3) Notasi postfix, jika operator ditempatkan setelah dua operand Contoh: A B + C *

Notasi Infix, Prefix, Postfix Dalam penggunaannya, dalam kehidupan sehari-hari notasi infix merupakan notasi aritmatika yang paling banyak digunakan untuk mengekspresikan suatu perhitungan artimatik dibanding dengan dua notasi yang lain, Akan tetapi notasi Postfix merupakan notasi yang digunakan oleh mesin kompilasi pada komputer dengan maksud untuk mempermudah proses pengkodean, sehingga mesin kompilasi membutuhkan stack untuk proses translasi ekspresi tersebut.

Mengapa harus menggunakan Prefix dan Postfix?

Karena infix memiliki beberapa kekurangan, yaitu :       1. Urutan pengerjaan tidak berdasarkan letak kiri atau kanannya, tetapi berdasarkan precedence-nya Contoh :    3 + 4 x 2                   3 + 4 x 2          , maka urutan pengerjaan adalah 4 x 2 dahulu.                   3 + 8                , baru hasilnya ditambah 3                   11       Urutan precedence (dari prioritas tertinggi) adalah sebagai berikut : 1.      - Pemangkatan 2.      - Perkalian dan Pembagian 3.      - Penjumlahan dan Pengurangan.    - Kecuali kalau ada tanda kurung.

2. Menggunakan tanda kurung. Infix bisa menggunakan tanda kurung 2. Menggunakan tanda kurung. Infix bisa menggunakan tanda kurung. Tetapi tanda kurung dapat mengacak urutan precedence. Contoh : Tanpa penggunaan tanda kurung : 9 – 5 – 3 9 – 5 – 3 , maka urutan pengerjaan adalah 9 - 5 dahulu. 4 – 3 1 Bandingkan dengan penggunaan tanda kurung berikut : 9 – ( 5 – 3 ) 9 – ( 5 – 3 ) , maka urutan pengerjaan adalah 5 – 3 dahulu. 9 – 2 7

3. Jika suatu program akan mengevaluasi (mencari hasil) suatu infix, maka komputer perlu men-scan berulang-ulang mencari urutan pengerjaannya dahulu. Contoh : 7 + 4 x 2 – 6 / 3 Jika kita diminta untuk menghitung soal seperti itu, maka kita tahu bahwa yang pertama kali harus kita kerjakan adalah 4 x 2. Lalu 6 / 3 dsb, seperti langkah-langkah berikut : 7 + 4 x 2 – 6 / 3 7 + 8 – 6 / 3 7 + 8 – 2 15 – 2 13

2. Hitung nilai operator dengan precedence tertinggi tersebut. Komputer tidak bisa membaca keseluruhan soal sekaligus. Komputer hanya bisa men-scan soal satu per satu operand atau operator. Sehingga untuk mengetahui mana yang harus dikerjakan duluan, komputer harus men-scan keseluruhan soalnya dulu. Jadi langkah- langkah si komputer dalam mengerjakan soal infix seperti berikut: 1. Cari precedence tertinggi dengan men-scan kiri ke kanan keseluruhan soal. 2. Hitung nilai operator dengan precedence tertinggi tersebut. 3. Ulangi lagi dari langkah 1, sampai semua operator selesai dikerjakan. Jika komputer tidak men-scan keseluruhan soal terlebih dahulu, maka akan terjadi kesalahan pada hasilnya.

Studi Kasus Pembuatan Kalkulator SCIENTIFIC Misalkan operasi: 3 + 2 * 5 Operasi di atas disebut notasi infiks, notasi infiks tersebut harus diubah lebih dahulu menjadi notas postfix 3 + 2 * 5 notasi postfiksnya adalah 3 2 5 * +

Studi Kasus Stack (2) – Infix to Postfix 3 + 2 * 5 stack posftix Baca soal dari depan ke belakang Jika berupa operand, maka masukkan ke posftix Jika berupa operator, maka: Jika stack masih kosong, push ke stack Jika derajat operator soal > derajat operator top of stack Push operator soal ke stack Selama derajat operator soal <= derajat operator top of stack Pop top of stack dan masukkan ke dalam posfix Setelah semua dilakukan, push operator soal ke stack Jika sudah semua soal dibaca, pop semua isi stack dan push ke postfix sesuai dengan urutannya

Studi Kasus Stack (3)

Studi Kasus Stack (yg lain) #1 a+b*c-d Stack (kosong) dan Postfik (kosong) Scan a Postfik: a Scan + Stack: + Scan b Postfik: ab Scan *, karena ToS (+) < *, maka add ke Stack Stack: +*

Studi Kasus Stack (yg lain) #2 Scan c Postfik: abc Scan –, karena - < *, maka pop Stack, dan add ke Postfik Stack: + Postfik: abc* Karena + >= -, maka pop Stack, dan add ke Postfik, karena Stack kosong, maka push – ke stack Stack: - Postfik: abc*+ Scan d Postfik: abc*+d Karena sudah habis, push ToS stack ke Posfix Postfix: abc*+d-

Contoh lain convert Infix, Prefix, Posfix #1 Proses Konversi Infix ke Prefix Misalkan diberikan ekspresi: (A + B) * (C – D) (A + B) * (C – D) = ((A + B) * (C – D)) = ( + (A B) * - (C D)) = * + A B – C D Proses Konversi Infix ke Postfix = ((A B) + * (C D) - ) = A B + C D - *

Contoh lain convert Infix, Prefix, Posfix #2 Proses Konversi Prefix ke Infix Misalkan diberikan ekspresi: * + A B – C D * + A B – C D = (* (+ A B) (– C D) ) = (A + B) * (C – D)   Proses Konversi Postfix ke Infix Misalkan diberikan ekspresi: A B + C D - * A B + C D - * = ((A B +) (C D -) *)

Postfix Evaluator / Penyelesaian Scan Postfix string dari kiri kekanan. Siapkan sebuah stack kosong. Jika soal adalah operand, tambahkan ke stack. Jika operator, maka pasti akan ada minimal 2 operand pada stack Pop dua kali stack, pop pertama disimpan dalam y, dan pop kedua ke dalam x. Lalu evaluasi x <operator> y. Simpan hasilnya dan push ke dalam stack lagi. Ulangi hingga seluruh soal discan. Jika sudah semua, elemen terakhir pada stack adalah hasilnya. Jika lebih dari satu elemen, berarti error!

Contoh : 325*+

PROGRAM KALKULATOR SEDERHANA /* * program calc.c * * * Bayu Setiaji 2010 * */ #include <stdio.h> #include <stdlib.h> #define MAX 5 int stack[MAX]; // stack int top; // posisi puncak stack

void push(int i); int pop(void); int main(void) { int a, b; char s[80]; top = 0; system("cls"); printf("Kalkulator Sederhana\n"); printf("Tekan 'q' untuk keluar\n\n"); do { printf(": "); gets(s);

case '*': b = pop(); a = pop(); printf("= %d\n", a * b); push(b * a); break; case '/': b = pop(); if(b == 0) { printf("! pembagian dengan nol\n"); break; } printf("= %d\n", a / b); push(a / b); break; case '.': a = stack[top - 1]; printf("= nilai akhir [ %d ]\n", a); break; switch(*s) { case '+': b = pop(); a = pop(); printf("= %d\n", a + b); push(a + b); break; case '-': b = pop(); printf("= %d\n", a - b); push(a - b);

default: push(atoi(s)); } } while(*s != 'q'); return 0; } void push(int i) { if(top >= MAX) { printf("! stack penuh\n"); return; } stack[top] = i; top++; } int pop(void) { top--; if(top < 0) { printf("! stack kosong\n"); return 0; } return stack[top];

Any Queries ? Source : 1. Stack / Struktur Data / Muhammad Riza Hilmi, ST 2. http://undetected-x-file.blogspot.com/