• Tidak ada hasil yang ditemukan

Laporan Resmi 18-19 Konsep Pemrograman [Array]

N/A
N/A
Protected

Academic year: 2021

Membagikan "Laporan Resmi 18-19 Konsep Pemrograman [Array]"

Copied!
18
0
0

Teks penuh

(1)

PRAKTIKUM 18

Array 1

A. Dasar Teori

Dalam beberapa literatur, array sering disebut (diterjemahkan) sebagai larik. Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data di suatu array disebut dengan elemen-elemen array. Letak urutan dari elemen-elemen array ditunjukkan oleh suatu subscript atau indeks.

Mendeklarasikan Array Berdimensi Satu

Suatu array berdimensi satu dideklarasikan dalam bentuk umum berupa dengan :

tipe_data nama_var[ukuran];

tipe_data : untuk menyatakan tipe dari elemen array, misalnya int, char, float. nama_var : nama variabel array

ukuran : untuk menyatakan jumlah maksimal elemen array. Contoh pendeklarasian array :

float nilai_tes[5];

menyatakan bahwa array nilai_tes mengandung 5 elemen bertipe float.

Mengakses Elemen Array Berdimensi Satu

Pada C, data array akan disimpan dalam memori yang berurutan. Elemen pertama mempunyai indeks bernilai 0. Jika variabel nilai_tes dideklarasikan sebagai array dengan 5 elemen, maka elemen pertama memiliki indeks sama dengan 0, dan elemen terakhir memiliki indeks 4. Bentuk umum pengaksesan array adalah sbb :

nama_var[indeks]

sehingga, untuk array nilai_tes, maka : nilai_tes[0] → elemen pertama dari nilai_tes nilai_tes[4] → elemen ke-5 dari nilai_tes Contoh :

nilai_tes[0] = 70;

scanf(“%f”, &nilai_tes[2]);

Contoh pertama merupakan pemberian nilai 70 ke nilai_tes[0]. Sedangkan contoh 2 merupakan perintah untuk membaca data bilangan dari keyboard dan diberikan ke nilai_tes[2]. Pada contoh 2 ini

&nilai_tes[2]

berarti “alamat dari nilai_tes[2]”. Perlu diingat bahwa scanf() memerlukan argumen berupa alamat dari variabel yang digunakan untuk menyimpan nilai masukan.

Inisialisasi Array Berdimensi Satu

Sebuah array dapat diinisialisasi sekaligus pada saat dideklarasikan. Untuk mendeklarasikan array, nilai-nilai yang diinisialisasikan dituliskan di antara kurung kurawal ({}) yang dipisahkan dengan koma.

(2)

Beberapa Variasi dalam Mendeklarasikan Array

Ada beberapa variasi cara mendeklarasikan sebuah array (dalam hal ini yang berdimensi satu), di antaranya adalah sebagai berikut :

int numbers[10];

int numbers[10] = {34, 27, 16};

int numbers[] = {2, -3, 45, 79, -14, 5, 9, 28, -1, 0}; char text[] = "Welcome to New Zealand.";

float radix[12] = {134.362, 1913.248}; double radians[1000];

Array Berdimensi Dua

Array berdimensi satu dapat disimpan pada sebuah array berdimensi dua. Pendeklarasian array berdimensi dua adalah sebagai berikut :

int data_lulus[4][3];

Nilai 4 untuk menyatakan banyaknya baris dan 3 menyatakan banyaknya kolom. Gambar 15.1 memberikan ilustrasi untuk memudahkan pemahaman tentang array berdimensi dua.

Sama halnya pada array berdimensi satu, data array akan ditempatkan pada memori yang berurutan. Perhatikan Gambar 15.2.

Mengakses Elemen Array Berdimensi Dua

Array seperti data_lulus dapat diakses dalam bentuk data_lulus[indeks pertama, indeks kedua] :

(1) data_lulus[0][1] = 540;

merupakan instruksi untuk memberikan nilai 540 ke array data_lulus untuk indeks pertama = 0 dan indeks kedua bernilai 1.

(2) printf(“%d”,data_lulus[2][0]);

merupakan perintah untuk menampilkan elemen yang memiliki indeks pertama = 2 dan indeks kedua = 0.

(3)

B. Tugas Pendahuluan

1. Algoritma menampilkan isi dari sebuah array

Deklarasikan n sebagai bilangan bulat, dan daftarAngka[] sebagai array bilangan bulat. Inisiasi isi dari daftarAngka[].

1. Inisiasi nilai n dengan nol

2. Jika n kurang dari jumlah dari isi array daftarAngka[], maka ke langkah 3, jika tidak maka langsung ke langkah 5

3. Tampilkan nilai dari daftarAngka[] dengan indeks ke-n 4. Kembali ke langkah 2

5. Selesai

2. Algoritma menampilkan deret fibonanci

Definisikan MAKS sebagai bilangan bulat dengan nilai 2

Deklarasikan i,j,n sebagai bilangan bulat, dan arrBil[] sebagai array bilangan bulat dengan jumlah data sebanyak MAKS. Inisiasi nilai arrBil[] dengan 1 dan 2 untuk indeks ke 0 dan 1. 1. Masukkan nilai n

2. Berikan nilai kepada i dengan angka 2

3. Jika nilai dari arrBil[i-2] ditambah arrBil[i-1] kurang dari n, maka lakukan langkah 4, bila tidak, langsung ke langkah 7

4. Tambahkan arrBil[i-2] dengan arrBil[i-1], simpan hasilnya di arrBil[i] 5. Naikkan nilai i sebanyak 1

6. Kembali ke langkah 3

7. Berikan nilai kepada j dengan angka 0

8. Jika nilai j kurang dari i, maka lakukan langkah 9, bila tidak langsung ke langkah 12 9. Tampilkan nilai dari arrBil[j]

10. Naikkan nilai j sebanyak 1 11. Kembali ke langkah 8 12. Selesai

3. Algoritma menjumlahkan dua matriks

Definisikan MAKS sebagai bilangan bulat dengan nilai 2

Deklarasikan a[][], b[][], c[][] sebagai array dua dimensi bertipe bilangan bulat dengan jumlah baris dan kolom sesuai MAKS. Deklarasikan pula i dan j sebagai bilangan bulat. 1. Berikan nilai i dengan angka nol.

2. Jika i kurang dari MAKS, maka lakukan langkah 3, bila tidak ke langkah 10 3. Berikan nilai j dengan angka nol.

4. Jika j kurang dari MAKS, maka lakukan langkah 5, bila tidak ke langkah 8 5. Masukkan nilai a[i][j]

6. Naikkan nilai j sebanyak 1 7. Kembali ke langkah 4 8. Naikkan nilai i sebanyak 1 9. Kembali ke langkah 2

10. Berikan nilai i dengan angka nol.

11. Jika i kurang dari MAKS, maka lakukan langkah 12, bila tidak ke langkah 19 12. Berikan nilai j dengan angka nol.

13. Jika j kurang dari MAKS, maka lakukan langkah 14, bila tidak ke langkah 17 14. Masukkan nilai b[i][j]

15. Naikkan nilai j sebanyak 1 16. Kembali ke langkah 4

(4)

17. Naikkan nilai i sebanyak 1 18. Kembali ke langkah 2

19. Berikan nilai i dengan angka nol.

20. Jika i kurang dari MAKS, maka lakukan langkah 21, bila tidak ke langkah 28 21. Berikan nilai j dengan angka nol.

22. Jika j kurang dari MAKS, maka lakukan langkah 23, bila tidak ke langkah 26 23. Tampilkan nilai a[i][j] ditambah b[i][j]

24. Naikkan nilai j sebanyak 1 25. Kembali ke langkah 4 26. Naikkan nilai i sebanyak 1 27. Kembali ke langkah 2

4. Algoritma mencari nilai terbesar dalam array

Definisikan MAKS sebagai bilangan bulat dengan nilai 2.

Deklarasikan a[] sebagai array bilangan bulat dengan jumlah indeks sebanyak MAKS, deklarasikan n, i dan max sebagai bilangan bulat.

1. Masukkan jumlah data(n) 2. Berikan nilai i dengan angka 0

3. Jika i kurang dari n, maka lakukan langkah 3, bila tidak ke langkah 6 4. Masukkan nilai dari a[i]

5. Naikkan nilai i sebanyak 1 6. Kembali ke langkah 2

7. Berikan nilai i dengan angka 0

8. Jika i kurang dari n, maka lakukan langkah 3, bila tidak ke langkah 12

9. Jika i sama dengan 1 atau Jika i lebih dari max, maka berikan nilai a[i] ke max 10. Naikkan nilai i sebanyak 1

11. Kembali ke langkah 2 12. Tampilkan nilai dari max 13. Selesai

C. Percobaan

1. Deklarasikan sebuah variabel array of int, selanjutnya isi array tsb kemudian tampilkan isi variabel tersebut menggunakan statement for(). Ingat apabila jumlah deklarasi index adalah n maka nilai index-nya adalah dimulai dari 0 sampai dengan n-1

a. Listing program

#include <stdio.h> main()

{

int n,daftarAngka[5] = {2,1,0,7,4};

printf("PRAKTIKUM 18 SOAL 1\nRENDRA | 2110131036 | 1D4ITB\n"); printf("\n======================================== \n");

printf("Menampilkan deret angka dari array");

printf("\n======================================== \n\n"); printf("Deret array = "); for(n=0;n<5;n++) printf("%d ",daftarAngka[n]); } b. Capture Program

(5)

c. Analisis Program

Array merupakan variable yang dapat menyimpan data lebih dari 1 namun tipenya harus sama. Sebelum digunakan array perlu dideklarasikan dahulu ukurannya. Elemen dari suatu array dapat kita akses nilai dari elemennya dengan cukup memanggil indeks dari elemen array tersebut, contohnya daftarAngka[indeks]. Agar nilai dari array mudah ditampilkan, maka digunkanlah looping for sesuai dengan ukuran array tersebut. 2. Deret fibonacci adalah deret yang dimulai dengan dua angka yang bernilai 0 dan 1,

kemudian deret ketiga ditentukan dari penjumlahan kedua angka tersebut, sedangkan deret keempat ditentukan dari dua angka sebelumnya begitu seterusnya. Sehingga didapatkan deret fibonanci sebagai berikut: 0 1 1 2 3 5 8 13 21 …

Buatlah program untuk meminta input dari user berupa sebuah bilangan, kemudian tampilkan deret fibonacci mulai dari 1 sampai dengan bilangan tsb.

a. Listing Program

#include <stdio.h> #define MAKS 20 main()

{

int arrBil[MAKS] = {0,1},i,j,n;

printf("PRAKTIKUM 18 SOAL 2\nRENDRA | 2110131036 | 1D4ITB\n"); printf("\n======================================== \n");

printf("Menampilkan Deret Fibonacci");

printf("\n======================================== \n\n"); printf("Masukkan jumlah data ( kurang dari %d )\t= ",MAKS); scanf("%d",&n);

puts("");

for(i=2;arrBil[i-2] + arrBil[i-1]<n;i++) arrBil[i] = arrBil[i-2] + arrBil[i-1]; for(j=0;j<i;j++)

printf("%3d ",arrBil[j]); }

b. Capture Program

c. Analisis Program

Deret Fibonacci adalah deret yang dimulai dengan dua angka yang bernilai 0 dan 1, kemudian deret ketiga ditentukan dari penjumlahan kedua angka tersebut,

(6)

sedangkan deret keempat ditentukan dari dua angka sebelumnya begitu seterusnya. Untuk melakukan hal tersebut dalam bahasa pemrograman dapat menggunakan array agar prosesnya lebih mudah. Pertama kita perlu menginisiasi nilai pertama dan kedua sebagai awal, kemudian selanjutnya dengan pengulangan kita isi nilai array ketiga dan seterusnya dengan menjumlahkan nilai dari dua elemen array sebelumnya.

3. Buat penjumlahan dua matriks A[2][2]dengan B[2][2]. Hasil penjumlahan tersebut disimpan dalam matrik C. Tampilkan di layar masing -masing isi dari matriks A, B dan C

Catatan modifikasi (gunakan nested loop) : - indeks MAKS dibuat konstanta

- variabel ordo matriks diinputkan

- memungkinkan pengulangan proses dengan menginputkan ordo yang lain a. Listing Program #include <stdio.h> #define MAKS 2 main() { int a[MAKS][MAKS],b[MAKS][MAKS],c[MAKS][MAKS],i,j;

printf("PRAKTIKUM 18 SOAL 3\nRENDRA | 2110131036 | 1D4ITB\n"); printf("\n======================================== \n");

printf("Menjumlahkan Nilai dari Matriks");

printf("\n======================================== \n\n"); for(i=0;i<MAKS;i++) { for(j=0;j<MAKS;j++) { fflush(stdin);

printf("Masukkan nilai matriks A indeks[%d][%d] \t= ",i+1,j+1); scanf("%d",&a[i][j]); } puts(""); } for(i=0;i<MAKS;i++) { for(j=0;j<MAKS;j++) { fflush(stdin);

printf("Masukkan nilai matriks B indeks[%d][%d] \t= ",i+1,j+1); scanf("%d",&b[i][j]); } puts(""); } puts(""); puts("Matriks A"); for(i=0;i<MAKS;i++) { for(j=0;j<MAKS;j++) { printf("%d ",a[i][j]); } puts(""); } puts("");

(7)

puts("Matriks B"); for(i=0;i<MAKS;i++) { for(j=0;j<MAKS;j++) printf("%d ",b[i][j]); puts(""); } //Menghitung Penjumlahan puts(""); puts("Matriks A+B"); for(i=0;i<MAKS;i++) { for(j=0;j<MAKS;j++)

printf("%3d ",a[i][j] + b[i][j]); puts("");

} }

b. Capture Program

c. Analisis Program

Sebenarnya konsep matriks dan array dua dimensi hampir sama. Jadi, untuk menjumlahkan dua matriks dengan array, hal pertama yang dilakukan tentu saja memasukkan nilai dari semua elemen matrik/array dari kedua array. Setelah semua dimasukkan, tinggal ditambahkan antara nilai elemen dengan indeks yang sama pada kedua array.

4. Buatlah sebuah variabel array of int yang memiliki ukuran MAKS. Dengan menggunakan looping for(), masukkan sebanyak n data ke dalam array tsb kemudian carilah nilai terbesar yang ada dalam array tsb.

(8)

a. Listing Program #include <stdio.h> #define MAKS 20 main() { int a[MAKS],n,i,max;

printf("PRAKTIKUM 18 SOAL 4\nRENDRA | 2110131036 | 1D4ITB\n"); printf("\n======================================== \n");

printf("Menjcari nilai terbesar dalam matriks");

printf("\n======================================== \n\n"); printf("Masukkan jumlah data ( kurang dari %d )\t= ",MAKS); scanf("%d",&n);

puts("");

for(i=0;i<n;i++) {

printf("Masukkan nilai array indeks ke %d \t= ",i); scanf("%d",&a[i]);

}

for(i=0;i<n;i++) {

if(i == 0 || a[i] > max) max = a[i];

}

printf("\nNilai terbesar di array adalah \t\t= %d",max); }

b. Capture Program

c. Analisis Program

Untuk mencari nilai terbesar dari suatu elemen array. Maka yang kita lakukan adalah membanding-bandingkan nilai dari semua elemen array tersebut setelah diinputkan. Pertama kita harus mengasumsikan bahwa nilai elemen array pertama adalah nilai terbesar, kemudian dibandingkan bila nilai element array selanjutnya, apabila lebih besar maka dia yang terbesar. Begitu selanjutnya hingga semua elemen selesai dibandingkan.

D. Kesimpulan

1. Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama.

2. Elemen dari array array dapat kita akses dengan memanggil indeksnya. 3. Array dapat memiliki dimensi sebanyak satu, dua, tiga atau lebih.

(9)

5. Pada praktiknya, array digunakan untuk menyimpan data bertipe data sama, seperti nilai ujian atau harga barang.

(10)

PRAKTIKUM 19

Array 2

A. Dasar Teori

Array Sebagai Parameter

Array juga dapat dilewatkan sebagai parameter fungsi. Sebagai contoh ditujukan pada program sorting.c. Program digunakan untuk memasukkan sejumlah data, kemudian data tersebut diurutkan naik (ascending) dan dicetak ke layar.

Untuk melakukan sorting (proses pengurutan data), cara yang dipakai yaitu metode sorting (suatu metode pengurutan yang paling sederhana, dan memiliki kecepatan pengurutan yang sangat lambat).

Algoritma pada metode pengurutan ini adalah sebagai berikut : 1. Atur i bernilai 0

2. Bandingkan x[i] dengan x[j], dg j berjalan dari i + 1 sampai dengan n-1. 3. Pada setiap pembandingan, jika x[i] > x[j], maka isi x[i] dan x[j] ditukarkan 4. Selama i < (n – 1), ulangi mulai langkah 2.

Catatan:

i = indeks array

x = nama array untuk menyimpan data n = jumlah data

Algoritma diatas berlaku untuk pengurutan menaik

(ascending). Untuk pengurutan menurun (descending),

penukaran dilakukan jika x[i] < x[j].

Misal, data semula (sebelum pengurutan) adalah

50,5 30,3 20,2 25,2 31,3

Setelah pengurutan menaik (secara ascending), hasil yang

diharapkan berupa

20,2 25,2 30,3 31,3 50,5

Proses secara lengkapnya bisa dilihat pada gambar 16.1

// File program : sorting.c #include <stdio.h> #define MAKS 20 void pemasukan_data(float []); void pengurutan_data(float []); void penampilan_data(float []); int jml;

(11)

main() { float data[MAKS]; pemasukan_data(data); pengurutan_data(data); penampilan_data(data); } void pemasukan_data(float x[]) { int i; printf("Jumlah data = "); scanf("%d", &jml);

for(i=0; i<jml; i++) {

printf("Data ke-%d : ", i+1); scanf("%f", &x[i]); } } void pengurutan_data(float x[]){ int i, j; float temp;

for(i=0; i<jml-1; i++)

for(j=i+1; j<jml; j++) if(x[i] > x[j]) { temp = x[i]; x[i] = x[j]; x[j] = temp; } } void penampilan_data(float x[]){ int i;

printf("\nData setelah diurutkan :\n\n"); for (i=0; i<jml; i++)

printf("Data ke-%d : %g\n", i+1, x[i]); }

B. Tugas Pendahuluan

1. Algoritma mencari nilai terbesar dalam array menggunakan fungsi

Definisikan MAKS sebagai bilangan bulat dengan angka 20 Definisikan fungsi input() dan findmax() sebagai void

Deklarasikan jml sebagai bilangan bulat dan nilai sebagai array dengan ukuran sesuai

MAKS

1. Panggil fungsi input() dengan nilai sebagai parameter 2. Panggil fungsi findmax() dengan nilai sebagai parameter

(12)

Algoritma fungsi input()

Terima nilai sebagai array data[] bertipe bilangan bulat. Deklarasikan i sebagai bilangan bulat.

1. Masukkan jumlah data(jml) 2. Berikan nilai i dengan angka 0

3. Jika i kurang dari jml, maka lakukan langkah 3, bila tidak ke langkah 6 4. Masukkan nilai dari data[i]

5. Naikkan nilai i sebanyak 1 6. Kembali ke langkah 2 7. Selesai

Algoritma fungsi input()

Terima nilai sebagai array data[] bertipe bilangan bulat. Deklarasikan i sebagai bilangan bulat.

1. Masukkan jumlah data(jml) 2. Berikan nilai i dengan angka 0

3. Jika i kurang dari jml, maka lakukan langkah 3, bila tidak ke langkah 6 4. Masukkan nilai dari data[i]

5. Naikkan nilai i sebanyak 1 6. Kembali ke langkah 2 7. Selesai

Algoritma fungsi findmax()

Terima nilai sebagai array data[] bertipe bilangan bulat. Deklarasikan i dan maxsebagai bilangan bulat.

1. Berikan nilai i dengan angka 0

2. Jika i kurang dari n, maka lakukan langkah 3, bila tidak ke langkah 12

3. Jika i sama dengan 1 atau Jika i lebih dari max, maka berikan nilai a[i] ke max 4. Naikkan nilai i sebanyak 1

5. Kembali ke langkah 2 6. Tampilkan nilai dari max 7. Selesai

2. Algoritma mencari nilai rata-rata dalam array

Definisikan MAKS sebagai bilangan bulat dengan angka 30 Definisikan fungsi cariRata() dan tampilkan sebagai void

Deklarasikan nilai[] sebagai array float dengan ukuran sesuai MAKS.

Inisiasi nilai[] dengan {{1,81,90,62},{2,50,83,87},{3,89,55,65},{4,77,70,92}} 1. Panggil fungsi tampilkan() dengan nilai[] sebagai parameter

2. Panggil fungsi cariRata() dengan nilai[] sebagai parameter

Algoritma fungsi cariRata()

Data pada array nilai[] akan dijumlah per baris kemudian dicari rata-ratanya.

Terima nilai[] sebagai array data[] bertipe bilangan bulat. Deklarasikan i,j dan jumData sebagai bilangan bulat. Inisiasi jumData dengan 4.

1. Berikan nilai i dengan angka nol.

2. Jika i kurang dari jumData, maka lakukan langkah 3, bila tidak ke langkah 10 3. Berikan nilai j dengan angka nol.

(13)

4. Jika j kurang dari 3, maka lakukan langkah 5, bila tidak ke langkah 8 5. Tambahkan total dengan data[i][j], simpan hasilnya di total kembali. 6. Naikkan nilai j sebanyak 1

7. Kembali ke langkah 4

8. Tampilkan nilai total yang sudah dibagi dengan j 9. Naikkan nilai i sebanyak 1

10. Kembali ke langkah 2

Algoritma fungsi tampilkan()

Data pada array nilai[] akan ditampilkan ke layar menggunakan looping.

Terima nilai[] sebagai array data[] bertipe bilangan bulat. Deklarasikan i,j dan jumData sebagai bilangan bulat. Inisiasi jumData dengan 4 dan total dengan angka 0 sebagai float. 1. Berikan nilai i dengan angka 0

2. Jika i kurang dari jml, maka lakukan langkah 3, bila tidak ke langkah 6 3. Tampilkan data[i][1], data[i][2], data[i][3] dan data[i][4],

4. Naikkan nilai i sebanyak 1 5. Kembali ke langkah 2 6. Selesai

3. Algoritma membuat tabel trigonometri

Definisikan fungsi PHI sebagai bilangan pecahan float.

Deklarasikan fungsi radian() sebagai fungsi dengan tipe float. Deklarasikan pula fungsi

isiX() dan tampilkan() dengan tipe void.

Deklarasikan x sebagai array float dengan ukuran sebanyak 12 1. Panggil fungsi isiX() dengan x sebagai parameter

2. Panggil fungsi tampilkan() dengan x sebagai parameter

Algoritma fungsi isiX()

.

Terima x[] sebagai array sudut[] bertipe float. Deklarasikan nilai i dengan angka 0. Inisiasi pula derajad sebagai bilangan float dengan angka 0.

1. Berikan nilai i dengan angka 0

2. Jika derajad kurang dari 360, maka lakukan langkah 3, bila tidak ke langkah 6 3. Berikan nilai derajad kepada sudut[i]

4. Naikkan nilai i sebanyak 30 5. Naikkan nilai i sebanyak 1 6. Kembali ke langkah 2 7. Selesai

Algoritma fungsi tampilkan()

Data pada array x[] akan ditampilkan ke layar menggunakan looping.

Terima x[] sebagai array sudut[] bertipe bilangan bulat. Deklarasikan i bilangan bulat. 1. Berikan nilai i dengan angka 0

2. Jika i kurang dari 12, maka lakukan langkah 3, bila tidak ke langkah 6 3. Tampilkan nilai dari sudut[i]

4. Tampilkan nilai cosinus dari sudut[i] yang telah diproses menggunakan fungsi radian 5. Tampilkan nilai sinus dari sudut[i] yang telah diproses menggunakan fungsi radian

(14)

6. Tampilkan nilai tangen dari sudut[i] yang telah diproses menggunakan fungsi radian 7. Naikkan nilai i sebanyak 1

8. Kembali ke langkah 2 9. Selesai

Algoritma fungsi radian()

Terima nilai sudut sebagai derajad sebagai bilangan float.

1. Hitung nilai derajad dalam radian dengan rumus (derajad / 180.0f) * PHI 2. Kembalikan hasil perhitungan diatas ke fungsi pemanggil

C. Percobaan

1. Buatlah program yang terdiri atas :

- fungsi input() yang bertugas menanyakan jumlah data sekaligus memasukkan data bilangan sebanyak yang diminta ke dalam array nilai[]

- fungsi findmax()yang bertugas mencari nilai terbesar yang ada pada array nilai[] tsb

- fungsi main() yang memanggil fungsi input() dan fungsi findmax() , selanjutnya menampilkan nilai terbesar yang ada pada array nilai[]

a. Listing Program #include <stdio.h> #define MAKS 30 void input(int[]); void findmax(int[]); int jml; main() { int nilai[MAKS];

printf("PRAKTIKUM 19 SOAL 1\nRENDRA | 2110131036 | 1D4ITB\n"); printf("\n======================================== \n");

printf("Mencari nilai terbesar dalam array");

printf("\n======================================== \n\n"); input(nilai);

findmax(nilai); }

void input(int data[]) {

int i;

printf("Masukkan jumlah data \t= "); scanf("%d",&jml);

for(i=0;i<jml;i++) {

printf("Masukkan nilai ke-%d \t= ",i+1); scanf("%d",&data[i]);

} }

void findmax(int data[]) {

int i,max;

for(i=0;i<jml;i++) {

if(i == 0 || max < data[i]) max = i;

}

(15)

b. Capture Program

c. Analisis Program

Array yang dilewatkan melalui fungsi sangat memudahkan kita. Dengan fungsi yang telah dibuat, sebuah array dapat dikenai proses secara terpisah sehingga mudah dalam penulisan dan pembacaan. Seperti pada program diatas, array dilewatkan fungsi input untuk mengisi nilai dari setiap elemen array tersebut, kemudian fungsi findmax yaitu fungsi untuk mencari nilai terbesar dari elemen array.

2. Diketahui daftar nilai siswa sebagai berikut:

Buatlah program untuk menampilkan laporan sebagai berikut:

a. Listing Program #include <stdio.h> #define MAKS 30 void cariRata(float[MAKS][4]); void tampilkan(float[MAKS][4]); main() { float nilai[MAKS][4] = {{1,81,90,62},{2,50,83,87},{3,89,55,65},{4,77,70,92}}; printf("PRAKTIKUM 19 SOAL 2\nRENDRA | 2110131036 | 1D4ITB\n");

printf("\n======================================== \n"); printf("Mencari rata-rata dari sekumpulan nilai");

(16)

tampilkan(nilai); cariRata(nilai); }

void tampilkan(float data[MAKS][4]) {

int i,j,jumData = 4;

printf("Data Nilai Mahasiswa=\n\n");

printf("---\n");

printf("| %2s | %10s | %10s | %10s |\n","No"," Bahasa","Matematika","Digital"); printf("---\n"); for(i=0;i<jumData;i++) printf("| %2d | %10.0f | %10.0f | %10.0f |\n",i+1,data[i][1],data[i] [2],data[i][3]); printf("---\n"); }

void cariRata(float data[MAKS][4]) { int i,j,jumData = 4; float total = 0; printf("\nNilai Rata-rata=\n\n"); printf("---\n"); printf("| %2s | %12s\n","No","Rata-rata |"); printf("---\n"); for(i=0;i<jumData;i++) { total = 0; for(j=0;j<3;j++) {

total = total + data[i][j]; } printf("| %2d | %10.2f |\n",i+1,total/j); } printf("---\n"); } b. Capture Program c. Analisis Program

Sudah kita ketahui bersama bahwa array hanya bisa menyimpan data dengan tipe data yang sama. Oleh karena itu daftar nama tidak diikutsertakan pada program karena bertipe string sendiri. Program ini melewatkan array nilai ke fungsi-fungsi seperti

(17)

fungsi cariRata untuk mencari rata-rata dan juga fungsi tampilkan untuk menampilkan interface dari hasil proses semua fungsi yang telah dijalankan.

3. Buat program untuk menampilkan tabel trigonometri dengan menggunakan looping for() dan 2 buah array :

- -x[] sebagai array berdimensi satu yang diinisialisasi dengan sudut 0 s/d 360

- -data[] sebagai array berdimensi dua. data adalah array yg berisi nilai sin, cos dan tan dari masing-masing nilai sudut yang ada dalam array x.

Petunjuk :

- gunakan fungsi radian() untuk mengkonversi nilai derajat menjadi radian. rad = drjt / 180.0 * PI. PI = 3.14159 a. Listing Program #include <stdio.h> #include <math.h> #define PHI 3.14f; float radian(float); void isiX(float[]); void tampilkan(float[]); main() { float x[12];

printf("PRAKTIKUM 19 SOAL 3\nRENDRA | 2110131036 | 1D4ITB\n"); printf("\n======================================== \n"); printf("Tabel Trigonometri"); printf("\n======================================== \n\n"); isiX(x); tampilkan(x); }

void isiX(float sudut[]) { int i = 0; float derajad=0; for(i=0;derajad<=360;i++) { sudut[i] = derajad; derajad+=30; } }

void tampilkan(float sudut[]) { int i; printf("---\n"); printf("| %6s | %7s | %7s | %7s |\n","x","sin(x)","Cos(x)","Tan(x)"); printf("---\n"); for(i=0;i<12;i++) printf("| %6.0f | %7.2f | %7.2f | %7.2f |\n",sudut[i],sin(radian(sudut[i])),cos(radian(sudut[i])),tan(radian(sudut[i]))); printf("---\n"); }

float radian(float derajad) {

return (derajad / 180.0f) * PHI; }

(18)

b. Capture Program

c. Analisis Program

Untuk mebuat table trigonometri seperti diatas, pertama yang kita lakukan adalah membuat daftar array sudut setiap kelipatan 30, selanjutnya, setiap sudut tadi di ubah menjadi radian dan terkahir tinggal kita cari sin, cos, tan –nya dengan menggunakan fungsi yang telah tersedia di math.h. Variabel yang cocok digunakan adalah float agar memberikan presisi pembagian yang spesifik. Pada program ini masih terjadi bug, yaitu tan 90 dan 270 yang seharusnya berilai infinitive, namun disini menjadi sebuah bilangan.

D. Kesimpulan

1. Sebuah array juga dapat dilewatkan sebagai parameter fungsi.

2. Dalam parameter aktual, array yang dilewatkan tidak perlu ditambahkan karakter “[]” karena array tanpa tanda tersebut sudah menyatakan alamat indeks ke 0 dari array tersebut. 3. Karena yang dikirimkan adalah alamatnya, maka di dalam fungsi, tanpa return value pun

Referensi

Dokumen terkait

Judul Tugas Akhir : ANALISIS PERLAKUAN AKUNTANSI HERITAGE ASSETS DAN POTENSI PENINGKATAN PENDAPATAN ASLI DAERAH ATAS PEMANFAATAN ASET BERSEJARAH SEBAGAI OBYEK WISATA

50 tahun 2012 tentang sistem Manajemen Keselamatan dan Kesehatan Kerja dalam elemen 6 tentang keamanan bekerja berdasarkan SMK3 juga disebutkan bahwa setiap perusahaan

Kemajuan peradaban Islam pada masa Bani Abbasiyah ini ditentukan setidaknya oleh dua faktor, yaitu terjadinya asimilasi antara bangsa Arab dengan bangsa-bangsa lain yang

Oleh karena pemerintah federal Malaysia bertanggung jawab atas pembiayaan dan penyediaan langsung pelayanan kesehatan bagi seluruh penduduk yang relatif gratis, maka pelayanan

pembudidaya di kelurahan Meruya Selatan atau tepatnya di kawasan Kayon, dengan bapak H.Gupron,…..saya mulai usaha penjualan dan budidaya sejak tahun 1980 sebelum dibangunnya

Kader dapat dibentuk dengan cara memberikan pendidikan lingkungan sejak dini, anak usia sekolah dasar adalah subyek yang selalu ingin tahu, mudah ikut arus, dan semangat yang besar

Aplikasi pemupukan majemuk dalam bentuk granul maupun briket dengan dosis 700 kg/ha (134 kg N; 72 kg P2O5; 72 kg K2O) ditambah dengan pupuk Amonium sulfat dosis

Pembangunan Rumah Oleh Perum Perumnas Provinsi Jawa Barat Tahun 2011. No Nama