Restricted Boltzmann Machines (RBMs) is one of machine learning's methods which within past decades, the development of RBMs has quite increase. Researches of RBMs focused on theories and applications of RBMs. The application of RBMs has proofed that RBMs good at finishing many tasks, such as feature extraction method, document modeling, representation learning, classification and others. The RBMs' theories also have great movements, such as the development of the learning algorithm and inference techniques of RBMs. The key factors making the RBM success on finishing task are the learning algorithm and inference techniques. They motivated the development of inference techniques which successfully improved the deep neural network (DNN) performance. The aim of this research is reviewing the various types of RBMs as the application side, and the development of learning algorithm and inference techniques as theoretical side. Hopefully, it could motivate more development on the RBMs in order to contribute on overcoming implementation tasks especially on image processing tasks.