• Tidak ada hasil yang ditemukan

TUGAS MANDIRI algoritma putera batam

N/A
N/A
Protected

Academic year: 2017

Membagikan "TUGAS MANDIRI algoritma putera batam"

Copied!
22
0
0

Teks penuh

(1)

TUGAS MANDIRI

Mata Kuliah:

Runtunan,Pemilihan,Pengulangan,Prosedur,Fungsi,Larik,Algoritma

Logika informatika dan algoritma

Nama Mahasiswa

: Murwanto

NPM

: 110210031

Kode Kelas

: 121-IS015-N3

Dosen

: Yenny, S.Kom

(2)

2012

KATA PENGANTAR

Puji Syukur penulis senantiasa panjatkan kepada Tuhan yang Maha Esa yang telah melimpahkan rahmat-NYA sehingga penulis dapat menyusun makalah ini dengan judul “Matriks Relasi dan Fungsi”. Penulis sangat bersyukur sekali karena dapat menyelesaikan makalah ini guna memenuhi sebagian persyaratan untuk memperoleh nilai tugas mandiri Matematika Diskrit Teknik Informatika Universitas Putera Batam.

Makalah ini membahas tentang logika informatika dan algoritma .Saya menyadari bahwa makalah ini masih jauh dari sempurna,untuk itu kritik dan saran yang sifatnya membangun semagat saya dan di harapakan sebagai umpan balik yang positif demi perbaikan di masa mendatang.Harapan saya semoga Makalah ini bermanfaat bagi pengembangan ilmu pengetahuan khusunya di bidang ilmu logika informatika dan algoritma.

Akhir kata,penulis berharap agar makalah ini bermanfaat bagi semua pihak yang membutuhkan.

Batam, 5 Desember 2012

(3)

DAFTAR ISI

KATA PENGANTAR . . . 2

DAFTAR ISI . . . .. . . . . 3

BAB I PENDAHULUAN . . . .. 4

A. Latar Belakang . . . . 4

B. Tujuan . . . .. .. 4

BAB II ISI . . . .. . . . . .. 5

1. Runtunan. . . . . . .5

2. Pemilihan. . . . . . .. 6

3. Pengulangan . . . . . . . .. 9

4. Prosedur.. . . . . . 14

5. Fungsi. . . . . . . . . . . . . .. . . 14

6. Larik . . . . . . .. 19

7. Algoritma. . . . . . 22

BAB III PENUTUP B. KESIMPULAN . . . .. . . . 24

A. SARAN . . . .. . . . . . . 24

(4)

BAB I PENDAHULUAN

A. Latar belakang

Banyak orang yang beranggapan bahwa Logika informatika dan algoritma, karena alasan itulah banyak orang yang menghindari bahwa Logika informatika dan algoritma. Padahal bahwa Logika informatika dan algoritma dapat kita jumpai di dalam kehidupan sehari-hari, dan mau tidak mau kita pasti menggunakan bahwa Logika informatika dan algoritma. Oleh karena itu saya membuat makalah ini dengan maksud membantu pemahaman mahasiswa agar mereka tidak menilai bahwa Logika informatika dan algoritma adalah sesuatu yang buruk.Secara khusus dalam ilmu pengetahuan

B. Tujuan

(5)

BAB II ISI

Runtunan

algoritma biasanya berisi tentang langkah-langkah pemecahan suatu masalah. adapun langkah-langkah itu sendiri dinyatakan dalam bentuk pernyataan (statement) atau instruksi. pernyataan tersebut dapat berupa runtutan (sequence), pemilihan (selection) dan pengulangan (repetition).

runtutan (sequence) merupakan struktur algortima paling dasar yang berisi rangkaian instrusi yang diproses secara beruntutan sesuai dengan algoritma yang telah ditentukan. instruksi akan dijalankan satu persatu, mulai dari instruksi pertama sampai akhir. runtutan biasanya terdiri dari satu atau lebih pernyataan. contoh yang paling sering diungkapkan pada referensi untuk mengungkapkan runtutan ini adalah program pertukaran nilai A ke B.

01 /* Program Pertukaran */

02 /* Menentukan nilai A dan B, Nilai A dan B dibaca lebih dahulu. */ 03 #include <stdio.h>

10 printf("Isikan nilai A dan B :\n"); 11 printf("A = "); scanf("%d", &A); 12 printf("B = "); scanf("%d", &B); 13

14 // Proses Pertukaran

15 C = A; /* pindahkan nilai A ke C */ 16 A = B; /* pindahkan nilai B ke A */ 17 B = C; /* isikan nilai C ke B */ 18

(6)

22 printf("B = %d \n", B);

Pemilihan

Dalam pemrograman dikenal juga pemilihan, pemilihan terjadi karena adanya suatu kondisi percabangan pada algoritma. pemilihan dapat dilakukan dengan dua cara yaitu menggunakan if dan case. if biasa digunakan pada satu atau dua kondisi lebih. sedangkan case digunakan pada lebih dari satu kondisi. dalam catatan kuliah terdahulu, dijelaskanbedaantara if dan case sebagai berikut :

1. kondisi pada if bisa memakai semua operator logika dan relasional. pada case hanya untuk karakter =

2. kondisi pada if bisa menggunakan seluruh tipe data (integer, real string, char) pada case hanyaintegerdanchar.

contoh if pada satu kondisi :

01 #include <stdio.h>

08 printf("Inputkan bilangan bulat :"); 09 scanf("%d", &i);

10 if(i % 2 == 0)

11 printf("bilangan genap!\n"); 12 // endif

13 }

contoh if pada kondisi bercabang :

01 #include <stdio.h>

(7)

10 if(i > 0)

11 printf("bilangan positif\n");

12 else /* untuk menggunakan pemilihan bercabang gunakan blok program -> {} */

13 {

14 if (i < 0)

15 printf("bilangan negatif\n"); 16 else

17 printf("bilangan nol\n"); 18 }

19 }

contoh case :

01 // Program persegi panjang 02 #include <stdio.h>

09 float panjang, lebar;

10 float luas, keliling, diagonal; 11

12 // Algoritma

13 printf("Menu Menghitung Persegi Panjang\n"); 14 printf("1. Hitung Luas\n");

15 printf("2. Hitung Keliling\n");

16 printf("3. Hitung Panjang Diagonal"); 17 printf("4. Keluar dari Program");

18 printf("Inputkan pilihan Anda(1\2\3\4) ="); 19 scanf("%d", &noMenu);

20

21 switch(noMenu) 22 {

23 case 1 : {

24 printf("Panjang?"); scanf("%f", &panjang); 25 printf("Lebar?"); scanf("%f", &lebar); 26 luas = panjang * lebar;

27 printf("Luas = %f\n", luas); 28 break;

29 }

30 case 2 : {

31 printf("Panjang?"); scanf("%f", &panjang); 32 printf("Lebar?"); scanf("%f", &lebar); 33 keliling = 2*panjang * 2*lebar;

34 printf("keliling = %f\n", keliling); 35 break;

36 }

(8)

38 printf("Panjang?"); scanf("%f", &panjang); 39 printf("Lebar?"); scanf("%f", &lebar);

40 diagonal = sqrt((double)panjang*panjang + (double)lebar*lebar); 41 printf("Diagonal = %f\n", diagonal);

42 break; 43 }

44 case 4 :

45 printf ("Keluar program!\n"); 46 break;

47 } 48 }

cara khusus untuk kompilasi file case.c : $ gcc -lm case.c -o case

Perulangan

ada berapa jenis perulangan yang sering digunakan ketika pemrogram, yaitu for yang digunakan sebagai perulangan tanpa kondisi, maksudnya for dibuat untuk pemecahan kasus yang menspesifikasikan ketentuan perulangan yang telah diketahui, baik itu untuk nilai menaik atau menurun. sedangkan while dan repeat adalah perulangan dengan kondisi. bedanya adalah while menspesifikasikan kondisi dimuka sedangkan repeat diakhir.

for

01 /*

02 /* Hitung rata-rata */ 03 #include <stdio.h> 04

05 int main() 06 {

(9)

11

12 printf ("berapa N : "); 13 scanf ("%d", &N);

14 jumlah = 0;

15 printf("deret angka N :\n"); 16 for (i = 1; i <= N; i++)

22 printf ("jumlah angka : %d\n", jumlah); 23 printf ("rata-rata : %f\n", rerata); 24 }

25 26 */

while

01 /* Program Hitung Rata-Rata Deret Angka */ 02 #include <stdio.h>

(10)

32 else

33 printf ("tidak ada data yang diinputkan\n"); 34 }

10 printf("Masukkan nilai x (int), akhiri dengan 0 : "); 11 scanf("%d", &x);

12 if(x == 0)

jenis lain dari pengulangan iterate, iterate adalah perulangan dengan beberapa kondisi.

(11)

12 scanf("%d", &N); 13 i = 1;

14 printf("Print i dengan Iterate :\n"); 15 for(;;)

16 {

17 printf("%d\n", i); 18 if (i == N)

19 break; 20 else 21 { 22 i++; 23 } 24 }

25 return 0; 26 }

Prosedur Dan Fungsi

Prosedur dan fungsi dibuat agar pengerjaan suatu program menjadi lebih mudah dan lebih terorganisir. Dengan adanya fungsi maupun prosedur, pelacakan kesalahan(debugging) pun akan lebih mudah dilakukan.

Prosedur dan fungsi sebenarnya tidak jauh berbeda, prosedur bisa dibilang sebagai fungsi yang tidak mengembalikan nilai. Hasil penghitungan dari prosedur biasanya disimpan pada parameter output prosedur tersebut.

Berikut ini beberapa contoh prosedur dan fungsi:

1.Hitung Luas Segitiga

procedure HitLuasSegi3ver1(alas:real;tinggi:real;var luas:real);

{prosedur untuk menghitung luas segitiga, dengan parameter masukan alas dan tinggi, serta parameter keluaran luas}

(12)

luas:= alas*tinggi/2;

end;

atau bisa juga:

procedure HitLuasSegi3ver2;

{prosedur untuk menghitung luas segitiga, dengan parameter masukan alas dan tinggi, serta parameter keluaran luas}

var

luas:real;

begin

write(“Alas : “);readln(alas);

write(“Tinggi: “);readln(tinggi);

luas:=alas*tinggi/2;

writeln(“Luas segitiga adalah”,luas);

end;

versi 1 dan versi 2 di atas sebenarnya melakukan hal yang sama, tapi ver2 tidak menggunakan parameter input maupun output sehingga sangat bergantung pada program di mana ia digunakan, sementara ver1 lebih independen.

Prosedur di atas dapat juga dituliskan sebagai fungsi, berikut contohnya:

function HitLuasSegi3(alas:real;tinggi:real):real;

{fungsi untuk menghitung luas suatu segitiga}

(13)

HitLuasSegi3 := alas*tinggi/2;

end;

Jadi bisa kita buat skema umum penulisan prosedur dan fungsi sebagai berikut:

procedurenama_prosedur(nama_parameter_input:tipe_data; var nama_parameter_output:tipe_data );

var

{variabel lokal}

Begin

end;

untuk fungsi:

function nama_fungsi(nama_parameter_input:tipe_data):tipe_data_keluaran;

var

{variabel lokal}

begin

end;

2.Tukar Nilai antara dua peubah

(14)

{prosedur ini bertujuan untuk menukar nilai dari kedua variabel. contoh: awal,a=5 dan b=9. akhir,a=9 dan b=5}

var

temp:integer {tempat sementara untuk menampung nilai}

begin

temp:= a;

a:= b;

b:= temp;

end;

Pada contoh prosedur di atas, parameter a dan b adalah parameter masukan sekaligus keluaran. Jadi nilai awal yang dilewatkan ke prosedur tersebut akan digunakan dalam perhitungan, dan hasil perhitungan akan disimpan ke parameter tersebut lagi. Mengenai algoritma dari program di atas, mirip dengan menukar isi dari dua buah ember dengan memanfaatkan ember ketiga yang masih kosong, awalnya ember a dituangkan ke ember temp, ember b ke ember a, dan ember temp ke ember b, akhirnya kini a berisi nilai b dan sebaliknya.

Untuk penggunaan prosedur dan fungsi dalam program utama, kita harus nilai menuliskannya sebelum blok/daerah program utama, yaitu sebelum kata kunci begin.

Kali ini kita akan memanfaatkan prosedur dan fungsi di atas ke dalam sebuah program:

program DemoFungPro;

var

pil:integer;

(15)

procedure HitLuasSegi3;

{prosedur untuk menghitung luas segitiga, dengan parameter masukan alas dan tinggi, serta parameter keluaran luas}

var {variabel lokal}

alas,tinggi:real;

luas:real;

begin

write(“Alas : “);readln(alas);

write(“Tinggi: “);readln(tinggi);

luas:=alas*tinggi/2;

writeln(“Luas segitiga adalah”,luas);

end;

procedure TukarNilai(var a:integer;var b:integer);

{prosedur ini bertujuan untuk menukar nilai dari kedua variabel. contoh: awal,a=5 dan b=9. akhir,a=9 dan b=5}

var

temp:integer {tempat sementara untuk menampung nilai}

begin

temp:= a;

(16)

b:= temp;

end;

begin {program utama}

writeln(“Menu:”);

writeln(“1.Hitung Luas segitiga”);

writeln(“2.Tukar nilai dari dua peubah”);

write(“Masukkan pilihan Anda: “); readln(pil);

case pil of

1: begin

HitLuasSegi3;

end;

2: begin

write(“Nilai pertama: “);readln(nilai1);

write(“Nilai kedua : “);readln(nilai2);

TukarNilai(nilai1,nilai2);

writeln(“nilai pertama:”,nilai1,” dan nilai kedua: “,nilai2);

end;

(17)

end. {akhir program utama}

ARRAY (LARIK)

Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe sama. Komponen-komponen-komponen tersebut disebut sebagai komponen type, larik mempunyai jumlah komponen yang jumlahnya tetap. Banyaknya komponen dalam larik ditunjukkan oleh suatu index, dimana tiap komponen di array dapat diakses dengan menunjukkan nilai indexnya atau subskript. Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Tipe larik mengartikan isi dari larik atau komponen- komponenya mempunyai nilai dengan tipe data tersebut.

Array didefinisikan sebagai suatu kumpulan dimana elemen-elemennya berjenis data sama. (homogeny) Suatu array dapat dibedakan atas 2 (dua) bagian, yaitu :

a. Array Berdimensi Satu

Array berdimensi satu dapat dikatakan sebagai suatu daftar yang linier atau sebuah kolom. Bentuk deklarasi dari array jenis ini dalam bahasa Pascal adalah:

VAR nama_array : ARRAY [index] OF jenis_elemen;

Contoh Program :

Program Contoh_Array_Input;

Uses Crt;

(18)

Bilangan : array[1..50] of Integer;

Begin

ClrScr;

Bilangan[1]:=3;

Bilangan[2]:=29;

Bilangan[3]:=30;

Bilangan[4]:=31;

Bilangan[5]:=23;

Writeln('nilai varibel bilangan ke 3 =',Bilangan[3]);

Readln;

End.

Array tidak hanya dapat berupa suatu varibel yang dideklarasikan di bagian deklarasi variabel, tetapi dapat juga berupa konstanta (const).

Contoh Program :

Program;

Uses Crt;

Const

Tetap : Array[1..4] of Integer=(7,10,21,20);

Var

i : Integer;

Begin

For i:= 1 to 4 Do

Writeln('Nilai Konstan array ke ',i:2,' =',Tetap[i]);

Readln;

End.

b. Array Multi Dimensi

Array dimensi dua ini dapat dianggap sebagai sebuah matriks yang jumlah kolomnya lebih dari satu. Bentuk deklarasi :

(19)

Di dalam pascal Array dapat berdimensi lebih dari satu yang disebut dengan array dimensi banyak (Multidimensional array), disini akan dibahas array 2 dimensi saja. Array 2 dimensi dapat mewakili suatu bentuk tabel atau matrik, yaitu indeks pertama menunjukkan baris dan indeks ke dua menunjukkan kolom dari tabel atau matrik. Untuk mengetahui cara mendeklarasikan dari penggunaan aray dua dimensi dapat dilihat pada listing program dibawah ini.

Program_Deklarasi_Array_Dua_Dimensi;

Uses Crt;

Var Tabel : Array[1..3,1..2] of Integer;

i,j : Integer;

Begin

ClrScr;

Tabel[1,1]:=1;

Tabel[1,2]:=2;

Tabel[2,1]:=3;

Tabel[2,2]:=4;

Tabel[3,1]:=5;

Tabel[3,2]:=6;

For I := 1 to 3 Do Begin For J:= 1 to 2 Do Begin Writeln('Elemen

',i,',',j,'= ',tabel[i,j]);

End;

End;

Readln;

End.

Algoritma

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sisthematis dan logis

(20)

Algoritma Merupakan Jantung Ilmu Informatika

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu computer yang diacu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-haripun banyak terdapat proses yang dinyatakan dalam suatu algoritma.

Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-lankah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. S ecara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alatalat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut. Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok.

Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses.

Jadi suatu pemroses harus :

1. Mengerti setiap langkah dalam Algoritma

2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut. Mekanisme Pelaksanan Algoritma Oleh Pemroses

Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma hasrus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program.

Jadi program adalah prwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer.

Ciri penting algoritma

• Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.

• Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas). • Algoritma memiliki nol atau lebih masukkan.

• Algoritma memiliki nol atau lebih keluaran.

(21)

BAB III PENUTUP

Bab ini berisi kesimpulan dan saran yang diambil dari keseluruhan isi dari makalah ini yang telah di teliti dan di pelajari untuk di ambil kesimpulan dan saran

A.Kesimpulan

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sisthematis dan logis

(22)

Dalam menyusun makalah ini,penulis menyadari sepenuhnya bahwa isi makalah ini belum sempurna dan masih kurang baik mengenai materi maupun cara penulisannya.Oleh karena itu,penulis sangat mengharapkan kritik dan saran

DAFTAR PUSTAKA

Buku : Logika Informatika Dan Algoritma Sumber Lain :

Referensi

Dokumen terkait

Fenogram analisis fenetik menunjukkan bahwa Tor duoronensis dan Sengkaring memiliki kesamaan 100%, dan Tambra merupakan sister clad dari Tor duoronensis yang

Data flow diagram (DFD) digunakan untuk menggambarkan arus data secara logika pada sistem yang berjalan atau suatu sistem lama maupun yang dikembangkan tanpa

Adapun tujuan dari pengisian daftar pernyataan ini adalah untuk mengetahui sejauh mana DAMPAK PELAYANAN INTERNET BANKING TERHADAP KEPUASAN PELANGGAN (Studi Pada

Elemen tersebut sangat erat kaitannya dengan risiko finansial, karena proyeksi aliran kas dalam perhitungan dengan metoda capital budgeting menggambarkan bahwa investasi

Subjek tidak menunjukkan perilaku usaha membuat segmen-segmen garis dengan kemiringan berbeda yang merepresentasikan laju perubahan volume terhadap tinggi pada

Provinsi Sulawesi Utara merupakan salah satu Provinsi yang berbatasan dengan Negara tetangga dan dua pulau terluarnya berbatasan langsung dengan Filipina sehingga

Berdasarkan hasil penelitian, dapat diketahui bahwa secara spasial hiu paus selalu muncul di wilayah 4 (SPTN Wilayah I Kwatisore) pada setiap bulannya meskipun

• Anggota keluarga yang tinggal serumah dengan penderita TB mempunyai resiko untuk tertular penyakit TB.. • Saat ini di Indonesia belum ada data tentang prevalensi penyakit TB