Makin besar ruang penyimpanan yang terpakai maka makin buruklah algoritma

Berikut ini adalah pertanyaan dari sitiarofah906 pada mata pelajaran TI untuk jenjang Sekolah Menengah Pertama

Makin besar ruang penyimpanan yang terpakai maka makin buruklah algoritma tersebut. Pada kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Hal ini termasuk pertimbangan efisiensi algoritma dalam ruang lingkup .....a. efisiensi identifikasi
b. efisiensi memori
c. efisiensi pemakaian
d. efisiensi waktu ​

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Makin besar ruang penyimpanan yang terpakai maka makin buruklah algoritma tersebut. Pada kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Hal ini termasuk pertimbangan efisiensi algoritma dalam ruang lingkup:
efisiensi memori (opsi b)

Pembahasan

Contoh sederhana yang dapat menjadi ilustrasi efisiensi memoridalam penyusunan algoritma adalah penggunaan tipe data\tt stringdan\tt char (karakter).

Misalkan: algoritma A mendeklarasikan variabel \tt opsi\_jawabanbertipe data\tt string, sedangkan algoritma B mendeklarasikan variabel \tt opsi\_jawabanbertipe data\tt char. Sementara, pada spesifikasi kebutuhan perangkat lunak / program, opsi jawaban dari user disimpan dalam bentuk 1 karakter.

Maka, yang lebih efisien adalah algoritma B, karena \tt opsi\_jawaban tepat menyimpan 1 karakter, yang pada umumnya direpresentasikan secara internal dengan blok data sepanjang 1 Byte (8 bit).

Sedangkan pada algoritma A, \tt opsi\_jawabanyang bertipe\tt string membutuhkan paling sedikit 2 karakter (dengan mekanisme alokasi memori khusus untuk string dapat menjadi fixed 2 karakter), yaitu karakter yang dibaca dari masukan user, dan karakter terminasi berupa karakter null (\0). Tipe data \tt stringadalah untaian karakter yang diakhiri oleh karakter terminasinull, atau disebut juga null-terminated.

Contoh lainnya adalah pada kasus berikut ini.

Persoalan: Menyusun algoritma untuk menentukan nilai terbesar dari 3 bilangan yang dimasukkan user.

  • Algoritma BilanganTerbesar1
    input a, b, c
    max ← a
    if b > max then
       max ← b
    end if
    if c > max then
       max ← c
    end if
    return max
  • Algoritma BilanganTerbesar2
    input x  # bilangan pertama
    max ← x
    input x  # bilangan kedua
    if x > max then
       max ← x
    end if
    input x  # bilangan ketiga
    if x > max then
       max ← x
    end if
    return max

Sekilas, algoritma BilanganTerbesar2 lebih panjang dari algoritma BilanganTerbesar1. Dan mungkin juga membingungkan karena untuk ketiga bilangan yang dimasukkan hanya digunakan sebuah variabel \tt x. Namun, perhatikan variabelnya.

  • Algoritma BilanganTerbesar1 membutuhkan 4 variabel, yaitu a, b, c, dan max. Jika setiap variabel bertipe integer 32 bit (4 Byte), maka dibutuhkan blok memori sebesar 4 × 4 Byte = 16 Byte untuk semua variabelnya.
  • Algoritma BilanganTerbesar2 membutuhkan 2 variabel saja, yaitu x dan max. Jika setiap variabel bertipe integer 32 bit (4 Byte), maka dibutuhkan blok memori sebesar 2 × 4 Byte = 8 Byte untuk semua variabelnya.

Jika tidak ada kebutuhan untuk menyimpan ketiga bilangan yang dimasukkan, maka algoritma BilanganTerbesar2 lebih efisien dalam hal penggunaan/alokasi memori.

Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.

Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact

Last Update: Wed, 21 Dec 22