How can I make automaton that has given language?
You want to make an automaton that accepts the language 
$L_1 = \{ s \in \{a, b\} \mid \text{each $a$ in $s$ is immediately preceded and followed by }b \}$.

A few examples of words that should be accepted are: 


$\lambda$ , which is the empty word. There is no $a$ in the empty word so this word should be accepted.
$b^*$, which is any word only containing $b$'s. 
Other examples: $bab$, $bbbbbab$, $babababab$.


So let's start constructing. Since the empty word is accepted, the initial state $q_0$ should be an accepting state. A word starting with $a$ can't be accepted, therefore we forward such a word to $q_3$ and let it be stuck there. $q_3$ is not an accepting state.

Now consider a word starting with $b$. The word $b$ should be accepted, so $q_2$ is an accepting state. $b^*$ should be accepted, therefore we define the transition function $\delta(q_2, b) = q_2$. (Any $b$ in $q_2$ goes to $q_2$.) 

Now the transition from $q_2$ to $q_4$ is triggered by an $a$. $q_4$ is not an accepting state. If there is another $a$, we know that the input should not be accepted so we define the transition $\delta(q_4, a) = q_3$. Once in $q_3$ it will loop there, so the word can't be accepted.

The transitions between $q_2$ and $q_4$ make sure that any word ending with b is accepted, provided that a sequence of multiple $a$s never occurs. If it does it will go to state $q_3$ and it will be stuck there.