Contoh Soal Pascal Kelas X Semester 2: Panduan Lengkap

Contoh Soal Pascal Kelas X Semester 2: Panduan Lengkap

Contoh Soal Pascal Kelas X Semester 2: Panduan Lengkap

Pendahuluan

Pascal, bahasa pemrograman terstruktur klasik, tetap relevan dalam pendidikan informatika. Artikel ini menyajikan 40 contoh soal Pascal untuk siswa kelas X semester 2, dirancang untuk menguji pemahaman konsep dasar dan kemampuan pemecahan masalah. Soal-soal ini mencakup berbagai topik, mulai dari input/output, percabangan, perulangan, hingga array sederhana. Setiap soal disertai penjelasan singkat untuk membantu proses belajar.

A. Input dan Output Sederhana

  1. 

<p><strong>Contoh Soal Pascal Kelas X Semester 2: Panduan Lengkap</strong></p>
<p>” title=”</p>
<p><strong>Contoh Soal Pascal Kelas X Semester 2: Panduan Lengkap</strong></p>
<p>“></p>
<p><strong>Soal:</strong> Buat program yang meminta pengguna memasukkan nama mereka dan kemudian menampilkan sapaan "Halo, !".</p>
<p><strong>Contoh Kode:</strong></p>
<pre><code class=program Sapaan; uses crt; var nama: string; begin clrscr; write('Masukkan nama Anda: '); readln(nama); writeln('Halo, ', nama, '!'); readln; end.
  2. Soal: Buat program yang meminta pengguna memasukkan dua angka dan menampilkan hasil penjumlahan, pengurangan, perkalian, dan pembagiannya.

    Contoh Kode:

    program OperasiAritmatika;
    uses crt;
    var
      angka1, angka2, jumlah, selisih, hasilKali, hasilBagi: real;
    begin
      clrscr;
      write('Masukkan angka pertama: ');
      readln(angka1);
      write('Masukkan angka kedua: ');
      readln(angka2);
    
      jumlah := angka1 + angka2;
      selisih := angka1 - angka2;
      hasilKali := angka1 * angka2;
      hasilBagi := angka1 / angka2;
    
      writeln('Jumlah: ', jumlah:0:2);
      writeln('Selisih: ', selisih:0:2);
      writeln('Hasil Kali: ', hasilKali:0:2);
      writeln('Hasil Bagi: ', hasilBagi:0:2);
      readln;
    end.
  3. Soal: Buat program untuk menghitung luas persegi panjang. Program meminta panjang dan lebar dari pengguna.

    Contoh Kode:

    program LuasPersegiPanjang;
    uses crt;
    var
      panjang, lebar, luas: real;
    begin
      clrscr;
      write('Masukkan panjang: ');
      readln(panjang);
      write('Masukkan lebar: ');
      readln(lebar);
    
      luas := panjang * lebar;
    
      writeln('Luas persegi panjang: ', luas:0:2);
      readln;
    end.
  4. Soal: Buat program yang meminta pengguna memasukkan jari-jari lingkaran dan menghitung luas dan kelilingnya.

    Contoh Kode:

    program Lingkaran;
    uses crt;
    const
      pi = 3.14;
    var
      jariJari, luas, keliling: real;
    begin
      clrscr;
      write('Masukkan jari-jari lingkaran: ');
      readln(jariJari);
    
      luas := pi * jariJari * jariJari;
      keliling := 2 * pi * jariJari;
    
      writeln('Luas lingkaran: ', luas:0:2);
      writeln('Keliling lingkaran: ', keliling:0:2);
      readln;
    end.
  5. Soal: Program untuk konversi suhu dari Celsius ke Fahrenheit.

    Contoh Kode:

    program CelsiusKeFahrenheit;
    uses crt;
    var
      celsius, fahrenheit: real;
    begin
      clrscr;
      write('Masukkan suhu dalam Celsius: ');
      readln(celsius);
    
      fahrenheit := (celsius * 9 / 5) + 32;
    
      writeln('Suhu dalam Fahrenheit: ', fahrenheit:0:2);
      readln;
    end.

B. Percabangan (IF-THEN-ELSE)

  1. Soal: Buat program yang menentukan apakah suatu bilangan yang dimasukkan pengguna adalah bilangan genap atau ganjil.

    Contoh Kode:

    program GenapGanjil;
    uses crt;
    var
      bilangan: integer;
    begin
      clrscr;
      write('Masukkan sebuah bilangan bulat: ');
      readln(bilangan);
    
      if (bilangan mod 2 = 0) then
        writeln(bilangan, ' adalah bilangan genap')
      else
        writeln(bilangan, ' adalah bilangan ganjil');
      readln;
    end.
  2. Soal: Buat program untuk menentukan nilai terbesar dari dua bilangan yang dimasukkan pengguna.

    Contoh Kode:

    program TerbesarDuaBilangan;
    uses crt;
    var
      bil1, bil2: integer;
    begin
      clrscr;
      write('Masukkan bilangan pertama: ');
      readln(bil1);
      write('Masukkan bilangan kedua: ');
      readln(bil2);
    
      if (bil1 > bil2) then
        writeln('Bilangan terbesar adalah: ', bil1)
      else
        writeln('Bilangan terbesar adalah: ', bil2);
      readln;
    end.
  3. Soal: Buat program yang menentukan apakah suatu tahun yang dimasukkan pengguna adalah tahun kabisat atau bukan.

    Contoh Kode:

    program TahunKabisat;
    uses crt;
    var
      tahun: integer;
    begin
      clrscr;
      write('Masukkan tahun: ');
      readln(tahun);
    
      if (tahun mod 4 = 0) then
      begin
        if (tahun mod 100 = 0) then
        begin
          if (tahun mod 400 = 0) then
            writeln(tahun, ' adalah tahun kabisat')
          else
            writeln(tahun, ' bukan tahun kabisat');
        end
        else
          writeln(tahun, ' adalah tahun kabisat');
      end
      else
        writeln(tahun, ' bukan tahun kabisat');
      readln;
    end.
  4. Soal: Buat program yang memberikan diskon berdasarkan jumlah pembelian. Jika pembelian lebih dari 100000, berikan diskon 10%.

    Contoh Kode:

    program Diskon;
    uses crt;
    var
      pembelian, diskon, total: real;
    begin
      clrscr;
      write('Masukkan jumlah pembelian: ');
      readln(pembelian);
    
      if (pembelian > 100000) then
        diskon := 0.1 * pembelian
      else
        diskon := 0;
    
      total := pembelian - diskon;
    
      writeln('Diskon: ', diskon:0:2);
      writeln('Total yang harus dibayar: ', total:0:2);
      readln;
    end.
  5. Soal: Program menentukan grade nilai (A, B, C, D, E) berdasarkan nilai yang dimasukkan. (A: 80-100, B: 70-79, C: 60-69, D: 50-59, E: <50).

    Contoh Kode:

    program GradeNilai;
    uses crt;
    var
      nilai: integer;
    begin
      clrscr;
      write('Masukkan nilai: ');
      readln(nilai);
    
      if (nilai >= 80) then
        writeln('Grade: A')
      else if (nilai >= 70) then
        writeln('Grade: B')
      else if (nilai >= 60) then
        writeln('Grade: C')
      else if (nilai >= 50) then
        writeln('Grade: D')
      else
        writeln('Grade: E');
      readln;
    end.

C. Perulangan (FOR, WHILE, REPEAT)

  1. Soal: Buat program yang menampilkan angka 1 hingga 10 menggunakan perulangan FOR.

    Contoh Kode:

    program PerulanganFor;
    uses crt;
    var
      i: integer;
    begin
      clrscr;
      for i := 1 to 10 do
        writeln(i);
      readln;
    end.
  2. Soal: Buat program yang menampilkan angka 1 hingga 10 menggunakan perulangan WHILE.

    Contoh Kode:

    program PerulanganWhile;
    uses crt;
    var
      i: integer;
    begin
      clrscr;
      i := 1;
      while (i <= 10) do
      begin
        writeln(i);
        i := i + 1;
      end;
      readln;
    end.
  3. Soal: Buat program yang menampilkan angka 1 hingga 10 menggunakan perulangan REPEAT-UNTIL.

    Contoh Kode:

    program PerulanganRepeat;
    uses crt;
    var
      i: integer;
    begin
      clrscr;
      i := 1;
      repeat
        writeln(i);
        i := i + 1;
      until (i > 10);
      readln;
    end.
  4. Soal: Buat program yang menghitung jumlah bilangan dari 1 hingga n, di mana n dimasukkan oleh pengguna.

    Contoh Kode:

    program JumlahBilangan;
    uses crt;
    var
      n, i, jumlah: integer;
    begin
      clrscr;
      write('Masukkan nilai n: ');
      readln(n);
    
      jumlah := 0;
      for i := 1 to n do
        jumlah := jumlah + i;
    
      writeln('Jumlah bilangan dari 1 hingga ', n, ' adalah: ', jumlah);
      readln;
    end.
  5. Soal: Buat program yang menampilkan tabel perkalian dari 1 hingga 10 untuk suatu bilangan yang dimasukkan pengguna.

    Contoh Kode:

    program TabelPerkalian;
    uses crt;
    var
      bilangan, i: integer;
    begin
      clrscr;
      write('Masukkan bilangan: ');
      readln(bilangan);
    
      for i := 1 to 10 do
        writeln(bilangan, ' x ', i, ' = ', bilangan * i);
      readln;
    end.

D. Array Sederhana

  1. Soal: Buat program yang meminta pengguna memasukkan 5 angka ke dalam array dan kemudian menampilkan angka-angka tersebut.

    Contoh Kode:

    program ArraySederhana;
    uses crt;
    var
      angka: array of integer;
      i: integer;
    begin
      clrscr;
      for i := 1 to 5 do
      begin
        write('Masukkan angka ke-', i, ': ');
        readln(angka);
      end;
    
      writeln('Angka-angka yang Anda masukkan:');
      for i := 1 to 5 do
        writeln(angka);
      readln;
    end.
  2. Soal: Buat program yang menghitung jumlah elemen dalam sebuah array integer dengan 10 elemen. Isi array dengan nilai sembarang.

    Contoh Kode:

    program JumlahArray;
    uses crt;
    var
      angka: array of integer;
      i, jumlah: integer;
    begin
      clrscr;
      angka := 10;
      angka := 20;
      angka := 30;
      angka := 40;
      angka := 50;
      angka := 60;
      angka := 70;
      angka := 80;
      angka := 90;
      angka := 100;
    
      jumlah := 0;
      for i := 1 to 10 do
        jumlah := jumlah + angka;
    
      writeln('Jumlah elemen array: ', jumlah);
      readln;
    end.
  3. Soal: Buat program untuk mencari nilai terbesar dalam sebuah array integer dengan 7 elemen.

    Contoh Kode:

    program NilaiTerbesarArray;
    uses crt;
    var
      angka: array of integer;
      i, terbesar: integer;
    begin
      clrscr;
      angka := 5;
      angka := 12;
      angka := 3;
      angka := 25;
      angka := 8;
      angka := 19;
      angka := 1;
    
      terbesar := angka;
      for i := 2 to 7 do
      begin
        if (angka > terbesar) then
          terbesar := angka;
      end;
    
      writeln('Nilai terbesar dalam array: ', terbesar);
      readln;
    end.
  4. Soal: Buat program untuk membalikkan urutan elemen dalam sebuah array dengan 5 elemen.

    Contoh Kode:

    program BalikArray;
    uses crt;
    var
      angka: array of integer;
      i, temp: integer;
    begin
      clrscr;
      angka := 1;
      angka := 2;
      angka := 3;
      angka := 4;
      angka := 5;
    
      for i := 1 to 2 do // Hanya perlu sampai setengah array
      begin
        temp := angka;
        angka := angka; // Indeks dari belakang
        angka := temp;
      end;
    
      writeln('Array setelah dibalik:');
      for i := 1 to 5 do
        writeln(angka);
      readln;
    end.
  5. Soal: Buat program yang menghitung rata-rata dari elemen-elemen dalam array bertipe real dengan 6 elemen.

    Contoh Kode:

    program RataRataArray;
    uses crt;
    var
      angka: array of real;
      i: integer;
      jumlah, rataRata: real;
    begin
      clrscr;
      angka := 2.5;
      angka := 5.0;
      angka := 7.5;
      angka := 10.0;
      angka := 12.5;
      angka := 15.0;
    
      jumlah := 0;
      for i := 1 to 6 do
        jumlah := jumlah + angka;
    
      rataRata := jumlah / 6;
    
      writeln('Rata-rata elemen array: ', rataRata:0:2);
      readln;
    end.

E. Soal Tambahan (Variasi)

Soal 21-40 adalah variasi dari soal-soal di atas, menggabungkan beberapa konsep (input/output, percabangan, perulangan, array) untuk meningkatkan kompleksitas dan melatih kemampuan problem-solving siswa. Contohnya:

  • Program yang menghitung faktorial suatu bilangan menggunakan perulangan.
  • Program yang menentukan apakah suatu bilangan adalah bilangan prima.
  • Program yang menampilkan deret Fibonacci hingga n suku.
  • Program yang mengurutkan elemen-elemen dalam array (misalnya, menggunakan bubble sort).
  • Program yang mencari elemen dalam array (linear search).
  • Program yang mengimplementasikan kalkulator sederhana dengan operasi penjumlahan, pengurangan, perkalian, dan pembagian.
  • Program yang menampilkan pola bintang (misalnya, segitiga atau piramida) menggunakan perulangan bersarang.
  • Program yang menghitung jumlah bilangan genap dan ganjil dalam sebuah array.
  • Program yang mengubah huruf kecil menjadi huruf besar dan sebaliknya.
  • Program yang menghitung frekuensi kemunculan setiap angka dalam array.
  • Program yang menentukan apakah suatu string adalah palindrome.
  • Program yang mengkonversi bilangan desimal ke biner.
  • Program yang menghitung nilai rata-rata dan standar deviasi dari sekumpulan data.
  • Program yang menampilkan bilangan prima antara 1 dan 100.
  • Program yang membuat game tebak angka sederhana.
  • Program yang menentukan apakah suatu matriks adalah matriks identitas.
  • Program yang menghitung determinan matriks 2×2.
  • Program yang menjumlahkan dua matriks.
  • Program yang mengalikan dua matriks.
  • Program yang melakukan transpose matriks.

Kesimpulan

Contoh soal di atas memberikan gambaran tentang berbagai topik yang mungkin diujikan dalam bab Pascal kelas X semester 2. Dengan berlatih soal-soal ini, siswa dapat memperkuat pemahaman mereka tentang konsep dasar pemrograman dan meningkatkan kemampuan mereka dalam menyelesaikan masalah menggunakan Pascal. Jangan ragu untuk memodifikasi dan mengembangkan soal-soal ini untuk tantangan yang lebih besar.

Leave a Reply

Your email address will not be published. Required fields are marked *