The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Ebook ini Adalah Ebook Laporan Praktikum Algoritma Dan Struktur Data

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by farida rustam2, 2023-01-28 22:22:52

Ebook Laporan Praktikum Algoritma Dan Struktur Data

Ebook ini Adalah Ebook Laporan Praktikum Algoritma Dan Struktur Data

Keywords: laporan praktikum algoritma dan struktur data,algoritma dan struktur data

201 Buatlahprogram barudengancarafile–new–sourceataugunakan CTRL–Nkemudianketiksourcecodeprogramsepertidibawahini: #include<iostream> #include<conio.h> usingnamespacestd; main() { charc[4]; inti; for(i=0;i<4;++i) { printf("Addressofc[%d]=%x\n",i,&c[i]); } getch(); }


202 Gambar5.14Pointerdalamarray Setelahprogramdiperbaikidandicompile,makatampilanhasilrunning akantampaksepertigambardibawahini:


203 Gambar5.15hasilrunningPointerdalamarray


204 5.6KESIMPULANDANSARAN a.Kesimpulan Pointermerupakantipedatayangmenunjukanposisipenyimpanan datadalamsebuahmemory.Pointerjugamerupakanpenunjukdalam komputer,yangmenunjukantataletakfileyangadadalammemory.Suatu pointerdapatmenuntukanalamatdarisuatuvariabellaindandapat mengaksesnilaiyangadadalamvariabelberpointer.Denganpointerkitadi mungkinkanuntukmenunjuksuatumemori,mendapatkanisidarimemori danmengubahisidarimemoriyangditunjuk.Pointerdapatdideklarasikan sepertivariabelbiasadenganmenambahkantanda*untukmengawalinama darivariabel. b.saran Laporan inimasih terdapatbanyak kesalahan karena terbatasnya pengetahuandankurangnyareferensimataeripadalaporanini,diharapkan pembacadapatmemberikansaransebagaimotivasipembuatanlaporan selanjutnya.


205


206


207 LAPORANPRAKTIKUM


208 ALGORITMADANSTRUKTURDATA NAMA :FARIDARUSTAM NPM :07352211047 FAKULTASTEKNIK PRODITEKNIKINFORMATIKA UNIVERSITASKHAIRUN TERNATE2022 BABVI


209 STACK(TUMPUKAN) 6.1PENDAHULUAN Penggunaan stack atau tumpukan merupakan salah satu komponenpentinguntukmenjalankanprosespenanganansuatudatadi sampinghallainsepertiQueue(antrian)linkedlistdantree.stackadalah suatukoleksiataukumpulanitem datayangterorganisasidalam bentuk urutanunsur,dimanasaatoperasipenambahandanpenghapusandatanya selaludilakukanpadabagianakhirdata,yangdisebutdengantopofstack. stackmerupakansuatukoleksidatadalam komputasi,untukmeletakkan sebuahelemenpadabagianatasdaristack,makakitamelakukanpush,dan untukmemindahkandaritempatyangdiatasdaristack.makakitalakukan push,danuntukmemindahkandaritempatyangdiatastersebut,kitalakukan pop. Karakteristikpentingstackadalahbersifat(ifoclastinfirsout)artinyadata yang terakhirmasuk merupakan data yang keluarterlebih dahulu.kita asumsikan saja misalnya memasukkan data alfabetsecara urutdaria sampaie(a-b-c-d-e).kemudianinginmengeluarkanalfabetb,makayang harusdilakukanadalahmengeluarkanalfabetC,d,danC secaraberurut sehinggaakhirnyadapat mengaksesb.stackjugabisadigunakandalam mengontroloperasidalam sebuahoperasi.selainitustackjugamerupakan


210 algoritmayangbaikyangdapatdigunakanuntukmembuatphaser(membaca urutanoperasidarisebuahpersamaanmatematika).padapenghitungan aritmatika,notasiintinyaadalahnotasiyangmenampilkanoperatorditengah operand.sedangkannotasipositiuc'xadalahoperasiyangmenempatkan operatorsetelahduaoperand.Stackjugamerupakantipedataabstrakyang umumdigunakanpadasebuahpemogramankomputer. Program stack, untuk mengimplementasikan stack di C++ kita membutuhkantigamethodataufungsipush():untukmenambahkandatake tumpukan,pop():untukmengeluarkandatadaritumpukandanprintstack() untukmenampilkandatayangadaditumpukan.selainuntuktigafungsi tersebut,kitaakanmembuatduafungsiopsionaluntukmengecekapakah tumpukankosong Empty()dantumpukanpenuhispull().untukuntuk menyimpandatakitabisamenggunakanemptyarraydenganmaksimum array yang akan yang nantiakan kita definisikan sebagaimaksimum tumpukan.Agardatatumpukannyaterstrukturkitabisamenggunakanstruch sehinggalebihmudahmengaksesdatatopdanarraydatanyasendiriseperti sebuahobject,karenainiadalahprogram konsolemakatentukitaakan membuatfungsimain(). 6.1TUJUANPRAKTIKUM a.MemahamiKonsepStack


211 b.MempraktekkancaraPenggunaanSTACKdalamC++ 6.2LANGKAH-LANGKAHPRAKTIKUM a.BukalahaplikasiDevC++melaluistartmenu Gambar6.1TampilanaplikasiDevC++ b.Tampilanawaltampaksepertigambardibawahini: Gambar6.2TampilanawalDevC++


212 c.Buatlahprogram barudengancarafile-new-sourceataugunakanCtrl–N atausepertipadagambardibawahini: Gambar6.3Membuatprojekbaru d.Ketiksourcecodeprogramnyasepertigambardibawahini


213 Gambar6.4StrukturcodeC++


214 Setelahmenulissourcenya,tekancompileandrunsepertigambardibawah ini: Gambar6.6Prosescompile e.Akanmunculdialoguntukmenyimpanprogram.Berikannamasesuai dengankeinginankalian.Missal“VariabeldanKonstanta”kemudiansave denganekstensi“Cpp”. Gambar6.4StrukturcodeC++ Gambar6.5Proses compile


215 Gambar6.6ProsesPenyimpanan Setelahkliksave,akanmunculjendelayangmenampakkanhasilprogram menghitungluas,keliling,danjari–jarilingkaranyangtelahdibuat.


216 f.Andatelahberhasilmembuatprogram menghitungluas,keliling,danjari– jarilingkarandenganbahasapemrogramanC++menggunakanDevC++. 6.3LATIHANKEGIATANPRAKTIKUM Buatlahprogram barudengancarafile-new-sourceataugunakanCTRL+N kemudianketiksourceataugunakanCTRL+N,kemudianketiksourcecode sepertidibawahini: /*Programofstackusingarray*/ #include<stdio.h> #include<stdlib.h> #include<conio.h> #defineMAX5 inttop=-1; intstack_arr[MAX]; Gambar6.7Hasilrunning


217 voidpush(); voidpop(); voiddisplay(); intmain() { intchoice; while(1) { printf("\n1.Push\n"); printf("2.Pop\n"); printf("3.Display\n"); printf("4.Quit\n\n"); printf("Enteryourchoice:"); scanf("%d",&choice); switch(choice) {


218 case1: push(); break; case2: pop(); break; case3: display(); break; case4: exit(1); default: printf("\nPILIHANTIDAKTERSEDIA\n"); } } getch();


219 } voidpush() { intpushed_item; if(top==(MAX-1)) printf("StackOverflow\n"); else { printf("\nEntertheitemtobepushedinstack:"); scanf("%d",&pushed_item); top=top+1; stack_arr[top]=pushed_item; } } voidpop() {


220 if(top==-1) printf("StackUnderflow\n"); else{ printf("Poppedelementis:%d\n",stack_arr[top]); top=top-1; } } voiddisplay() { inti; if(top==-1) printf("Stackisempty\n"); else{ printf("\nStackelements:\n"); for(i=top;i>0;i--) printf("%d\n",stack_arr[i]);


221 } } Compiledanperbaikisampaibenar. Gambar6.8Sourcecodelatihan


222 latihan1 6.4STUDIKASUS BerikutFlowchart“Stack”: Gambar6.9sourcecodelatihan1 Gambar6.10tampilanhasilrunning


223 Flowchart6.1stack Penjelasan: Flowchartdiatas menjelaskan tentang stack atau tumpukanarray yangdimanadiawalidengansimbolterminator.Setelahitu mendeklarasikanNODE,TOP:NULLVoidPush,VoidPop,voiddisplay,int choice=0,kemudian masukkekondisiwhile(1)danprint1.Push,2.Pop,


224 3.Display,4.Quit.Masukkan pilihan 1,2,3 atau 4.Akhiridengan simbol terminator. BerikutSourceCode“Stack”: #include<stdio.h> #include<stdlib.h> #include<conio.h> typedefstructnode { intdata; structnode*link; } NODE; NODE*top=NULL; Voidpush(); voidpop();


225 voiddisplay(); intmain() { intchoice=0; while(1) { printf("\n1.Push\n"); printf("2.Pop\n"); printf("3.Display\n"); printf("4.Quit\n\n"); printf("Enteryourchoice:"); scanf("%d",&choice); switch(choice) { case1: push();


226 break; case2: pop(); break; case3: display(); break; case4: exit(0); default: printf("\nPILIHANTIDAKTERSEDIA\n"); } } getch(); } voidpush()


227 { NODE*temp; intinfo=0; printf("Enterdatatobepushed(0-9999):"); scanf("%d",&info); temp=(NODE*)malloc(sizeof(NODE)); if(temp==NULL) printf("\nMemoryAllocationFailed"); else { temp->data=info; temp->link=top; top=temp; printf("NodehasbeeninsertedatTop(Front)Successfully!!\n"); } }


228 voidpop() { NODE*tmp; if(top==NULL) printf("Stackisempty!!\n"); else { temp=top; printf("Poppeddata:%d\n",tmp->data); top=top->link; free(tmp); } } voiddisplay() { NODE*temp;


229 if(top==NULL) { printf("EmptyStack!!!\n"); } else { temp=top; printf("Stack:-\n"); while(temp!=NULL) { printf("\n____\n"); printf("|%4d|",temp->data); temp=temp->link;} } } Compiledanperbaikisampaibenar


230 Gambar6.11sourcecodestack


231 Gambar6.11sourcecodestack Gambar6.12sourcecodestack


232 Gambar6.12sourcecodestack Gambar6.13tampilanhasilrunningstack Gambar6.13tampilanhasilrunningstack


233 6.5KESIMPULANDANSARAN A)Kesimpulan Penggunaanstackatautumpukanmerupakansalahsatu komponen pentinguntukmenjalankanprosespenanganansuatudatadisamping hallainsepertiQueue(antrian)linkedlistdantree.stackadalahsuatu koleksiataukumpulanitem datayangterorganisasidalam bentuk urutanunsur,dimanasaatoperasipenambahandanpenghapusan


234 datanyaselaludilakukanpadabagianakhirdata,yangdisebutdengan topofstack.stackmerupakansuatukoleksidatadalam komputasi, untukmeletakkansebuahelemenpadabagianatasdaristack,maka kitamelakukanpush,danuntukmemindahkandaritempatyangdi atasdaristack.makakitalakukanpush,danuntukmemindahkandari tempatyangdiatastersebut,kitalakukanpop. Karakteristikpentingstackadalahbersifat(ifoclastinfirsout) artinyadatayangterakhirmasukmerupakandatayangkeluarterlebih dahulu.kita asumsikan saja misalnya memasukkan data alfabet secaraurutdariasampaie(a-b-c-d-e).kemudianinginmengeluarkan alfabetb,makayangharusdilakukanadalahmengeluarkanalfabetC, d,danCsecaraberurutsehinggaakhirnyadapatmengaksesb.stack jugabisadigunakandalammengontroloperasidalamsebuahoperasi. selainitustackjugamerupakanalgoritmayangbaikyangdapat digunakanuntukmembuatphaser(membacaurutanoperasidari sebuah persamaan matematika).pada penghitungan aritmatika, notasiintinyaadalahnotasiyangmenampilkanoperatorditengah operand. sedangkan notasi positiuc'x adalah operasi yang menempatkanoperatorsetelahdua operand.Stackjugamerupakan tipedataabstrakyangumum digunakanpadasebuahpemograman komputer.


235 Program stack,untukmengimplementasikan stackdiC++ kita membutuhkantigamethodataufungsipush():untukmenambahkan dataketumpukan,pop():untukmengeluarkandatadaritumpukandan printstack()untukmenampilkandatayangadaditumpukan.selain untuktigafungsitersebut,kitaakanmembuatduafungsiopsional untukmengecekapakahtumpukankosongEmpty()dantumpukan penuhispull().untukuntukmenyimpandatakitabisamenggunakan emptyarraydenganmaksimum arrayyangakanyangnantiakankita definisikansebagaimaksimum tumpukan.Agardatatumpukannya terstrukturkita bisa menggunakan struch sehingga lebih mudah mengaksesdatatopdanarraydatanyasendirisepertisebuahobject, karenainiadalahprogram konsolemakatentukitaakanmembuat fungsimain(). b).saran. Laporan inimasih terdapatbanyak kesalahan karena terbatasnya pengetahuan dan kurangnya referensi mataeri pada laporan ini, diharapkan pembaca dapat memberikan saran sebagai motivasi pembuatanlaporanselanjutnya.


236


237


238 LAPORANPRAKTIKUM ALGORITMADANSTRUKTURDATA NAMA :FARIDARUSTAM NPM :07352211047 FAKULTASTEKNIK PRODITEKNIKINFORMATIKA UNIVERSITASKHAIRUN TERNATE2022


239 BABVII QUEUE 7.1PENDAHULUAN Queueatauantrianmerupakankumpulanelemenyangpengisiandan penghapusanelemenyangdilakukandarisisiataugerbangyang berbedabeda.Pengisiandilakukandarigerbangbelakangdan penghapusangerbangdepan.Halinimenunjukanbahwauntukqueue mempunyaiduagerbangyaitugerbangdepandanbelakang.Dengan demikiandapatdlihatbahwaqueuemempunyaisifatFIFO(Fristin, Fristout),yaituelemenyangpertamamasukakankeluarpertamajuga. Represnatsiqueuedapatdeklarasidenganmenggunakanarrayatau linkedlistresresntasiqueuedenganarrayataulinkedlist. Representasiqueue dengan arrayada penunjuk depan dan belakangyangdigunakanuntukmenunjukelemenposisidepandan elemenposisibelakang.sehinggadapatdiketahuiqueuekosongatau tidak.Queuedapatditambahselamabelakangtidaksamadenganisi danmaksimum array.Operasipenyisipanelemenqueuedigunakan untukmengambilataumenghapuselemendansuatuqueue.Operasi penghapusanelemenpadacircularyangdihapusadalahselaluyang


240 beradadidepansehinggapenunjukdepanakannaiksatu(depan+1) jikadepanlebihkecildarimaksimum elemenarray.tetapidpenadi aturmenjadisatu(depan=1)jikadepansamadenganmaksimum elemenarray. 7.2TUJUANPRAKTIKUM a)Praktikanmengenalsalahsatulagitipekhususdarilinklistyaitu queue/antrianbesertaseluruhoperasiyangadapadanya. b)Praktikandiharapkandapatmenerapkanteorimengenaisinglelink listdidalampembuatanprogramqueue. c)Praktikandalammenjelaskanjenis-jenisqueue. 7.3 7.3LANGKAH-LANGKAHPRAKTIKUM g.BukalahaplikasiDevC++melaluistartmenu Gambar7.1TampilanaplikasiDevC++ h.Tampilanawaltampaksepertigambardibawahini:


241 Gambar7.2TampilanawalDevC++ i.Buatlahprogram barudengancarafile-new-sourceataugunakanCtrl–N atausepertipadagambardibawahini:


242 Gambar7.3Membuatprojekbaru j.Ketiksourcecodeprogramnyasepertigambardibawahini:


243 Gambar7.4struktrodeC++


244 Gambar7.5strukturcodec++ e.Setelahmenulissourcenya,tekancompileandrunsepertigambardi bawahini: Gambar6.6strukturcodec++ .Akan munculdialog untuk menyimpan program.Berikan nama sesuai dengankeinginankalian.Missal“VariabeldanKonstanta”kemudiansave Gambar7.6strukturcode c++


245 denganekstensi“Cpp”. Gambar7.7ProsesPenyimpanan Setelahkliksave,akanmunculjendelayangmenampakkanhasilprogram menghitungluas,keliling,danjari–jarilingkaranyangtelahdibuat.


246 Andatelahberhasilmembuatprogrammenghitungluas,keliling,danjari– Gambar7.8Hasilrunning


247 jarilingkarandenganbahasapemrogramanC++menggunakanDevC++. 7.4LatihanKegiatanPraktikum a.Latihan1 Buatlahprogram barudengancaraklikCtrl–N kemudianketik sourcecodeprogramnyasepertidibawahini: //*Programofqueueusingarray*/ #include<stdio.h> #include<stdlib.h> #include<conio.h> #defineMAX5 intrear=-1; intfront=-1; intqueue_arr[MAX]; voidenqueue(); voiddequeue(); voiddisplay();


248 main() { intchoice; while(1) { printf("1.Insert\n"); printf("2.Delete\n"); printf("3.Display\n"); printf("4.Quit\n"); printf("Enteryourchoice:"); scanf("%d",&choice); //tujuanPraktikum: //1)MemahamiKonsepQueue //2)MempraktekkancaraPenggunaanQueuedalamC++ //5) switch(choice)


249 { case1: enqueue(); break; case2: dequeue(); break; case3: display(); break; case4: exit(1); default: printf("PILIHANTIDAKTERSEDIA\n"); } }


250 getch(); } voidenqueue() { intadded_item; if(rear==MAX-1) printf("QueueOverflow\n"); else { if(front==-1) front=0; printf("Inputtheelementforadding inqueue:"); scanf("%d",&added_item); rear=rear+1; queue_arr[rear]=added_item;


Click to View FlipBook Version