Tugas Logika & Algoritma

-->
1)           Menyebrangkan suami istri  yang suaminya pencemburu.
1.       Suami 1 & istri 1 menyebrang,

2.       Istri 1 balik lagi menjemput istri 2, kemudian menyebrang,

3.       Istri 2 balik lagi jemput suami 2, kemudian menyebrang,

4.       Istri 2 balik lagi jemput istri 3, kemudian menyebrang,

5.       Istri 3 balik lagi jemput suami 3, kemudian menyebrang

Seperti pada soal mengatakan para suami tidak mau meninggalkan istri masing-masing.
Jadi para suami tidak meninggalkan istri msing-masing, namun para istri yang meninggalkan suami maing-masing.
2)           Cara mengisi  voucher pada ponsel.
Menggesek voucher, kemudian melakukan panggilan ke 888 ( jika kartu anda provider Telkomsel ).Memasukkan kode voucher yang tertera pada  voucher  yang anda gesek tadi padalangkah pertama. Jika telah selesai, matikan panggilan. Kemudian cek pulsa anda dengan menekan *888# dan OK. Disituakan tertera nominal pulsa.
3)           Cara membuat pakaian.
Memilih bahan kain yang akan di jahit, mengukur sesuai ukuran yang di inginkan, membuat pola pada kain dengan pensil khusus, menggunting kain memakai gunting tajam, mengobras pinggiran kain dan kemudian pakaian di jahit sesuai pola yang telah di buat tadi. 
 4)      Menampilkan bilangan kelipatan tiga dari angka 1 s/d 20

Penyelesaian Logika:

1. Beri nilai awal A = 3

2. Untuk nilai B = 1 sampai 6

     2.1 Cetak A

     2.2 Hitung A = A + 3


· Program Pascalnya :

USES CRT;
VAR A, I : INTEGER ;
BEGIN
       CLRSCR;
       A:= 3 ;
       FOR I := 1 TO 6 DO
              BEGIN
                     WRITELN (A);
                     A : = A + 3;
              END;
READLN ;
END.
5)      Algoritmanya untuk menampilkan bilangan ganjil dari 1 s/d 100:
Penyelesaian:


1. Beri nilai awal A = 1
2. Untuk nilai B = 1 sampai 50
     2.1 Cetak A
     2.2 Hitung A = A + 2

· Program Pascalnya :

USES CRT;
VAR A, I : INTEGER ;
BEGIN
      CLRSCR;
      A:= 1 ;
      FOR I := 1 TO 50 DO
              BEGIN
                     WRITELN (A);
                      A : = A + 2;
             END;
READLN ;
END.

· CARA LAIN MENGGUNAKAN MOD :

USES CRT;
VAR A : BYTE ;
BEGIN
     CLRSCR;
     FOR A:= 1 TO 100 DO
            BEGIN
                  IF A MOD 2 = 1 THEN
                  WRITE (A:4);
            END;
READLN;
END.


6)       Algoritma untuk menampilkan bilangan genap dari 1 s/d 50:

Penyelesaiannya:


1. Beri nilai awal A = 2
2. Untuk nilai B = 1 sampai 25
    2.1 Cetak A
    2.2 Hitung A = A + 2

· Program Pascal :
USES CRT;
VAR A, I : INTEGER ;
BEGIN
       CLRSCR;
       A:= 2 ;
       FOR I := 1 TO 25 DO
               BEGIN
                      WRITELN (A);
                      A : = A + 2;
               END;
READLN ;
END.


· CARA LAIN MENGGUNAKAN MOD :

USES CRT;
VAR A : BYTE;
BEGIN
      CLRSCR;
      FOR A:=1 TO 50 DO
             BEGIN
                   IF A MOD 2=0 THEN
                   WRITE (A:4);
            END;
READLN;
END.

7)            Algoritma untuk menampilkan bilangan prima dari 1 s/d 20

Penyelesaiannya:

Ø Bilangan prima hanya akan habis bila dibagi 1 dan bilangan itu sendiri.
Ø Sehingga pasti akan ada sisa hasil bagi (mod) jika dibagi bilangan lebih dari 1 (kecuali 2) sampai bilangan sebelum bilangan itu (x-1).
Ø Mencetak 2 terlebih dahulu ke layar.
Ø Mengeset status bilangan prima menjadi true.
Ø Beri nilai =1 (menandakan bilangan prima).
Ø Melakukan pengecekan mulai dari 2 sampai x-1.
Ø Jika x habis dibagi bilangan yang ada antara 2 sampai x-1, berarti x bukan bilangan prima. Variabel prima yang awalnya true berubah jadi false dan pengecekan tidak perlu dilanjutkan (break).
Ø Jika dari bilangan antara 2 sampai x-1 tak satupun yang habis dibagi, maka variabel prima yang dideklarasikan sebagai true tidak berubah nilai (tetap true). Sehingga bilangan tersebut adalah bilangan prima dan akan ditampilkan ke layar.
Ø Tambahkan nilai x dengan 1 dan ulangi dari langkah ke-5 sampai nilai x= 20.


Program pascal:

USES CRT;
VAR X, Y: BYTE; PRIMA: BOOLEAN;
BEGIN
      CLRSCR;
      WRITE('2':4);
      FOR X:= 1 TO 20 DO
              BEGIN
                     PRIMA:=TRUE;
                     FOR Y:=2 TO X-1 DO
                            BEGIN
                                  IF X MOD Y =0 THEN
                                         BEGIN
                                                PRIMA:=FALSE;
                                                BREAK;
                                        END;
                           END;
                           IF PRIMA THEN WRITE(X:4);
            END;
READLN;
END.

8)           Algoritma untuk menampilkan bilangan kelipatan 3 dan kelipatan 5 secara bersamaan dari angka 1 s/d 30:

Penyelesaiannya:

· Untuk i:= 1 sampai 30 lakukan:
6 o jika i mod 3= 0 maka cetak i
o selain itu jika i mod 5= 0 maka cetak i.

Program pascal:

USES CRT;
VAR I: BYTE;
BEGIN
      FOR I:= 1 TO 30 DO
             BEGIN
                   IF I MOD 3= 0 THEN WRITE(I:4)
                   ELSE IF I MOD 5= 0 THEN WRITE(I:4);
             END;

READLN;
END.


9)      Masukkan sebuah bilangan kemudian tentukan apakah bilangan yang diinput adalah
bilangan ganjil atau bilangan genap. Gunakan metode pemilihan.
Layout:

Masukkan sebuah bilangan: 3 --> ENTER
Bilangan yang anda input adalah bilangan ganjil

Penyelesaiannya:

USES CRT;
VAR LAGI: CHAR; X: LONGINT; KET: STRING;
BEGIN
       CLRSCR;
       LAGI:='Y';
       WHILE LAGI='Y' DO
              BEGIN
                    CLRSCR;
                    WRITE('MASUKKAN SEBUAH BILANGAN BULAT: ');READLN(X);
                    IF X MOD 2= 0 THEN KET:='GENAP'
                    ELSE KET:='GANJIL';
                    WRITELN;
                    WRITELN('BILANGAN YANG DIINPUT ADALAH BILANGAN ',KET);
                    WRITE('COBA LAGI (Y/N ): '); READ(LAGI);
             END;
READLN;
END.

10)    Masukkan bilangan 1, setelah itu bilangan 2, kemudian lakukan proses penjumlahan,
perkalian, pengurangan, dan pembagian. Hasil dari keempat proses aritmatika tersebut
ditampilkan.
Layout:

Bilangan 1: 6
Bilangan 2: 3

Hasil penjumlahan = 9
Hasil pengurangan = 3
Hasil perkalian = 18
Hasil pembagial = 2

Penyelesaiannya:


USES CRT;
VAR LAGI: CHAR; X: LONGINT; KET: STRING;
BEGIN
      CLRSCR;
      LAGI:='Y';
      WHILE LAGI='Y' DO
             BEGIN
                    CLRSCR;
                    WRITE('MASUKKAN SEBUAH BILANGAN : ');READLN(X);
                    IF X MOD 2= 0 THEN KET:='GENAP'
                    ELSE KET:='GANJIL';
                    WRITELN;
                    WRITELN('BILANGAN YANG DIINPUT ADALAH BILANGAN ',KET);
                    WRITE('COBA LAGI (Y/N ): '); READ(LAGI);
           END;
READLN;
END.


11)   Masukkan nilai jari-jari sebuah lingkaran. Kemudian program akan menampilkan
hasil perhiutungan luas lingkaran.

Layout:

Jari-jari lingkaran: 7
Luas lingkaran adalah: 154

Penyelesaiannya:


USES CRT;
VAR L,R: REAL;
BEGIN
       CLRSCR;
       WRITE('JARI-JARI LINGKARAN= '); READLN(R);
       L:= PI * SQR(R);
       WRITELN('LUAS LINGKARAN = ', L:0:0);
READLN;
END.

12)   Buat algoritma dan program untuk menghitung luas yang diarsir pada gambar berikut.

Penyelesaian
1.       Menentukan nilai panjang sisi luar (pL): pL= 18, lebar sisi luar (lL): lL= 12, panjang sisi dalam (pT): pT= 10, dan lebar sisi dalam (lT): lT= 5.
2.       Menghitung luas total, LTotal= pL x lL
3.        Menghitung luas tengah, LTengah= pT x lT
4.        Didapat luas yang diarsir, LArsir= LTotal-LTengah

 
Program pascalnya:

USES CRT;
VAR PL, LL, PT, LT, L_TOTAL, L_TENGAH: INTEGER;
BEGIN
       CLRSCR;
       PL:=18; LL:=12; PT:=10; LT:=5;
       L_TOTAL:= PL*LL;
       L_TENGAH:= PL*LL;
       WRITELN('LUAS TOTAL = ', L_TOTAL);
       WRITELN('LUAS TENGAH = ', L_TENGAH);
       WRITELN('LUAS YG DIARSIR= ', L_TOTAL-L_TENGAH);
READLN;
END.

13)    Buat tampilan program di bawah ini dengan menggunakan metode perulangan:

Ø 1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4

Penyelesaian:

USES CRT;
VAR I, J: BYTE;
BEGIN
       CLRSCR;
       FOR I:= 1 TO 4 DO
              BEGIN
                    FOR J:= 1 TO 4 DO
                    WRITE(J:4);
                    WRITELN;
             END;
READLN;
END.


Ø 2 2 2
1 1 1
0 0 0

Penyelesaian:

USES CRT;
VAR A, I, J: BYTE;
BEGIN
       CLRSCR;
       A:=2;
       FOR I:= 1 TO 3 DO
               BEGIN
                      FOR J:= 1 TO 3 DO
                      WRITE(A:4);
                      A:=A-1; WRITELN;
               END;
READLN;
END.


Ø 3 2 1
3 2 1
3 2 1

Penyelesaian:

USES CRT;
VAR I, J: BYTE;
BEGIN
       CLRSCR;
       FOR I:= 1 TO 3 DO
               BEGIN
                      FOR J:= 3 DOWNTO 1 DO
                      WRITE(J:4); WRITELN;
               END;
READLN;
END.


Ø 1
1 2
1 2 3
1 2 3 4

Penyelesaian

USES CRT;
VAR A, I, J: BYTE;
BEGIN
       CLRSCR;
       A:=1;
       FOR I:= 1 TO 4 DO
              BEGIN
                     FOR J:= 1 TO I DO
                             BEGIN
                                    WRITE(J:4);
                                    A:=A+1
                            END;
                            WRITELN;
               END;
READLN;
END.

Ø 4 3 2 1
4 3 2
4 3
4

Penyelesaian

USES CRT;
VAR A, I, J: BYTE;
BEGIN
       CLRSCR;
       FOR I:= 4 DOWNTO 1 DO
              BEGIN
                    A:=4;
                   FOR J:= 1 TO I DO
                   BEGIN
                         WRITE(A:4);
                         A:=A-1;
                   END;
                   WRITELN;
             END;
READLN;
END.


Ø 1
3 5
7 9 11
13 15 19

Penyelesaian:

USES CRT;
VAR A, I, J: BYTE;
BEGIN
       A:=1;
       FOR I:= 1 TO 4 DO
              BEGIN
                     FOR J:=1 TO I DO
                           BEGIN
                                  WRITE(A:4);
                                  A:=A+2;
                           END;
                          WRITELN;
             END;
READLN;
END.

14)   Buat urutan angka dari terkecil sampai terbesar dari 5 (lima) nilai yang
diinput. Gunakan metode urutan, pemilihan dan pengulangan.

Layout:

Angka 1 : 8
Angka 2 : 17
Angka 3 : 5
Angka 4 : 7
Angka 5 : 18
Hasil urutan sebagai berikut:
5 7 8 17 18

Penyelesaian

Aksi akan dikerjakan jika kondisi benar.

Program Pascalnya:

USES CRT;
VAR NILAI  : ARRAY[1..5] OF INTEGER;
I ,TEMP,J    : INTEGER;
BEGIN
     CLRSCR;
     FOR i:=1 TO 5 DO
     BEGIN
          WRITE('MASUKAN NILAI ',I,':');READLN(NILAI[I]);
     END;
     FOR i:=1 TO 5 DO
     BEGIN
            FOR J:=1 TO 5 DO
                    BEGIN
                           IF NILAI[I] < NILAI[J] THEN
                                   BEGIN
                                         TEMP:=NILAI[J];
                                         NILAI[J]:=NILAI[I];
                                         NILAI[I]:=TEMP;
                                  END;
                  END;
     END;
     WRITELN('HASIL URUTANNYA ADALAH:');
     FOR I:=1 TO 5 DO
     WRITE(NILAI[I]:5);
     READLN;
END.

15)    Buat program sederhana menggunakan metode pemilihan untuk
menampilkan keterangan umur di mana:

Umur Keterangan
0-5 Balita
6-13 Anak-anak
14-25 Remaja
26-40 Dewasa
> 41 Orang Tua

Dengan memasukkan nama, nim, program studi, dan tahun lahir, maka
akan ditampilkan umur dan keterangan umur.

Layoutnya:

Nama : Asraruddin
Nim : 21015135
Program studi : Sistem Informasi
Tahun lahir : 1987
Umur : 23
Keterangan : Remaja

Penyelesaiannya:

USES CRT;
VAR LAHIR, UMUR: INTEGER;
KET: STRING;
BEGIN
       WRITE('NIM : ');READLN;
       WRITE('NAMA : ');READLN;
       WRITE('PROGRAM STUDI: ');READLN;
       WRITE('TAHUN LAHIR : ');READLN(LAHIR);
       WRITELN;
       UMUR:=2010-LAHIR;
       IF UMUR<=5 THEN KET:='BALITA'
       ELSE IF UMUR<=13 THEN KET:='ANAK-ANAK'
       ELSE IF UMUR<=25 THEN KET:='REMAJA'
       ELSE IF UMUR<=40 THEN KET:='DEWASA'
       ELSE KET:='ORANG TUA';
       WRITELN('UMUR : ', UMUR);
       WRITELN('KETERANGAN: ', KET);
READLN;
END.

Tidak ada komentar:

Posting Komentar

Hanya main Click doank...

Iklan tambahan

Powered By Blogger