Meningkatnya penggunaan website umumnya diikuti dengan munculnya ancaman kejahatan siber yang salah satu bentuknya adalah SQL Injection. SQL Injection merupakan salah satu serangan injeksi yang paling umum dan berdampak besar yang dapat terjadi pada sistem atau website. Serangan SQL Injection memiliki berbagai macam jenis serangan yang dapat mengakibatkan dampak yang berbeda tergantung dari query yang diinjeksikan ke sistem atau website. Pada penelitian ini, algoritma machine learning khususnya Support Vector Machine (SVM) dan Naïve Bayes digunakan untuk mendeteksi SQL injection. Dataset yang digunakan untuk penelitian ini terdiri dari dua jenis data. Satu data yang digabungkan dari Kaggle dan satu lagi adalah payload yang digunakan dalam penetration testing yang telah dilabeli berdasarkan lima kelas yaitu error based, union based, Boolean based, time based, dan benign. Dari hasil percobaan, akurasi tertinggi dari Support Vector Machine (SVM) adalah 93.98% dan akurasi tertinggi dari Naïve Bayes hanya 73.50%, tetapi dengan ensemble learning menggunakan kedua metode tersebut dapat mencapai akurasi yang lebih baik yaitu 92.9%.