Minggu, 21 Februari 2010

Soal Algoritma dan Pemrograman I

Buatlah Algoritma dan program untuk mengolah data nilai mata pelajaran TIK seorang siswa, yang terdiri dari Nilai Mid 1, Nilai Ulangan 1, Nilai Ulangan 2, dan Nilai Ulangan Blok 2 dengan
ketentuan:
  • program dapat memasukkan identitas siswa yaitu: nama, kelas dan nomor serta data nilai siswa.
  • program dapat menghitung nilai final seorang siswa dengan rumus: Nilai Final = (Nilai Mid 1+ Nilai Ulangan 1 + Nilai Ulangan 2 + 2 x Ulangan Blok)/5
  • Program dapat menentukan predikat ketuntasan nilai seorang siswa, yaitu jika: Nilai Final >=65, maka predikatnya TUNTAS, selain itu predikatnya TIDAK TUNTAS.
  • Program kemudian menampilkan kembali data siswa, data nilai, nilai final dan predikatnya.

2 komentar:

  1. Pa, boleh saya coba menjawab?

    Untuk algoritma sederhana :
    1. Memasukan nama
    2. Memasukan kelas
    3. Memasukan nomor
    2. Memasukan Nilai Mid 1, Nilai Ulangan 1, Nilai Ulangan 2, dan Nilai Ulangan Blok 2
    3. Menghitung Nilai Final
    4. Menentukan predikat ketuntasan nilai
    5. Menampilkan data siswa, data nilai, nilai final, dan predikat

    Untuk kode pemrograman (Pascal) :
    program Pengolah_Nilai ;
    var
    nama : string;
    kls, no, nm1, nu1, nu2, nub2, x : integer ;

    procedure Identitas_Siswa ;
    begin
    write ('Nama : ') ; readln (nama) ;
    repeat
    write ('Kelas : ') ; readln (kls) ;
    if ( kls < 10 ) or ( kls > 12 ) then writeln ('( Maaf, hanya berlaku untuk kelas 10, 11, dan 12 )') ;
    until ( kls >= 10 ) and ( kls <= 12 ) ;
    repeat
    write ('Nomor : ') ; readln (no) ;
    if ( no < 0 ) or ( no > 40 ) then writeln ('( Maaf, hanya berlaku untuk nomor 1 - 40 )') ;
    until ( no >= 0 ) and ( no <= 100 ) ;
    end;

    procedure Identifikasi_Nilai ;
    begin
    repeat
    write ('Nilai Mid 1 : ') ; readln (nm1) ;
    if ( nm1 < 0 ) or ( nm1 > 100 ) then writeln ('( Maaf, hanya berlaku untuk nilai 0 - 100 )') ;
    until ( nm1 >=0 ) and ( nm1 <= 100) ;
    repeat
    write ('Nilai Ulangan 1 : ') ; readln (nu1) ;
    if ( nu1 < 0 ) or ( nu1 > 100 ) then writeln ('( Maaf, hanya berlaku untuk nilai 0 - 100 )') ;
    until ( nu1 >=0 ) and ( nu1 <= 100) ;
    repeat
    write ('Nilai Ulangan 2 : ') ; readln (nu2) ;
    if ( nu2 < 0 ) or ( nu2 > 100 ) then writeln ('( Maaf, hanya berlaku untuk nilai 0 - 100 )') ;
    until ( nu2 >=0 ) and ( nu2 <= 100) ;
    repeat
    write ('Nilai Ulangan Blok 2 : ') ; readln (nub2) ;
    if ( nub2 < 0 ) or ( nub2 > 100 ) then writeln ('( Maaf, hanya berlaku untuk nilai 0 - 100 )') ;
    until ( nub2 >=0 ) and ( nub2 <= 100) ;
    end;

    procedure Hitung_Nilai ;
    begin
    x := ( nm1 + nu1 + nu2 + 2 * nub2 ) div 5
    end;

    procedure Predikat_Ketuntasan ;
    begin
    if x >= 65 then writeln ('Predikat : Tuntas')
    else writeln ('Predikat : Tidak Tuntas') ;
    end;

    procedure Isi_Form ;
    begin
    writeln ('Silakan isi identitas Anda!') ;
    Identitas_Siswa ;
    writeln ;
    writeln ('Silakan isi nilai-nilai Anda!') ;
    Identifikasi_Nilai ;
    writeln ;
    end ;

    procedure Report ;
    begin
    writeln ('Kesimpulan...') ;
    writeln ;
    writeln ('Nama : ', nama) ;
    writeln ('Kelas : ', kls) ;
    writeln ('Nomor : ', no) ;
    writeln ;
    writeln ('Nilai Mid : ', nm1) ;
    writeln ('Nilai Ulangan 1 : ', nu1) ;
    writeln ('Nilai Ulangan 2 : ', nu2) ;
    writeln ('Nilai Ulangan Blok 2 : ', nub2) ;
    writeln ;
    Hitung_Nilai ;
    writeln ('Nilai Final : ', x) ;
    writeln ;
    Predikat_Ketuntasan ;
    readln ;
    end ;

    begin
    Isi_Form ;
    Report
    end.

    Bagaimana, Pa?

    BalasHapus
  2. Sip! hanya sedikit yang harus di tambah kayaknya pada bagian 3 Proses Final proses atau ekspresinya di tuliskan juga.
    Coba untuk susunal Algoritma sesuaikan dengan format :

    PROGRAM xxxxxx;

    KAMUS
    ........;

    ALGORITMA
    ........
    dst.

    Sukses selalu!

    BalasHapus