i hope someone could help me with this. I can't get the point of the utility of flip-flops, the point of saving the state. If we want to save the previous state, why don't we simple maintain the inputs as they are. In general why is not this way : input=output using to not gates for example. Or are flip-flops used in memory storage because of the fact that after giving the output, the inputs can be put to zero and use them for other purpose and still maintain the output?
The utility of flip flop is to store state and make it stable.
For your statement about making "input = output", you have to understand that every change in the input line is not necessarily the input for the flip flop. And another thing is that output can be some operation of previous output and present input then you need previous output which you should store in somewhere, for which flip flop is used (and register is a group of flip flops).
In flip flop, we use clock to synchronize the operation. Depending upon the types of flip flop i.e. edge-trigger or level-trigger, the input in the flip flop affects its output. For example: for level-trigger flip flop, the input in the flip flop affects its output only when the clock is high.
So, for your question that "inputs can be put to zeros to maintain the outputs", you are right that it helps to maintain the outputs but that is not only the case to maintain the outputs. When the clock is low, change in inputs does not affect the output.