matdis-2011-6a

140
 Algoritma dan Bilangan Bulat Algoritma dan Bilangan Bulat Matematika Diskret (TKE 072107) Iwan Setiawan stwn at unsoed.ac.id Pemutakhiran terakhir: 13/01/12

description

fdsf

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