Menampilkan nilai tertinggi dengan php mysql

  1. Home
  2. PHP MYSQLi
  3. Mencari Nilai Max dan Min di PHP

Mencari Nilai Max dan Min di PHP

Posted in at 17 Mei 2017 With

Tutorial kali ini kita akan membahas Cara Mencari Nilai Max (Maksimum) dan Nilai Minimum di PHP , dengan kata lain kita akan menggunakan fungsi PHP untuk mencari nilai tertinggi dan nilai terendah di PHP.

Langsung saja kita ke inti pembahasan mencari nilai terbesar

MAX

fungsi max digunakan untuk mencari nilai tertinggi / terbesar , berikut ini contoh nya :

<?php
   echo max(3,23,8,19,25);
?>

Hasil Yang di dapat : 25

MIN

Fungsi min digunakan untuk mencari nilai terendah / terkecil, berikut ini contoh penggunaanya :

<?php
   echo min(3,23,8,19,25);
?>

Hasil yang di dapat adalah : 3

Bagaimana.. ? mudah bukan dalam mecari nilai terendah dan tertinggi di PHP MYSQL.. ? Selamat mencoba

Artikel Rekomendasi

Menampilkan nilai tertinggi dengan php mysql
Ebook Membuat Website Dinamis PHP MYSQLi + Source Code

Menampilkan nilai tertinggi dengan php mysql
Ebook Membuat Website Dinamis PHP V.2 + Source Code

Menampilkan nilai tertinggi dengan php mysql
Aplikasi SPPD Terbaru + Source Code

Membuat Formulir Registrasi Pengguna dengan PHP MYSQL
Previous Post

Edit Data Combobox Terpilih di Form Edit PHP MYSQL
Next Post

Twitter Facebook Google+ Buffer

Artikel Terkait
  • Edit Data Combobox Terpilih di Form Edit PHP MYSQL
  • Menampilkan data dari database ke checkbox dan otomatis tercentang di PHP
  • Membuat Login Verifikasi Email PHP dan MySQL
  • Validasi Upload Type Image and Size Image
  • Cara Mudah Membuat Validasi Angka Lengkap
  • Cara Menampilkan Ukuran File atau Gambar dengan PHP
  • Memeriksa Input Angka dengan PHP
  • Mencegah Sql Injection dengan PHP
  • Tampil data di beberapa textbox Berdasarkan Combobox
  • Cara Menghapus data Mysql Dengan PHP

Mencari nilai terbesar di mysql pada command line client ;
mysql>select max(nilai yang akan kita cari) as 'max nilai yang akan kita cari' from dari tabel yang akan kita cari nilai terbesar ;

Sebelum anda mencari nilai terbesar dengan dengan Query PHP Mysql yang pasti komputer atau laptop anda sudah terpasang Aplikasi yang memiliki server lokal atau Localhost, jika belum terpasang  jika kita ketik pada Command Line sudah pasti akan Eror atau tidak bisa.
untuk Aplikasi yang mempunyai server lokal atau localhost sebagai baerikut : XAMPP, Apache, App Serv, dan Lain Sebagainya.

Aplikasi terinstal, sebelum mencari nilai tertinggi kita harus buat dulu Database

lalu Tabel dan isi tabel anda dengan nilai yang berbeda - beda. setelah semua sudah dibuat baru kita coba Query Mysql dibawah ini :

Contoh :

  • mysql> select max(harga) as 'maxharga' from barang ;
Hasil dari Contoh :



Jika Berhasil Maka akan tampil seperti diatas.

Good Luck.

Share on Facebook

Share on Twitter

Share on Google+

Share on LinkedIn

Subscribe to receive free email updates:

Untuk mencari nilai maksimal pada suatu tabel, kita dapat menggunakan perintah SELECT MAX, Untuk mencari nilai minimal menggunakan SELECT MIN, dan untuk Nilai Rata-rata menggunakan SELECT AVG.

 

Contoh :

TABEL 1 (Rangkuman_Nilai):

Nama

Nilai

Dwiky

74

Yoga

72

Ilham

88

Efendi

94

Ratna

75

Mega

75

Yoyo

75

 

Dari tabel diatas misalnya kita ingin menampilkan nama dengan nilai terbesar. Berikut ini query untuk memanggilnya :

Masalah SQL query yang akan saya bahas pada artikel ini adalah masalah yang saya cukup yakin sering kita temui ketika membuat aplikasi. Group-wise Maximum adalah cara untuk mendapatkan baris dengan nilai tertinggi dari setiap grup. Pada artikel ini kita akan mengambil contoh top skor Liga Inggris (EPL) musim 2015–2016.

Pada artikel ini kita hanya akan membahas satu solusi yaitu menggunakan self joinsederhana dan tidak menjabarkan alternatif lain. Database server yang digunakan untuk contoh adalah MariaDB/MySQL. Tetapi harusnya dapat diaplikasikan ke semua RDBMS karena menggunakan standard SQL.

Contoh Masalah untuk Group-wise Maximum

Tampilkan daftar pencetak gol terbanyak untuk sebuah klub, urutkan berdasarkan jumlah gol terbanyak dan kelompokkan berdasarkan nama klub

Contoh Data

Untuk memudahkan pemahaman jumlah record yang digunakan untuk contoh hanyalah sedikit. Berikut ini adalah data top skor Liga Inggris musim 2015–2016. Nama tabel yang digunakan adalah top_scores.

shell> SELECT * FROM top_scores;
+----+------------------+-------------------+-----------+-------+
| id | player | club | season | goals |
+----+------------------+-------------------+-----------+-------+
| 1 | Alexis Sanchez | Arsenal | 2015-2016 | 13 |
| 2 | Troy Deeney | Watford | 2015-2016 | 13 |
| 3 | Romelu Lukaku | Everton | 2015-2016 | 18 |
| 4 | Harry Kane | Tottenham Hotspur | 2015-2016 | 25 |
| 5 | Oliver Giroud | Arsenal | 2015-2016 | 16 |
| 6 | Anthony Martial | Manchester United | 2015-2016 | 11 |
| 7 | Riyad Mahrez | Leicester City | 2015-2016 | 17 |
| 8 | Gylfi Sigurdsson | Swansea City | 2015-2016 | 11 |
| 9 | Jamie Vardy | Leicester City | 2015-2016 | 24 |
| 10 | Odion Ighalo | Watford | 2015-2016 | 15 |
| 11 | André Ayew | Swansea City | 2015-2016 | 12 |
| 12 | Diego Costa | Chelsea | 2015-2016 | 12 |
+----+------------------+-------------------+-----------+-------+
12 rows in set (0.00 sec)

Dan hasil yang diharapkan nantinya adalah seperti dibawah ini.

+----+-----------------+-------------------+-----------+-------+
| id | player | club | season | goals |
+----+-----------------+-------------------+-----------+-------+
| 4 | Harry Kane | Tottenham Hotspur | 2015-2016 | 25 |
| 9 | Jamie Vardy | Leicester City | 2015-2016 | 24 |
| 3 | Romelu Lukaku | Everton | 2015-2016 | 18 |
| 5 | Oliver Giroud | Arsenal | 2015-2016 | 16 |
| 10 | Odion Ighalo | Watford | 2015-2016 | 15 |
| 11 | André Ayew | Swansea City | 2015-2016 | 12 |
| 12 | Diego Costa | Chelsea | 2015-2016 | 12 |
| 6 | Anthony Martial | Manchester United | 2015-2016 | 11 |
+----+-----------------+-------------------+-----------+-------+
8 rows in set (0.00 sec)
Percobaan Query yang Gagal

Sepertinya mudah untuk mendapatkan hasil yang diharapkan dengan hanya memanfaatkan group by dan order by. Mari kita coba.

SELECT id, player, club, season, MAX(goals) AS goals
FROM top_scores GROUP BY club ORDER BY goals DESC;

Hasilnya adalah sebagai berikut.

+----+------------------+-------------------+-----------+-------+
| id | player | club | season | goals |
+----+------------------+-------------------+-----------+-------+
| 4 | Harry Kane | Tottenham Hotspur | 2015-2016 | 25 |
| 7 | Riyad Mahrez | Leicester City | 2015-2016 | 24 |
| 3 | Romelu Lukaku | Everton | 2015-2016 | 18 |
| 1 | Alexis Sanchez | Arsenal | 2015-2016 | 16 |
| 2 | Troy Deeney | Watford | 2015-2016 | 15 |
| 8 | Gylfi Sigurdsson | Swansea City | 2015-2016 | 12 |
| 12 | Diego Costa | Chelsea | 2015-2016 | 12 |
| 6 | Anthony Martial | Manchester United | 2015-2016 | 11 |
+----+------------------+-------------------+-----------+-------+
8 rows in set (0.00 sec)

Sepertinya sesuai yang diharapkan. Tunggu dulu! Coba lihat baris Riyad Mahrez (Leicester City), Alexis Sanchez (Arsenal) dan Gylfi Sigurdsson (Swansea City) mereka harusnya tidak masuk ke dalam hasil. Karena yang kita inginkan hanyalah pencetak gol terbanyak. Harusnya yang masuk adalah nama berikut Jamie Vardy, Oliver Giroud dan André Ayew.

Solusi untuk Group-wise Maximum

Pada hampir setiap masalah cara yang menurut saya efektif adalah dengan memecahnya menjadi bagian-bagian yang sederhana. Untuk kasus ini langkah pertama adalah kita akan mendapatkan goal terbanyak dikelompokkan berdasarkan nama klub terlebih dahulu.

SELECT club, MAX(goals) AS max_goals FROM top_scores GROUP BY club;

Pada query diatas kita tidak memperdulikan urutan, hasil dari query diatas adalah seperti dibawah.

+-------------------+-----------+
| club | max_goals |
+-------------------+-----------+
| Arsenal | 16 |
| Chelsea | 12 |
| Everton | 18 |
| Leicester City | 24 |
| Manchester United | 11 |
| Swansea City | 12 |
| Tottenham Hotspur | 25 |
| Watford | 15 |
+-------------------+-----------+
8 rows in set (0.00 sec)

Langkah berikutnya adalah kita akan melakukan self join tabel top_scores dengan hasil query sebelumnya. Tujuannya adalah kita hanya mencocokkan baris yang mempunyai nama klub dan jumlah gol yang sama.

SELECT ts1.* FROM top_scores AS ts1
INNER JOIN (
SELECT club, MAX(goals) AS max_goals FROM top_scores
GROUP BY club
) AS ts2 ON ts2.club=ts1.club AND ts1.goals=ts2.max_goals
ORDER BY ts1.goals DESC;

Hasil dari query diatas harusnya telah sama dengan yang diharapkan.

+----+-----------------+-------------------+-----------+-------+
| id | player | club | season | goals |
+----+-----------------+-------------------+-----------+-------+
| 4 | Harry Kane | Tottenham Hotspur | 2015-2016 | 25 |
| 9 | Jamie Vardy | Leicester City | 2015-2016 | 24 |
| 3 | Romelu Lukaku | Everton | 2015-2016 | 18 |
| 5 | Oliver Giroud | Arsenal | 2015-2016 | 16 |
| 10 | Odion Ighalo | Watford | 2015-2016 | 15 |
| 11 | André Ayew | Swansea City | 2015-2016 | 12 |
| 12 | Diego Costa | Chelsea | 2015-2016 | 12 |
| 6 | Anthony Martial | Manchester United | 2015-2016 | 11 |
+----+-----------------+-------------------+-----------+-------+
8 rows in set (0.00 sec)

Bagaimana jika ada dua atau lebih pemain dari klub yang sama memiliki jumlah gol yang sama juga? Jawabannya pemain-pemain tersebut akan ditampilkan. Untuk membatasinya hanya pada Top-N akan kita bahas pada artikel yang lain.

Clone Contoh Group-wise Maximum

Untuk mempermudah pemahaman dan eksperimen tentang masalah Group-wise Maximum ini silahkan clone contoh yang telah saya sediakan di github.com/rioastamal-examples/solution-mysql-groupwise-maximum. Pada repository tersebut terdapat contoh skema dan query yang digunakan pada artikel ini.