Artikel

Stuktur Algoritma

Kali ini kita akan memahami penggunaan struktur algoritma berupa :

  1. Sequence (urutan)
  2. Selection (Pemilihan)
  3. Iteration (Pengulangan)

 

  1. SEQUENCE

Sequence adalah kumpulan instruksi yang tiap tiap instruksi dilaksanakan secara berurutan sesuai dengan urutan penulisannya , sebuah instruksi baru bisa dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan.

Contoh :

Algoritma hitung_keliling_bujur_sangkar

{menghitung keliling bujur sangkar}

Deklarasi:

                k, s : integer  {integer merupakan salah satu tipe data bilangan bulat}

Deskripsi:

                Input(s)                                      {menerima s yaitu sisi bujur sangkar}

                k (simbol panah kekiri)        4 * s  {rumus menghitung keliling bujur sangkar}

                output (k)                                     {mencetak k sebagai keliling bujur sangkar}

 

Contoh lain :

Algoritma luas_persegi_panjang

{menghitung luas persegi panjang}

Deklarasi:

                p,l,luas : integer

Deskripsi:

                Input(p)                                               {menerima p yaitu nilai panjang persegi panjang}

                Input(l)                                                 {menerima l yaitu nilai lebar persegi panjang}

                luas (simbol panah kekiri)        p * l       {rumus menghitung luas persegi panjang}

                output(luas)                                          {mencetak luas persegi panjang}

latihan:

  1. Tulislah algoritma yang mendapatkan masukan jam dan menit untuk dinyatakan dalam menit?

Jawab :

Algoritma Nyatakan_waktu_dalam_menit

{menyatakan waktu dalam menit}

Deklarasi:

        J, m, tm : integer

Deskripsi :

        Input(J)                                                           {menerima masukan J yaitu Jam}

        Input(m)                                                          {menerima masukan m yaitu menit}

        tm (simbol panah kekiri)        ((J*60)+m)           {menkonversi jam kedalam menit & menambahka n jumlah menit}

        output(tm)                                                        {mencetak total menit yang telah di konversi}

 

  1. Tulislah algoritma yang menit untuk dinyatakan dalam jam dan menit?

Jawab :

Algoritma nyatakan_waktu_dalam_jam_dan_menit

{menyatakan waktu dalam jam dan menit}

Deklarasi:

a, h, m : integer

Deskripsi:

        Input(a)                                             {menerima masukkan m yaitu jumlah menit}

        m (simbol panah kekiri)        a mod 60 {mencari sisa menit dalam jam, mod adalah perintah untuk mencari hasil sisa bagi dari sebuah bilangan dalam bentuk bilangan bulat}

        h (simbol panah kekiri)        (a-m)/60  {mencari banyaknya jam yang ada}

        output(h,m)                                       {mencetak jam dan menit yang telah dicari}

  1. SELECTION

Selection adalah instruksi yang mengandung pemilihan apakah suatu kondisi memeuhi kondisi yang disyaratkan atau tidak. Sebuah selection biasanya memiliki:

  1. Kondisi persyaratan pemilihan
  2. Instruksi jika kondisi dipenuhi
  3. Instruksi jika kondisi tidak dipenuhi(optional)

Terdapat dua jenis selection yaitu :

  • Selection dengan banyak kasus
  • Selection dengan satu/dua kasus

Selection dengan banyak kasus :

Sintaks yang digunakan :

Depend on (sesuatu)

:

:

:

:

Contoh :

Algoritma tulis_bilangan

{menyatakan suatu bilangan}

Deklarasi :

                B : integer

Deskripsi :

Input(B)               {menerima bilangan b}

Depend on (B)

B = 1 : output(‘satu’)

B = 2 : output(‘dua’)

B = 3 : output(‘tiga’)

Latihan :

  1. Tulislah algoritma yang menerima nilai mahasiswa, lalu tentukan apakah nilai tersebut A, B, C, D atau E

Ketentuan : A(>=80), (68<=B<80), 56<C<68),(45<D<56),E<45

JAWAB :

Algoritma nilai_mahasiswa

{menentukan nilai mahasiswa}

Deklarasi :

        X : integer

Deskripsi

        Input(X)               {menerima bilangan X}

        Depend on (X)

                        X >= 80 : output(‘A’)

                        68 <= X <80 : output (‘B’)

                        56 <= X

                        45 <= X <56 : output(‘D’)

                        X <45 : output (‘E’)

Selection dengan satu/dua kasus

Sintaks yang digunakan:

                If (kondisi) then {kondisi benar terpenuhi}

                                Aksi 1

                Else {not  kondisi}

                                Aksi 2

Contoh

Algoritma bilangan_negative_positif

{menyatakan suatu bilangan negatif positif}

Deklarasi :

                B : integer

Deskripsi :

                Input (B)              {menerima bilangan B}

                If B <0 then

                                Output (‘bilangan negatif’)

                Else

                                Output (‘bilangan positif’)

Latihan

  1. Tulislah algoritma yang menerima bilangan dan tentukan bilangan tersebut bilangan genap atau ganjil!

Jawab :

Algoritma bilangan_ganjil_genap

{menentukan bilangan ganjil atau genap}

Deklarasi :

                X : integer

Deskripsi :

                Input (X)              {menerima  bilangan X}

                If X mod 2 = 0 then,

                                Output (‘bilangan genap’)

                Else

                                Output (‘bilangan ganjil’)

                End if

  1. Tulislah algoritma yang menerima masukan menit, kemudian konversikan menit tersebut kedalam jam. Jika jam yang dihasilkan lebih dari 5 jam maka cetak bahwa ‘jam lebih dari 5’!

Jawab :

Algoritma konversi_menit_ke_jam

{mengkonversikan menit ke dalam jam}

Deklarasi :

                H, M : integer

Deskripsi :

                Input (M)                                          {menerima masukan menit}

                 H (simbol panah kekiri)     M/60         {mengkonversi menit ke jam}

                If H > 5 then,

                                Output (‘Jam lebih dari 5’)

                Else

                                Output (‘H (jam)’)

                End if

 

  1. ITERATION

Iteration adalah jenis instruksi yang melakukan pengulagan terhadap instruksi yang dijalankan. Sebuah iteration terdiri dari bagian, yaitu :

  1. Kondisi yang menyebabkan perulangan harus berhenti. Kondisi ini dinyatakan dalam ekspresi logika true atau
  2. Aksi yang diulang, tindakan terus menerus diulang selama kondisi memenuhi

Beberapa macam iteration yaitu :

  1. Berdasarkan pencacah

Perulangan berdasarkan pencacah digunaka untuk melakukan pengulangan yang diketahui batas awal dan batas akhir dari pengulangan tersebut. Terdapat dua jenis pengulangan yang digunakan yaitu :

For to do (ascending)

For down to (desecending)

 

  • For to do

Sintaks yang digunakan untuk melakukan pengulangan tersebut adalah :

For (inisialisasi_batas_awal) to (batas_akhir) do

 

Next var

{nilai akan dinaikan sebesar 1}

Contoh :

Menerima masukan nilai bilangan tertentu dan menampilkan deret berdasarkan bilangan yang dimasukkan, misal:

Jika dimasukkan n=1, maka akan ditampilkan deret : 1

Jika dimasukkan n=2, maka akan ditampilkan deret : 1, 2

Contoh algoritma :

Algoritma tulis_deret

{menampilkan deret menggunakan for to do}

Deklarasai :

        N, i : integer

Deskripsi :

        Input(N)              {menerima masukan N yaitu bilangan}

        For i = 1 to N do

                        Output (i, ‘,’) {menampilkan nilai i}

        Next i

  • For downto do

Sintaks yang digunakan untuk melakukan pengulangan tersebut adalah:

For (inisialisasi_batas_akhir) downto (batas_awal) do

 

{nilai akan diturunkan sebesar 1}

Next var

Contoh

Menerima masukan nilai bilanga tertentu dan menampilkan deret berdasarkan bilangan yang dimasukkan, misal :

Jika dimasukkan n = 1, maka akan ditampilkan deret : 1

Jika dimasukkan n = 2, maka akan ditampilkan deret : 2,1

Contoh algoritma :

Algoritma tulis_deret2

{menampilkan deret menggunakan for downto do}

Deklarasi :

        N, i : integer

Deskripsi :

        Input (N)                     {menerima masukan N yaitu bilangan}

        For i = n downto 1 do

                        Output (i,’,’) {menampilkan nilai i}

        Next i

 

Latihan

  1. Menerima masukan nilai bilangan tertentu dan menampilkan deret berdasarkan bilangan yang dimasukkan, misal :

Jika dimasukkan n = 1, maka akan ditampilkan deret : 1

Jika dimasukkan n = 2, maka akan ditampilkan deret : 1, 3

Jika dimasukkan n = 1, maka akan ditampilkan deret : 1, 3, 4

Jika dimasukkan n = N, maka akan ditampilkan deret : 1, 1+2, 1+3, ... ,1+N

Tulislah algoritma untuk persoalan tersebut :

Algoritma tulis_deret_plus1

{menampilkan deret untuk selain angka 1 ditambah 1}

Deklarasi :

        n, i, m : integer

Deskripsi :

        Input (n)

        For i = 1 downto n do

                        If i = 1 then

                                        Output (i,’,’)

                        Else

                          m (simbol panah kekiri)        i + 1

                                        output (m,’,’)

                        End If

        Next i

  1. Berdasarkan kondisi berhenti

Pengulangan dilakukan terus hingga kondisi berhenti. Aksi/tindakan minimal dilakukan sekali. Repeat behenti jika kondisi yang diinginkan sudah terpenuhi. Sintaks yang digunakan:

 

Repeat

 

Until kondisi berhenti {kondisi berhenti bernilai true}

 

Contoh

Menerima masukan nilai bilangan tertentu dan menampilkan deret berdasarkan bilangan yang dimasukkan, misal :

Jika dimasukkan n =1, maka akan ditampilkan deret : 1

Jika dimasukkan n =2, maka akan ditampilkan deret : 1, 2

Contoh algoritma :

Algoritma tulis_deret3

{menampilkan deret menggunakan repeat until}

Deklarasi :

        N, i : integer

Deskripsi:

        Input (N)                                 {menerima N yaitu bilangan}

        i (simbol panah kekiri)       1

        repeat

                        output(i,’,’)               {menampilkan nilai i}

                        i (simbol panah kekiri)        i + 1

        until (i>n)

latihan:

  1. Menerima masukan nilai bilangan tertentu dan menampilkan deret berdasarkan bilangan yang dimasukkan, misal :

Jika dimasukkan n = 1, maka akan ditampilkan deret : 1

Jika dimasukkan n = 2, maka akan ditampilkan deret : 1,3

Jika dimasukkan n = 3, maka akan ditampilkan deret : 1, 3, 4

Jika dimasukkan n = N, maka akan ditampilkan deret : 1, 1+2, 1+3,...,1+N

Tulislah algoritma untuk persoalan tersebut :

Algoritma tulis_deret_plus1

{menampilkan deret menggunakan repeat until}

Deklarasi :

        I, m, n : integer

Deskripsi :

        Input (n)                             {menerima n yaitu bilangan}

        I (simbol panah kekiri)      1

Repeat

                If I = 1 then

                                Output(I,’,’)

                Else

                  m (simbol panah kekiri)        I + 1

                                output(m,’,’)

                End If

I (simbol panah kekiri)     I + 1

Until (I>n)

 

  1. Berdasarkan kondisi pengulangan

Pengulangan akan dilakukan jika kondisi pengulangan terpenuhi. Sintaks dasar yang digunakan :

While (kondisi_pengulangan) do

 

{kondisi berhenti berlawanan dari kondisi pengulangan}

Contoh :

Menerima masukan nilai bilangan tertentu dan menampilkan deret berdasarkan bilangan yang dimasukkan, misal :

Jika dimasukkan n =1, maka akan ditampilkan deret : 1

Jika dimasukkan n =2, maka akan ditampilkan deret : 1, 2

Contoh algoritma :

Algoritma tulis_deret4

{menampilkan deret menggunakan while do}

Deklarasi :

        N, i : integer

Deskripsi :

        Input(N)                                                   { menerima n yaitu bilangan}

        i  (simbol panah kekiri)   1

        while (i <= n) do

                        output(i,’,’)                                {menampilkan nilai i}

                        i  (simbol panah kekiri)       i + 1

latihan :

  1. Menerima masukan nilai bilangan tertentu dan menampilkan deret berdasarkan bilangan yang dimasukkan, misal :

Jika dimasukkan n = 1, maka akan ditampilkan deret : 1

Jika dimasukkan n = 2, maka akan ditampilkan deret : 1,3

Jika dimasukkan n = 3, maka akan ditampilkan deret : 1, 3, 4

Jika dimasukkan n = N, maka akan ditampilkan deret : 1, 1+2, 1+3,...,1+N

Tulislah algoritma untuk persoalan tersebut :

Algoritma tulis_deret

{menampilkan deret menggunakan while do}

Deklarasi :

        N, i, m : integer

Deskripsi :

        Input (N) {menerima N yaitu bilangan}

        i  (simbol panah kekiri)    1

        while (i <= N) do

                        if i = 1 then

                                        output (i,’,’)

                        else

                          m  (simbol panah kekiri)    i + 1

                                        output (m,’,’)

        i  (simbol panah kekiri)    i + 1

 

 rekan rekan dapat mendownload materinya di bawah ini

download materi struktur algoritma

 Semoga artikel/materi pembelajaran ini bermanfaat untuk rekan rekan

jika bermanfaat silahkan di share

Terima Kasih

SALAMPERUBAHAN

#berbagiitumenyenangkan