MAKALAH STRUKTUR DATA DAN ALGORITMA DENGAN MENGGUNAKAN BAHASA C++ DAN PASCAL

LEONARDO DAVINSI NAINGGOLAN 102406188

D-III TEKNIK INFORMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA 2012

i

DAFTAR ISI

Daftar Isi ............................................................................................................... Bab 1 Pendahuluan……………………………………………………………… 1.1 1.2 Pengertian Struktur Data ............................................................................. Pengertian Algoritma...................................................................................

i 1 2 2

Bab 2 Pembahasan 2.1 Gambaran umun C++ dan Pascal……………………………………… 2.1.1 2.1.2 Gambaran Umum C++………………………………………………… Gambaran Umum Pascal………………………………………………… 4 4 5 7 7 10 10 11 11 12 13 13 13 14 14 15 15 15 16 17 17 17 17 19 19 19

2.2 Tipe Tipe Data , Konstanta, Variabel, & Operator…………………………. 2.2.1 Tipe Data………………………….………………………………………. 2.2.2 Variabel………………………….………………………………………… 2.2.3 Konstanta………………………….……………………………………… 2.3 Input dan Output………………………….………………………………… 2.3.1 Output………………………….…………………………………………. 2.3.2. Input………………………….………………………………………….. 2.4 Operator………………………….………………………………………… 2.4.1 Operasi Bilangan Bulat………………………….……………………….. 2.4.2 Operasi Pecahan………………………….………………………………. 2.4.3 Operasi Boolean………………………….……………………………… 2.4.4 Operasi Perbandingan………………………….……………………….. 2.5 Kondisional………………………….……………………………………. 2.5.1 If-then dan if-then-else………………………….……………………… 2.5.2 Case of………………………….………………………………………. 2.5.3 Operator Ternary………………………….…………………………….. 2.6 Pengulangan………………………….…………………………………… 2.6.1 Loop For………………………….……………………………………… 2.6.2 Loop While………………………….…………………………………… 2.6.3. Loop Repeat………………………….…………………………………. BAB 3 PEMBAHASAN MATERI STRUKTUR DATA DAN ALGORITMA 3.1 Array………………………………………………………………………. 3.1.1 Inisialisasi Array………………………….……………………………….

ii

3.1.2 Akses ke dalam Array………………………….……………………… 3.1.3 Array Multidimensi………………………….………………………… 3.2 String dan Karakter………………………….…………………………… 3.3 Fungsi (Lanjutan)………………………….…………………………….. 3.4 Class ………………………….………………………….………………… LAMPIRAN

20 20 22 23 25

BAB 1

PENDAHULUAN

Komputer pada dasarnya merupakan mesin yang tidak bisa apa-apa. Kita harus memberikan serangkaian instruksi kepada komputer agar mesin „pintar‟ ini dapat memecahkan suatu masalah. Langkah-langkah yang perlu dilakukan dalam memberikan instruksi kepada komputer untuk memecahkan masalah inilah yang dinamakan pemrogaman komputer. Adapun langkah-langkah pemrogaman komputer adalah sebagi berikut: mendefinisikan masalah, menentukan solusi, memilih algoritma, menulis program, menguji program, menulis dokumentasi, serta merawat program.

Sebelum membuat program, hendaknya kita membuat Flow Chart atau Pseudocode, sehingga memudahkan kita untuk memahami algoritma serta memudahkan kita dalam membuat program. Program yang ditulis juga harus jelas, nyata,dankomplit.

Pada bahasa pemrograman tingkat tinggi, seperti Pascal dan C++, telah tersedia jenisdata standar integer, yang merupakan jenis data untuk menyimpan bilangan bulat. Secara algoritmik, jenis data integer tidak mempunyai batas nilai maksimum maupun batas nilai minimum, namun tidak demikian halnya dalam implementasi pada bahasa pemrograman. Sebagai contoh pada bahasa Turbo Pascal dan Turbo C, jenis data integer terbesar diimplementasikan dalam 4 byte data, yang berarti membatasi nilainya dari 2147483648 sampai dengan 2147483647. Pembatasan nilai ini akan meningkatkan efisiensi kompilator, tetapi di sisi yang lain akan membatasi perhitungan yang bisa dilakukan. Secara praktis hal ini diatasi dengan menggunakan jenis data real (atau float pada bahasa C) untuk melakukan perhitungan

yang terdiri dari: Linier :Stack. misalnya array dan record. sehingga menjadikan program secara keseluruhan lebih efisien dan sederhana. Non Linier : Pohon Biner dan Graph. 1. Pertama kita harus mempersiapkan adonan cake. 1. Apabila adonan tersebut telah dimasukkan kedalam Loyang. akan tetapi solusinya tidak selalu memuaskan. Pemakaian struktur data yang tepat didalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat. Struktur data majemuk. Kemudian apabila adonan tersebut telah jadi. sinyal atau simbol. Kemudian taruh adonan cake tersebut kedalam Loyang yang telah dioleskan mentega dan ditaburi sedikit tepung. panaskan oven.1 Pengertian Struktur Data Struktur data adalah cara menyimpan atau merepresentasikan data didalam komputer agar bisa dipakai secara efisien.2 dengan bilangan bulat yang cukup besar.Queue. Misalkan cara membuat cake. Sedangkan data adalah representasi dari fakta dunia nyata. .masukkan Loyang yang berisi adonan cake tersebut kedalam oven yang telah di tentukan suhunya tadi. Jenis data real seringkali tidak bisa dipergunakan pada perhitungan yang menuntut kecermatan tinggi. Tunggulah kira-kira setengah jam. Fakta atau keterangan tentang kenyataan yang disimpan. gambar. Struktur Data. direkam atau direpresentasikan dalam bentuk tulisan.2 Pengertian Algoritma Algoritma merupakan tahapan-tahapan untuk mencapai hasil. suara. Jadi Algoritma tidak selalu berhubungan dengan Ilmu Komputer.sertaListdan Multilist. meliputi: a) b) Struktur data sederhana. Maka adonan cake tersebut akan menjadi kue cake.

.3 Di sini saya bukan membahas tentang kue cake. Untuk membuat sebuah program. Dan untuk menghasilkan sebuah program yang berbeda dengan yang lainnya.maka diperlukan proses. maka orang tersebut harus memiliki kreativitas. Algoritma itu sendiri berasal dari nama seorang ahli matematika dari Uzbekistan yaitu Abu Abdullah Muhammad Ibn Musa al-Khwarizmi yang dibaca oleh orang barat menjadi Algorism. tapi saya hanya memberi gambaran logis tentang pengertianAlgoritma yang sebenarnya. Sedangkan Algorist adalah orang yang menghitung dengan menggunakan angka arab. Algoritma dalam ilmu Komputer adalah urut-urutan yang logis dan tepat untuk memecahkan permasalahan yang menggunakan Komputer dengan bahasa pemrograman yang telah ditentukan seperti bahasa pascal. Yang dapat kita ambil dari contoh di atas adalah untuk menghasilkan sesuatu. C. Proses tersebut terdiri dari tahapan-tahapan yang logis.secara umum Inti dari algoritma adalah tahapan-tahapan logis yang harus dipenuhi untuk mencapai suatu hasil. seseorang harus memiliki daya pikir yang bagus. Sebenarnya. Visual Basic. Jadi menurut pemikiran saya. Sekarang saya akan membahas Algoritma menurut pengertian ilmu Komputer. atau yang lainnya. Kata Algoritma berasal dari bahasa arab yaitu Algorism yang berarti proses menghitung dengan angka arab.

BAB 2 PEMBAHASAN 2.1 Gambaran Umum C++ Beberapa hal yang perlu diingat mengenai bahasa C++: a) Komentar dalam C++ menggunakan /* … */ untuk memuat beberapa baris sekaligus ataumenggunakan // untuk mengabaikan semua karakter di sebelah kanannya sebanyak 1 baris.1 GAMBARAN UMUM C++ DAN PASCAL 2. .1.

procedure didefinisikan sebagai functionyang mengembalikan nilai void. f) Bahasa C++ juga bahasa yang case-sensitive. jadi perhatikan dalam penamaan variabel. fungsi ini adalahfungsi spesial karena di situlah main program kita. d) Setiap baris perintah harus diakhiri dengan titik koma „. c) Dalam C++ sebenarnya juga tidak ada procedure.2 Gambaran Umum PASCAL .5 b) Sebuah program dalam C++ harus memiliki fungsi bernama main().‟ kecuali yang diawali dengan kres„#‟. 2. maupun pemanggilan fungsi-fungsi yang sudah ada. g) Perintah terakhir di dalam main() yaitu return 0 digunakan untuk mengindikasikan bahwa h) program tersebut sukses berjalan.1.type. e) Blok program diawali kurung-kurawal-buka „{‟ dan diakhiri kurung-kurawaltutup „}‟.

&i). fori:=1to10do begin fak:=fak*i. f) Blok program diawali kurung-kurawal-buka „{‟ dan diakhiri kurung-kurawaltutup „}‟. (Program yang tidak me-return exit code 0dianggap mengalami runtime error. g) Bahasa C adalah bahasa yang case-sensitive.i) scanf(“%d”.0 { sama=false. vari:integer. h) Perintah terakhir di dalam main() yaitu return 0 digunakan untuk mengindikasikan bahwaprogram tersebut sukses berjalan.i). { } fak*=i. functionplus(x:integer):boolean. } else { for(i= sama=1. maupun pemanggilan fungsi-fungsi yang sudah ada. end.6 Beberapa hal yang perlu diingat mengenai bahasa C: a) Komentar dalam C menggunakan /* … */ dan bisa memuat beberapa baris sekaligus. } else { for(i=1.‟ kecuali yang diawali dengankres „#‟.type. Pada beberapa kontes pemrograman.i<=10. end else begin sama:=true.i++) sama=true. i%10 i/10 if(a!=b) (float)i/10. hal ini merupakansalah satu syarat diterimanya program. i%10 i/10 if(a!=b) (float)i/10. end.i<=10. inc(i)ataui:=i+1 writeln(„i=‟. } C++ intx=a+b. end. i++atau++i std::cout<<”i=”<<i<<”\n”. procedure didefinisikan sebagai function yang d) mengembalikan nilai void (void = sesuatu yang tidak ada). x:=a+b. fungsi ini adalah fungsispesial karena di situlah main program kita. i++atau++i printf(“i=%d\n”. jadi perhatikan dalam penamaan variabel. c) Dalam C sebenarnya tidak ada procedure. } Kondisional Pengulangan Fungsi . e) Setiap baris perintah harus diakhiri dengan titik koma „. } boolplus(intx) { return(x>=0). 1. begin plus:=(x>=0). inti. b) Sebuah program dalam C harus memiliki fungsi bernama main(). . C intx=a+b. intplus(intx) } { return(x>=0).i++) } { fak*=i.0 { sama=0. read(i). idiv10 imod10 i/10 if(a<>b)then begin sama:=false. std::cin>>i inti.) Deskripsi Assignment Increment Output Input operasinumerik Pascal varx:integer.

4x10 +308 s/d-3. C typedefcharname[31].295 Pascal shortint integer longint byte word longword Char Int Long C char int long C++ unsignedchar unsignedint unsignedlong unsignedchar unsignedint unsignedlong b) Tipe Data Desimal Nilainegatif +38 -38 Nilai positif -38 +38 Pascal real double C float double C++ float double -3. } voidtambah(int&x) { x++.7x10s/d-1. C++ typedefstd::stringname.4x10 -308 3. Konstanta.4x10 -308 +308 -1.967.7x10 c) Tipe Data Karakter & String Pascal Typename=string[30].294.7x10s/d1.767 2.483.147.2. begin x:=x+1.768 -2.147.7 Prosedur proceduretambah(varx:integer).647 255 65.1 Tipe Data a) Tipe Data Integer NilaiMin -128 -32. } 2.648 0 0 0 NilaiMax 127 32.7x10 1. end. .483. voidtambah(int*x) { *x++.535 4. Variabel.2 Tipe Data . & Operator 2.4x10 s/d3.

1.8 1. UntukC++. Jadijikaditulisinttabel[11]artinya adatabel[0]…tabel[10]..0. d) Tipe Data Boolean Pascal Type tabel=array[0. Contohcara pengaksesan: tabel[2].matrix[5][29] e) Typedataenumerasi Pascal C C++ . Type matrix=array[0.30] ofreal. 4.10]of integer..name[30]sedangkandalamCcharname[31]artinya karakterdiisidariname[0]. PadaPascal.name:string[30]artinyakarakterdiisidari name[1].. 4. UntukC.. Programharusmenggunakanstd::string. C++ typedefinttabel[11]. 2. floatmatrix[21][31].tidakada khususstring.name[30].sehinggastringdidefinisikansebagaiarray ofchar.20. 3. typedata 3.untukmenggunakantypestringharusada#include<string>diawal. 2. PadaCdanC++ indeksarrayselaludimulaidari0. Formatdeklarasinya:typedef<type-elemen><namatype>[<banyaknyaelemen+1>]. typedef C typedefinttabel[11]. typedef floatmatrix[21][31]..

selasa.sabtu). typedefsiswa*addr. Untuk contoh di atas. typedefenum {senin. {typesiswaadadiatas} C typedefint*address. }hari.pointerhanyamenyimpanalamat memorydarinilai yangdisimpan. f) Typedatapointer Pascal typeaddress:^integer.kitahampirtidakperluberurusandenganpointer. akan dianggap +1 dari elemensebelumnya. 2. 1. sabtu=20.rabu. /*typesiswaadadi atas*/ C++ typedefint*address.selasa.9 typehari=(senin.selasa. Jadi jika nilai pada elemen tersebut tidak didefinisikan. kamis.rabu.jumat. selasa=1.MisaladdressP. rabu. diC Pointertidak menyimpannilai. 3.tapi mautidakmaukitaharusberurusandengantipedatasatuini.kamis. kamis=9.kamis. sabtu. }hari.jumat. jumat. pada C dan C++ senin akan bernilai 0.maka*P=10akan . //typesiswaadadiatas Ketikakita menggunakanPascal.sabtu. rabu=2 dst…jika ditulis typedef enum maka senin bernilai 3. typedefenum {senin. selasa=7. jumat=10. typeaddr:^siswa. rabu=8. Jadiformat: typedefenum{<elemen-elemen>}<nama-type>. typedefsiswa*addr.jadibukannilaiitusendiri.

Jikapada Pascalbagianuntukdeklarasivariabelharusdiawalidenganvardanberada sebelummainprogram. nama:string[30].atauunderscore„_‟ d. angka:=10. angka=10. floathasil.2Variabel berubahmenjadi10. Pascal angka:integer. tabel:array[0. floathasil. charnama[31]. hasil=23. nama:=„alexander‟. diawalidenganhuruf c.maupunkonflikdenganreservedword b) Operatoruntukassignmentadalah„=‟jadijangansampaitertukardenganoperatorko mparasi„==‟. tidakbolehadavariabelganda.angka. strcpy(nama. intangka.98.halinitidakadadalamC& C++.10]ofchar.. hasil=23. nama=“alexander”.floathasil=2 3.3Konstanta . hasil:real.kitabisamendeklarasikan variabeldi manapun. 2. angka=10.Formatdeklarasivariabelsangatmiripdenganformatdeklarasitype. case-sensitive b.98.”alexander”). tabel[7]=„S‟.2. chartabel[11]. 2.Bedanyah anyatidakadanyakatakuncitypedef. std::stringnama.Ptetap menunjukalamatyang sama.10 membuatnilaiyangditunjukolehP tapiPitusendiritidakberubah.98. C C++ intangka. chartabel[11].98. a) Aturanpenamaanvariabel: a. hasil:=23. bolehterdiridarihuruf. SyntaxuntukdeklarasidanassigmentvariabeldalamC&C++berbedadenganPascal.2. tabel[7]:=„S‟.contoh:intangka=10. c) PadaC&C++kitabisa menyingkatdeklarasidanassignmentsekaligus. tabel[7]=„S‟.

std::cout<<“Baik-baik saja\n” inti.c.. b.f).1415926 C++ Ada2cara: constfloatpi=3.‟ f = ‟.i).... std::cout << “nilai i adalah ” << i << “\n”. printf(“nilai i adalah %d\n”.carakerjanyaadalah mencari<nama>di seluruhcodedanmengubahnyamenjadi<nilai>. UntukC.perlu#include<stdio. float f. writeln(„Baikbaik saja‟). std::cout << “c = ” << c << “f = ” << f << “\n”. C printf(“Apakabar?”). . f: real. char c.. C++ std::cout<<“Apakabar?”.1415926.i). .<variabel>. UntukC.. var c:char.1415926 PadaC&C++konstantabiasaharustetap dideklarasikantype-nya.dimana 2.. atau: #definepi3. atau: #definepi3. writeln(„c = ‟.outputmenggunakanfungsiprintf(printformatted) Formatnya:printf(“<stringbesertaformatvariabel>”. . Formatnya:#define<nama><nilai>. printf(“Baik-baik saja\n”)..1415926..f).3. C Ada2cara: constfloatpi=3.3InputdanOutput 2.<variabel>[.. inti. a.11 Pascal constpi= 3.1415926. . .. printf(“c = %c f = %f\n”.]) .1Output Pascal write(„Apakabar?‟). char c. writeln(„nilai i adalah ‟.h>diawal program. . vari:integer.... #defineadalah fungsinyamiripfind&replacepadatexteditor.. . float f. makro.c.

. std::cin>>i.perlu#include<stdio. scanf(“%f”. cc:char. charcc. UntukC++. a. UntukC++.outputmenggunakanstd::cout c.contoh:„\n‟untukakhir baris a. inti. C floatf.namunsetelahstring format. Karakter-karakterkhususpadaCjuga berlakupadaC++.&cc).bentukdarikeluarandituliskanduluformatnyasebagaiparameterpertamaprintfdalamb entukstring(diapitolehpetik). std::cin>>cc.&i). f:real.perlu#include<iostream>di awalprogram. read(i). scanf(“%d”. Yangmembedakantextbiasa formatyangada: %iatau%d %liatau%ld %u %ul %c %f %lf %s Int Long unsignedint unsignedlong Char Float longfloat String denganformatvariabeladalahtanda%.2. charcc.3. read(cc). Formatyangdigunakanhampirsamadenganprintf. inti. read(f).Input Pascal var i:integer. Daftar Selain format. std::cin>>f.yangdiisibukannamavariabel.&f). UntukC. C++ floatf.adakarakter-karakterkhusus. 2. scanf(“%c”. UntukC.h>diawal program. b.inputmenggunakanscanf(scanformatted).12 Jadi.

UntukC++.atau++x x+=a.a). c.Tapijika 2.x++). UntukC++. x--. C + * / % x++.2OperasiPecahan Operatoryangdigunakanpadabilanganpecahandanmenghasilkanpecahanjuga: .atau–-x. dec(x.1OperasiBilanganBulat Operatoryangdigunakanpadabilanganbulatdanmenghasilkanbilanganbulatjuga: Definis Penjumla i Penguran han Perkalian gan Hasilbagi Sisa bagi Incremen x t x+a Decreme x nt x.dan--x.4.4.perlu#include<iostream>di awalprogram.inputmenggunakanstd::cin.printf(“%d”. Nilaixsetelahituadalah 2.++x).13 melainkanpointerdariarraytersebut.Nila ixsetelahituadalah dijalankan:intx=1. b.a).atau++x x+=a.a + * div mod inc(x). 2.printf(“%d”. x-=a. x--dengan--xmeskipunhasiL C++ a) Adaperbedaanantarax++dengan++xdanantara akhirnya sama. inc(x.4Operator 2. 2. . dec(x).makayangkeluaradalahangka1. x-=a.makayangkeluaradalah2. b) Jikadijalankan:intx=1. .Makanyauntuk memasukkannilaidesimal(%f)kedalamvariabelfdigunakanpointerf(&f). Pascal + * / % x++.atau--x. c) Begitujuga denganx-. x--.

maka otomatismenjadioperasidiv.Jika/dioperasikan pada2buahbilanganbulat. .4OperasiPerbandingan Operatoryangdigunakanuntukmembandingkannilaibilangandenganbilanganlain: Jangansampaitertukarantara operatorassignment„=‟denganoperatorpembanding„==‟.14 Definisi Penjuml Pengura ahan Perkalia ngan Pembag n ian Pascal + * / + * / C + * / C++ PadaC&C++.operatorpembagi„/‟ menggunakanlambangyangsama.3OperasiBoolean Operatoryangdigunakanuntukmemanipulasitrue danfalse: Definisi Negasi Konjungsi Disjungsiinklu Disjungsiekslu sif sif Pascal Not And Or Xor ! && || ^ C ! && || ^ C++ 2. operand- 2.4.sedangkanjikasalahsatu nyapecahanmakaotomatismenjadioperasipembagianbiasa.4.

end.2Caseof Pascal C C++ .5. } else { if(a>b) { a=b. } else { printf(“Not divisible”). end else begin write(„Not divisible‟).5. } std::cout<<“Not divisible”. C if(a>b) { a=b. } a) Syntaxif.5Kondisional 2. 2. end.. b) BedanyadenganPascaladalahtidakadanyakeywordthenjadiinstruksisetelahif()ak an dilaksanakanjikatrue.. C++ } if((y%x)==0) { printf(“Divisible”).1If-thendanif-then-else Pascal if(a>b)then begin a:=b.then. 2. } if((y%x)==0) { std::cout<<“Divisible”. if((ymodx)=0) thenbegin write(„Divisible‟).elsedalamC&C++sama persis.15 Definisi Samadengan Tidaksamadengan Kurangdari Kurangdarisama dengan Lebihdari Lebihdarisamadengan = Pascal <> < <= > >= C == != < <= > >= C++ == != < <= > >= HaliniseringterjadipadaorangyangterbiasadenganPascaldanberalihkeC.

.end..end.. 2. end.... end.11: begin days:=30. case11: days=30. case4: . case2: .. } } Syntax case. case2:.. } switch(bulan) { case1:.of pada C & C++ sama persis. 2:begin..5.. switch(bulan) { case1:. break. case12: days=31.10. case2: ..5. b) Pada C & C++ harus digunakan perintah break karena jika tidak ada break.. a) Pada C & C++. break. ..6.... case11: days=30. . case12: days=31. case2:.. { switch(bulan) case1: case3: .. break.12: begin days:=31. case1: case3: ... break. end.... break. 2: begin . . end.3. } switch(bulan) { casebulanof 1.7.. case4: ....8.. 4.3OperatorTernary .. break. harus menggunakan keyword switch dan case. break.. end.switch akanmembaca sisa perintah yang ada di bawahnya. break.9...16 casebulanof 1:begin.

a) Syntax while dalam C & C++ sama persis... . while(notfound)do begin ...... fori:=1to10do begin C inti.}else{x=b.1LoopFor Pascal vari:integer..6Pengulangan 2. C++ while(!found) { . end. . i++) { C++ SyntaxfordalamC& C++sama persis. end... ... Barisdiatassetaradenganif(a<b){x=a.. ... 2. Keunggulandariternaryadalahsingkat.. .. for(i=1..6. .. Formatnya:<kondisi>?<if-true>:<if-false> Contoh:x=(a<b)?a:b..i<=10.elseyaitudenganoperatorternary„?‟..i++) { inti. .}...<stopcondition>. while(!found) { .tetapikelemahannyaadalahtidakbisauntukkondi si yangagakkompleks.17 Adacaralainuntuk menuliskanif. for(i=1. } } 2. tapijikaa= 10danb=5 maka barisiniakanmenjadix=b. . Format:for(<initialvalue>.then. jikaa =5danb=7 maka barisiniakanmenjadix= a.i<=10..<incremental>){} .. } boolfound. b) Format: while (<kondisi-lanjut>) {} . } C unsignedcharfound.2LoopWhile Pascal varfound:boolean..6.

.endsehinggadiperlukan{ dan}jikainginmengeksekusibeberapabarisperintah. } do { C do { . a) Format:do{}while(<kondisi-lanjut>).3.6..whiletidakbertindaksebagaibegin.... 2.. while(i<=j).18 c) Tidak ada keyword do pada while.whiledansyntaxnyasamauntukC maupunC++.. b) Keyworddo. deretan perintah setelah while() itulah yang akandieksekusi.. } C++ ... until(i>j). RepeatuntildalamC&C++adalahdo. while(i<=j). Loop Repeat Pascal Repeat .

atau: int billy [5] = { 16. 12071 }. 2.1 Array Array adalah kumpulan dari elemen-elemen/variable-variabel dengan tipe yang sama.1. . contoh: int billy [5]. 40. 77.1 Inisialisasi Array int billy [5]. Grafik: struktur: type name [elements]. 3.BAB 3 PEMBAHASAN MATERI STRUKTUR DATA DAN ALGORITMA 3.

2 Akses ke dalam Array name[index] billy[2] = 75. n<5 . 12071}. int n.1. result=0. 2. // Akses ke dalam elemen Array. n++ ) { result += billy[n].20 3. // contoh penggunaan array #include <iostream. // isi array billy ke 2 dengan 75 a = billy[2].h> 12206 int billy [] = {16. // isi variable a dg isi array billy ke 2 // deklarasi array baru billy[2] = 75. 77. int billy[5].1. int main () { for ( n=0 . } 3. } cout << result. 40.3 Array Multidimensi . return 0.

int jimmy [HEIGHT * WIDTH].m. } int main () { for (n=0.n++) for (m=0. is equivalent to int jimmy [15].m++) { jimmy[n][m]=(n+1)*(m+1). } return 0.h> // pseudo-array multidimensi #include <iostream.m++) { jimmy[n m]=(n+1)*(m+1).m<WIDTH. jimmy[1][3] int jimmy [3][5]. int main () { for (n=0.n<HEIGHT. (3 * 5 = 15) // array multidimensi #include <iostream. int n. int n.h> #define WIDTH 5 #define HEIGHT 3 #define WIDTH 5 #define HEIGHT 3 int jimmy [HEIGHT][WIDTH].21 int jimmy [3][5].m<WIDTH. } return 0.n++) for (m=0. } * WIDTH + .n<HEIGHT.m.

2 String dan Karakter Karakter : huruf. 'o'. 'e'. String : kumpulan karakter. memberikan nilai ke dalam string: cara I: . mystring = { 'H'. 'l'. mystring mystring[] = "Hello". '\0' }. char mystring [] = "Hello".. = "Hello". 'l'.z‟. „A. Contoh : „a. 'o'. 'e'.9‟ dll. 'l'. null character ('\0'): digunakan untuk mengakhiri string. char mystring [] = { 'H'. 'e'.Z‟. '\0' }. 'o'. 'l'. 'l'.. 'l'. '\0' }. char jenny [20]. Inisialisasi String char mystring[] = { 'H'.h : Pustaka berisi kumpulan fungsi-fungsi untuk memanipulasi operasi string dan karakter. „0.22 3.. String. Contoh: „ STMIK Indonesia Mandiri Bandung‟.

h> #include <string. contoh : strcpy (mystring. // mengisi nilai ke dalam string I #include <iostream. strcpy (szMyName. int b."A. Gracie"). Gracie int main () { char szMyName [20]. 'l'.23 mystring[0] mystring[1] mystring[2] mystring[3] mystring[4] mystring[5] = '\0'.3 Fungsi (Lanjutan) Arguments passed by value : Struktur: void duplicate (int a. } 3. 'l'. cara II: strcpy (string1. = = = = = 'H'. cout << szMyName. 'e'. int c) contoh: . "Hello"). 'o'.h> A. string2). return 0.

} int main () { int x=1. return 0. z. z=7. y=3. int& b. Bagan akses nilai ke parameter fungsi: Arguments passed by Reference: void duplicate (int& a. c*=2. z=14 void duplicate (int& a. y=3. y ). b*=2. y=6.h> x=2. int& c) // contoh fungsi by reference #include <iostream. z). y=" << y << ". x=5. } Akses nilai ke parameter fungsi by reference: . z=" << z. cout << "x=" << x << ". y.24 int z = addition ( x . int& b. int& c) { a*=2. duplicate (x.

permission_label_2: member2.h> Previous=99.25 // contoh lebih dari satu nilai #include <iostream. .4 Class Class adalah metode abstrak yang terdiri dari data dan fungsi anggota/member function untuk mendeskripsikan suatu objek/object. int& prev. permission labels: .. return 0. } int main () { int x=100. Next=101 void prevnext (int x. Next=" << z. z. y. int& next) { prev = x-1. y. next = x+1. z). } 3. prevnext (x.. cout << "Previous=" << y << ". Struktur Class: classclass_name{ permission_label_1: member1. }object_name.

public: void set_values (int. y = b. y.} }. // Class CRectangle #include <iostream.): rect. int area (void). int area (void) {return (x*y).  public : data dan fungsi public dapat diakses oleh semua class yang lain. Contoh akses data dan fungsi pada class menggunakan operator titik (. Contoh deklarasi Class: class CRectangle { int x. } rect. void CRectangle::set_values (int a.26  private : data dan fungsi private dari class yang hanya dapat diakses dari fungsi dan metode dari class yang sama atau dari class “friend”.area().int). (3. int b) { x = a. class “friend. y.int).  protected : data dan fungsi protected dapat diakses dari class yang sama.set_value myarea = rect.4). public: void set_values (int. dan class turunan dari class tersebut. } .h> area: 12 class CRectangle { int x.

set_values (3. rect.4).27 int main () { CRectangle rect. } . cout << "area: " << rect.area().

scanf("%d". &m). /* m = untuk nilai awal n = untik nilai akhir a = nilai periksa d = nilai ulang p = nilai tinjau */ ulang: printf("Masukkan bilangan awal (>=2):\n").d. goto ulang. a++) .\n\n"). } printf("Masukkan bilangan akhir:\n"). p=1.h> int main() { int m.LAMPIRAN //Tugas Praktek Struktur Data dan Algoritma 1 //Nama :Leonardo Davinsi Nainggolan //NIM :102406188 //KOM C 2010 //Mencari bilangan prima dari input awal & akhir // // // // // #include<stdio. scanf("%d". if(m==1) { printf("Bilangan prima terendah adalah 2.a.n. for(a=m. a<=n. &n).p=0.

} Run Program: .{ p=0. break. d<a. d++) { if((a%d)==0) { p=1. } } if(!p) printf("%d ". return 0. for(d=2. a). system("pause"). } printf("\n").

\n".a).\n".a).\n\n"). printf("Masukkan sebuah bilangan bulat. } int gega(int a) { if (a%2==0) { if (a==0) printf("Bilangan yang anda input adalah bilangan 0\n").\nSaya akan memberitahu bahwa bilangan itu genap atau ganjil. system("pause"). &a). scanf("%d"./****************************************** Tugas 2 Praktek Struktur Data dan Algoritma Nama : Leonardo Davinsi Nainggolan NIM : 102406188 KOM C2 2010 *******************************************/ //Mencari bilangan genap/ganjil dengan fungsi buatan #include <stdio. return 0. .h> int main () { int a. else printf("%d adalah bilangan GENAP. gega(a). } else printf("%d adalah bilangan GANJIL.

} /****************************************** Tugas 2 Praktek Struktur Data dan Algoritma Nama : Leonardo Davinsi Nainggolan NIM : 102406188 KOM C2 2010 *******************************************/ //Mencari x pada persemaan kuadrat dengan rumus abc #include <stdio. float b. &b. b.\n"). c. c). b. printf("Jika ax^2+bx+c=0. system("pause"). &a. printf("Program : menghitung persamaan kuadrat dengan rumus ABC. float c).h> int abc(float a. . printf("berikan koefisien nilai persamaan (a b c):\n"). abc(a. &c). int main () { float a.\n"). return 0. scanf("%f %f %f".

x). } else if (b==0.2f\n".2f\n".0) { x=-c/b. printf("Akar persamaan x1 = %6. float b. } } else if (c==0.0) { if(((c>0) && (a>0)) || ((c<0)&&(a<0))) printf("Persamaan mempunyai akar imajiner\n"). if(det>0) { x=(-b+sqrt(det))/(2*a). if(a==0. printf("Akar persamaan x1=0 dan x2 = %6. printf("Akar persamaan x = %6. x). } else { det=(b*b)-(4*a*c). x). x). x.2f\n".} int abc(float a. .0) { x=-b/a. printf("Akar persamaan x2 = %6. float c) { float det.2f\n". else { x=sqrt(-c/a). x=-sqrt(-c/a).

} else printf("Persamaan mempunyai akar imajiner\n". printf("Akar persamaan x1 = x2 = %6. x).2f\n". printf("Akar persamaan x2 = %6.2f\n". x).2f\n".printf("Akar persamaan x1 = %6. x). x=(-b-sqrt(det))/(2*a). } } . x). } else if (det==0) { x=-b/(2*a).

scanf("%d". t=1. } if(t==c) . &a[u]). scanf("%d"./****************************************** Tugas 3 Praktek Struktur Data dan Algoritma Nama : Leonardo Davinsi Nainggolan NIM : 102406188 KOM C 2010 *******************************************/ //Program : Program mencari letak nilai di Array #include<stdio. &c). a[35]. u<n.} printf("\n\nMasukkan nilai yang akan ditunjukkan letaknya pada array : "). u++){ if (a[u]==c) printf("Nilai %d berada pada a[%d]. // l = nilai array // u = untuk pengulangan // c = nilai yang akan dicari printf("Masukkan berapa nilai yang akan dimasukkan : ").\n". for(u=0. u<n. c. n. for(u=0. scanf("%d".h> int main() { int l. u. else t=t+1. u). &n).c. u++){ printf("\nA[%d] = ".u).

i = indeks baris //k. return 0.j = indeks kolom //a[][].j.h> int main() { int bar. scanf("%d". b[][]. printf(" x kolom ").b[10][10].\n").c[10][10].i.a[10][10]. } //Program : Penjumlahan matriks #include<stdio. &k). &bar).printf("Data yang anda cari tidak ada. //b."). .k. printf("\nTerima Kasih telah menggunakan program ini. scanf("%d". c[][] = matriks printf("masukkan ordo perkalian : baris ").

for(i=1.i<=bar. for(i=1.j<=k.} printf("\nTERIMA KASIH TELAH MENGGUNAKAN PROGRAM INI.i<=bar. } .} printf("\n-------------------+\n").i++){ for(j=1.j++){ scanf("%d ". system("pause").printf("\n Matriks A =\n"). printf("%d ".c[i][j]).j<=k. for(i=1.i++) for(j=1.\nMatriks B =\n").\n").} printf("\nDITAMBAHKAN DENGAN.j<=k.i<=bar.} printf("\n"). &b[i][j]). &a[i][j]).j++){ scanf("%d ". return 0.j++){ c[i][j]= a[i][j]+b[i][j].i++) for(j=1.

for(i=0.j.j++) { cout<<" "<<A[i][j].i.j<3.j++) { cout<<"Elemen ke "<<(i+1)<<"./****************************************** Tugas 4 Praktek Struktur Data dan Algoritma Nama : Leonardo Davinsi Nainggolan NIM : 102406188 KOM C2 2010 *******************************************/ //PROGRAM PERKALIAN MATRIKS #include <iostream> using namespace std.i++) { cout<<"|".\n"..C[3][3].k. cout<<"------------------------. for(j=0.i++) { for(j=0. } } //cetak matrix A cout<<"\nMatrik A : \n". cin>>A[i][j].j<3. //masukkan matrix A cout<<"Silahkan input matrik A : \n". int main() { int A[3][3]."<<(j+1)<<" : ".i<3.i<3.B[3][3]. . for(i=0.

cout<<"------------------------. for(i=0.j<3. } cout<<"|\n"<<endl.i++) { cout<<"|".j++) { .i<3. } cout<<endl. } } //cetak matrix B cout<<"\nMatrik B : \n". for(j=0.j++) { cout<<" "<<B[i][j].i<3. for(i=0."<<(j+1)<<" : ".j<3.i++) { for (j=0.j<3.i<3.} cout<<"|\n"<<endl.j++) { cout<<"Elemen ke "<<(i+1)<<".i++) { for(j=0.\n". } //Operasi Perkalian for (i=0. //masukkan matriks B cout<<"Silahkan input matrik B : \n". cin>>B[i][j].

i<3. } cout<<" |\n"<<endl. } } } //Menampilkan hasil cout<<"\nMatrik C.k++) { C[i][j]+= A[i][k]*B[k][j]. for(i=0.i++) { cout<<"| ". Hasil : \n". } . } cout<<endl.j<3.k< 3. for (k=0. for(j=0.j++) { cout<<" "<<C[i][j]. return 0.C[i][j]=0.

Sign up to vote on this title
UsefulNot useful