Barisan Nasional (BN) berjaya merampas semula kerusi tradisinya di Semenyih apabila calonnya Zakaria Hanafi mendapat 19,780 undian.