Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

PERTEMUAN KE 4 Array Processing & Modular. Array Processing Array (larik) adalah suatu tipe variabel yang berisi kumpulan data dengan setiap elemen datanya.

Presentasi serupa


Presentasi berjudul: "PERTEMUAN KE 4 Array Processing & Modular. Array Processing Array (larik) adalah suatu tipe variabel yang berisi kumpulan data dengan setiap elemen datanya."— Transcript presentasi:

1 PERTEMUAN KE 4 Array Processing & Modular

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 Array A dengan 8 elemen A Contoh Jika diisi A(8)

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

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

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. 0123…N-2N : M-1 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 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. ~ Searching ~

15 Sequential Search Perhatikan Array Berikut: 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 1. Posisi=0 2. Ada=false 3. Perulangan selama (i<=N) kerjakan baris 4 4. Jika (Data[i]=x) maka Ada=true, posisi=i, jika tidak dicari lagi

17 ~ 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 awal tengahakhir 1.Cari data tengah. Rumus (1 + 9)/2 = 5  data ke 5 (15) dibandingkan dengan data tengah. Data yang dicari: 17 3.Karena 17>15, proses dilanjutkan. Posisi awal dianggap sama dengan posisi tengah + 1 (posisi 6) awal tengah akhir

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

21 Pencarian Biner 7.Data tengah yang baru didapat dengan rumus (6+6)/2=6. Data tengah yang baru data ke 6 (17) dibandingkan dengan data tengah (17). Data yang dicari: Data yang dicari (17) = data tengah. Data ditemukan! Awal=akhir

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

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: ProgramUtama; Begin inputData; prosesData; cetakData; End. inputData; Begin …….. End; cetakData; Begin …….. End; prosesData; 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 Hitung_Luas_Lingkaran const Phi=22/7 Begin Luas= Phi * r * r write Luas End Hitung_Keliling_Lingkaran Const Phi=22/7 Begin Keliling= 2*Phi*r write Keliling End Pseudocode ContohModular Begin read r Hitung_Luas_Lingkaran Hitung_Keliling_Lingkaran End.

31 Hierarchy Chart ContohModular Hitung_Luas_LingkaranHitung_Keliling_Lingkaran Hierarchy Chart dari contoh:

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 ENDIF IF char1>char2 THEN temp=char1 char1=char2 char2=temp ENDIF Output to the screen char1, char2, cha3 Prompt operator for char1, char2, char3 Get 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 Get char1, char2, char3 ENDDO END Sort_three_characters IF char1 > char2 THEN temp=char1 char1=char2 char2=temp ENDIF IF char2 > char3 THEN temp=char2 char2=char3 char3=temp ENDIF IF char1>char2 THEN temp=char1 char1=char2 char2=temp ENDIF END

33 Process_three_characters Sort_three_characters Hierarchy Chart dari contoh2:

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

35 Matakuliah MPP Minggu Keempat Page 35 Variabel, Konstanta, Literal Variabel  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

36 Matakuliah MPP Minggu Keempat Page 36 Elementary data Integer:  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

37 Matakuliah MPP Minggu Keempat Page 37 Struktur Data Record:  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

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 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. InputProcessingOutput Char_1 Char_2 Char_3 Prompt for characters Accept three characters Sort three characters Output three characters Char_1 Char_2 Char_3

45 B. Hierarchy chart Process_three_ characters Read_three_ characters Sort_three_ characters Print_three_ characters char_1,char_2,char_3

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 Read_three_characters(char_1, char_2, char_3) Prompt the operator for char_1, char_2, char_3 Get char_1, char_2, char_3 END Sort_three_characters(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 ENDIF END Print_three_characters(char_1,char_2,char_3) Output to the screen char_1,char_2,char_3 END

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 Read_three_characters(char_1, char_2, char_3) Prompt the operator for char_1, char_2, char_3 Get char_1, char_2, char_3 END Sort_three_characters(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) ENDIF IF char_1>char_2 THEN Swap_two_characters (char_1, char_2) ENDIF END 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 END

49 Hierarchy chart Process_three_ characters Read_three_ characters Sort_three_ characters Print_three_ characters char_1,char_2,char_3 Swap_two_ characters char_1,char_2,char_3First_char,Second_char char_1,char_2,char_3

50 Buatlah pseudocode dengan teknik modular untuk kasus berikut: 1. 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. 2. 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 4. Sebuah jasa penerbangan di kota X mempunyai 3 tujuan penerbangan dengan harga tiket penerbangan dari kota X adalah sbb: TujuanHarga net/tiket Jakarta Jam penerbangan & Rp , Rp , Rp ,- Bali Jam penerbangan06.00 & 07.00Rp , Rp , Rp ,- Surabaya Jam penerbangan07.00Rp ,- 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 1. 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. 2. 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 "PERTEMUAN KE 4 Array Processing & Modular. Array Processing Array (larik) adalah suatu tipe variabel yang berisi kumpulan data dengan setiap elemen datanya."

Presentasi serupa


Iklan oleh Google