46959704-algoritma-dan-struktur-data-1 (2).pdf

Upload: davejkn

Post on 02-Mar-2016

56 views

Category:

Documents


2 download

DESCRIPTION

tutorial struktur data

TRANSCRIPT

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    1

    Pertemuan 1 15/11/2010

    Dosen: Moh.Sjukani

    Susun program dalam bahasa C/C++ untuk menghitung total dua buah bilangan (misal 5 dan 2), kemudian mencetak total tersebut

    Bahasa C

    Cara 1.

    #include void main (){int A,B,T; A=5; B=2; T=A+B; printf("Total = %i ", T);}

    Cara 2

    #include void main (){int A,B,T; A=5; B=2; printf("Total = %i ", T=A+B);}

    Bahasa C++

    Cara 1.

    #include void main (){int A,B,T; A=5; B=2; T=A+B; cout

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    2

    Bahasa C

    Cara 1.

    #include void main (){int A,B,T; scanf("%i", &A); scanf("%i", &B); T=A+B; printf("\nTotal Bilangan = %i ", T);}

    Cara 2

    #include void main (){int A,B,T; scanf("%i", &A); scanf("%i", &B); printf("\nTotal Bilangan = %i ", T=A+B);}

    Soal-2

    Input 2 Bilangan & Cetak Total

    Bahasa C++

    Cara 1.

    #include void main (){int A,B,T; cin >> A; cin >> B; T=A+B; cout

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    3

    Soal-2

    Bahasa C

    Cara 1.

    #include void main (){int A,B,T; printf("Bilangan 1 = "); scanf("%i", &A); printf("Bilangan 2 = "); scanf("%i", &B); T=A+B; printf("\nTotal Bilangan = %i", T);}Cara 2

    #include void main (){int A,T; T=0; printf("Bilangan 1 = "); scanf("%i", &A); T=A+T; printf("Bilangan 2 = "); scanf("%i", &A); T=A+T; printf("\nTotal Bilangan = %i ", T);}

    Bahasa C++

    Cara 1.

    #include void main (){int A,B,T; cout > A; cout > B; T=A+B; cout A;T=A+T;cout

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    4

    Susun program untuk menginput 4 buah bilangan bulat, kemudian mencetak total keempat buah bilangantersebut

    Soal-3

    Input 4 Bilangan & Cetak Total

    Bahasa C

    Cara 1.

    #include void main (){int A,B,C,D,T;scanf("%i %i %i %i", &A,&B,&C,&D);T=A+B+C+D;printf("\nTotal Bilangan = %i ", T);}

    Bahasa C

    Cara 2.

    #include void main (){int A,T;T=0;scanf("%i", &A);T=A+T;scanf("%i", &A);T=A+T;scanf("%i", &A);T=A+T;scanf("%i", &A);T=A+T;printf("\nTotal Bilangan = %i ", T);}

    START

    T=A+B+C+D

    printf T

    END

    scanf A,B,C,D

    Bahasa CMenggunakan cara LOOPCara 3.

    #include void main (){int A,T,I;T=0;for (I=1;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    5

    Susun algoritma untuk mencetak LUAS sebuah segitiga bila diketahui ALAS = 7 cm, dan TINGGI = 5 cm

    Soal-4

    Mencetak Luas Segitiga

    Bahasa C

    Cara 1.

    #include void main (){int A,T; float L; A=7; T=5; L=A*T/2.0; printf("Luas Segitiga = %6.1f cm", L);}

    Cara 2

    #include void main (){float A,T,L; A=7; T=5; L=A*T/2; printf("Luas Segitiga = %6.1f cm", L);}

    Bahasa C++

    Cara 1.

    #include void main (){float A,T,L; A=7; T=5; L=A*T/2; cout

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    6

    Soal-5

    Konversi Detik ke Jam, Menit & Detik

    Bahasa C

    Cara 1.

    #include void main (){int Detik,J,M,D,X,Y,Z;printf("Input Detik = ");scanf("%i", &Detik);J=Detik/3600;X=3600*2;Y=Detik-X;M=Y/60;Z=M*60;D=Y-Z;printf("\nHasil Konversi = %i Jam : %i Menit : %i Detik", J,M,D);

    }Cara 2

    #include void main (){int Detik,J,M,D,X;printf("Input Detik = ");scanf("%i", &Detik);J=Detik/3600;X=Detik-(3600*2);M=X/60;D=X-(M*60);printf("\nHasil Konversi = %i Jam : %i Menit : %i Detik", J,M,D);

    }

    7425

    Detik

    2

    JJ = Detik/3600

    7200Y = Detik - X

    X = J*3600

    225 3M = Y/60

    Y M

    180

    Z = M*60

    D = Y - Z

    3 D

    Cara 3.#include void main (){int Detik,J,M,D;printf("Input Detik = ");scanf("%i", &Detik);J=Detik/3600;M=(Detik-(3600*2))/60;D=(Detik-(3600*2))-(M*60);printf("\nHasil Konversi = %i Jam : %i Menit : %i Detik", J,M,D);}

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    7

    Soal-5

    Konversi Detik ke Jam, Menit & Detik Menggunakan Modulus % (Sisa Pembagian)

    7425

    Detik

    2

    JJ = Detik/3600

    225 3Y M

    45

    Y = Detik%3600

    M = Y/60

    D = Y%60D

    Bahasa C

    Cara 1.

    #include void main (){int Detik,J,M,D,Y;printf("Input Detik = ");scanf("%i", &Detik);J=Detik/3600;Y=Detik%3600;M=Y/60;D=Y%60;printf("\nHasil Konversi = %i Jam : %i Menit : %i Detik", J,M,D);}

    Cara 2

    #include void main (){int Detik,J,M,D;printf("Input Detik = ");scanf("%i", &Detik);J=Detik/3600;M=(Detik%3600)/60;D=(Detik%3600)%60;printf("\nHasil Konversi = %i Jam : %i Menit : %i Detik", J,M,D);}

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    8

    Pertemuan 2 24/11/2010

    Dosen: Moh.Sjukani

    Gambarkan flowchart program berikut ini:Soal 1a. Apa yang tercetak bila untuk program 1a diinput nilai N =A) 85B) 64

    JawabA) AB) C

    Soal Latihan Mandiri 1

    Soal-1a

    START

    scanf

    N>=80

    END

    N

    printf AN>=70

    printf B

    printf D

    printf C

    printf E

    N>=60

    N>=40

    #include void main (){int N; scanf("%i", &N); if (N>=80) printf("A"); else if (N>=70) printf("B"); else if (N>=60) printf("C"); else if (N>=40) printf("D"); else printf("E");}

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    9

    Gambarkan flowchart program berikut ini:Soal 1b. Apa yang tercetak bila untuk program 1a diinput nilai N =A) 85B) 64

    JawabA) AB) C

    Soal-1b

    Soal Latihan Mandiri 1

    START

    scanf N

    N>=40

    printf E N>=60

    printf D N>=70

    printf C N>=80

    printf B printf A

    END

    #include void main (){int N; scanf("%i", &N); if (N>=40) if (N>=60) if (N>=70) if (N>=80) printf("A"); else printf("B"); else printf("C"); else printf("D"); else printf("E");}

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    10

    Susun program (penggalan program) dalam bahasa c untuk flowchart gambar diatas

    Soal-2

    Soal Latihan Mandiri 1

    START

    scanf

    A>B

    A,B,C

    A>CB>C

    scanfscanfscanfscanf ACBC

    START

    #include void main (){int A,B,C; scanf("%i %i %i", &A,&B,&C); if (A>B) {if (A>C) printf("A"); else printf("C"); } else {if (B>C) printf("B"); else printf("C"); }}

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    11

    Periksa flowchart gambar diatas, apa yang tercetak bila untuk nilai A,B, dan C berturut-turut diinputkan nilaisebagai berikut:A) 5, 7, 10 tercetak: 10B) 5, 10, 7 tercetak: 10C) 7, 5, 10 tercetak: 10D) 7, 10, 5 tercetak: 10E) 10, 5, 7 tercetak: 10F) 10, 7, 5 tercetak: 10

    Soal-3

    Soal Latihan Mandiri 1

    START

    scanf

    A>B

    A,B,C

    A>CB>C

    scanfscanfscanfscanf ACBC

    START#include void main (){int A,B,C; scanf("%i %i %i", &A,&B,&C); if (A>B) {if (B>C) printf("%i", A); else printf("%i", C); } else

    {if (A>C) printf("%i", B); else printf("%i", C); }}

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    12

    Periksa flowchart gambar diatas, apa yang tercetak bila untuk nilai A,B, dan C berturut-turut diinputkan nilaisebagai berikut:A) 5, 7, 10 tercetak: 10B) 5, 10, 7 tercetak: 7C) 7, 5, 10 tercetak: 10D) 7, 10, 5 tercetak: 10E) 10, 5, 7 tercetak: 7F) 10, 7, 5 tercetak: 10

    Soal-4

    Soal Latihan Mandiri 1

    START

    scanf

    A>B

    A,B,C

    B>CA>C

    scanfscanfscanfscanf ACBC

    START

    #include void main (){int A,B,C; scanf("%i %i %i", &A,&B,&C); if (A>B) {if (B>C) printf("%i", A); else printf("%i", C); } else

    {if (A>C) printf("%i", B); else printf("%i", C); }}

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    13

    Periksa flowchart gambar diatas, apa yang tercetak bila untuk nilai A,B, dan C berturut-turut diinputkan nilaisebagai berikut:A) 5, 7, 10 tercetak: 10B) 5, 10, 7 tercetak: 7C) 7, 5, 10 tercetak: 10D) 7, 10, 5 tercetak: 10E) 10, 5, 7 tercetak: 7F) 10, 7, 5 tercetak: 10

    Soal-5

    Soal Latihan Mandiri 1

    START

    scanf

    A>B

    A,B,C

    A>CB>C

    scanfscanfscanfscanf ACBC

    START#include void main (){int A,B,C; scanf("%i %i %i", &A,&B,&C); if (A>B) {if (B>C) printf("%i", A); else printf("%i", C); } else {if (A>C) printf("%i", B); else printf("%i", C); }}

    Dari hasil (jawaban) yang diperoleh dari soal-4, dapat diambilkesimpulan bahwa flowchart gambar diatas menggambarkanalgoritma yang tidak mencetak salah satu bilangan yangnilainya terbesar dari 3 buah bilangan yang diinput

    Jawaban : Salah

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    14

    Lanjutkan flowchart gambar dibawah sehingga maksudnya menggambarkan algoritma yang mencetak salahsatu bilangan yang nilainya terbesar dari 3 buah bilangan yang diinput

    Periksa flowchart gambar diatas, apa yang tercetak bila untuk nilaiA,B, dan C berturut-turut diinputkan nilai sebagai berikut:A) 5, 7, 10 tercetak: 10B) 5, 10, 7 tercetak: 10C) 7, 5, 10 tercetak: 10D) 7, 10, 5 tercetak: 10E) 10, 5, 7 tercetak: 10

    F) 10, 7, 5 tercetak: 10

    Pembuktian algoritma yg mencetak salah satu bilangan yangnilainya terbesar dari 3 buah bilangan yg diinput ternyata BENAR.ini terbukti dari nilai 10 yg selalu tercetak dalam 6 kali pengecekkan.

    Soal-6

    Soal Latihan Mandiri 1

    START

    scanf

    A>B

    A,B,C

    B>CA>C

    printfprintf AC

    END

    C>B

    printf Cprintf B

    C>A

    printf Cprintf A

    #include void main (){int A,B,C; scanf("%i %i %i", &A,&B,&C); if (A>B) {if (B>C) printf("%i", A); else {if (C>A) printf("%i", C); else printf(%i, A); } } else {if (A>C) printf("%i", B); else {if (C>B) printf("%i", C); else printf(%i, B); } }}

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    15

    Soal-7

    Soal Latihan Mandiri 1

    STAR

    T

    scanf

    A>B

    A,B

    ,C

    B>C

    A>C

    scanfscanf

    scanfscanf

    56

    78

    STAR

    T

    C>B

    C>B

    C>A

    C>A

    scanfscanf

    scanfscanf

    13

    42

    Untuk semua kemungkinan nilai A,B, dan C pd flowchart diatas dari 8 jalur yang adatunjukkan jalur mana saja yang tidak pernah dilaluiKemungkinan kombinasi nilai A,B dan C sebagai contoh adalah sbb:A) 5, 7, 10 tercetak: 7B) 5, 10, 7 tercetak: 8C) 7, 5, 10 tercetak: 3D) 7, 10, 5 tercetak: 6E) 10, 5, 7 tercetak: 4F) 10, 7, 5 tercetak: 2

    Jadi jalur yang tidak terlewati adalah 1 & 5

    #include void main (){int A,B,C;scanf("%i %i %i", &A,&B,&C);if (A>B)

    {if (B>C)if (C>A)

    printf(1);else

    printf(2);else

    if (C>A)printf(3);

    elseprintf(4);

    }else

    {if (A>C)if (C>B)

    printf(5);else

    printf(6);else

    if (C>B)printf(7);

    elseprintf(8);

    }}

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    16

    Susun algoritma untuk menginput 3 buah bilangan yang masing-masing menyatakan panjang sisi sebuah segitiga. Kemudian periksaketiga buah garis tersebut. Bila ketiga buah garis (sisi) tersebut panjangnya sama, maka cetak perkataan SAMA SISI. Bila hanya duasisi yang sama maka cetak perkataan SAMA KAKI. Tapi bila ketiga-tiganya tidak sama maka cetak perkataan SEMBARANG.

    Soal Latihan Mandiri 1

    Soal-8

    START

    scanf

    A==B

    A,B,C

    A==CB==C

    printfprintf printfA==C

    printfprintf

    START

    SAMA SISISAMA KAKISAMAKAKI

    SAMA KAKISEMBARANG

    #include void main (){int A,B,C; scanf("%i %i %i", &A,&B,&C); if (A==B) {if (A==C) printf("Sama Sisi"); else printf("Sama Kaki"); } else {if (B==C) printf("Sama Kaki"); else {if (A==C) printf("Sama Kaki"); else printf("Sembarang"); } }}

    1

    2

    3

    4

    5

    6

    4

    4

    3

    3

    2

    2

    2

    3

    3

    4

    4

    2

    4

    3

    2

    3

    4

    2

    SAMA KAKI

    SAMA KAKI

    SAMA KAKI

    SAMA KAKI

    SEMBARANG

    SAMA SISI

    Pengecekan Program,terdapat 6 kali pengecekkan

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    17

    START

    scanf

    A>B

    B>C

    A>C printf

    printf printf

    A>C

    printfB>C

    printfprintf

    START

    A,B,C

    ABBA

    ABCCAB

    CAB ACB

    A,B,C

    C,A,B A,C,B

    BAC

    B,A,C

    CBA

    CBA

    C,B,A

    BCA

    B,C,A

    #include void main (){int A,B,C; scanf("%i %i %i", &A,&B,&C); if (A>B) {if (B>C) printf("%i %i %i", A,B,C); else if (A>C) printf("%i %i %i", A,C,B); else printf("%i %i %i", C,A,B); } else {if (A>C) printf("%i %i %i", B,A,C); else if (B>C) printf("%i %i %i", B,C,A); else printf("%i %i %i", C,B,A); }}

    Susun algoritma untuk menginput 3 buah bilangan (anggap ketiga buah bilangan tersebut nilainyatidak sama satu dengan yang lainnya). Kemudian cetak ketiga buah bilangan tersebut urut mulai daribilangan yang nilainya terbesar sampai dengan nilai yang terkecil

    Jawaban:A = 9B = 0C = 4

    Hasil:9 4 0

    Soal-9

    Soal Latihan Mandiri 1

    A>B ? AB??AB

    A>B ? AB : A1 B2B>C ? BC : B1 C2Maka urutan 1=A 2=B 3=CUrut ke-2: BUrut ke-1: AKomputer membaca urut ke-2 ke ke-1 danketika dibandingkan A>B maka tercetak Adi urut 1 sebagai yang paling besar,kemudian B, diurut 2, kemudian C diurut 3sebagai yang paling kecil??ABC

    A>B ? AB : A1 B2BA atau CB ? AB : A1 B2BC ? AC : A1 C2Maka urutan 1=A 2=C 3=BUrut ke-3: AUrut ke-2: CUrut ke-1: AKomputer membaca urut ke-3 ke ke-2 keke-3 dan ketika dibandingkan A lebihbesar dari C di urut 3 dan B diurut 1,maka A paling besar. Kemudian yangterbesar kedua adl C karena pada urutke-2 C>B maka C tercetak kedua setelahA. kemudian yang paling kecil adalah Bkarena lebih kecil dari C di urut 2 dandari A di urut 1??ACB

    A>B ? AB : A1 B2B

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    18

    Susun program untuk menginput tiga buah bilangan yang menyatakan nilai ujian tiga buah mata kuliah.

    Cetak perkataan Tiga, bila ketiga mata kuliah tersebut mendapat nilai lulus.Cetak perkataan Dua, bila hanya dua dari ketiga mata kuliah tersebut yang mendapat nilai lulus.Cetak perkataan Satu, bila hanya satu mata kuliah yang mendapat nilai lulus.Cetak perkataan Nol, bila ketiga mata kuliah tersebut dinyatakan tidak lulus.

    Sebuah mata kuliah dinyatakan mendapat nilai lulus bila nilainya lebih besar atau sama dengan 60.

    Soal Latihan Mandiri 1

    Soal-10

    START

    J = 0

    scanf

    A>=60

    B>=60

    J = J + 1

    C>=60

    J = J + 1

    J = J + 1

    J==3

    printf

    A,B,C

    J==2

    printfJ==1

    printfprintf

    END

    Tiga

    Dua

    SatuNol

    #include void main (){int J,A,B,C; J=0; scanf("%i %i %i", &A,&B,&C); if (A>=60) J=J+1; if (B>=60) J=J+1; if (C>=60) J=J+1; if (J==3) printf("Tiga"); else if (J==2) printf("Dua"); else if (J==1) printf("Satu"); else printf("Nol");}

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    19

    Susun program untuk menginput jam keberangkatan dan jam kedatangan, kemudian menghitung serta mencetak jumlah waktu (lama)dalam perjalanan. Semua waktu dinyatakan dengan notasi JAM, MENIT, dan DETIK.

    Catatan, perjalanan dilakukan pada hari yang sama, dan notasi waktu dalam satu hari adalah mulai jam 00:00:00 sampai dengan jam24:00:00Contoh:Bila Jam Keberangkatan = 8 : 45 : 30Dan Jam Kedatangan = 10 : 20 : 17Maka Lama Perjalanan = 1 : 34 : 47

    Artinya, bila berangkat jam 8 lewat 45 menit 30 detik, dan jam kedatangan adalah jam 10 lewat 20 menit 17 detik, maka lama dalamperjalanan adalah 1 jam 34 menit dan 47 detik

    Soal Latihan Mandiri 1

    Soal-11

    START

    scanf Jam,Detik,Menit,A,B,C,D,E,F,G,H,I,J,K,L,X,S

    printf

    Jam KeberangkatanMenit KeberangkatanDetik KeberangkatanJam KedatanganMenit KedatanganDetik Kedatangan

    G=A*3600;H=B*60;I=G+H+C;

    J=D*3600;K=E*60;L=J+K+F;

    S=L-I;

    Jam=S/3600;X=S%3600;Menit=X/60;Detik=X%60;

    printf

    START

    Jam,Detik,Menit

    #include void main (){long int Jam,Detik,Menit,A,B,C,D,E,F,G,H,I,J,K,L,X,S; printf("Jam Keberangkatan = "); scanf("%li", &A); printf("Menit Keberangkatan = "); scanf("%li", &B); printf("Detik Keberangkatan = "); scanf("%li", &C); printf("\nJam Kedatangan = "); scanf("%li", &D); printf("Menit Kedatangan = "); scanf("%li", &E); printf("Detik Kedatangan = "); scanf("%li", &F); G=A*3600; H=B*60; I=G+H+C; J=D*3600; K=E*60; L=J+K+F; S=L-I;; Jam=S/3600; X=S%3600; Menit=X/60; Detik=X%60; printf("\nLama Perjalanan = %li : %li : %li ", Jam, Menit, Detik);}

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    20

    Array Satu Dimensi

    Soal 1. Apa yang tercetak darisusunan program berikut ini

    #include

    void main ()

    {int A[7];

    int I;

    for (I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    21

    Soal 5. Apa yang tercetak darisusunan program berikut ini

    #include

    void main ()

    {int A[7]={15,12,17,25,10,5,22};

    int I;

    A[2]=A[3];

    for (I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    22

    Soal 9. Apa yang tercetak darisusunan program berikut ini

    #include

    void main ()

    {int A[7]={15,12,17,25,10,5,22};

    int I;

    for (I=0;IA[I+1])

    {A[I+1]=A[I];

    }

    }

    for (I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    23

    Soal 11. Apa yang tercetak darisusunan program berikut ini

    #include

    void main ()

    {int A[7]={15,12,17,25,10,5,22};

    int B[7];

    int I;

    for (I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    24

    Soal 13. Apa yang tercetak darisusunan program berikut ini

    #include

    void main ()

    {int A[7]={15,12,17,25,10,5,22};

    int B[7]={10,27,12,15,18,12,3};

    int I,X;

    for (I=0;IB[I])

    {X=B[I];

    B[I]=A[I];

    A[I]=X;

    }

    }

    for (I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    25

    Jawaban Soal Array Satu Dimensi

    Soal 1.

    0 1 2 3 4 5 6

    1 2 3 4 5 6 7

    0 1 2 3 4 5 6

    I I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    26

    Soal 2.

    0 1 2 3 4 5 615 12 17 25 10 5 22

    0 1 2 3 4 5 615 12 17 25 10 5 22

    I I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    27

    Soal 3.

    0 1 2 3 4 5 615 12 17 25 10 5 22

    50

    0 1 2 3 4 5 615 12 17 50 10 5 22

    I I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    28

    Soal 4.

    0 1 2 3 4 5 615 12 17 25 10 5 22

    50

    0 1 2 3 4 5 615 12 17 50 10 5 22

    I I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    29

    Soal 5.

    0 1 2 3 4 5 615 12 17 25 10 5 22

    25 25

    0 1 2 3 4 5 615 12 25 25 10 5 22

    I I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    30

    Soal 6.

    0 1 2 3 4 5 615 12 17 25 10 5 22

    25 25

    0 1 2 3 4 5 615 12 25 25 10 5 22

    I I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    31

    Soal 7.

    0 1 2 3 4 5 615 12 17 25 10 5 22

    0 12 12 17 25 10 5 221 12 17 17 25 10 5 222 12 17 25 25 10 5 223 12 17 25 10 10 5 224 12 17 25 10 5 5 225 12 17 25 10 5 22 22

    12 17 25 10 5 22 22

    atau

    I I 17 172 True 3 17 2 True 3 A[2]=A[3] => 25 253 True 4 25 3 True 4 A[3]=A[4] => 10 104 True 5 10 4 True 5 A[4]=A[5] => 5 55 True 6 5 5 True 6 A[5]=A[6] => 22 226 True 7 22 6 False Keluar Loop 227 False Keluar Loop

    #include

    void main ()

    {int A[7]={15,12,17,25,10,5,22};

    int I;

    for (I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    32

    Soal 8.

    0 1 2 3 4 5 615 12 17 25 10 5 22

    0 15 15 17 25 10 5 221 15 15 15 25 10 5 222 15 15 15 15 10 5 223 15 15 15 15 15 5 224 15 15 15 15 15 15 225 15 15 15 15 15 15 15

    15 15 15 15 15 15 15

    atau

    I I 15 152 True 3 17 2 True 3 A[3]=A[2] => 15 153 True 4 25 3 True 4 A[4]=A[3] => 15 154 True 5 10 4 True 5 A[5]=A[5] => 15 155 True 6 5 5 True 6 A[6]=A[5] => 15 156 True 7 22 6 False Keluar Loop 157 False Keluar Loop

    #include

    void main ()

    {int A[7]={15,12,17,25,10,5,22};

    int I;

    for (I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    33

    Soal 9.

    0 1 2 3 4 5 615 12 17 25 10 5 22

    0 15 15 17 25 10 5 221 15 15 17 25 10 5 222 15 15 17 25 10 5 223 15 15 17 25 25 5 224 15 15 17 25 25 25 225 15 15 17 25 25 25 25

    15 15 17 25 25 25 25

    atau

    I IA[1] =>True 15 151 True 2 12 1 True 2 A[1]>A[2] => False - 152 True 3 17 2 True 3 A[2]>A[3] => False - 173 True 4 25 3 True 4 A[3]>A[4] => True 25 254 True 5 10 4 True 5 A[4]>A[5] => True 25 255 True 6 5 5 True 6 A[5]>A[6] => True 25 256 True 7 22 6 False Keluar Loop 257 False Keluar Loop

    21

    5

    4

    #include

    void main ()

    {int A[7]={15,12,17,25,10,5,22};

    int I;

    for (I=0;IA[I+1])

    {A[I+1]=A[I];

    }

    }

    for (I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    34

    Soal 10.

    0 1 2 3 4 5 615 12 17 25 10 5 22

    0 12 15 17 25 10 5 221 12 15 17 25 10 5 222 12 15 17 25 10 5 223 12 15 17 10 25 5 224 12 15 17 10 5 25 225 12 15 17 10 5 22 25

    12 15 17 10 5 22 25

    atau

    I IA[1]=>True 15 12 15 12

    1 True 2 12 1 True 2 A[1]>A[2]=> False - - - 15

    2 True 3 17 2 True 3 A[2]>A[3]=> False - - - 17

    3 True 4 25 3 True 4A[3]>A[4]=> True 25 10 25 10

    4 True 5 10 4 True 5A[4]>A[5]=> True 25 5 25 5

    5 True 6 5 5 True 6 A[5]>A[6]=> True

    25 22 25 22

    6 True 7 22 6 False Keluar Loop 257 False Keluar Loop

    2

    #include

    void main ()

    {int A[7]={15,12,17,25,10,5,22};

    int I,X;

    for (I=0;IA[I+1])

    {X=A[I];

    A[I]=A[I+1];

    A[I+1]=X;

    }

    }

    for (I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    35

    Soal 11.

    0 1 2 3 4 5 615 12 17 25 10 5 22

    0 1 2 3 4 5 615 12 17 25 10 5 22

    atau

    I A[I]=A[7] printf A[I] B[I]=A[I] printf B[I]0 15 15 15 151 12 12 12 122 17 17 17 173 25 25 25 254 10 10 10 105 5 5 5 56 22 22 22 22

    #include

    void main ()

    {int A[7]={15,12,17,25,10,5,22};

    int B[7];

    int I;

    for (I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    36

    Soal 12.

    0 1 2 3 4 5 615 12 17 25 10 5 22

    0 1 2 3 4 5 610 27 12 15 18 12 3

    I A[I]=A[7] B[I]=B[7]if

    A[I]>B[I] B[I]=A[I]printfA[I]

    printfB[I]

    0 15 10 True 15 15 151 12 27 False - 12 272 17 12 True 17 17 173 25 15 True 25 25 254 10 18 False - 10 185 5 12 False - 5 126 22 3 True 22 22 22

    B[I]A[I] #include

    void main ()

    {int A[7]={15,12,17,25,10,5,22};

    int B[7]={10,27,12,15,18,12,3};

    int I;

    for (I=0;IB[I])

    {B[I]=A[I];

    }

    }

    for (I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    37

    Soal 13.

    0 1 2 3 4 5 615 12 17 25 10 5 22

    0 1 2 3 4 5 610 27 12 15 18 12 3

    I A[I]=A[7] B[I]=B[7]if

    A[I]>B[I] X=B[I]B[I]=A[I]

    A[I]=X

    printfA[I]

    printfB[I]

    0 15 10 True 10 15 10 10 151 12 27 False - - - 12 272 17 12 True 12 17 12 12 173 25 15 True 15 25 15 15 254 10 18 False - - - 10 185 5 12 False - - - 5 126 22 3 True 3 22 3 3 22

    B[I]A[I] #include

    void main ()

    {intA[7]={15,12,17,25,10,5,22};

    int B[7]={10,27,12,15,18,12,3};

    int I,X;

    for (I=0;IB[I])

    {X=B[I];

    B[I]=A[I];

    A[I]=X;

    }

    }

    for (I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    38

    Soal 13.

    0 1 215 12 17

    K A[K]=A[3] X=A[K] I B[I] if B[I]>X X=B[I] printf X0 15 15 0 10 False -1 25 25 1 17 False -2 17 17 2 12 False -

    15 3 15 False -25 4 18 False -17 5 22 True 22 2215 6 3 False -

    0 1 2 3 4 5 610 17 12 15 18 12 3

    B[I]A[K] #include

    void main ()

    {int A[3]={15,25,17};

    int B[7]={10,17,12,15,18,22,3};

    int I,K,X;

    for (K=0;K

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    40

    Soal Ujian Algoritma UTS

    1. Apa yang tercetak dari susunan program berikut ini (masukkan N denganmenggunakan 2 digit terakhir NIM anda)

    #includevoid main (){int I,J,N,T,X; printf(Input Nilai = ); scanf(%i, &N); T=0; X=5; for (I=1;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    41

    3. Buatlah susunan program dalam bahasa C dari hasil cetak berikut ini:

    1 2 3 4 5

    6 7 8 9

    10 11 12

    13 14

    15

    4. Apa yang tercetak dari susunan program berikut ini (Masukkan Nilai Ndengan menggunakan 2 digit terakhir NIM anda)

    #includevoid main (){int A,B,N,X,Y; printf(Input Nilai = ); scanf(%i, &N); if (N>=0) {A=6; B=8;} if (N>=25) {A=9; B=12;} if (N>=50) {A=12; B=16;} if (N>=75) {A=6; B=18;} X=A; Y=B; while (X!=Y) {if (X

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    42

    5. Apa yang tercetak dari susunan program berikut ini (Masukkan Nilai Ndengan menggunakan 1 digit terakhir NIM anda)

    #includevoid main (){int I,J,N,X; printf(Input Nilai = ); scanf(%i, &N); for (I=1;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    43

    7. Lanjutkan susunan program berikut ini

    #includevoid main (){int A,B,C; if (A>C) {if (CB) }}

    8. Susun algoritma untuk menginput tiga buah bilangan. Cetak perkataan ADA,bila salah satu bilangan lebih besar dari jumlah dua buah bilangan yang lain.,selainnya (bila tidak) cetak perkataan TIDAK ADA.

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    44

    Jawaban Soal Ujian Algoritma UTS

    Soal 1

    T=0

    N=4 (diisi dengan nomor NIM 2 digit dari belakang)

    X=5

    I J T N X T=T+Nmjd TN=N+Xmjd N

    X=X+Jmjd X

    printfT

    1 1 0 4 5 4 9 6 41 4 4 9 6 13 15 10 131 7 13 15 10 28 25 17 285 5 28 25 17 53 42 22 535 8 53 42 22 95 64 30 959 9 95 64 30 159 94 39 159

    #includevoid main (){int I,J,N,T,X; printf(Input Nilai = ); scanf(%i, &N); T=0; X=5; for (I=1;I Bagian ini tdk diproses

    ini merupakan loop pembentuktercetak:

    28 95 159

    2

    3

    1

    4

    3 4

    1 2 ? dibaca sekali saja

    ? dibaca berulangkali s/d keluar loop

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    45

    Soal 2

    N=4

    X=(4+5)/3=3

    I J N X printf NN=N+X

    Menjadi N1 1 4 3 4 71 2 7 3 7 101 3 10 3 10 132 1 13 3 13 162 2 16 3 16 192 3 19 3 19 22

    #includevoid main (){int I,J,N,X; printf(Input Nilai = ); scanf(%i, &N); X=(N+5)/3; for (I=1;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    46

    Soal 3

    I J N printf N N=N+1Menjadi N1 1 1 1 21 2 2 2 31 3 3 3 41 4 4 4 51 5 5 5 62 2 6 6 72 3 7 7 82 4 8 8 92 5 9 9 103 3 10 10 113 4 11 11 123 5 12 12 134 4 13 13 144 5 14 14 155 5 15 15 16

    I J N N=N+1Menjadi N printf N

    1 1 0 1 11 2 1 2 21 3 2 3 31 4 3 4 41 5 4 5 52 2 5 6 62 3 6 7 72 4 7 8 82 5 8 9 93 3 9 10 103 4 10 11 113 5 11 12 124 4 12 13 134 5 13 14 145 5 14 15 15

    1 2 3 4 5

    6 7 8 9

    10 11 12

    13 14

    15

    mendatar 5

    menurun 5

    I

    Jdari hasil cetak program disamping menunjukkan Isebagai pembentuk cetakkan menurun dan tidakberkurang seperti J yang mencetak mendatar. Iniberarti J mengikuti I atau J=I. Batasan Loop I dan Jadalah

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    47

    Soal 4

    N=4 (A=6 B=8)

    X=A

    Y=B

    X Y X!=Yif X

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    48

    Soal 5

    N=4

    X=N => X=4

    I X=NMenjadi X J=I printf X X=X+I

    1 4 1 4 51 5 3 5 61 6 5 6 72 4 2 4 62 6 4 6 83 4 3 4 73 7 5 7 104 4 4 4 45 4 5 4 4

    #includevoid main (){int I,J,N,X; printf(Input Nilai = ); scanf(%i, &N); for (I=1;I Bagian ini tdk diproses4 4 True 64 6 False Keluar Loop => Bagian ini tdk diproses5 5 True 75 7 False Keluar Loop => Bagian ini tdk diproses

    ini merupakan loop pembentuk

    2

    1 ? dibaca sekali saja

    ? dibaca berulangkali s/d keluar loop4

    3

    ? untuk nilai X tidak bertambahsetiap kali pengulangan. X nilainyasama dengan N setiap kali awalpengulangan

    3tercetak:

    4 5 6 4 6 4 7 4 4

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    49

    Soal 6

    N=24

    B=24+100

    T=0

    X=5

    T N X T

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    50

    Soal 7

    #include

    void main ()

    {int A,B,C;

    if (A>C)

    {if (CB)

    printf(%i, C);

    else

    printf(%i, B);

    }

    }

    }

    ? AC

    ? ABC? ABC

    ? ABC

    ? BAC

    ? ACB

    ? CAB

    ? CAB

    ? CBA

    ? BCA

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    51

    Soal 8

    #include

    void main ()

    {int A,B,C,X,Y,Z;

    X=B+C;

    Y=A+C;

    Z=A+B;

    if (A>X)

    printf(ADA);

    else

    if (B>Y)

    printf (ADA);

    else

    if (C>Z)

    printf(ADA);

    else

    printf(TIDAK ADA);

    }

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    52

    Soal 1.

    I A[7] B[7] A[I] B[I] printf A[I] printf B[I]0 5 35 A[0]=5 B[0]=35 5 351 10 30 A[1]=10 B[1]=30 10 302 15 25 A[2]=15 B[2]=25 15 253 20 20 A[3]=20 B[3]=20 20 204 25 15 A[4]=25 B[4]=15 25 155 30 10 A[5]=30 B[5]=10 30 106 35 5 A[6]=35 B[6]=5 35 5

    0 1 2 3 4 5 65 10 15 20 25 30 35

    0 1 2 3 4 5 635 30 25 20 15 10 5

    #includevoid main(){ int A[7] = {5,10,15,20,25,30,35 }; int B[7] = {35,30,25,20,15,10,5 }; int I;

    printf("\n"); for(I=0; I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    53

    Soal 2.

    I A[7] B[7] A[I] B[I] B[I]=A[I] printf A[I] printf B[I]0 5 35 A[0]=5 B[0]=35 B[0]=A[0] 5 51 10 30 A[1]=10 B[1]=30 B[1]=A[1] 10 102 15 25 A[2]=15 B[2]=25 B[2]=A[2] 15 153 20 20 A[3]=20 B[3]=20 B[3]=A[3] 20 204 25 15 A[4]=25 B[4]=15 B[4]=A[4] 25 255 30 10 A[5]=30 B[5]=10 B[5]=A[5] 30 306 35 5 A[6]=35 B[6]=5 B[6]=A[6] 35 35

    0 1 2 3 4 5 65 10 15 20 25 30 35

    0 1 2 3 4 5 65 10 15 20 25 30 35

    #includevoid main(){ int A[7] = {5,10,15,20,25,30,35 }; int B[7] = {35,30,25,20,15,10,5 }; int I;

    for(I=0;I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    54

    Soal 3.

    I A[7] B[7] A[I] B[I] B[6-I]=A[I] printf A[I] printf B[I]0 5 35 A[0]=5 B[0]=35 B[6]=A[0] 5 351 10 30 A[1]=10 B[1]=30 B[5]=A[1] 10 302 15 25 A[2]=15 B[2]=25 B[4]=A[2] 15 253 20 20 A[3]=20 B[3]=20 B[3]=A[3] 20 204 25 15 A[4]=25 B[4]=15 B[2]=A[4] 25 155 30 10 A[5]=30 B[5]=10 B[1]=A[5] 30 106 35 5 A[6]=35 B[6]=5 B[0]=A[6] 35 5

    0 1 2 3 4 5 65 10 15 20 25 30 35

    0 1 2 3 4 5 635 30 25 20 15 10 5

    #includevoid main(){ int A[7] = {5,10,15,20,25,30,35 }; int B[7] = {35,30,25,20,15,10,5 }; int I;

    for( I=0; I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    55

    Soal 4.

    I A[7] B[7] A[I] B[I] A[I]>B[I] B[I]=A[I] printf A[I] printf B[I]0 5 35 A[0]=5 B[0]=35 False - 5 351 10 30 A[1]=10 B[1]=30 False - 10 302 15 25 A[2]=15 B[2]=25 False - 15 253 20 20 A[3]=20 B[3]=20 False - 20 204 25 15 A[4]=25 B[4]=15 True B[2]=A[4] 25 255 30 10 A[5]=30 B[5]=10 True B[1]=A[5] 30 306 35 5 A[6]=35 B[6]=5 True B[0]=A[6] 35 35

    0 1 2 3 4 5 65 10 15 20 25 30 35

    0 1 2 3 4 5 635 30 25 20 25 30 35

    #includevoid main(){ int A[7] = {5,10,15,20,25,30,35 }; int B[7] = {35,30,25,20,15,10,5 }; int I;

    for( I=0; I B[I] ) B[I ] = A[ I ] ; }

    printf("\n"); for(I=0; I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    56

    Soal 5.

    I A[7] B[7] A[I] B[I] A[I]>B[I] X=B[I] B[I]=A[I] A[I]=X printfA[I]PrintfB[I]

    0 5 35 A[0]=5 B[0]=35 False - - - 5 351 10 30 A[1]=10 B[1]=30 False - - - 10 302 15 25 A[2]=15 B[2]=25 False - - - 15 253 20 20 A[3]=20 B[3]=20 False - - - 20 204 25 15 A[4]=25 B[4]=15 True 15 25 15 15 255 30 10 A[5]=30 B[5]=10 True 10 30 10 10 306 35 5 A[6]=35 B[6]=5 True 5 35 5 5 35

    0 1 2 3 4 5 65 10 15 20 15 10 5

    0 1 2 3 4 5 635 30 25 20 25 30 35

    #includevoid main(){ int A[7] = {5,10,15,20,25,30,35 }; int B[7] = {35,30,25,20,15,10,5 }; int I, X;

    for( I=0; I B[I] ) { X = B[I]; B[ I ] = A[ I ] ; A[I] = X; } }

    printf("\n"); for(I=0; I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    57

    Soal 6.

    I A[7] B[7] A[I] B[I] A[I]

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    58

    Soal 7.

    J J

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    59

    Soal 8.

    J J

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    60

    Soal 9.

    J J

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    61

    Soal 10.

    J J

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    62

    Soal 11.

    J J

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    63

    Soal 12.

    J J

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    64

    Soal 12.

    J J

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    65

    Soal 13.

    J J

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    66

    Soal 14.

    J J

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    67

    Soal 15.

    J J

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    68

    Soal 16.

    X=A[K] => 15 ini untuk pertamanya saja sehabis itunilai x berubah mengikuti syarat if B[I]>X yg menjadiX=B[I]

    I I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    69

    Soal 17.

    I I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    70

    Soal 18.

    I I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    71

    Soal 19.

    I I

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    72

    Soal 20.

    N=0;

    J J

  • Lukas Sapto Aji D.S. Algoritma dan Struktur Data 1

    73

    Soal 21.

    N=0;

    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

    I I