matdis-2011-6a
-
Upload
amrul-hakim-romas -
Category
Documents
-
view
219 -
download
3
description
Transcript of matdis-2011-6a
-
AlgoritmadanBilanganBulatAlgoritmadanBilanganBulat
MatematikaDiskret(TKE072107)
IwanSetiawanstwnatunsoed.ac.id
Pemutakhiranterakhir:13/01/12
-
Algoritma
-
Masalah
-
Kemiripansubstansimasalah
-
Pengurutan,pencarian,perutean,...
-
Masalahmempunyaiparameter
-
Instanceofaproblem(pemberiannilaiuntuksemuaparametermasalah)
-
Ide
-
Solusi(pemecahanmasalah)
-
Urutanlangkahlangkahuntukmemecahkanmasalah.
(denganmetodetertentu)
-
Proses:menjalankansepedamotor
Algoritma:panduanmenjalankansepedamotor
Langkahlangkah:1.siapkansepedamotor2.naiklahketempatduduknya3.kembalikanpenyangga4.masukkankuncikontak5.putarkuncikontakkeposision6.tekantombolstarter7....
-
Berikan1contohalgoritma!
-
Pembuatanmakanan,menjalankansepedamotor,menanaknasi,percobaankimia,...
-
AlgoritmaProgramPenjumlahan
1.Deklarasikanvariabela,b,danc
2.Bacavariabeladanbdarimasukan
3.Jumlahkanvariabeladanb,kemudiansimpanhasilnyakevariabelc
4.Tampilkanisivariabelckelayar
Adasebagianorangyangmemulaialgoritmadengankatamulaidandiakhiridenganselesaiuntukmenandaibahwalangkahlangkahdalamsebuahalgoritmadimulaiatautelahselesai.
-
Setiaplangkahalgoritmaharusdiikuti.
-
Bagaimanajikatidak?
-
NotasiAlgoritma
-
Kalimatdeskriptif
-
PROGRAMPenjumlahanDiberikanduabuahbilanganpositifadanb.Algoritmapenjumlahanakanmenjumlahkankeduabilangantersebutdanmenyimpanhasilnyakedalamsebuahvariabel.
ALGORITMA1.Deklarasikanvariabela,b,danc2.Bacavariabeladanbdarimasukan3.Jumlahkanvariabeladanb,kemudiansimpan
hasilnyakevariabelc4.Tampilkanisivariabelckelayar
-
Apayangdapatkitasimpulkandarikonsepalgoritmayang
sudahdibahas?
-
Menggunakankatakerja,aktif.
-
Bagaimanadenganpernyataanbersyarat?
-
Jika,maka...
-
Diagramalir?
-
Algoritmadalambentukdiagram,dengansimbolsimbolstandar.
-
MulaiatauSelesai
Proses
MasukanatauKeluaran
PengambilanKeputusan
ProsesTerdefinisi
Penghubung
AliranLangkah
-
Mulai
Deklarasia,b,c
Bacaadanb
c=a+b
Tampilkanc
Selesai
-
?
??
?
https://en.wikipedia.org/wiki/File:Euclid_flowchart_1.png
-
Relatifsusahdigunakanuntukprogramdenganalgoritmayangpanjangdanrumit.
-
Pseudocode?
-
Semu
-
Kodeinformalsebuah(algoritma)program.
-
Lebihdekatkekodepemrograman,tapitidakspesifikkebahasapemrogramantertentu.
-
Tidakadastandarbaku
-
Gunakankatakuncipemrograman.
-
set,read,get,print,write,compute,run,ifthen,elseif,while,dowhile,for,goto,...
-
declarevariabela,bgeta,bif(btidaksamadengannol)then
computec=a/bprintc
elseprintNilaibtidakbolehnol
returnstatussukses
-
PROGRAMFahrenheitCelcius{ProgramuntukmencetaktabelkonversiFahrenheitkeCelciusdarixsampaiydengankenaikansebesarstep.Masukan:suhuawal,suhuakhir,stepKeluaran:tabelkonversisuhudalamCdanF}
DEKLARASIfahr,celc:realx,y,step:integer
ALGORITMAread(x,y,step)fahr xwhilefahrydo
celc=5/9*(fahr32)write(fahr,celc)fahr fahr+step
endwhile
-
Buatlahalgoritmadengankalimatdeskriptifuntukmencarielementerbesardarisebuahhimpunanyangberisinbuahelemenbilanganbulat!
-
a1,a
2,a
3,a
4,,a
n
-
AlgoritmadenganKalimatDeskriptif
a1,a
2,a
3,a
4,,a
n
1)Asumsikana1sebagaielementerbesarsementara.Simpana
1
kedalamvariabelmaks.
2)Bandingkanmaksdenganelemena2.Jikaa
2lebihbesardari
maks,makanilaimaksdigantidengana2.
3)Ulangilangkahkeduauntukelemenelemenberikutnya(a3,a
4,
a5,...,a
n).
4)Berhentijikasudahtidakadalagielemenyangdibandingkan.Jadi,variabelmaksberisinilaidarielementerbesar.
maks
maks=a1
-
AlgoritmadenganKalimatDeskriptif
a1,a
2,a
3,a
4,,a
n
1)Asumsikana1sebagaielementerbesarsementara.Simpana
1
kedalamvariabelmaks.
2)Bandingkanmaksdenganelemena2.Jikaa
2lebihbesardari
maks,makanilaimaksdigantidengana2.
3)Ulangilangkahkeduauntukelemenelemenberikutnya(a3,a
4,
a5,...,a
n).
4)Berhentijikasudahtidakadalagielemenyangdibandingkan.Jadi,variabelmaksberisinilaidarielementerbesar.
a2>maks?
maks=a1
-
maks=a1
AlgoritmadenganKalimatDeskriptif
a1,a
2,a
3,a
4,,a
n
1)Asumsikana1sebagaielementerbesarsementara.Simpana
1
kedalamvariabelmaks.
2)Bandingkanmaksdenganelemena2.Jikaa
2lebihbesardari
maks,makanilaimaksdigantidengana2.
3)Ulangilangkahkeduauntukelemenelemenberikutnya(a3,a
4,
a5,...,a
n).
4)Berhentijikasudahtidakadalagielemenyangdibandingkan.Jadi,variabelmaksberisinilaidarielementerbesar.
a2>maks?Jikaya
maks=a2
-
maks=a1
AlgoritmadenganKalimatDeskriptif
a1,a
2,a
3,a
4,,a
n
1)Asumsikana1sebagaielementerbesarsementara.Simpana
1
kedalamvariabelmaks.
2)Bandingkanmaksdenganelemena2.Jikaa
2lebihbesardari
maks,makanilaimaksdigantidengana2.
3)Ulangilangkahkeduauntukelemenelemenberikutnya(a3,a
4,
a5,...,a
n).
4)Berhentijikasudahtidakadalagielemenyangdibandingkan.Jadi,variabelmaksberisinilaidarielementerbesar.
a2>maks?Jikaya
maks=a2
-
PROGRAMCariElemenTerbesar{Programuntukmencarielementerbesardarisebuahhimpunanbilanganbulata
1,a
2,,a
n.Elementerbesarakandisimpandidalam
variabelmaks.Masukan:a
1,a
2,,a
n
Keluaran:maks}
DEKLARASIi:integermaks:integer
ALGORITMAmaks afori 2tondo
ifai>maksthenmaks a
i
endifendfor
-
procedureCariElemenTerbesar(input:a1,a
2,,a
n:integer,outputmaks:
integer){Prosedurmencarielementerbesardarisebuahhimpunanbilanganbulata
1,a
2,,a
n.Elementerbesarakandisimpandidalamvariabel
maks.Masukan:a
1,a
2,,a
n
Keluaran:maks}
Deklarasii:integer
Algoritmamaks afori 2 tondo
ifai>maksthenmaks a
i
endifendfor
-
Tajuk,deklarasi,algoritma.
-
Intinyaadalahmemudahkandeskripsialgoritmadalambentukterstrukturdan...
-
memudahkanpulasaatmelakukanpenulisankodeyangspesifik
kebahasapemrograman.
-
BeberapaContohAlgoritma
-
Buatlahalgoritmadalamkalimatdeskriptifdanpseudocodeuntukalgoritmaberikut.
1)Algoritmamempertukarkannilaidari2buahvariabel.
2)Algoritmamencarinilaitertentudidalamhimpunanelemen.
-
Algoritmapengurutan.
-
BilanganBulat(Integer)
-
Bilanganyangbulat:)(bukanpecahan,positifdannegatif)
-
Diskretataukontinyu?
-
BilanganbulatbanyakdibahaspadaTeoriBilangan.
-
Sifatpembagianbilanganbulatmelahirkankonsepbilanganprima,aritmatikamodulo,
danalgoritmaEuclidean.
-
SifatPembagianpadaBilanganBulat
-
Salahsatukonsepyangberguna.
-
Bilanganprima.(bilanganyanghanyahabisdibagioleh1dandirinyasendiri)
-
Sembarangbilanganbulatpositifdapatdinyatakansebagaihasil
perkaliansatuataulebihbilanganprima?
-
Definisisifatpembagian:
misaladanbadalah2buahbilanganbulatdengansyarata0.Kitadapatmenyatakanbahwaahabismembagibjikaterdapatbilanganbulatcsedemikiansehinggab=ac.
-
Notasi:a|bjikab=ac,cZdana0.
-
Jikabdibagidengana,makahasilpembagiannyaberupabilanganbulat.
-
Pernyataanahabismembagibdapatditulisdenganbkelipatana.
-
4|12karena12/4=3
Bulat,takbersisa
-
12=4x3
-
Apakah4|13?
-
HasilPembagianBilanganBulat
Jikahasilpembagianbilanganbulatdinyatakansebagaibulatpula,makasembarangbilanganbulatbiladibagidengansebuahbilanganbulatpositifakanselaluterdapat:
1)Hasilbagi
2)Sisapembagian
-
13dibagidengan4,akanmemberikanhasilbagi3,dansisa(hasilbagi)1.
-
Padakasus4|12,sisahasilbaginyaadalah0.
-
Sisahasilpembagianselalulebihbesaratausamadengannol,tetapilebih
kecildaripembagi.
0r
-
Misalmdannadalah2buahbilanganbulatdengansyaratn>0.Jikamdibagidengannmakaterdapat2buahbilanganbulatunikq(quotinent)danr(remainder),sedemikiansehingga:
m=nq+r
dengan0r
-
Notasiyangdigunakanuntukmengekspresikanhasilbagidansisaadalahdengan
menggunakanoperatormod.
q=mdivn,r=mmodn
-
Berapahasilbagidansisajika1987dibagidengan97?
-
Hasilbagi20,sisa47.
-
TuliskandalamekspresiTeoremaEuclidean!
-
1987=97.20+47
-
Tuliskandenganoperatordivdanmod!
-
1987div97=20
-
1987mod97=47
-
Sisapembagiantakbolehnegatif.
-
PembagiBersamaterBesar(PBB)
-
Duabuahbilanganbulatdapatmemilikifaktorpembagiyangsama.
-
FaktorpembagibersamayangpentingadalahfaktorPembagiBersamaterBesar(PBB).
(greatestcommondivisor,gcdataufaktorpersekutuanterbesar,FPB)
-
Bilangan45dan36memilikifaktorpembagiberapasaja?
-
Faktorpembagi45:1,3,5,9,15,45Faktorpembagi36:1,2,3,4,9,12,18,36
Faktorpembagibersama:1,3,9Jadi,PBB(45,36)=9
yangterbesar9
-
Misaladanbadalah2buahbilanganbulattidaknol.Pembagibersamaterbesar(PBB)dariadanbadalahbilanganbulatterbesardsedemikiansehinggad|adand|b.
Jadi,dapatkitanyatakanbahwaPBB(a,b)=d.
DefinisiPembagiBersamaTerbesar
-
SifatsifatPBBdapatdinyatakanpadaTeorema5.2padabukuteksedisiketiga,halaman185.
-
Misalmdannadalah2buahbilanganbulatdengansyaratn>0sedemikiansehingga:
m=nq+r,0r
-
AlgoritmaEuclidean
-
MencariPBBdari2BuahBilangan
UntukmencariPBBdari2buahbilanganbulatmdannadalahdengan:
1)mendaftarsemuapembagidarimasingmasingbilanganmdann,
2)memilihpembagipersekutuanyangmempunyainilaiterbesar.
-
Terdapatalgoritmayangmangkus/efektifuntukmencariPBB,yaitudengan
AlgoritmaEuclidean.
-
DidasarkanpadaTeoremaPBB(m,n)=PBB(n,r)yangdilakukanberturutturut.
(sampaikitatemukansisanol)
-
AlgoritmaEuclidan
1) Jikan=0maka
madalahPBB(m,n);
selesai.
tetapijikan0,
lanjutkankelangkah2.
2) Bagilahmdenganndengansisar.
3)Gantinilaimdengannilain,dannilaindengannilair,laluulangkembalilangkah1.
Catatan:jikamn,makatukardulunilaimdann.
-
?
??
?
https://en.wikipedia.org/wiki/File:Euclid_flowchart_1.png
-
PBB(80,12)?
-
AlgoritmaEuclidan(1)
1) Jikan=0maka
madalahPBB(m,n);
selesai.
tetapijikan0,
lanjutkankelangkah2.
2) Bagilahmdenganndengansisar.
3)Gantinilaimdengannilain,dannilaindengannilair,laluulangkembalilangkah1.
m=80,n=12
80dibagi12,sisa8(r)
m=12,n=8
-
12dibagi8,sisa4(r)
AlgoritmaEuclidan(2)
1) Jikan=0maka
madalahPBB(m,n);
selesai.
tetapijikan0,
lanjutkankelangkah2.
2) Bagilahmdenganndengansisar.
3)Gantinilaimdengannilain,dannilaindengannilair,laluulangkembalilangkah1.
m=12,n=8
m=8,n=4
-
8dibagi4,sisa0(r)
AlgoritmaEuclidan(3)
1) Jikan=0maka
madalahPBB(m,n);
selesai.
tetapijikan0,
lanjutkankelangkah2.
2) Bagilahmdenganndengansisar.
3)Gantinilaimdengannilain,dannilaindengannilair,laluulangkembalilangkah1.
m=8,n=4
m=4,n=0
-
AlgoritmaEuclidan(4)
1) Jikan=0maka
madalahPBB(m,n);
selesai.
tetapijikan0,
lanjutkankelangkah2.
2) Bagilahmdenganndengansisar.
3)Gantinilaimdengannilain,dannilaindengannilair,laluulangkembalilangkah1.
m=4,n=0
Selesai!
PBB(80,12)=4
-
NotasipseudocodeuntukAlgoritmaEuclideandapatdilihatpadabukuteks
edisiketiga,halaman189.
-
Misaladanbadalah2buahbilanganbulatpositif,makaterdapatbilanganbulatmdannsedemikiansehinggaPBB(a,b)=ma+nb.
TeoremaKombinasiLanjar
-
PBB(80,12)=4m.80+n.12=4
(1).80+7.12=4
m=1dann=7
-
UntukmenemukankombinasilanjaradanbpadaPBB(a,b)adalahdenganmelakukan
pembagiansecaramundurpadaAlgoritmaEuclidean.
-
DuabuahbilanganbulatadanbdikatakanrelatifprimajikaPBB(a,b)=1.
DefinisiRelatifPrima
-
Apakahbilangan7dan11relatifprima?
-
Jikaadanbrelatifprimamakadenganteoremakombinasilanjardapatdinyatakan:
PBB(a,b)=ma+nb
1=ma+nb
ma+nb=1
-
AritmatikaModulo
-
Operatoryangdigunakanadalahmod.
-
hasilbagidansisa.
-
Misalaadalahbilanganbulatdanmadalahbilanganbulat>0.Operasiamodmmemberikansisajikaadibagidenganm.
Dengankatalain,amodm=r,sedemikiansehinggaa=mq+r,dengan0r
- Notasi:amodm=r,sedemikiansehinggaa=mq+r,dengan0r
-
Bilanganadanbkongruendalammodulomjikakeduabilangantersebutmempunyaisisa(r)yangsamajikadibagidenganbilanganbulatpositifm.
amodm=rbmodm=r
-
ab(modm)
-
a / b(modm)
-
DefinisiKekongruenan
Misaladanbadalahbilanganbulat,danmadalahbilangan>0,makaab(modm)jikamhabismembagiab.
-
Apakah17dan2kongruendalammodulo3?
-
Dengandefinisioperatormod,makaamodm=rdapatdituliskanar(modm)
-
Terdapatsifatsifatpengerjaanhitungpadaaritmatikamodulo,bacaTeorema5.5pada
bukuteksedisiketiga,halaman193.
-
InversiModulo
-
Inversidaripembagian?
-
KekongruenanLanjar
-
axb(modm)
-
BilanganPrima
-
Bilanganbulatpositifp(p>1)disebutbilanganprimajikapembaginya1danp.
-
2,3,5,7,11,13,17,19,23,29,31,...
-
Bilanganselainprimadisebutkomposit(composite.)
-
Teorifundamentalaritmatik:
Setiapbilanganbulatpositifyanglebihbesaratausamadengan2dapatdinyatakansebagai
perkaliansatuataulebihbilanganprima.
-
Bilanganprimadankompositdapatdinyatakansebagaiperkaliandari
satuataulebihfaktorprima.
-
Faktorprimadarisebuahbilanganselalulebihkecilatausamadenganakarkuadrat
daribilangantersebut.
- Misalaadalahfaktorprimadarin,dengan1
-
Faktorprimadarinselalulebihkecilatausamadengann.
-
Teoremabilangankomposit:
jikanadalahbilangankomposit,makanmempunyaifaktorprimayanglebih
kecilatausamadengann.
-
Apakah199merupakanbilanganprimaataukomposit?
-
Teoremabilangankomposit:
jikanadalahbilangankomposit,makanmempunyaifaktorprimayanglebih
kecilatausamadengann.
-
199=?
-
Bilanganprimayang199?
-
Karena199tidakhabisdibagi2,3,5,7,11,dan13,maka199adalahbilanganprima.
-
Referensi
Daviduck,B.,IntroductiontoProgramminginC++:Algorithms,FlowchartsandPseudocode,2000
Kusuma,E.D.,PemrogramanDasar:Pendahuluan,Presentasi,2009
Munir,R.,AlgoritmadanPemrogramandalamBahasaPascaldanC,PenerbitInformatika,2009
Munir,R.,MatematikaDiskret,EdisiKetiga,PenerbitInformatika,2009
Salindia 1Salindia 2Salindia 3Salindia 4Salindia 5Salindia 6Salindia 7Salindia 8Salindia 9Salindia 10Salindia 11Salindia 12Salindia 13Salindia 14Salindia 15Salindia 16Salindia 17Salindia 18Salindia 19Salindia 20Salindia 21Salindia 22Salindia 23Salindia 24Salindia 25Salindia 26Salindia 27Salindia 28Salindia 29Salindia 30Salindia 31Salindia 32Salindia 33Salindia 34Salindia 35Salindia 36Salindia 37Salindia 38Salindia 39Salindia 40Salindia 41Salindia 42Salindia 43Salindia 44Salindia 45Salindia 46Salindia 47Salindia 48Salindia 49Salindia 50Salindia 51Salindia 52Salindia 53Salindia 54Salindia 55Salindia 56Salindia 57Salindia 58Salindia 59Salindia 60Salindia 61Salindia 62Salindia 63Salindia 64Salindia 65Salindia 66Salindia 67Salindia 68Salindia 69Salindia 70Salindia 71Salindia 72Salindia 73Salindia 74Salindia 75Salindia 76Salindia 77Salindia 78Salindia 79Salindia 80Salindia 81Salindia 82Salindia 83Salindia 84Salindia 85Salindia 86Salindia 87Salindia 88Salindia 89Salindia 90Salindia 91Salindia 92Salindia 93Salindia 94Salindia 95Salindia 96Salindia 97Salindia 98Salindia 99Salindia 100Salindia 101Salindia 102Salindia 103Salindia 104Salindia 105Salindia 106Salindia 107Salindia 108Salindia 109Salindia 110Salindia 111Salindia 112Salindia 113Salindia 114Salindia 115Salindia 116Salindia 117Salindia 118Salindia 119Salindia 120Salindia 121Salindia 122Salindia 123Salindia 124Salindia 125Salindia 126Salindia 127Salindia 128Salindia 129Salindia 130Salindia 131Salindia 132Salindia 133Salindia 134Salindia 135Salindia 136Salindia 137Salindia 138Salindia 139Salindia 140