Tecnologia, programação e muito Visual FoxPro.

sábado, 30 de abril de 2011

]] XL-mania [[ Trending: Ranking Siswa...

 

Kalau : Mengurutkan Daftar Siswa berdasarkan Nilainya; Ini pekerjaan mudah, karena Excel sudah ada alat sortingnya.

Tetapi kalau Case nya diperlengkap begini, (nanti kita ceritakan di bawah); mungkin anda harus menundukkan kepala barang  sedetik, baru  bilang mudah.

Contoh Kasus
Setiap siswa mempunyai (misalnya): 8 Nilai / untuk 8 Mata Pelajaran (MaPel) Utama.
Di dalam tabel, ke-delapan MaPel itu ditulis  sebagai judul kolom, dari kiri ke kanan sebelum akhirnya dijumlah
JumlahNilai ditulis dlm kolom ke sembilan (Jml Nilai)

Jajaran 8 MaPel itu tidak di susun sembarangan, tetapi di urutkan menurut Skala Prioritas-nya. MaPel yg ada di kolom pertama punya prioritas tertinggi, semakin ke kanan tempat menuliskannya semakin rendah prioritasnya.
Semula NamaSiswa di tabel terurut sesuai NIS (atau mungkin sesuai alfabet namanya, tererah saja..)


Kemudian, setelah Nilai tiap Mapel dimasukkan ke tabel; Nama siswa akan di urutkan dengan aturan:
Siswa yg tertinggi JumlNilai-nya akan ditulis di papan paling atas, semakin kecil nilai semakin ke bawah tempat namanya tercantum. Mungkin ini yg disebut Ranking.

Setiap Siswa akan diberi Nomor Ranking. Jika Ranking ( hasil fungsi Rank di excel) hanya didasarkan pada Jml Nilai saja
sepertinya Angka Ranking tsb belum mencerminkan Ranking yg mendekati keadaan sebenarnya tiap siswa.

Maka Pak Guru dan Bu Guru ingin Pemberian Ranking bukan hanya berdasarkan JmlNilai saja, melainkan juga dipengaruhi oleh
Nilai tiap MaPel dan Prioritasnya 
(Adek Mbelink seperti biasanya: protes: "lho kan sudah dijumlah to mbak-é?"
Kalau sedang seperti itu dia harus dipoles kepalannya tanda-sayang (seperti jaman SD dulu) sambil di-nasehati: "maka nya dengerin dulu...Dek")

Anda para penggemar bola, tentunya tahu, dlm kompetisi / misalnya di babak penyisihan per group. Penentuan Juara memang berdasarkan Nilai Kemenangan (victory point / VP)-nya. Tetapi jika ada lebih dari 1 tim punya VP yg sama, maka akan di bandingkan Jumlah goal yg dimasukkan. Tim dengan jumlah goal lebih banyak akan berada di atas tim lain yg goal-nya "kurang banyak"
Jika VP Dan Goal masih menghasilkan juara kembar, masih ada hal / point lain yg harus dibandingkan untuk menentukan Tim mana yg lebih unggul. Demikian seterusnya hingga Juara kembar tidak terjadi; bahkan kalau perlu diadakan adu penalty (kalau di indonesia malah adu jotos juga ada..)

Dlm Penentuan Ranking Siswa ini; juga akan diberlakukan hal yg mirip spt itu,
Pertama: JmlNilai menentukan rangking, jika ada rangking kembar, Nilai Mapel 1 akan dibandingkan, jika masih sama 
nilai Mapel 2 dibandingkan, Jika masih sama maka nilai Mapel 3 dibandingkan begitu seterusnya sampai semua Nilai Mapel dibandingkan.
Singkatnya Ranking terbentuk oleh JumlahNilai tetapi juga dipengaruhi oleh Nilai Per Mapel secara berjenjang sesuai dengan skala prioritasnya.

So..?!
Yang menjadi masalah adalah: bagaimana menSORT daftar siswa dengan cara & syarat seperti itu.

Dengan hanya menjumlah 8 nilai Mapel maka "nilai tiap Mapel" akan Lebur Jadi Satu, sehingga tidak ada lagi beda priortitasnya.
Maka harus ada cara lain yaitu mambuat nilai baru yg merupakan GABUNGAN Jumlah Nilai dan 8 Nilai Mapel.

Ini perlu dilakukan karena keterbatasan Exel dalam
(**) Kunci Kolom Sorting hanya terbatas 3 kolom
(**) Bilangan (misalnya gabungan nilai dikonvert menjadi data type bilangan utuh) di cell Excel hanya presisi pada mximal 15 digit
(sedangkan nilai gabungan 8 nilai saja sudah enjadi 4 + 24 digit.) bilangan lebih dari 15 digit akan mengalami pembulatan di buntutnya...

Cara menggabung, agar nilai-nilai tersebut masih punya pengaruh terhadap hasil sorting

1.
JumlahNilai dikonversi menjadi Text Anka, tanpa tanda pemisah desimal dan semua nilai dikonversi menjadi data yang jumlah digit-nya sama
Misal : rentang nilai pada JmlNilai  = 0.0 sampai 10.0
Setiap Jumlah Nilai dikalilkan 10 (untuk menghilangkan tanda pemisah desimal); kemudian di konversi menjadi text dengan bentuk "000"
=Text(JmlNilai*10,"0000")
Cara ini bertujuan walaupun data diubah tetapi nilai urutannya tidak berubah, terutama kelak pada saat digabung dengan data lain.


2
Setiap nilai per Mapel  (rentang nilai 0.00 sampai 10.0) juga diperlakukan seperti itu :
=Text(NilaiMapel_N * 10, "000")

3.
Ke sembilan data (jml Nilai, Nilai Mapel 1, nilai Mapel 2 dst sampai Nilai mapel 8) Digabung (bukan dijumlah)
=Concatenate(HasilKonversiJmlNilai, HasilKonversiNilaiMapel1, HasilKonversiNilaiMapel2,..... ,HasilKonveversiNilaiMapel8)

Sekarang tiap siswa punya kolom baru  (Kolom  "Nilai Lengkap") yg isinya mungkin seperti ini
"694 085 082 095 099 085 073 085 090"
3 Digit pertama adalah JmlNilai, tiap 3 digit berikutnya adlah Nilai Tiap Mapel

Kolom Inilah yg menjadi KolomKunci ketika Tabel DaftarNilai di Sort Descending (diurutkan secara menurun)

Seharusnya Sorting (dengan menu >data >sort) menghasilkan daftar siswa yg sudah terurut sesuai rangkingnya dimana rangking selain merefleksikan JumlahNilai juga diperngaruhi oleh Tiap Mapel dan Prioritasnya.


Workbook terlampir mencoba mengotomatiskan hal hal yg di didongengkan di atas..
- mulai dari mengkonversi setiap JumlahNilai dan Nilai per Mapel menjadi daa Text dengan digit yg seragam
- menyusun / menggabung menjadi Nilai Lengkap tiap siswa
- mensort agar nilai tertinggi ada di papan paling atas
- memberi nilai urutan Rank
- Menampilkan NIS dan Nama Siswa sejajar dengan NilaiLengkapnya yg sudah ter-sorted.

Semuanya dikerjakan hanya dengan sekali sentuh tombol
File ini dipersembahkan kepada para sobat: PakGuru/BuGuru, PakTU/BuTU yg memelukannya; mumpung saat ini masih musim durian (e salah lagi yaa.. musim murid pada cari nilai & dan musim sekolahan pada membuat nilai, & musim Ortu Murid mulai pusing..)

Mudah mudahan tidak terlalu salah dan ada manfaatnya

Bagi pelanggan milis yg ber-DeliveryStatus  WebOnly atau pun DailyDigest, maupun pelanggan yg ketinggalan kereta
(baru gabung ke milis setelah lewat tanggal posting) selain masih bisa mengunduh file lampiran di 
Archive milis (lihat footer)
bisa juga langsung mengunduh di shared storage siti :  http://www.box.net/shared/ocsgtf5517

bluewater, 29Apr2011
~siti~

__._,_.___
Recent Activity:
+-:: XL-mania ::::::::::::::::::::----------------------------------+
| wooHoooOoooo!!! "mengapa boss benci chart anda" mau dicetak lagi! |
| insanbiasa : "member 17,000++ yang beli buku mengapa boss benci   |
| chart anda cuma segituhh? pokoknya� yang nggak beli: BANNED :D :D |
| http://www.facebook.com/group.php?gid=37671048001&ref=mf          |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message,  melecehkan,  tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan  winzip  jika  perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke  |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/           |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau...  |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html           |
+-------------------------------------------------------------------+
| Message lama ada di :                                             |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id]  |
| http://www.mail-archive.com/xl-mania@yahoogroups.com              |
+-------------------------------------------------------------------+
.

__,_._,___

Nenhum comentário:

Arquivo do blog