Roger Federer and Novak Djokovic will contest the Indian Wells final after recording contrasting semi-final victories during Saturday's action.