Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Array Processing & Modular

Presentasi serupa


Presentasi berjudul: "Array Processing & Modular"— Transcript presentasi:

1 Array Processing & Modular
Pertemuan ke 4

2 Array Processing Array (larik) adalah suatu tipe variabel yang berisi kumpulan data dengan setiap elemen datanya bertipe sama. Setiap elemen diakses langsung melalui indeksnya. Indeks array harus bertipe data yang menyatakan keterurutan (misal: integer atau karakter) Macam/Jenis Array: - Array 1 dimensi  vektor - Array 2 dimensi  matriks

3 Menggunakan Do Loop atau DOWHILE Loop
Contoh 1: Find_sum_of_elements Set sum to zero DO index=1 to number_of_elements sum=sum + array(index) ENDDO Print sum END

4 Contoh 2: Find_element_average Set sum to zero DO index=1 to number_of_elements sum=sum + array(index) ENDDO average=sum/number_of_elements Print average END

5 Contoh 3: Find_largest_element Set largerst_element to array(1) DO index=2 to number_of_elements IF array(index) > largest_element THE N largest_element=array(index) ENDIF sum=sum + array(index) ENDDO Print largest_element END

6 Inisialisasi elemen array
Contoh: nama –nama bulan dalam setahun Initialise_month_table month_table(1)=‘January’ month_table(2)=‘February’ .. month_table(12)=‘December’ END

7 Inisialisasi elemen array dari keyboard
Read_values_into_array Set max_num_elements to required value Set index to zero Read first input value DOWHILE (input values NOT=999) AND (index < max_num_elements) index=index + 1 array(index)=input value Read next input value ENDDO IF index < max_num_elements THEN index = index + 1 array(index)=999 ELSE Print ‘Array size too small’ ENDIF END

8 Array 1 Dimensi Contoh Jika diisi Array A dengan 8 elemen A(8) A 1 2 3
4 5 6 7 8 Jika diisi

9 Array 1 Dimensi Contoh A(1) = 100 A(2) = 80 A(3) = 10 A(4) = 50
Array A dengan 8 elemen A A(1) = 100 A(2) = 80 A(3) = 10 A(4) = 50 A(5) = 75 A(6) = 100 A(7) = 95 A(8) = 20 1 2 3 4 5 6 7 8 100 80 10 50 75 100 95 20

10 Selama pelaksaan program, elemen array tetap menyimpan nilai !
Contoh Pseudocode Pseudocode Tanpa_Array Begin For i=1 to 6 do read X EndFor write X End Pseudocode Dengan_Array Begin For i=1 to 6 do read X(i) EndFor write X(i) End Selama pelaksaan program, elemen array tetap menyimpan nilai ! Output Output

11 Array 2 Dimensi Array 2 dimensi merupakan perluasan dari array 1 dimensi. Perluasan itu terletak pada jumlah index untuk menunjuk ke sebuah elemen array. Array 2 dimensi menggunakan 2 angka index untuk menunjuk ke sebuah elemen array. Kedua angka index ini disusun dalam format BARIS dan KOLOM. 1 2 3 N-2 N-1 Index kolom : M-1 Index baris Penulisan: NamaArray(baris,kolom)

12 Implementasi Array Pengolahan data sejenis dalam jumlah besar, misal data siswa, data karyawan, data barang dan lain-lain. Proses pencarian data, yaitu mencari suatu data dengan kriteria tertentu dari sekumpulan data yang sangat banyak. Proses pengurutan data, yaitu menyusun data menurut aturan tertentu. (ASCENDING atau DESCENDING) Perhitungan data matrik. Misalnya perhitungan konstruksi gedung, perhitungan data grafis untuk keperluan animasi dan sebagainya.

13 ~ Searching ~ Searching adalah usaha untuk mencari satu atau lebih data dengan mengikuti aturan atau kriteria tertentu Searching dilakukan untuk 2 (dua) tujuan: Memastikan keberadaan suatu data Menghitung banyaknya suatu data Proses searching pada dasarnya adalah kegiatan memeriksa keberadaan sebuah data dalam sebuah basis-data (database). Tindakan yang dilakukan terkait dengan ditemukannya data bukanlah menjadi bagian dari proses searching Kecepatan proses searching tidak ditentukan oleh berapa lama waktu yang digunakan untuk mencari suatu data, akan tetapi berapa jumlah langkah dalam mencari suatu data.

14 ~ Searching ~ Algoritma untuk searching:
Sequential Search: mencari data secara urut dari data pertama sampai data terakhir Binary Search: mencari data pada posisi ekstrem (awal, akhir dan tengah deretan). Syaratnya: data harus sudah dalam keadaan terurut Proses searching akan dihentikan jika terpenuhi 2 (dua) kondisi: Jika data yang dicari sudah ditemukan Jika sudah tidak ada lagi data yang harus diperiksa.

15 Sequential Search Perhatikan Array Berikut: 13 16 14 21 76
5 6 Misal nilai yang dicari adalah 21 Maka: Elemen yang akan diperiksa: 13, 16, 14, 21 Ditemukan! Misal nilai yang dicari adalah 13 Maka: Elemen yang akan diperiksa: 13 Ditemukan! Misal nilai yang dicari adalah 15 Maka: Elemen yang akan diperiksa: 13, 16, 14, 21, 76, 21 Tidak Ditemukan!

16 Algoritma umum Posisi=0 Ada=false
Perulangan selama (i<=N) kerjakan baris 4 Jika (Data[i]=x) maka Ada=true, posisi=i, jika tidak dicari lagi

17 Jangan Lupa, Data harus diurutkan terlebih dahulu!
~ Binary Search ~ Jangan Lupa, Data harus diurutkan terlebih dahulu!

18 Prinsip pencarian Biner
Mula-mula diambil posisi awal=1 dan posisi akhir=N Dicari posisi data tengah dengan rumus (posisi awal + posisi akhir)/2 Data yang dicari dibandingkan dengan data tengah Jika lebih kecil (<), proses dilakukan kembali tetapi posisi akhir dianggap sama dengan posisi tengah -1 Jika lebih besar(>), proses dilakukan kembali tetapi posisi awal dianggap sama dengan posisi tengah + 1 Demikan seterusnya sampai data tengah sama dengan yang dicari.

19 Pencarian Biner Data yang dicari: 17 3 9 11 12 15 17 23 31 35 awal tengah akhir Cari data tengah. Rumus (1 + 9)/2 = 5  data ke 5 (15) dibandingkan dengan data tengah. Karena 17>15, proses dilanjutkan. Posisi awal dianggap sama dengan posisi tengah + 1 (posisi 6) 3 9 11 12 15 17 23 31 35 awal tengah akhir

20 Pencarian Biner Data yang dicari: 17 4. Data tengah yang baru didapat dengan rumus (6+9)/2=7. Data tengah yang baru data ke 7 (23) 3 9 11 12 15 17 23 31 35 awal tengah akhir dibandingkan dengan data tengah. 6. Karena 17<23, proses dilanjutkan. Posisi akhir dianggap sama dengan posisi tengah -1 (posisi 6) 3 9 11 12 15 17 23 31 35 Awal=akhir

21 Pencarian Biner 3 9 11 12 15 17 23 31 35 Data yang dicari: 17
7. Data tengah yang baru didapat dengan rumus (6+6)/2=6. Data tengah yang baru data ke 6 (17) 3 9 11 12 15 17 23 31 35 Awal=akhir dibandingkan dengan data tengah (17). 9. Data yang dicari (17) = data tengah. Data ditemukan!

22 Algoritma umum Ada=false, Left= 1, Right= n, location=0
Selama (Right>= left) kerjakan baris 3 sampai dengan 6 Mid:= (left+right) div 2 Jika (x>A[mid]) maka left:= mid+1 Jika (x<A[mid]) maka right:=mid-1 Jika (x=A[mid]) maka Ada=true, location=mid dan left:=right+1

23 Pseudocode Sequential Search
Pseudocode Binary Search ?

24 Modularisasi & Komunikasi Antar Modul

25 Definisi Teknik Modular:
Teknik modular pada Teknik Pemograman adalah: suata cara menyelesaikan masalah pemrograman dengan melakukan klasifikasi permasalahan Permasalahan utama dapat diklasifikasikan menjadi beberapa permasalahan yang lebih kecil  spesifik Masing-masing klasifikasi mempunyai keterkaitan secara langsung untuk menyelesaikan masalah utama.

26 Tujuan Teknik Modular:
Menyederhanakan permasalahan Menghindari penulisan proses yang sama secara berulang Penyusunan proses menjadi lebih terstruktur sesuai dengan klasifikasinya Proses penyelesaian masalah menjadi lebih mudah dipahami.

27 Model Teknik Modular: Begin inputData; prosesData; cetakData; End.
…….. End; ProgramUtama; Begin inputData; prosesData; cetakData; End. prosesData; Begin …….. End; cetakData; Begin …….. End;

28 Sifat Teknik Modular: Penyelesaian masalah terdiri dari beberapa proses kecil (modul) Terdapat proses utama, yang terdiri dari beberapa modul, dan berfungsi untuk menggabungkan modul yang ada.

29 Sifat Teknik Modular: Deklarasi variabel dibedakan menjadi 2, yaitu:
Variabel Global, yaitu variabel yang digunakan diseluruh proses, baik proses utama maupun dalam sub-proses (modul) Variabel Lokal, yaitu variabel yang hanya digunakan dalam sub-proses, dan tidak dikenali/tidak berlaku dalam proses utama Antar sub-proses dapat saling mengirimkan perubahan nilai variabel yang terjadi.

30 Contoh Hitung_Luas_Lingkaran const Phi=22/7 Begin Luas= Phi * r * r
write Luas End Hitung_Keliling_Lingkaran Const Phi=22/7 Keliling= 2*Phi*r write Keliling Pseudocode ContohModular read r End. Contoh

31 Hierarchy Chart Hierarchy Chart dari contoh: ContohModular
Hitung_Luas_Lingkaran Hitung_Keliling_Lingkaran

32 Contoh 2 Process_three_characters Prompt the operator for char1, char2, char3 Get char1, char2, char3 DOWHILE NOT (char1=‘X’ AND char2=‘X’ AND char3=‘X’) IF char1 > char2 THEN temp=char1 char1=char2 char2=temp ENDIF IF char2 > char3 THEN temp=char2 char2=char3 char3=temp IF char1>char2 THEN Output to the screen char1, char2, cha3 Prompt operator for char1, char2, char3 ENDDO END Process_three_characters Prompt the operator for char1, char2, char3 Get char1, char2, char3 DOWHILE NOT (char1=‘X’ AND char2=‘X’ AND char3=‘X’) Sort_three_characters Output to the screen char1, char2, cha3 Prompt operator for char1, char2, char3 ENDDO END IF char1 > char2 THEN temp=char1 char1=char2 char2=temp ENDIF IF char2 > char3 THEN temp=char2 char2=char3 char3=temp IF char1>char2 THEN

33 Hierarchy Chart dari contoh2:
Process_three_characters Sort_three_characters

34 Komunikasi Antar Modul
Data: Variabel, Konstanta, Literal Elementary Data Integer Real Character Boolean Struktur Data Record File Array String

35 Variabel, Konstanta, Literal
Adalah nama yang diberikan bagi sekumpulan sel memory yang di rancang untuk menyimpan data tertentu Disebut variabel karena data yang tersimpan dapat diubah Konstanta Sebuah data dengan nama dan nilai yang akan tetap sama selama program dijalankan Literal Adalah konstanta yang namanya menunjukkan nilainya Matakuliah MPP

36 Elementary data Integer: Real : Character Boolean:
Menampilkan set bilangan baik positif maupun negatif Real : Menampilkan set bilangan, positif dan negatif dan juga desimal Character Menampilkan karakter alphabet, dengan tambahan spesial karakter Boolean: Menampilkan flag atau switch yang berisi satau dari dua kemungkinan – False atau True Matakuliah MPP

37 Struktur Data Record: File Array String
Sebuah kumpulan data / field yang memiliki hubungan antara satu dengan yang lainnya File Sebuah kumpulan record. Array Sebuah struktur data yang terdiri dari sejumlah variabel yang mempunyai tipe yang sama dan diakses dengan nama yang sama juga String Sebuah kumpulan karakter Matakuliah MPP

38 Komunikasi Antar Modul
Global Data Variabel yang dikenal diseluruh program tersebut, dan dapat diakses dari setiap modul di program tersebut. Local Data Variabel yang didefiniskan disebuah modul. Variabel ini hanya dikenal di modul dimana variabel tersebut didefinisikan Jangkauan Data Adalah bagian program dimana variabel didefinisikan dan dapat diakses. Contoh: jangkauan data untuk global data adalah seluruh program Side Effect Adalah sebuah bentuk komunikasi antar modul dengan bagian lain dalam program.

39 Komunikasi Antar modul
Passing Parameter Menyampaikan data dari modul pemanggil ke modul yang dipanggil (subordinate) Menyampaikan informasi dari subordinate ke modul pemanggil Informasi/data yang dikirim atau diterima di pass 2 arah dari modul pemanggil ke subordinate maupun sebaliknya

40 Parameter Parameter Data Parameter Status flag/boolean
Dalam merancang modul sebaiknya lebih banyak menggunakan parameter data Hindari menggunakan parameter status sebanyak mungkin

41 Process_Three_Characters
Hierarchi Chart / bagan susun Process_Three_Characters Sort_three_characters Char1 Char2 Char3

42 Struktur Chart

43

44 Penggunaan Parameter Contoh penggunaan parameter:
Pseudocode untuk melakukan Sorting 3 karakter yang dibaca dari keyboard A. Input Processing Output Char_1 Char_2 Char_3 Prompt for characters Accept three characters Sort three characters Output three characters

45 B. Hierarchy chart Process_three_characters Read_three_characters
char_1,char_2,char_3 Read_three_characters Sort_three_characters Print_three_characters

46 Pseudocode_three_characters Read_three_characters (char_1, char_2, char_3) DOWHILE Not (Char_1=‘X’ AND char_2=‘X’ AND char_3=‘X’) Sort_three_characters(char_1, char_2, char_3) Print_three_characters(char_1, char_2, char_3) Read_three_characters(char_1, char_2, char_3) ENDDO END Prompt the operator for char_1, char_2, char_3 Get char_1, char_2, char_3 IF char_1>char_2 THEN temp=char_1 char_1=char_2 char_2=temp ENDIF IF char_2>char_3 THEN temp=char_2 char_2=char_3 char_3=temp ENDIF IF char_1>char_2 THEN temp=char_1 char_1=char_2 char_2=temp END Print_three_characters(char_1,char_2,char_3) Output to the screen char_1,char_2,char_3

47 Contoh 2 Dengan kasus yang sama (membandingkan 3 karakter), tetapi diselesaikan dengan modular yang berbeda

48 Pseudocode_three_characters Read_three_characters (char_1, char_2, char_3) DOWHILE Not (Char_1=‘X’ AND char_2=‘X’ AND char_3=‘X’) Sort_three_characters(char_1, char_2, char_3) Print_three_characters(char_1, char_2, char_3) Read_three_characters(char_1, char_2, char_3) ENDDO END Prompt the operator for char_1, char_2, char_3 Get char_1, char_2, char_3 IF char_1>char_2 THEN Swap_two_characters (char_1, char_2) ENDIF IF char_2>char_3 THEN Swap_two_characters (char_2, char_3) Print_three_characters(char_1,char_2, char_3) Output to the screen char_1,char_2, char_3 END Swap_two_characters(first_char, second_char) temp=first_char first_char=second_char second_char=temp

49 Hierarchy chart Process_three_characters Read_three_characters
char_1,char_2,char_3 char_1,char_2,char_3 char_1,char_2,char_3 char_1,char_2,char_3 Read_three_characters Sort_three_characters Print_three_characters char_1,char_2,char_3 First_char,Second_char Swap_two_characters

50 Buatlah pseudocode dengan teknik modular untuk
kasus berikut: Menentukan apakah suatu segiempat itu merupakan bujursangkar atau persegi panjang. Jika segiempat itu adalah bujursangkar, maka hitung luasnya. Jika segiempat itu adalah persegi panjang, maka hitung kelilingnya. Pada sebuah kelas terdapat n orang siswa, yang mempunyai nilai yang berbeda untuk pelajaran IPA. Hitung rata-rata nilai IPA untuk kelas tsb!

51 3. Memilih hasil yang diinginkan dari 2 proses yang ditawarkan:
a. Menampilkan deret bilangan genap dan total nilai bilangan genap, dari 6 data yg dimasukkan b. Menampilkan bilangan ganjil dan total nilai bilangan ganjil dari 5 data yg dimasukkan.

52 Tujuan Harga net/tiket Jakarta Jam penerbangan
Sebuah jasa penerbangan di kota X mempunyai 3 tujuan penerbangan dengan harga tiket penerbangan dari kota X adalah sbb: Tujuan Harga net/tiket Jakarta Jam penerbangan 06.00 & Rp ,- Rp ,- 15.00 Rp ,- Bali Jam penerbangan & Rp ,- 20.00 Rp ,- Surabaya Jam penerbangan Rp ,- Apabila penumpang membawa anak kecil berusia 0 – 24 bulan, maka dia akan dikenakan biaya tambahan Rp ,-/per anak. Namun apabila umur anak di atas 24 bulan, maka dia harus membeli 1 tiket penuh. Harga tiket penerbangan berlaku untuk hari Jumat, Sabtu, Minggu dan Senin saja. Di luar hari itu tiket tersebut dipotong sebesar 15%. Setiap 1 tiket dikenakan biaya administrasi: Rp ,-, Iuran wajib Jasa Raharja: Rp. 6000,-, Asuransi: Rp ,- dan Pajak sebesar 10% dari harga net tiket. Hitunglah transaksi penjualan tiket pesawat tersebut di atas!

53 Latihan Modul comAvg(data,avg) tidak memenuhi kriteria perancangan yang baik karena kohesinya bukan fungsional. Bagilah modul tersebut menjadi dua modul sehingga masing-masing mempunyai kohesi fungsional. Modul pertama tetap dengan nama comAvg(data,avg) dan modul kedua dengan nama comSum(data,sum) sedemikian rupa sehingga modul kedua merupakan subordinat dari modul pertama. Tulislah algoritma kedua modul ini dan kemudian gambarlah structured chart-nya. Jika modul-modul intDt(data), comAvg(data,avg), dan outDt(data…avg) adalah subordinat mainProgram, sedangkan comSum(data,sum) adalah subordinat comAvg(data,avg), gambarlah structured chart, termasuk parameter input dan output, diantara mereka.

54 Reference Anne, Lesley R, “Simple Program Design: A Step-by-Step Approach” Hand-out Kuliah Logika & Algoritma: STIKOM Surabaya Dari Berbagai sumber


Download ppt "Array Processing & Modular"

Presentasi serupa


Iklan oleh Google