Helmholtz equation is the one of the mathematical model to describe many physical problems, especially the propagation of electromagnetic waves. Helmholtz equation has some difficulties, such as the highly oscillatory and "pollution effect" for high wavenumber, complex-valued, and has nonlinearity term for nonlinear Helmholtz equation. Because the limitation of memory and CPU size in digital computer, simulating this problem with a large size of computation points is impossible. This thesis presents a method to solve this problem with a few points and has the same accuracy as the large number of discretization point. This method will be applied to both linear and nonlinear problem. From numerical experiment, this method can improve the result and accuracy for linear problem, so that the use of the large number of discretization is not necessary. For nonlinear problem, this method can provide the small improvement because of the nonlinearity term. In addition, this thesis also introduce an iteration method that can handle the nonlinearity term and can be applied for some numerical schemes.