Bab 11 Tatasusunan.

Slides:



Advertisements
Presentasi serupa
Perulangan Pertemuan ke-5 Bahasa C.
Advertisements

Fungsi (lanjutan) Pertemuan ke-9 Bahasa C.
ARRAY (Lanjutan).
3 Variabel, Konstanta Tipe Data dan dalam Bahasa C/C++ Java dan Bab
Algoritma dan Struktur Data
PEMROGRAMAN SISTEM PERNYATAAN DASAR FUNGSI Pertemuan VI
contoh aplikasi sederhana yang terpaksa menggunakan
PENGATURCARAAN C++ Penyelesaian Masalah
Algoritme dan Pemrograman
PEMROGRAMAN DASAR.
Tipe Data Lecture 8.
Struktur Program TEE 2103 Algoritma dan Pemrograman
Algoritme dan Pemrograman
TEL 2112 Dasar Komputer & Pemograman Pemrograman Modular
Apa itu Fungsi? Sebuah fungsi adalah modul program yang mengerjakan tugas atau aktivitas yang spesifik dan mengembalikan sebuah nilai dari tipe tertentu,
Bab 4 PROSES PENGULANGAN
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah 2
Contoh-contoh Pemecahan Masalah TEE 2103 Algoritma & Pemograman
Algoritme dan Pemrograman
Fungsi TEE 2103 Algoritma & Pemrograman Dosen: Abdillah, MIT
Algoritme dan Pemrograman
06.3 Hari-6.
STRUKTUR DASAR PROGRAM
P O I N T E R.
Struktur Data Khoiriya Latifa, M.Kom.
Pertemuan 2 ARRAY DIMENSI 1 & 2.
Contoh Aplikasi Sederhana
PEMROGRAMAN DASAR (BAHASA C)
PERTEMUAN 9 Algoritma Presented by : Sity Aisyah, M.Kom
Remainder Senin depan mulai UTS Praktikum
Latihan #0 Dengan menggunakan pernyataan looping WHILE dan jumlah instruksi sesedikit mungkin, tuliskan cuplikan program (bukan program lengkap, hanya.
Contoh Aplikasi Sederhana
Latihan Pertemuan Operasi Repetisi
Algoritme dan Pemrograman
ALGORITMA & STRUKTUR DATA I
Operator dan Operasi Input Output pada C++ Pertemuan 11
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Input Dan Output.
Algoritma dan Struktur Data
Algoritma dan Struktur Data
Soal-soal Pengulangan
Looping, Percabangan dan Array
Tipe Data & Array 1D, 2D Daniel Riano Kaparang.
S. Indriani Lestariningati, M.T
Algoritma dan Struktur Data
STRUKTUR DATA PERTEMUAN III.
Pemograman Berorientasi Object Sistem Informasi Semster III
Input dan Output Pertemuan ke-3 Bahasa C.
mencetak Total kedua bilangan tersebut
Algoritme dan Pemrograman
Pertemuan 7 Percabangan dalam bahasa C .:: Erna Sri Hartatik ::.
array Array merupakan tipe data yang menampung
Konsep Pemgrograman LARIK.
Pertemuan 3 Input/output Statement Assignment Statement
Variable Static & Linked List
ARRAY 2d (matriks) MERISKA DEFRIANI, S.KOMP
Bab 2 Jenis Data.
STRUKTUR perulangan (1)
CHAPTER 2: LIST & LINKED LIST
Soal-soal.
Bab 10 Fungsi.
Merujuk kepada komponen mesin, jujukan arahan dan sebagainya
Pengoperasi dan Ungkapan
Pengenalan kepada Bahasa C
Bab 15 Struktur.
Bab 5 Input dan Output.
Bab 13 Manipulasi Fail.
Penjumlahan dua buah MATRIX. Penjumlahan dua buah MATRIX.
ARRAY.
Transcript presentasi:

Bab 11 Tatasusunan

Kenapa Tatasusunan? Tatasusunan membenarkan data dari jenis yang sama disimpan secara berjujukan Andaikan anda menulis aturcara yang menerima markah 10 orang pelajar, mengira markah purata, dan seterusnya mencetak bilangan pelajar yang memperolehi markah lebih dari purata. Jika anda hanya menggunakan satu pembolehubah untuk menyimpan kesemua 10 markah, bagaimana anda boleh mencapai semula markah bagi pelajar 1 .. pelajar 9 untuk menentukan bilangan pelajar yang mempeolehi markah lebih dari purata? Salah satu cara  menggunakan 10 pembolehubah yang unik untuk menyimpan 10 markah

Kenapa Tatasusunan? #include <stdio.h> void main() { int markah1, markah2, markah3, markah4, markah5, markah6, markah7, markah8, markah9, markah10; int bil = 0, jumlah = 0; float purata; printf(“\nBaca 10 markah ujian: \n”); scanf(“%d %d %d %d %d %d %d %d %d %d”, &markah1, &markah2, &markah3, &markah4, &markah5, &markah6, &markah7, &markah8, &markah9, &markah10); jumlah = markah1 + markah2 + markah3 + mrkah4 + markah5 + markah6 + markah7 + markah8 + markah9 + markah10; purata = (float) jumlah / 10;

Kenapa Tatasusunan? Adakah ini cara yang terbaik? if (markah1 > purata) bil++; if (markah2 > purata) bil++; if (markah3 > purata) bil++; if (markah4 > purata) bil++; if (markah5 > purata) bil++; if (markah6 > purata) bil++; if (markah7 > purata) bil++; if (markah8 > purata) bil++; if (markah9 > purata) bil++; if (markah10 > purata) bil++; printf(“\nPurata keseluruhan markah = %.2f”, purata); printf(“\nBilangan markah yang melebihi purata = %d”, bil); } Adakah ini cara yang terbaik? Bagaimana sekiranya terdapat 100 orang pelajar?

Tatasusunan Satu Dimensi Untuk masalah tadi, markah 10 orang pelajar boleh disimpan secara berjujukan dalam satu tatasusunan satu dimensi Seperti pembolehubah yang lain, tatasusunan perlu diisytiharkan supaya ruang yang secukupnya diumpukkan dalam ruang ingatan Sintaks pengisytiharan tatasusunan satu dimensi: jenis_data nama_tatasusunan[ungkapan]; Ungkapan – nilai saiz bagi tatasusunan - boleh terdiri dari pemalar integer atau ungkapan yang menghasilkan suatu nilai integer - nilai ini juga dirujuk sebagai indeks atau subskrip - data yang disimpan dalam tatasusunan dipanggil unsur, dan dirujuk menggunakan indeks ini

Tatasusunan Satu Dimensi Contoh: int markah[10]; Pengumpukan ruang dalam ingatan boleh digambarkan seperti berikut: Indeks dalam tatasusunan mesti bermula dengan 0  indeks terakhir dalam satu tatasusunan bersaiz n ialah [n-1] Tatasusunan juga boleh diisytiharkan secara berganda, contohnya double ujian[100], kuiz[5], pep_akhir[50]; markah[0] markah[1] markah[2] 10 sel ingatan berjujukan berjenis int markah[3] ….. markah[9]

Awalan Unsur Tatasusunan Nilai awal bagi unsur-unsur tatasusunan diumpukkan semasa pengisytiharan menggunakan senarai yang ditandakan dengan simbol ‘{‘ dan ‘}’ Contoh: int bulan[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; Jika senarai nilai awal lebih pendek dari saiz tatasusunan, unsur selebihnya diberi nilai awal 0 int bulan[12] = {31, 28, 31, 30}; bulan [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] 31 28 31 30 31 30 31 31 30 31 30 31 bulan [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] 31 28 31 30

Awalan dan Umpukan Tatasusunan Jika saiz tatasusunan tidak dinyatakan semasa pengisytiharan, ruang akan disedakan berdasarkan kepada bilangan data dalam senarai nilai awal Contoh: int bulan[ ] = {31, 28, 30, 31}; Bentuk pernyataan umpukan yang melibatkan tatasusunan adalah sama seperti pernyataan umpukan biasa Di sebelah kiri adalah lokasi dalam tatasusunan yang dirujuk menggunakan indeks Di sebelah kiri adalah ungkapan yang boleh terdiri dari suatu pemalar, ataupun ungkapan yang menghasilkan suatu nilai tertentu bulan [0] [1] [2] [3] 31 28 31 30

Umpukan dan Capaian Tatasusunan Maka, unsur-unsur dalam tatasusunan diumpukkan secara satu persatu Contoh: bulan[ 7 ] = 30;  unsur ke – 8 dalam tatasusunan bernilai 30 Contoh pernyataan umpukan lain: A[ 2 ] = 2 * 2; M[ 2 ] = M[ 1 ] * 5; i = 0; j = 1; S[ 3*j ] = S[ i+2 ]; A [0] [1] [2] [3] A [0] [1] [2] [3] 1 2 4 4 1 2 3 4 M [0] [1] [2] [3] M [0] [1] [2] [3] 1 2 3 4 1 2 10 4 S [0] [1] [2] [3] S [0] [1] [2] [3] 1 2 3 4 1 2 3 3

Penggunaan Gelung Struktur gelung digunakan untuk mencapai atau menyimpan data bagi setiap unsur dalam gelung Contoh: for (i = 0; i <4; i++) A[i] = i * 2; : for (i = 3; i >=0; i--) printf(“Unsur ke - %d = %d\n”, i+1, A[i]); Output: Unsur ke – 4 = 6 Unsur ke – 3 = 4 Unsur ke – 2 = 2 Unsur ke – 1 = 0 A [0] [1] [2] [3] 2 4 6

Contoh Penggunaan Tatasusunan #include <stdio.h> void main() { int markah[10]; int i, bil = 0, jumlah = 0; float purata; printf(“Baca 10 markah ujian:\n”); for (i = 0; i < 10, i++) { printf(“Masukkan markah %d : “, i); scanf(“%d”, &markah[i]); jumlah += markah[i]; } purata = (float) jumlah / 10; for (i = 0; i < 10; i++ ) { if (markah[i] > purata) bil++; } printf(“\nPurata keseluruhan markah = %.2f”, purata); printf(“\nBilangan markah yang melebihi purata = %d\n”, bil); }

Tatasusunan dan Fungsi Tatasusunan boleh diisytiharkan sebagai sejagat dan setempat Sejagat  tidak perlu dihantar sebagai parameter Setempat  perlu dihantar sebagai parameter Penghantaran tatasusunan boleh dalam dua jenis; unsur dan keseluruhan tatasusunan Unsur tatasusunan dihantar menggunakan indeks, contohnya: cetak(markah[10], purata); Keseluruhan tatasusunan dihantar hanya menggunakan nama tatasusunan, contohnya: input(markah);

Tatasusunan dan Fungsi (Contoh 1) #include <stdio.h> int markah[10]; void main() { float purata; int jumlah; : markah[9] = 25; purata = (float) jumlah / 10; cetak(purata); } void cetak( float a ) { printf(“Markah terakhir ialah %d\n Purata ialah %f\n”, markah[9], a);

Tatasusunan dan Fungsi (Contoh 2) #include <stdio.h> void main() { int markah[10]; float purata; int jumlah; : markah[9] = 25; purata = (float) jumlah / 10; cetak(markah[9], purata); } void cetak( float a, float b ) { printf(“Markah terakhir ialah %d\n Purata ialah %f\n”, a, b);

Tatasusunan dan Fungsi (Contoh 3) #include <stdio.h> void input(int []); void cetak(int []); void main() { int markah[10]; input(markah); cetak(markah); } void input( int markah[] ) { int i; for (i=0; i<10; i++) { printf(“Input markah pelajar ke %d : “, i + 1); scanf(“%d”, &markah[i]); Void cetak( int markah[] ) { printf(“%d “, markah[i]); printf(“\n”);

Tatasusunan Dua Dimensi Diandaikan seperti matriks yang mempunyai baris dan lajur Sintaks pengisytiharan: jenis_data nama_tatasusunan[ungkapan1][ungkapan2]; Contoh: int markah[100][10]; Pengumpukan nilai awalan tatasusunan dua dimensi sama seperti dalam tatasusunan satu dimensi  menggunakan senarai int segiempat[3][3] = {1, 2, 3, 4, 5 , 6, 7, 8, 9}; Nilai diumpukkan secara baris dahulu segiempat [0] [1] [2] [0] 1 2 3 [1] 4 5 6 [2] 7 8 9

Tatasusunan Dua Dimensi Pengumpukan nilai awalan juga boleh dilakukan dengan menggunakan senarai dalam senarai untuk mengasingkan baris dan lajur Contoh: int segiempat[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}}; Unsur dalam tatasusunan dua dimensi dirujuk menggunakan indeks baris dan lajur segiempat[1][2] = 0;  segiempat [0] [1] [2] [0] 1 2 3 [1] 4 5 [2] 7 8 9